get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 87990,
    "url": "http://patches.dpdk.org/api/patches/87990/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210218181920.223463-1-lance.richardson@broadcom.com/",
    "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": "<20210218181920.223463-1-lance.richardson@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210218181920.223463-1-lance.richardson@broadcom.com",
    "date": "2021-02-18T18:19:20",
    "name": "net/bnxt: fix Rx queue count implementation",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "bb063a32eafb47237b610011f75bea63004ebc51",
    "submitter": {
        "id": 1323,
        "url": "http://patches.dpdk.org/api/people/1323/?format=api",
        "name": "Lance Richardson",
        "email": "lance.richardson@broadcom.com"
    },
    "delegate": {
        "id": 1766,
        "url": "http://patches.dpdk.org/api/users/1766/?format=api",
        "username": "ajitkhaparde",
        "first_name": "Ajit",
        "last_name": "Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20210218181920.223463-1-lance.richardson@broadcom.com/mbox/",
    "series": [
        {
            "id": 15289,
            "url": "http://patches.dpdk.org/api/series/15289/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=15289",
            "date": "2021-02-18T18:19:20",
            "name": "net/bnxt: fix Rx queue count implementation",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/15289/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/87990/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/87990/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 C6E32A054A;\n\tThu, 18 Feb 2021 19:19:33 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 40CE240040;\n\tThu, 18 Feb 2021 19:19:33 +0100 (CET)",
            "from mail-pj1-f48.google.com (mail-pj1-f48.google.com\n [209.85.216.48]) by mails.dpdk.org (Postfix) with ESMTP id 0346D4003D\n for <dev@dpdk.org>; Thu, 18 Feb 2021 19:19:31 +0100 (CET)",
            "by mail-pj1-f48.google.com with SMTP id lw17so3206025pjb.0\n for <dev@dpdk.org>; Thu, 18 Feb 2021 10:19:31 -0800 (PST)",
            "from localhost.localdomain ([192.19.231.250])\n by smtp.gmail.com with ESMTPSA id l21sm5908256pjy.31.2021.02.18.10.19.29\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 18 Feb 2021 10:19:30 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com;\n s=google;\n h=from:to:cc:subject:date:message-id:mime-version;\n bh=gKgQCITVkHCosiDHy7a2bwseF+kLwa7Dr0PL2gQSWi0=;\n b=PzPIfVKnfaqlkntrTgt2SPY2ulBoCXS0FqcuqsJfBEj1Cf7Y9PDKBlYWNXAOayYIUB\n Z4ESSV1rgGuQ9t42TItTVF2zo1yf5s6i2OFgu/hmxFYDSF2f/+dgsreQ0ysqYFkVXXmn\n 5yPAALDk+Bzw1BhMKxIotL7PtAnnnZhdOYa4U=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version;\n bh=gKgQCITVkHCosiDHy7a2bwseF+kLwa7Dr0PL2gQSWi0=;\n b=eGQgkHYdt7yEwZ8f0W5IW0ml9yPlu2ercdjfNwMUQbZEPxZneahuRv9bcHhTwB5fH1\n H3jsi/7vLxA+WCqY8NLnWymn3TXO5UfdPeBOyhidi1K7soilDjs1UA+TYWzUrUxsBNwr\n 4Tkji9xVBywk3fKDwpYRdAhcdY9XQNHxCSlOAvmMncE6X5Wgm2PCTKRsLi1l5Dv32ACm\n LAmsAScfukZ3WGnEhlixyxxrvqrcTyMCJt20KqA+kf6pIiB+mi1PPOkO1rL/L+BZlaux\n htFZDi3TQLdjRXXndNjW1HOYvyZz5YqErlLP+jLj580LffVJZBg3fsxTRT2ELpoCfkkv\n 7p2A==",
        "X-Gm-Message-State": "AOAM5329TZ+AJi5soC9H79jh+KhecxTW3xsaGzLyo5fD0C1s5aAJzPFm\n pAHyPUMaoaCJkXdYM9O6s/bFFA==",
        "X-Google-Smtp-Source": "\n ABdhPJwWN8xWaypnEahG910VHQCWHUTSnXrSmrz3pZJvUSwPe6Muj2kSIoWQyj6VFfBk4ADPqSFjUA==",
        "X-Received": "by 2002:a17:90b:180d:: with SMTP id\n lw13mr5075695pjb.94.1613672370918;\n Thu, 18 Feb 2021 10:19:30 -0800 (PST)",
        "From": "Lance Richardson <lance.richardson@broadcom.com>",
        "To": "Ajit Khaparde <ajit.khaparde@broadcom.com>,\n Somnath Kotur <somnath.kotur@broadcom.com>,\n Rahul Gupta <rahul.gupta@broadcom.com>",
        "Cc": "dev@dpdk.org,\n\tstable@dpdk.org",
        "Date": "Thu, 18 Feb 2021 13:19:20 -0500",
        "Message-Id": "<20210218181920.223463-1-lance.richardson@broadcom.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "MIME-Version": "1.0",
        "Content-Type": "multipart/signed; protocol=\"application/pkcs7-signature\";\n micalg=sha-256; boundary=\"0000000000007ac17a05bba060f5\"",
        "X-Content-Filtered-By": "Mailman/MimeDel 2.1.29",
        "Subject": "[dpdk-dev] [PATCH] net/bnxt: fix Rx queue count implementation",
        "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": "bnxt_rx_queue_count_op() incorrectly returns the number of\nfilled but unprocessed completion queue entries instead of\nthe number of filled but unprocessed received packet\ncompletions. Fix by properly accounting for the number of\ncompletion ring entries used by the various received packet\ncompletion types.\n\nFixes: 34c0ba839bae (\"net/bnxt: fix Rx queue count\")\nSigned-off-by: Lance Richardson <lance.richardson@broadcom.com>\nReviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>\nCc: stable@dpdk.org\n---\n drivers/net/bnxt/bnxt_cpr.h    |  4 ++++\n drivers/net/bnxt/bnxt_ethdev.c | 38 +++++++++++++++++++++++++++++-----\n drivers/net/bnxt/bnxt_rxr.c    |  3 +--\n drivers/net/bnxt/bnxt_rxr.h    |  4 ++++\n 4 files changed, 42 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt_cpr.h b/drivers/net/bnxt/bnxt_cpr.h\nindex d7e0d4621a..28c0a9049c 100644\n--- a/drivers/net/bnxt/bnxt_cpr.h\n+++ b/drivers/net/bnxt/bnxt_cpr.h\n@@ -26,6 +26,10 @@ struct bnxt_db_info;\n #define CMP_TYPE(cmp)\t\t\t\t\t\t\\\n \t(((struct cmpl_base *)cmp)->type & CMPL_BASE_TYPE_MASK)\n \n+/* Get completion length from completion type, in 16-byte units. */\n+#define CMP_LEN(cmp_type) (((cmp_type) & 1) + 1)\n+\n+\n #define ADV_RAW_CMP(idx, n)\t((idx) + (n))\n #define NEXT_RAW_CMP(idx)\tADV_RAW_CMP(idx, 1)\n #define RING_CMP(ring, idx)\t((idx) & (ring)->ring_mask)\ndiff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex 22c880c5c3..9824cdb6d8 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -2942,8 +2942,8 @@ static uint32_t\n bnxt_rx_queue_count_op(struct rte_eth_dev *dev, uint16_t rx_queue_id)\n {\n \tstruct bnxt *bp = (struct bnxt *)dev->data->dev_private;\n-\tuint32_t desc = 0, raw_cons = 0, cons;\n \tstruct bnxt_cp_ring_info *cpr;\n+\tuint32_t desc = 0, raw_cons;\n \tstruct bnxt_rx_queue *rxq;\n \tstruct rx_pkt_cmpl *rxcmp;\n \tint rc;\n@@ -2957,15 +2957,43 @@ bnxt_rx_queue_count_op(struct rte_eth_dev *dev, uint16_t rx_queue_id)\n \traw_cons = cpr->cp_raw_cons;\n \n \twhile (1) {\n+\t\tuint32_t agg_cnt, cons, cmpl_type;\n+\n \t\tcons = RING_CMP(cpr->cp_ring_struct, raw_cons);\n-\t\trte_prefetch0(&cpr->cp_desc_ring[cons]);\n \t\trxcmp = (struct rx_pkt_cmpl *)&cpr->cp_desc_ring[cons];\n \n-\t\tif (!CMP_VALID(rxcmp, raw_cons, cpr->cp_ring_struct)) {\n+\t\tif (!CMP_VALID(rxcmp, raw_cons, cpr->cp_ring_struct))\n \t\t\tbreak;\n-\t\t} else {\n-\t\t\traw_cons++;\n+\n+\t\tcmpl_type = CMP_TYPE(rxcmp);\n+\n+\t\tswitch (cmpl_type) {\n+\t\tcase CMPL_BASE_TYPE_RX_L2:\n+\t\tcase CMPL_BASE_TYPE_RX_L2_V2:\n+\t\t\tagg_cnt = BNXT_RX_L2_AGG_BUFS(rxcmp);\n+\t\t\traw_cons = raw_cons + CMP_LEN(cmpl_type) + agg_cnt;\n+\t\t\tdesc++;\n+\t\t\tbreak;\n+\n+\t\tcase CMPL_BASE_TYPE_RX_TPA_END:\n+\t\t\tif (BNXT_CHIP_P5(rxq->bp)) {\n+\t\t\t\tstruct rx_tpa_v2_end_cmpl_hi *p5_tpa_end;\n+\n+\t\t\t\tp5_tpa_end = (void *)rxcmp;\n+\t\t\t\tagg_cnt = BNXT_TPA_END_AGG_BUFS_TH(p5_tpa_end);\n+\t\t\t} else {\n+\t\t\t\tstruct rx_tpa_end_cmpl *tpa_end;\n+\n+\t\t\t\ttpa_end = (void *)rxcmp;\n+\t\t\t\tagg_cnt = BNXT_TPA_END_AGG_BUFS(tpa_end);\n+\t\t\t}\n+\n+\t\t\traw_cons = raw_cons + CMP_LEN(cmpl_type) + agg_cnt;\n \t\t\tdesc++;\n+\t\t\tbreak;\n+\n+\t\tdefault:\n+\t\t\traw_cons += CMP_LEN(cmpl_type);\n \t\t}\n \t}\n \ndiff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c\nindex 4674f7cea2..e8f174fc57 100644\n--- a/drivers/net/bnxt/bnxt_rxr.c\n+++ b/drivers/net/bnxt/bnxt_rxr.c\n@@ -827,8 +827,7 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,\n \t\tgoto next_rx;\n \t}\n \n-\tagg_buf = (rxcmp->agg_bufs_v1 & RX_PKT_CMPL_AGG_BUFS_MASK)\n-\t\t\t>> RX_PKT_CMPL_AGG_BUFS_SFT;\n+\tagg_buf = BNXT_RX_L2_AGG_BUFS(rxcmp);\n \tif (agg_buf && !bnxt_agg_bufs_valid(cpr, agg_buf, tmp_raw_cons))\n \t\treturn -EBUSY;\n \ndiff --git a/drivers/net/bnxt/bnxt_rxr.h b/drivers/net/bnxt/bnxt_rxr.h\nindex 0e31b37cad..06d10848da 100644\n--- a/drivers/net/bnxt/bnxt_rxr.h\n+++ b/drivers/net/bnxt/bnxt_rxr.h\n@@ -37,6 +37,10 @@ static inline uint16_t bnxt_tpa_start_agg_id(struct bnxt *bp,\n #define BNXT_TPA_END_AGG_ID_TH(cmp) \\\n \trte_le_to_cpu_16((cmp)->agg_id)\n \n+#define BNXT_RX_L2_AGG_BUFS(cmp) \\\n+\t(((cmp)->agg_bufs_v1 & RX_PKT_CMPL_AGG_BUFS_MASK) >> \\\n+\t\tRX_PKT_CMPL_AGG_BUFS_SFT)\n+\n #define BNXT_RX_POST_THRESH\t32\n \n /* Number of descriptors to process per inner loop in vector mode. */\n",
    "prefixes": []
}