get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 139424,
    "url": "http://patches.dpdk.org/api/patches/139424/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20240416152124.69590-6-stephen@networkplumber.org/",
    "project": {
        "id": 1,
        "url": "http://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": "<20240416152124.69590-6-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240416152124.69590-6-stephen@networkplumber.org",
    "date": "2024-04-16T15:19:31",
    "name": "[5/5] drivers/net: use RTE_DIM",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "9384709e85cfa4a9aea652fc4bbec84b502de1c8",
    "submitter": {
        "id": 27,
        "url": "http://patches.dpdk.org/api/people/27/?format=api",
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20240416152124.69590-6-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 31757,
            "url": "http://patches.dpdk.org/api/series/31757/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=31757",
            "date": "2024-04-16T15:19:26",
            "name": "use RTE_DIM where possible",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/31757/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/139424/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/139424/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 AB41243E83;\n\tTue, 16 Apr 2024 17:22:12 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id C894340695;\n\tTue, 16 Apr 2024 17:21:37 +0200 (CEST)",
            "from mail-pf1-f171.google.com (mail-pf1-f171.google.com\n [209.85.210.171])\n by mails.dpdk.org (Postfix) with ESMTP id 36EA84067B\n for <dev@dpdk.org>; Tue, 16 Apr 2024 17:21:33 +0200 (CEST)",
            "by mail-pf1-f171.google.com with SMTP id\n d2e1a72fcca58-6ee0642f718so3297513b3a.0\n for <dev@dpdk.org>; Tue, 16 Apr 2024 08:21:33 -0700 (PDT)",
            "from hermes.lan (204-195-96-226.wavecable.com. [204.195.96.226])\n by smtp.gmail.com with ESMTPSA id\n l17-20020a170903245100b001e80154a400sm213348pls.126.2024.04.16.08.21.31\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 16 Apr 2024 08:21:31 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1713280892;\n x=1713885692; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=xFZldrBvv+o0NLX2Xm+UCWEaTVh0OLbH05xGTJHlD4M=;\n b=YH6kuDAPNZLwB37zAOvIlHeNKJrVSXjAmEn5BmHWsKLeak6Qx0YBkLIeNqIzNvsJCi\n jFXzWw/UHCsRFCq0jO91WzZMb6SgFtviIhB1RPZYYUKMQ+LqyNEbMPICscTASYhzcLB3\n +Yx15GRYIQ4MUOB+h3LJX6+aBPev4NJgmzYfZ6rCSp564C3fGRApTznExbmX+s6ePyPx\n /7Vvoa1xE1KxZG5ptkfcsEly/UTvSYp4aKNUt4W0Xqx9DKTBJnqYRgHLqZSUOkDGfDHl\n L8p+zC84G5ojQ//81EnMUmtaQmNgto3RCNTZ88NuTbXtf35hbA5VSwCwllMSIpPlodmw\n BrPQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1713280892; x=1713885692;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=xFZldrBvv+o0NLX2Xm+UCWEaTVh0OLbH05xGTJHlD4M=;\n b=YLMuWu1mOAkE+tpVoKfbvjVpgTIW7DHGRBFcI1C+eAjfpz7wCL0//mJLW2mppm7tmY\n vbokOgpKV0i8O5Oq7A089jtN8jZLXMEaitWG/Nph1zz/rKord7e9CzfFkMhOGhp4AAF6\n NvjLlbpoPuLiIQVGuEShQKmVBHKDjL96SGpgqSC7u5UbRhkO6qpjI4durASuL0d8mGN4\n G2Rc5S+smLDW6waBzVqdH+HYEMwra9EbvM07JLgBfKl7/j36iCNFUgOSa0kVUefpYZ6m\n K7QGvzUKf1DElD77sQW9yNMnBYM6cKNWwxV3lrxmlBkLSki8/xN2IE3FscW+Fut2fldD\n tlJw==",
        "X-Gm-Message-State": "AOJu0YzLErREeCRGtqz+vuCY3wFXsfTl7S9TeMKSiI+oZfs3C4sBm6/i\n DFo72vB7EqjYVhclf6XTlKE1LV8xs4JvQP90QnvYvHO+ExCvuMecX6RYBox8el6whdLQJOY1yZ0\n S",
        "X-Google-Smtp-Source": "\n AGHT+IERUeJkvIVFCx70AvXeDofc/4dmErq/+Uy//MGXbKt4jdjf+fsQbmUVS9Xcpas8YDjFG25myA==",
        "X-Received": "by 2002:a17:902:b716:b0:1e2:a5db:30d1 with SMTP id\n d22-20020a170902b71600b001e2a5db30d1mr2573009pls.13.1713280892321;\n Tue, 16 Apr 2024 08:21:32 -0700 (PDT)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>,\n Shepard Siegel <shepard.siegel@atomicrules.com>,\n Ed Czeck <ed.czeck@atomicrules.com>,\n John Miller <john.miller@atomicrules.com>,\n Ajit Khaparde <ajit.khaparde@broadcom.com>,\n Somnath Kotur <somnath.kotur@broadcom.com>,\n Jingjing Wu <jingjing.wu@intel.com>, Rosen Xu <rosen.xu@intel.com>,\n Jiawen Wu <jiawenwu@trustnetic.com>, Harman Kalra <hkalra@marvell.com>,\n Jian Wang <jianwang@trustnetic.com>",
        "Subject": "[PATCH 5/5] drivers/net: use RTE_DIM",
        "Date": "Tue, 16 Apr 2024 08:19:31 -0700",
        "Message-ID": "<20240416152124.69590-6-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20240416152124.69590-1-stephen@networkplumber.org>",
        "References": "<20240416152124.69590-1-stephen@networkplumber.org>",
        "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": "Use RTE_DIM instead of computing directly with sizeof.\nPatch automatically generated via cocci/rte_dim.cocci.\nCode in base/ subdirectory manually excluded.\n\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>\n---\n drivers/net/ark/ark_pktchkr.c         |  2 +-\n drivers/net/ark/ark_pktgen.c          |  2 +-\n drivers/net/bnxt/bnxt_hwrm.c          | 12 ++++++------\n drivers/net/e1000/em_rxtx.c           |  3 +--\n drivers/net/iavf/iavf_ipsec_crypto.c  |  3 +--\n drivers/net/igc/igc_ethdev.c          |  3 +--\n drivers/net/ipn3ke/ipn3ke_tm.c        |  3 +--\n drivers/net/ngbe/ngbe_ethdev.c        |  6 ++----\n drivers/net/octeontx/octeontx_stats.h |  3 +--\n drivers/net/txgbe/txgbe_ethdev.c      |  9 +++------\n drivers/net/txgbe/txgbe_ethdev_vf.c   |  3 +--\n 11 files changed, 19 insertions(+), 30 deletions(-)",
    "diff": "diff --git a/drivers/net/ark/ark_pktchkr.c b/drivers/net/ark/ark_pktchkr.c\nindex e1f336c73c..63c298fca8 100644\n--- a/drivers/net/ark/ark_pktchkr.c\n+++ b/drivers/net/ark/ark_pktchkr.c\n@@ -320,7 +320,7 @@ options(const char *id)\n {\n \tunsigned int i;\n \n-\tfor (i = 0; i < sizeof(toptions) / sizeof(struct OPTIONS); i++) {\n+\tfor (i = 0; i < RTE_DIM(toptions); i++) {\n \t\tif (strcmp(id, toptions[i].opt) == 0)\n \t\t\treturn &toptions[i];\n \t}\ndiff --git a/drivers/net/ark/ark_pktgen.c b/drivers/net/ark/ark_pktgen.c\nindex 69ff7072b2..98e692c3ad 100644\n--- a/drivers/net/ark/ark_pktgen.c\n+++ b/drivers/net/ark/ark_pktgen.c\n@@ -297,7 +297,7 @@ options(const char *id)\n {\n \tunsigned int i;\n \n-\tfor (i = 0; i < sizeof(toptions) / sizeof(struct OPTIONS); i++) {\n+\tfor (i = 0; i < RTE_DIM(toptions); i++) {\n \t\tif (strcmp(id, toptions[i].opt) == 0)\n \t\t\treturn &toptions[i];\n \t}\ndiff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c\nindex 6ea7089a3f..68d7382806 100644\n--- a/drivers/net/bnxt/bnxt_hwrm.c\n+++ b/drivers/net/bnxt/bnxt_hwrm.c\n@@ -72,13 +72,13 @@ const char *media_type[] = { \"Unknown\", \"Twisted Pair\",\n \t\"Direct Attached Copper\", \"Fiber\"\n };\n \n-#define MAX_MEDIA_TYPE (sizeof(media_type) / sizeof(const char *))\n+#define MAX_MEDIA_TYPE RTE_DIM(media_type)\n \n const char *link_status_str[] = { \"Down. No link or cable detected.\",\n \t\"Down. No link, but a cable has been detected.\", \"Up.\",\n };\n \n-#define MAX_LINK_STR (sizeof(link_status_str) / sizeof(const char *))\n+#define MAX_LINK_STR RTE_DIM(link_status_str)\n \n const char *fec_mode[] = {\n \t\"No active FEC\",\n@@ -90,13 +90,13 @@ const char *fec_mode[] = {\n \t\"FEC RS(272,257)\"\n };\n \n-#define MAX_FEC_MODE (sizeof(fec_mode) / sizeof(const char *))\n+#define MAX_FEC_MODE RTE_DIM(fec_mode)\n \n const char *signal_mode[] = {\n \t\"NRZ\", \"PAM4\", \"PAM4_112\"\n };\n \n-#define MAX_SIG_MODE (sizeof(signal_mode) / sizeof(const char *))\n+#define MAX_SIG_MODE RTE_DIM(signal_mode)\n \n /* multi-purpose multi-key table container.\n  * Add a unique entry for a new PHY attribs as per HW CAS.\n@@ -226,7 +226,7 @@ struct link_speeds2_tbl {\n \t},\n };\n \n-#define BNXT_SPEEDS2_TBL_SZ (sizeof(link_speeds2_tbl) / sizeof(*link_speeds2_tbl))\n+#define BNXT_SPEEDS2_TBL_SZ RTE_DIM(link_speeds2_tbl)\n \n /* In hwrm_phy_qcfg reports trained up speeds in link_speed(offset:0x8[31:16]) */\n struct link_speeds_tbl {\n@@ -269,7 +269,7 @@ struct link_speeds_tbl {\n \t},\n };\n \n-#define BNXT_SPEEDS_TBL_SZ (sizeof(link_speeds_tbl) / sizeof(*link_speeds_tbl))\n+#define BNXT_SPEEDS_TBL_SZ RTE_DIM(link_speeds_tbl)\n \n static const char *bnxt_get_xcvr_type(uint32_t xcvr_identifier_type_tx_lpi_timer)\n {\ndiff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c\nindex df5fbb7823..59d7793787 100644\n--- a/drivers/net/e1000/em_rxtx.c\n+++ b/drivers/net/e1000/em_rxtx.c\n@@ -1666,8 +1666,7 @@ em_rctl_bsize(__rte_unused enum e1000_mac_type hwtyp, uint32_t *bufsz)\n \t * ***************************************************************\n \t */\n \n-\tfor (i = 0; i != sizeof(bufsz_to_rctl) / sizeof(bufsz_to_rctl[0]);\n-\t\t\ti++) {\n+\tfor (i = 0; i != RTE_DIM(bufsz_to_rctl); i++) {\n \t\tif (rctl_bsize >= bufsz_to_rctl[i].bufsz) {\n \t\t\t*bufsz = bufsz_to_rctl[i].bufsz;\n \t\t\treturn bufsz_to_rctl[i].rctl;\ndiff --git a/drivers/net/iavf/iavf_ipsec_crypto.c b/drivers/net/iavf/iavf_ipsec_crypto.c\nindex 6fd45ff45f..d3ce666ef0 100644\n--- a/drivers/net/iavf/iavf_ipsec_crypto.c\n+++ b/drivers/net/iavf/iavf_ipsec_crypto.c\n@@ -1483,8 +1483,7 @@ iavf_ipsec_crypto_capabilities_get(void *device)\n \t * crypto capabilities, except for last element of the array which is\n \t * the null termination\n \t */\n-\tfor (i = 0; i < ((sizeof(iavf_security_capabilities) /\n-\t\t\tsizeof(iavf_security_capabilities[0])) - 1); i++) {\n+\tfor (i = 0; i < (RTE_DIM(iavf_security_capabilities) - 1); i++) {\n \t\tiavf_security_capabilities[i].crypto_capabilities =\n \t\t\tiavf_sctx->crypto_capabilities;\n \t}\ndiff --git a/drivers/net/igc/igc_ethdev.c b/drivers/net/igc/igc_ethdev.c\nindex 87d7f7caa0..28682c42ae 100644\n--- a/drivers/net/igc/igc_ethdev.c\n+++ b/drivers/net/igc/igc_ethdev.c\n@@ -188,8 +188,7 @@ static const struct rte_igc_xstats_name_off rte_igc_stats_strings[] = {\n \t\toffsetof(struct igc_hw_stats, icrxdmtc)},\n };\n \n-#define IGC_NB_XSTATS (sizeof(rte_igc_stats_strings) / \\\n-\t\tsizeof(rte_igc_stats_strings[0]))\n+#define IGC_NB_XSTATS RTE_DIM(rte_igc_stats_strings)\n \n static int eth_igc_configure(struct rte_eth_dev *dev);\n static int eth_igc_link_update(struct rte_eth_dev *dev, int wait_to_complete);\ndiff --git a/drivers/net/ipn3ke/ipn3ke_tm.c b/drivers/net/ipn3ke/ipn3ke_tm.c\nindex 0260227900..54687ce637 100644\n--- a/drivers/net/ipn3ke/ipn3ke_tm.c\n+++ b/drivers/net/ipn3ke/ipn3ke_tm.c\n@@ -67,8 +67,7 @@ struct ipn3ke_tm_shaper_params_range_type ipn3ke_tm_shaper_params_rang[] = {\n \t{512,    1023,    15,    32768,    67108864,    134086656},\n };\n \n-#define IPN3KE_TM_SHAPER_RANGE_NUM (sizeof(ipn3ke_tm_shaper_params_rang) / \\\n-\tsizeof(struct ipn3ke_tm_shaper_params_range_type))\n+#define IPN3KE_TM_SHAPER_RANGE_NUM RTE_DIM(ipn3ke_tm_shaper_params_rang)\n \n #define IPN3KE_TM_SHAPER_COMMITTED_RATE_MAX \\\n \t(ipn3ke_tm_shaper_params_rang[IPN3KE_TM_SHAPER_RANGE_NUM - 1].high)\ndiff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c\nindex 4cd07a0030..f10b9647fa 100644\n--- a/drivers/net/ngbe/ngbe_ethdev.c\n+++ b/drivers/net/ngbe/ngbe_ethdev.c\n@@ -238,8 +238,7 @@ static const struct rte_ngbe_xstats_name_off rte_ngbe_stats_strings[] = {\n \tHW_XSTAT_NAME(rx_xoff_packets, \"rx_flow_control_xoff_packets\"),\n };\n \n-#define NGBE_NB_HW_STATS (sizeof(rte_ngbe_stats_strings) / \\\n-\t\t\t   sizeof(rte_ngbe_stats_strings[0]))\n+#define NGBE_NB_HW_STATS RTE_DIM(rte_ngbe_stats_strings)\n \n /* Per-queue statistics */\n #define QP_XSTAT(m) {#m, offsetof(struct ngbe_hw_stats, qp[0].m)}\n@@ -251,8 +250,7 @@ static const struct rte_ngbe_xstats_name_off rte_ngbe_qp_strings[] = {\n \tQP_XSTAT(rx_qp_mc_packets),\n };\n \n-#define NGBE_NB_QP_STATS (sizeof(rte_ngbe_qp_strings) / \\\n-\t\t\t   sizeof(rte_ngbe_qp_strings[0]))\n+#define NGBE_NB_QP_STATS RTE_DIM(rte_ngbe_qp_strings)\n \n static inline int32_t\n ngbe_pf_reset_hw(struct ngbe_hw *hw)\ndiff --git a/drivers/net/octeontx/octeontx_stats.h b/drivers/net/octeontx/octeontx_stats.h\nindex 73ef5e93bb..746205bb85 100644\n--- a/drivers/net/octeontx/octeontx_stats.h\n+++ b/drivers/net/octeontx/octeontx_stats.h\n@@ -36,6 +36,5 @@ struct octeontx_xstats octeontx_bgx_xstats[] = {\n \tBGX_XSTAT(tx_pause_packets),\n };\n \n-#define NUM_BGX_XSTAT \\\n-\t(sizeof(octeontx_bgx_xstats) / sizeof(struct octeontx_xstats))\n+#define NUM_BGX_XSTAT RTE_DIM(octeontx_bgx_xstats)\n #endif /* __OCTEONTX_STATS_H__ */\ndiff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c\nindex b75e8898e2..fbf261bd0b 100644\n--- a/drivers/net/txgbe/txgbe_ethdev.c\n+++ b/drivers/net/txgbe/txgbe_ethdev.c\n@@ -269,8 +269,7 @@ static const struct rte_txgbe_xstats_name_off rte_txgbe_stats_strings[] = {\n \tHW_XSTAT_NAME(rx_xoff_packets, \"rx_flow_control_xoff_packets\"),\n };\n \n-#define TXGBE_NB_HW_STATS (sizeof(rte_txgbe_stats_strings) / \\\n-\t\t\t   sizeof(rte_txgbe_stats_strings[0]))\n+#define TXGBE_NB_HW_STATS RTE_DIM(rte_txgbe_stats_strings)\n \n /* Per-priority statistics */\n #define UP_XSTAT(m) {#m, offsetof(struct txgbe_hw_stats, up[0].m)}\n@@ -290,8 +289,7 @@ static const struct rte_txgbe_xstats_name_off rte_txgbe_up_strings[] = {\n \tUP_XSTAT(tx_up_xon2off_packets),\n };\n \n-#define TXGBE_NB_UP_STATS (sizeof(rte_txgbe_up_strings) / \\\n-\t\t\t   sizeof(rte_txgbe_up_strings[0]))\n+#define TXGBE_NB_UP_STATS RTE_DIM(rte_txgbe_up_strings)\n \n /* Per-queue statistics */\n #define QP_XSTAT(m) {#m, offsetof(struct txgbe_hw_stats, qp[0].m)}\n@@ -303,8 +301,7 @@ static const struct rte_txgbe_xstats_name_off rte_txgbe_qp_strings[] = {\n \tQP_XSTAT(rx_qp_mc_packets),\n };\n \n-#define TXGBE_NB_QP_STATS (sizeof(rte_txgbe_qp_strings) / \\\n-\t\t\t   sizeof(rte_txgbe_qp_strings[0]))\n+#define TXGBE_NB_QP_STATS RTE_DIM(rte_txgbe_qp_strings)\n \n static inline int\n txgbe_is_sfp(struct txgbe_hw *hw)\ndiff --git a/drivers/net/txgbe/txgbe_ethdev_vf.c b/drivers/net/txgbe/txgbe_ethdev_vf.c\nindex f1341fbf7e..be96519b97 100644\n--- a/drivers/net/txgbe/txgbe_ethdev_vf.c\n+++ b/drivers/net/txgbe/txgbe_ethdev_vf.c\n@@ -112,8 +112,7 @@ static const struct rte_txgbe_xstats_name_off rte_txgbevf_stats_strings[] = {\n \t\t\toffsetof(struct txgbevf_hw_stats, qp[7].vfmprc)}\n };\n \n-#define TXGBEVF_NB_XSTATS (sizeof(rte_txgbevf_stats_strings) /\t\\\n-\t\tsizeof(rte_txgbevf_stats_strings[0]))\n+#define TXGBEVF_NB_XSTATS RTE_DIM(rte_txgbevf_stats_strings)\n \n /*\n  * Negotiate mailbox API version with the PF.\n",
    "prefixes": [
        "5/5"
    ]
}