get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/88885/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 88885,
    "url": "https://patches.dpdk.org/api/patches/88885/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210310140107.2730088-3-thomas@monjalon.net/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20210310140107.2730088-3-thomas@monjalon.net>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210310140107.2730088-3-thomas@monjalon.net",
    "date": "2021-03-10T14:01:06",
    "name": "[2/3] drivers: fix log level after loading",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "c970a99a72cba1e8a3a30368bf22d879ea40689d",
    "submitter": {
        "id": 685,
        "url": "https://patches.dpdk.org/api/people/685/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas@monjalon.net"
    },
    "delegate": {
        "id": 24651,
        "url": "https://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210310140107.2730088-3-thomas@monjalon.net/mbox/",
    "series": [
        {
            "id": 15584,
            "url": "https://patches.dpdk.org/api/series/15584/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=15584",
            "date": "2021-03-10T14:01:04",
            "name": "cleanup drivers log registration",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/15584/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/88885/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/88885/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id CCB2AA0567;\n\tWed, 10 Mar 2021 15:01:36 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 4D00B22A487;\n\tWed, 10 Mar 2021 15:01:18 +0100 (CET)",
            "from new4-smtp.messagingengine.com (new4-smtp.messagingengine.com\n [66.111.4.230])\n by mails.dpdk.org (Postfix) with ESMTP id 4205622A44E;\n Wed, 10 Mar 2021 15:01:17 +0100 (CET)",
            "from compute2.internal (compute2.nyi.internal [10.202.2.42])\n by mailnew.nyi.internal (Postfix) with ESMTP id 8959C580397;\n Wed, 10 Mar 2021 09:01:16 -0500 (EST)",
            "from mailfrontend2 ([10.202.2.163])\n by compute2.internal (MEProxy); Wed, 10 Mar 2021 09:01:16 -0500",
            "from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])\n by mail.messagingengine.com (Postfix) with ESMTPA id 331571080066;\n Wed, 10 Mar 2021 09:01:14 -0500 (EST)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=\n from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding; s=fm3; bh=fZhncdNwDe1zb\n L47Z3gAwvpvOjw8z9xu00UXnpGXxmw=; b=gER1gAfsMtl2bvCFzpUOHfJvxDQmo\n 5FxXnfMQbbx+R1ZtdmRYtSxbszH9H6Jk9KQKKNQv+TplCdMg4sAHcLPMgENX0CEA\n MFeYKooXPrm5aTLGvix5r2KgvklE3073iKb8p7pKaLrdXB/qU5qMJAEY5YLzh4Zn\n IVfT8vzmrxgrSdSUno4D1FkzWpOGTtVEiTqsyfA/iRFtg8P9Qz1q3oMNO94QAQ6/\n oL9G2zxdx6pGFw10gBySPD9LZB0TWVASB60sUNOliPvrb6c0yZSHg4wedgVRRM/C\n nokEuUSITE+L6DmdcN+P2S2VOo99DPIyMMCg3lOWVKDYtlTI0H8y5w2sw==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n messagingengine.com; h=cc:content-transfer-encoding:date:from\n :in-reply-to:message-id:mime-version:references:subject:to\n :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=\n fm2; bh=fZhncdNwDe1zbL47Z3gAwvpvOjw8z9xu00UXnpGXxmw=; b=XcYPOALb\n 4k3OIXwkMkNIM6RBdB2tS4t1agqG39W7V71+Z9Fk8QEhyhVlnmLtr7uZrCpwxx9I\n QlYpltK1uGS7IZ880mAumyVxhegUSbGzFTwZbO7tWBefHaom73VCJolu9gE0VJ/C\n 9JBvj68iSeNd7CkRnwXYUWnWVF6uK62+t8KksZN+Ly+gGoCsFoYLAdiJffrIwuHb\n 06fSs/wJ5FaXCvzxEcsPoCqEyu9iD4Q+SYutokm0cTRHY9N+xBZb1J0NQxcYHF6L\n 9b8Fn777fek/us5TjYa4AlUm/h6RR4RmikvYeBqGHmUH+P3iG/RVhW1qjxdu3bwL\n 9D3gWnJxqheR2A=="
        ],
        "X-ME-Sender": "<xms:K9FIYGsn21KRu45tiq8kFi4rudGeZoYYIveTGSKL-0C_e7j2_XL13A>\n <xme:K9FIYLcGVJUcmZNwA9-zF1F0sdC8CXehyVmX4qfHVNLD0jnEtV6exsGGY-yZe6Akf\n FmX4o-oOpRa33rqLA>",
        "X-ME-Proxy-Cause": "\n gggruggvucftvghtrhhoucdtuddrgeduledruddukedgiedtucetufdoteggodetrfdotf\n fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen\n uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne\n cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefvhhhomhgr\n shcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqnecugg\n ftrfgrthhtvghrnhepheefieekleefieeljedtvdehgeejvdevfedufeetleejfeethfel\n gfffudektdeunecuffhomhgrihhnpehpmhgurdhnvghtnecukfhppeejjedrudefgedrvd\n dtfedrudekgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhr\n ohhmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvght",
        "X-ME-Proxy": "<xmx:K9FIYBye4-wX4sjKm54jMSWYe41jvL6D43o2FCYQ1b3BsG-CIcTX3w>\n <xmx:K9FIYBPmqquE7yjUH4fC2z8pkZ9OfC9hhiykEt9LUpE2XGB3LqbU0w>\n <xmx:K9FIYG_MQHJa6bov0YrhKokQBali9OrNfAyDZgRuD4Lm_2JAcZ2hVw>\n <xmx:LNFIYJUDswYbC2faoBCMxEIyLAe8uzO_3nAEWBdARL8udJXv1vnFig>",
        "From": "Thomas Monjalon <thomas@monjalon.net>",
        "To": "dev@dpdk.org",
        "Cc": "stable@dpdk.org, Matan Azrad <matan@nvidia.com>,\n Shahaf Shuler <shahafs@nvidia.com>,\n Viacheslav Ovsiienko <viacheslavo@nvidia.com>,\n Ajit Khaparde <ajit.khaparde@broadcom.com>,\n Raveendra Padasalagi <raveendra.padasalagi@broadcom.com>,\n Vikas Gupta <vikas.gupta@broadcom.com>, Jeff Guo <jia.guo@intel.com>,\n Haiyue Wang <haiyue.wang@intel.com>,\n Adam Dybkowski <adamx.dybkowski@intel.com>,\n Jerin Jacob <jerinj@marvell.com>, Akhil Goyal <akhil.goyal@nxp.com>,\n Sachin Saxena <sachin.saxena@nxp.com>",
        "Date": "Wed, 10 Mar 2021 15:01:06 +0100",
        "Message-Id": "<20210310140107.2730088-3-thomas@monjalon.net>",
        "X-Mailer": "git-send-email 2.30.1",
        "In-Reply-To": "<20210310140107.2730088-1-thomas@monjalon.net>",
        "References": "<20210310140107.2730088-1-thomas@monjalon.net>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 2/3] drivers: fix log level after loading",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "When compiled as a shared object, and loaded at runtime as a plugin,\nthe drivers should get the log level set earlier at EAL init\nby the user through --log-level option.\n\nThe function for applying the log level setting is\nrte_log_register_type_and_pick_level().\nIt is called by most drivers via RTE_LOG_REGISTER().\n\nThe drivers common/mlx5, bcmfs and e1000 were missing,\nso the user-specified log level was not applied when\nthose drivers were loaded as plugins.\nThe macro RTE_LOG_REGISTER() is used for those drivers.\n\nThe unnecessary protection for double registration\nis removed from e1000.\n\nFixes: 9c99878aa1b1 (\"log: introduce logtype register macro\")\nFixes: c8e79da7c676 (\"crypto/bcmfs: introduce BCMFS driver\")\nCc: stable@dpdk.org\n\nSigned-off-by: Thomas Monjalon <thomas@monjalon.net>\n---\n drivers/common/mlx5/mlx5_common.c |  9 +-----\n drivers/crypto/bcmfs/bcmfs_logs.c | 17 ++---------\n drivers/net/e1000/e1000_logs.c    | 49 ++++---------------------------\n drivers/net/e1000/em_ethdev.c     |  6 ----\n drivers/net/e1000/igb_ethdev.c    |  6 ----\n 5 files changed, 8 insertions(+), 79 deletions(-)",
    "diff": "diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c\nindex c26a2cfa30..f92f05bda5 100644\n--- a/drivers/common/mlx5/mlx5_common.c\n+++ b/drivers/common/mlx5/mlx5_common.c\n@@ -14,8 +14,6 @@\n #include \"mlx5_common_utils.h\"\n #include \"mlx5_common_pci.h\"\n \n-int mlx5_common_logtype;\n-\n uint8_t haswell_broadwell_cpu;\n \n /* In case this is an x86_64 intel processor to check if\n@@ -41,12 +39,7 @@ static inline void mlx5_cpu_id(unsigned int level,\n }\n #endif\n \n-RTE_INIT_PRIO(mlx5_log_init, LOG)\n-{\n-\tmlx5_common_logtype = rte_log_register(\"pmd.common.mlx5\");\n-\tif (mlx5_common_logtype >= 0)\n-\t\trte_log_set_level(mlx5_common_logtype, RTE_LOG_NOTICE);\n-}\n+RTE_LOG_REGISTER(mlx5_common_logtype, pmd.common.mlx5, NOTICE)\n \n static bool mlx5_common_initialized;\n \ndiff --git a/drivers/crypto/bcmfs/bcmfs_logs.c b/drivers/crypto/bcmfs/bcmfs_logs.c\nindex 86f4ff3b53..701da9ecf3 100644\n--- a/drivers/crypto/bcmfs/bcmfs_logs.c\n+++ b/drivers/crypto/bcmfs/bcmfs_logs.c\n@@ -8,9 +8,6 @@\n \n #include \"bcmfs_logs.h\"\n \n-int bcmfs_conf_logtype;\n-int bcmfs_dp_logtype;\n-\n int\n bcmfs_hexdump_log(uint32_t level, uint32_t logtype, const char *title,\n \t\tconst void *buf, unsigned int len)\n@@ -24,15 +21,5 @@ bcmfs_hexdump_log(uint32_t level, uint32_t logtype, const char *title,\n \treturn 0;\n }\n \n-RTE_INIT(bcmfs_device_init_log)\n-{\n-\t/* Configuration and general logs */\n-\tbcmfs_conf_logtype = rte_log_register(\"pmd.bcmfs_config\");\n-\tif (bcmfs_conf_logtype >= 0)\n-\t\trte_log_set_level(bcmfs_conf_logtype, RTE_LOG_NOTICE);\n-\n-\t/* data-path logs */\n-\tbcmfs_dp_logtype = rte_log_register(\"pmd.bcmfs_fp\");\n-\tif (bcmfs_dp_logtype >= 0)\n-\t\trte_log_set_level(bcmfs_dp_logtype, RTE_LOG_NOTICE);\n-}\n+RTE_LOG_REGISTER(bcmfs_conf_logtype, pmd.bcmfs_config, NOTICE)\n+RTE_LOG_REGISTER(bcmfs_dp_logtype, pmd.bcmfs_fp, NOTICE)\ndiff --git a/drivers/net/e1000/e1000_logs.c b/drivers/net/e1000/e1000_logs.c\nindex 231f5c03ef..d9b8a4672f 100644\n--- a/drivers/net/e1000/e1000_logs.c\n+++ b/drivers/net/e1000/e1000_logs.c\n@@ -4,53 +4,14 @@\n \n #include \"e1000_logs.h\"\n \n-/* declared as extern in e1000_logs.h */\n-int e1000_logtype_init;\n-int e1000_logtype_driver;\n-\n+RTE_LOG_REGISTER(e1000_logtype_init, pmd.net.e1000.init, NOTICE)\n+RTE_LOG_REGISTER(e1000_logtype_driver, pmd.net.e1000.driver, NOTICE)\n #ifdef RTE_LIBRTE_E1000_DEBUG_RX\n-int e1000_logtype_rx;\n+RTE_LOG_REGISTER(e1000_logtype_rx, pmd.net.e1000.rx, DEBUG)\n #endif\n #ifdef RTE_LIBRTE_E1000_DEBUG_TX\n-int e1000_logtype_tx;\n+RTE_LOG_REGISTER(e1000_logtype_tx, pmd.net.e1000.tx, DEBUG)\n #endif\n #ifdef RTE_LIBRTE_E1000_DEBUG_TX_FREE\n-int e1000_logtype_tx_free;\n+RTE_LOG_REGISTER(e1000_logtype_tx_free, pmd.net.e1000.tx_free, DEBUG)\n #endif\n-\n-/* avoids double registering of logs if EM and IGB drivers are in use */\n-static int e1000_log_initialized;\n-\n-void\n-e1000_igb_init_log(void)\n-{\n-\tif (e1000_log_initialized)\n-\t\treturn;\n-\n-\te1000_logtype_init = rte_log_register(\"pmd.net.e1000.init\");\n-\tif (e1000_logtype_init >= 0)\n-\t\trte_log_set_level(e1000_logtype_init, RTE_LOG_NOTICE);\n-\te1000_logtype_driver = rte_log_register(\"pmd.net.e1000.driver\");\n-\tif (e1000_logtype_driver >= 0)\n-\t\trte_log_set_level(e1000_logtype_driver, RTE_LOG_NOTICE);\n-\n-#ifdef RTE_LIBRTE_E1000_DEBUG_RX\n-\te1000_logtype_rx = rte_log_register(\"pmd.net.e1000.rx\");\n-\tif (e1000_logtype_rx >= 0)\n-\t\trte_log_set_level(e1000_logtype_rx, RTE_LOG_DEBUG);\n-#endif\n-\n-#ifdef RTE_LIBRTE_E1000_DEBUG_TX\n-\te1000_logtype_tx = rte_log_register(\"pmd.net.e1000.tx\");\n-\tif (e1000_logtype_tx >= 0)\n-\t\trte_log_set_level(e1000_logtype_tx, RTE_LOG_DEBUG);\n-#endif\n-\n-#ifdef RTE_LIBRTE_E1000_DEBUG_TX_FREE\n-\te1000_logtype_tx_free = rte_log_register(\"pmd.net.e1000.tx_free\");\n-\tif (e1000_logtype_tx_free >= 0)\n-\t\trte_log_set_level(e1000_logtype_tx_free, RTE_LOG_DEBUG);\n-#endif\n-\n-\te1000_log_initialized = 1;\n-}\ndiff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c\nindex 9b8c4a7de5..79a6d8f461 100644\n--- a/drivers/net/e1000/em_ethdev.c\n+++ b/drivers/net/e1000/em_ethdev.c\n@@ -1846,9 +1846,3 @@ eth_em_set_mc_addr_list(struct rte_eth_dev *dev,\n RTE_PMD_REGISTER_PCI(net_e1000_em, rte_em_pmd);\n RTE_PMD_REGISTER_PCI_TABLE(net_e1000_em, pci_id_em_map);\n RTE_PMD_REGISTER_KMOD_DEP(net_e1000_em, \"* igb_uio | uio_pci_generic | vfio-pci\");\n-\n-/* see e1000_logs.c */\n-RTE_INIT(igb_init_log)\n-{\n-\te1000_igb_init_log();\n-}\ndiff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c\nindex 5323504e98..395dc3f5aa 100644\n--- a/drivers/net/e1000/igb_ethdev.c\n+++ b/drivers/net/e1000/igb_ethdev.c\n@@ -5434,9 +5434,3 @@ RTE_PMD_REGISTER_KMOD_DEP(net_e1000_igb, \"* igb_uio | uio_pci_generic | vfio-pci\n RTE_PMD_REGISTER_PCI(net_e1000_igb_vf, rte_igbvf_pmd);\n RTE_PMD_REGISTER_PCI_TABLE(net_e1000_igb_vf, pci_id_igbvf_map);\n RTE_PMD_REGISTER_KMOD_DEP(net_e1000_igb_vf, \"* igb_uio | vfio-pci\");\n-\n-/* see e1000_logs.c */\n-RTE_INIT(e1000_init_log)\n-{\n-\te1000_igb_init_log();\n-}\n",
    "prefixes": [
        "2/3"
    ]
}