get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 134890,
    "url": "https://patches.dpdk.org/api/patches/134890/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20231206175326.116375-1-stephen@networkplumber.org/",
    "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": "<20231206175326.116375-1-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231206175326.116375-1-stephen@networkplumber.org",
    "date": "2023-12-06T17:51:57",
    "name": "[RFT] net/nfb: use dynamic logtype",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "0ae31dabc5d28ee804391af1d02e6e1e514b4249",
    "submitter": {
        "id": 27,
        "url": "https://patches.dpdk.org/api/people/27/?format=api",
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20231206175326.116375-1-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 30464,
            "url": "https://patches.dpdk.org/api/series/30464/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=30464",
            "date": "2023-12-06T17:51:57",
            "name": "[RFT] net/nfb: use dynamic logtype",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/30464/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/134890/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/134890/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 71A384368D;\n\tWed,  6 Dec 2023 18:53:40 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 39BA94029C;\n\tWed,  6 Dec 2023 18:53:40 +0100 (CET)",
            "from mail-pl1-f179.google.com (mail-pl1-f179.google.com\n [209.85.214.179])\n by mails.dpdk.org (Postfix) with ESMTP id 202954021E\n for <dev@dpdk.org>; Wed,  6 Dec 2023 18:53:38 +0100 (CET)",
            "by mail-pl1-f179.google.com with SMTP id\n d9443c01a7336-1d0c94397c0so120555ad.2\n for <dev@dpdk.org>; Wed, 06 Dec 2023 09:53:38 -0800 (PST)",
            "from hermes.local (204-195-123-141.wavecable.com. [204.195.123.141])\n by smtp.gmail.com with ESMTPSA id\n p2-20020a170902eac200b001d0c41b1d03sm114350pld.32.2023.12.06.09.53.36\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 06 Dec 2023 09:53:36 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1701885217;\n x=1702490017; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=PT+OKHBCJvSJugiRqINhELwQC0QMGnydbXlN42NSOP8=;\n b=zEmActY+/GNI1AieccA1nGhy5d/ipvXX8xd7/I4sFnvnU6sd6HbRJg1xMPg55BOgCH\n WKP9d73jdC5etVLCB9wqc9HC85Y3rx95VC2iENNataqQ9028qrR9NeuHhVLLZywUUf2q\n KI7JZeeBgy5uX18Nq9azyjIJP2O59BbvIhgrCedsARH96WtmfP46iihE5ChWrWDi/HaP\n DatxC5I8KugLlqHMTrWPngraxNrj3oAdXxKeKT/xv6wzZPIuGIElyg+F+ke+a1SBR2w3\n gaa2p7efsQ8jWmS0aVpaFXYTvPUvn2fkRuyYX910wEHk283YPNxDbNX5eUqlistrn4Fd\n XL7w==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1701885217; x=1702490017;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=PT+OKHBCJvSJugiRqINhELwQC0QMGnydbXlN42NSOP8=;\n b=kfizD381SjFy0M5xQ9oQUSAVk3em/rBWoS1ykZEgf3RWi7yJT4UAGtyO2bcgth7Ggz\n ftqojDjH1OpipKSb2VnADOb7V+6yR4VVCb8Azi35HyjszPIpSgTiwoqvYu7jhdo702J2\n Q7uMN7Qz1mkG6yTQepPt8/zfIB6XFRe/9A7wP67B1HCSi8M6hkM/fy3dsqnQGQNTArWP\n lKn5GC3TiSPP6P/bn9n+4RX1kAj+PXTVboJT2mcGSr/Dkg+m9/8r1IssfcUtzsYe59ER\n alTRU64P9wQBv8k/TmwMYWgOKO3zDnSTFGV0x+4ShArtuQM0E9WZmrPoawQJak9on/Zi\n Upuw==",
        "X-Gm-Message-State": "AOJu0YxqzDLQGkiDRP9lDRLddSJOSi+GGxqvUsG0V2b+731uFHHDa3jf\n WJ9SOXqL/FuYxMZuRBKTak+KAQtQpV/nvX/gfc0=",
        "X-Google-Smtp-Source": "\n AGHT+IHCTgaOl01g7Mv+3uDhKnzZt+Tm1pdY3XE46F56lOahm9wRaBysPl6UPKtLpLDu9O9gJAfYGQ==",
        "X-Received": "by 2002:a17:903:32ca:b0:1d0:6ffd:ae05 with SMTP id\n i10-20020a17090332ca00b001d06ffdae05mr1073121plr.108.1701885217283;\n Wed, 06 Dec 2023 09:53:37 -0800 (PST)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>,\n Martin Spinler <spinler@cesnet.cz>, Rastislav Cernay <cernay@netcope.com>",
        "Subject": "[RFT] net/nfb: use dynamic logtype",
        "Date": "Wed,  6 Dec 2023 09:51:57 -0800",
        "Message-ID": "<20231206175326.116375-1-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.42.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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"
    },
    "content": "All drivers should be using dynamic logtype.\nThis should have been caught during initial driver review.\n\nSince this driver requires non-standard external library this\npatch can not be tested by me.\n\nFixes: 6435f9a0ac22 (\"net/nfb: add new netcope driver\")\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>\n---\n drivers/net/nfb/nfb_ethdev.c | 22 ++++++++++------------\n drivers/net/nfb/nfb_log.h    | 13 +++++++++++++\n drivers/net/nfb/nfb_rx.c     |  9 +++++----\n drivers/net/nfb/nfb_rx.h     |  2 +-\n drivers/net/nfb/nfb_tx.c     |  8 ++++----\n drivers/net/nfb/nfb_tx.h     |  2 +-\n 6 files changed, 34 insertions(+), 22 deletions(-)\n create mode 100644 drivers/net/nfb/nfb_log.h",
    "diff": "diff --git a/drivers/net/nfb/nfb_ethdev.c b/drivers/net/nfb/nfb_ethdev.c\nindex defd118bd0ee..6c72ac101241 100644\n--- a/drivers/net/nfb/nfb_ethdev.c\n+++ b/drivers/net/nfb/nfb_ethdev.c\n@@ -12,6 +12,7 @@\n #include <ethdev_pci.h>\n #include <rte_kvargs.h>\n \n+#include \"nfb_log.h\"\n #include \"nfb_stats.h\"\n #include \"nfb_rx.h\"\n #include \"nfb_tx.h\"\n@@ -192,8 +193,7 @@ nfb_eth_dev_configure(struct rte_eth_dev *dev __rte_unused)\n \t\t\t\t(&nfb_timestamp_dynfield_offset,\n \t\t\t\t&nfb_timestamp_rx_dynflag);\n \t\tif (ret != 0) {\n-\t\t\tRTE_LOG(ERR, PMD, \"Cannot register Rx timestamp\"\n-\t\t\t\t\t\" field/flag %d\\n\", ret);\n+\t\t\tNFB_LOG(ERR, \"Cannot register Rx timestamp field/flag %d\", ret);\n \t\t\tnfb_close(internals->nfb);\n \t\t\treturn -rte_errno;\n \t\t}\n@@ -520,7 +520,7 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)\n \tstruct rte_ether_addr eth_addr_init;\n \tstruct rte_kvargs *kvlist;\n \n-\tRTE_LOG(INFO, PMD, \"Initializing NFB device (\" PCI_PRI_FMT \")\\n\",\n+\tNFB_LOG(INFO, \"Initializing NFB device (\" PCI_PRI_FMT \")\",\n \t\tpci_addr->domain, pci_addr->bus, pci_addr->devid,\n \t\tpci_addr->function);\n \n@@ -536,7 +536,7 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)\n \t\tkvlist = rte_kvargs_parse(dev->device->devargs->args,\n \t\t\t\t\t\tVALID_KEYS);\n \t\tif (kvlist == NULL) {\n-\t\t\tRTE_LOG(ERR, PMD, \"Failed to parse device arguments %s\",\n+\t\t\tNFB_LOG(ERR, \"Failed to parse device arguments %s\",\n \t\t\t\tdev->device->devargs->args);\n \t\t\trte_kvargs_free(kvlist);\n \t\t\treturn -EINVAL;\n@@ -551,14 +551,13 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)\n \t */\n \tinternals->nfb = nfb_open(internals->nfb_dev);\n \tif (internals->nfb == NULL) {\n-\t\tRTE_LOG(ERR, PMD, \"nfb_open(): failed to open %s\",\n-\t\t\tinternals->nfb_dev);\n+\t\tNFB_LOG(ERR, \"nfb_open(): failed to open %s\", internals->nfb_dev);\n \t\treturn -EINVAL;\n \t}\n \tdata->nb_rx_queues = ndp_get_rx_queue_available_count(internals->nfb);\n \tdata->nb_tx_queues = ndp_get_tx_queue_available_count(internals->nfb);\n \n-\tRTE_LOG(INFO, PMD, \"Available NDP queues RX: %u TX: %u\\n\",\n+\tNFB_LOG(INFO, \"Available NDP queues RX: %u TX: %u\",\n \t\tdata->nb_rx_queues, data->nb_tx_queues);\n \n \tnfb_nc_rxmac_init(internals->nfb,\n@@ -583,7 +582,7 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)\n \tdata->mac_addrs = rte_zmalloc(data->name,\n \t\tsizeof(struct rte_ether_addr) * mac_count, RTE_CACHE_LINE_SIZE);\n \tif (data->mac_addrs == NULL) {\n-\t\tRTE_LOG(ERR, PMD, \"Could not alloc space for MAC address!\\n\");\n+\t\tNFB_LOG(ERR, \"Could not alloc space for MAC address\");\n \t\tnfb_close(internals->nfb);\n \t\treturn -EINVAL;\n \t}\n@@ -601,8 +600,7 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)\n \n \tdev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;\n \n-\tRTE_LOG(INFO, PMD, \"NFB device (\"\n-\t\tPCI_PRI_FMT \") successfully initialized\\n\",\n+\tNFB_LOG(INFO, \"NFB device (\" PCI_PRI_FMT \") successfully initialized\",\n \t\tpci_addr->domain, pci_addr->bus, pci_addr->devid,\n \t\tpci_addr->function);\n \n@@ -626,8 +624,7 @@ nfb_eth_dev_uninit(struct rte_eth_dev *dev)\n \n \tnfb_eth_dev_close(dev);\n \n-\tRTE_LOG(INFO, PMD, \"NFB device (\"\n-\t\tPCI_PRI_FMT \") successfully uninitialized\\n\",\n+\tNFB_LOG(INFO,\"NFB device (\" PCI_PRI_FMT \") successfully uninitialized\",\n \t\tpci_addr->domain, pci_addr->bus, pci_addr->devid,\n \t\tpci_addr->function);\n \n@@ -690,3 +687,4 @@ static struct rte_pci_driver nfb_eth_driver = {\n RTE_PMD_REGISTER_PCI(RTE_NFB_DRIVER_NAME, nfb_eth_driver);\n RTE_PMD_REGISTER_PCI_TABLE(RTE_NFB_DRIVER_NAME, nfb_pci_id_table);\n RTE_PMD_REGISTER_KMOD_DEP(RTE_NFB_DRIVER_NAME, \"* nfb\");\n+RTE_LOG_REGISTER_DEFAULT(nfb_logtype, NOTICE);\ndiff --git a/drivers/net/nfb/nfb_log.h b/drivers/net/nfb/nfb_log.h\nnew file mode 100644\nindex 000000000000..fac66a38d4b3\n--- /dev/null\n+++ b/drivers/net/nfb/nfb_log.h\n@@ -0,0 +1,13 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ */\n+\n+#ifndef _NFB_STATS_H_\n+#define _NFB_STATS_H_\n+\n+extern int nfb_logtype;\n+\n+#define NFB_LOG(level, fmt, args...) \\\n+\trte_log(RTE_LOG_ ## level, nfb_logtype, \"%s(): \" fmt \"\\n\", \\\n+\t\t__func__, ## args)\n+\n+#endif /* _NFB_STATS_H_ */\ndiff --git a/drivers/net/nfb/nfb_rx.c b/drivers/net/nfb/nfb_rx.c\nindex 8a9b232305f2..e39592d04737 100644\n--- a/drivers/net/nfb/nfb_rx.c\n+++ b/drivers/net/nfb/nfb_rx.c\n@@ -6,6 +6,7 @@\n \n #include <rte_kvargs.h>\n \n+#include \"nfb_log.h\"\n #include \"nfb_rx.h\"\n #include \"nfb.h\"\n \n@@ -19,7 +20,7 @@ nfb_eth_rx_queue_start(struct rte_eth_dev *dev, uint16_t rxq_id)\n \tint ret;\n \n \tif (rxq->queue == NULL) {\n-\t\tRTE_LOG(ERR, PMD, \"RX NDP queue is NULL!\\n\");\n+\t\tNFP_LOG(ERR, \"RX NDP queue is NULL\");\n \t\treturn -EINVAL;\n \t}\n \n@@ -40,7 +41,7 @@ nfb_eth_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rxq_id)\n \tint ret;\n \n \tif (rxq->queue == NULL) {\n-\t\tRTE_LOG(ERR, PMD, \"RX NDP queue is NULL!\\n\");\n+\t\tNFB_LOG(ERR, \"RX NDP queue is NULL\");\n \t\treturn -EINVAL;\n \t}\n \n@@ -70,8 +71,8 @@ nfb_eth_rx_queue_setup(struct rte_eth_dev *dev,\n \t\t\tRTE_CACHE_LINE_SIZE, socket_id);\n \n \tif (rxq == NULL) {\n-\t\tRTE_LOG(ERR, PMD, \"rte_zmalloc_socket() failed for rx queue id \"\n-\t\t\t\t\"%\" PRIu16 \"!\\n\", rx_queue_id);\n+\t\tNFB_LOG(ERR, \"rte_zmalloc_socket() failed for rx queue id %\" PRIu16,\n+\t\t\trx_queue_id);\n \t\treturn -ENOMEM;\n \t}\n \ndiff --git a/drivers/net/nfb/nfb_rx.h b/drivers/net/nfb/nfb_rx.h\nindex b618682e1393..2802f17091a0 100644\n--- a/drivers/net/nfb/nfb_rx.h\n+++ b/drivers/net/nfb/nfb_rx.h\n@@ -156,7 +156,7 @@ nfb_eth_ndp_rx(void *queue,\n \tstruct rte_mbuf *mbufs[nb_pkts];\n \n \tif (unlikely(ndp->queue == NULL || nb_pkts == 0)) {\n-\t\tRTE_LOG(ERR, PMD, \"RX invalid arguments!\\n\");\n+\t\tNFB_LOG(ERR, \"RX invalid arguments\");\n \t\treturn 0;\n \t}\n \ndiff --git a/drivers/net/nfb/nfb_tx.c b/drivers/net/nfb/nfb_tx.c\nindex d49fc324e76b..3fdfb66a969e 100644\n--- a/drivers/net/nfb/nfb_tx.c\n+++ b/drivers/net/nfb/nfb_tx.c\n@@ -14,7 +14,7 @@ nfb_eth_tx_queue_start(struct rte_eth_dev *dev, uint16_t txq_id)\n \tint ret;\n \n \tif (txq->queue == NULL) {\n-\t\tRTE_LOG(ERR, PMD, \"RX NDP queue is NULL!\\n\");\n+\t\tNFB_LOG(ERR, \"RX NDP queue is NULL\");\n \t\treturn -EINVAL;\n \t}\n \n@@ -35,7 +35,7 @@ nfb_eth_tx_queue_stop(struct rte_eth_dev *dev, uint16_t txq_id)\n \tint ret;\n \n \tif (txq->queue == NULL) {\n-\t\tRTE_LOG(ERR, PMD, \"TX NDP queue is NULL!\\n\");\n+\t\tNFB_LOG(ERR, \"TX NDP queue is NULL\");\n \t\treturn -EINVAL;\n \t}\n \n@@ -62,8 +62,8 @@ nfb_eth_tx_queue_setup(struct rte_eth_dev *dev,\n \t\tRTE_CACHE_LINE_SIZE, socket_id);\n \n \tif (txq == NULL) {\n-\t\tRTE_LOG(ERR, PMD, \"rte_zmalloc_socket() failed for tx queue id \"\n-\t\t\t\"%\" PRIu16 \"!\\n\", tx_queue_id);\n+\t\tNFB_LOG(ERR, \"rte_zmalloc_socket() failed for tx queue id %\" PRIu16,\n+\t\t\ttx_queue_id);\n \t\treturn -ENOMEM;\n \t}\n \ndiff --git a/drivers/net/nfb/nfb_tx.h b/drivers/net/nfb/nfb_tx.h\nindex 910020e9e96f..f107cf914bbd 100644\n--- a/drivers/net/nfb/nfb_tx.h\n+++ b/drivers/net/nfb/nfb_tx.h\n@@ -140,7 +140,7 @@ nfb_eth_ndp_tx(void *queue,\n \t\treturn 0;\n \n \tif (unlikely(ndp->queue == NULL)) {\n-\t\tRTE_LOG(ERR, PMD, \"TX invalid arguments!\\n\");\n+\t\tNFB_LOG(ERR, \"TX invalid arguments\");\n \t\treturn 0;\n \t}\n \n",
    "prefixes": [
        "RFT"
    ]
}