get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 132345,
    "url": "http://patches.dpdk.org/api/patches/132345/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231005205217.1753187-1-ed.czeck@atomicrules.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": "<20231005205217.1753187-1-ed.czeck@atomicrules.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231005205217.1753187-1-ed.czeck@atomicrules.com",
    "date": "2023-10-05T20:52:15",
    "name": "[1/3] net/ark: support for single function with multiple port",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "df1bbd51ec641e896472d16ce887f6742ec5802b",
    "submitter": {
        "id": 699,
        "url": "http://patches.dpdk.org/api/people/699/?format=api",
        "name": "Ed Czeck",
        "email": "ed.czeck@atomicrules.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231005205217.1753187-1-ed.czeck@atomicrules.com/mbox/",
    "series": [
        {
            "id": 29745,
            "url": "http://patches.dpdk.org/api/series/29745/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=29745",
            "date": "2023-10-05T20:52:15",
            "name": "[1/3] net/ark: support for single function with multiple port",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/29745/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/132345/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/132345/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 B90F0426C6;\n\tThu,  5 Oct 2023 22:52:29 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 100C0402DB;\n\tThu,  5 Oct 2023 22:52:29 +0200 (CEST)",
            "from mail-qk1-f181.google.com (mail-qk1-f181.google.com\n [209.85.222.181])\n by mails.dpdk.org (Postfix) with ESMTP id 0B7B74014F\n for <dev@dpdk.org>; Thu,  5 Oct 2023 22:52:28 +0200 (CEST)",
            "by mail-qk1-f181.google.com with SMTP id\n af79cd13be357-7757f2d3956so203941185a.0\n for <dev@dpdk.org>; Thu, 05 Oct 2023 13:52:27 -0700 (PDT)",
            "from z690.czeck.local (pool-173-48-111-149.bstnma.fios.verizon.net.\n [173.48.111.149]) by smtp.gmail.com with ESMTPSA id\n l25-20020ac84cd9000000b004181c32dcc3sm748021qtv.16.2023.10.05.13.52.25\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 05 Oct 2023 13:52:26 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=atomicrules-com.20230601.gappssmtp.com; s=20230601; t=1696539147;\n x=1697143947; 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=vjK8hjdCGsCKZzwsp6RU11piDZab/243o0NTMR+6J88=;\n b=m73tSBQpNPsdeWhZHOd/8K+I1fxC2deieUdvjEKejbTon7e44qirj5cnmY/mVRb0t3\n DqDkx40j7nEUIILg3eyqiysmnml4zgBrf9JQAaI0DC0hzYE4Go84Aqhe9UO7tvTEffoV\n 5hST43sYRGU//psi4gxNzBPL0altzaGzvQINc2J6sqqOCOoZJbt8Bky0UoyFhFPCushZ\n jrOLJuFvOidaMBlhyYyDGHkdnq6ghWBRcKXIKjV6U91TRg+VW9tKBitZ+vqtpdVc/qTU\n PcHISe9iUJk+HshzKm1GkCSmDAnzrJNsDRgZNfdY0iJeIXuBcZujAEwVedpqoqUKJNBh\n YRSA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1696539147; x=1697143947;\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=vjK8hjdCGsCKZzwsp6RU11piDZab/243o0NTMR+6J88=;\n b=L+/ecQU5UnahobXz3KS3RLDUA8LPPD5n0ZrQnjwCqtd0vDwFnzamQiNq89ZhKKOJFh\n HZiROPJIYjJ2IFqPWEThfpGGfypOsOci1ajJVOoeX/Ob63SYOml0QTMYMR8KasjkTEqq\n 0nhai/0Bj39isWR6niz413AM/GSVQAXGua1gMwW+0HZa/G5ppvQBzQvQ8bGZSRTkVH1F\n wILpsursyQC1UUSdBsPxOfqFpJQpzVB8gUMsAO3TYomZ/POJIl9eyKTaMey//D0VNlP9\n vBtHq6bpY+8X+cuo/z8/FCk9lk+VAZQPAXvZr6BavkaXPCWM+vi1IFLli/laxaLbJzWu\n 1n0Q==",
        "X-Gm-Message-State": "AOJu0YzmAU1TLj9ZuqUI5S+7SIpvtBNG+gH5/CY3kn5QgSVjLLCB4PhW\n EuheGnQULIIxrZg0sXWNW94v5QfZXf6H9tlOnd4=",
        "X-Google-Smtp-Source": "\n AGHT+IH4iNP+Q1OPNERnbTKbEhEb1tfDwjNPl3dLX9bLjWFGKJv6g7JB6VKL5m4eDsHFqPkfuJRgog==",
        "X-Received": "by 2002:a05:620a:410b:b0:773:f6ea:1f59 with SMTP id\n j11-20020a05620a410b00b00773f6ea1f59mr3146433qko.16.1696539146894;\n Thu, 05 Oct 2023 13:52:26 -0700 (PDT)",
        "From": "Ed Czeck <ed.czeck@atomicrules.com>",
        "To": "dev@dpdk.org,\n\tferruh.yigit@amd.com",
        "Cc": "stable@dpdk.org, Shepard Siegel <shepard.siegel@atomicrules.com>,\n John Miller <john.miller@atomicrules.com>",
        "Subject": "[PATCH 1/3] net/ark: support for single function with multiple port",
        "Date": "Thu,  5 Oct 2023 16:52:15 -0400",
        "Message-Id": "<20231005205217.1753187-1-ed.czeck@atomicrules.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "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": "Support the creation of multiple ports from one ark device via\nthe use of ark pmd extension.  I.e., one device with q queue can\nseen a p ports each with q/p queues.\n\nAdd unique dev_private data for each port to manage queue assignment.\n\nThis patch repairs a latent issue uncovered during testing.\nFixes: 6799275eeea6 (\"net/ark: support virtual functions\")\nCc: stable@dpdk.org\nBackporting is not requested.\n\nSigned-off-by: Ed Czeck <ed.czeck@atomicrules.com>\n---\n drivers/net/ark/ark_ethdev.c    | 15 ++++++++++++++-\n drivers/net/ark/ark_ethdev_rx.c |  6 +++---\n drivers/net/ark/ark_ethdev_tx.c |  2 +-\n drivers/net/ark/ark_global.h    |  3 +++\n 4 files changed, 21 insertions(+), 5 deletions(-)",
    "diff": "diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c\nindex 3ddcc9b461..90d3c8abe6 100644\n--- a/drivers/net/ark/ark_ethdev.c\n+++ b/drivers/net/ark/ark_ethdev.c\n@@ -300,6 +300,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)\n \tint ret;\n \tint port_count = 1;\n \tint p;\n+\tuint16_t num_queues;\n \tbool rqpacing = false;\n \n \tark->eth_dev = dev;\n@@ -427,6 +428,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)\n \t\t\tark->user_ext.dev_get_port_count(dev,\n \t\t\t\t ark->user_data[dev->data->port_id]);\n \tark->num_ports = port_count;\n+\tnum_queues = ark_api_num_queues_per_port(ark->mpurx.v, port_count);\n \n \tfor (p = 0; p < port_count; p++) {\n \t\tstruct rte_eth_dev *eth_dev;\n@@ -452,7 +454,18 @@ eth_ark_dev_init(struct rte_eth_dev *dev)\n \t\t}\n \n \t\teth_dev->device = &pci_dev->device;\n-\t\teth_dev->data->dev_private = ark;\n+\t\t/* Device requires new dev_private data */\n+\t\teth_dev->data->dev_private =\n+\t\t\trte_zmalloc_socket(name,\n+\t\t\t\t\t   sizeof(struct ark_adapter),\n+\t\t\t\t\t   RTE_CACHE_LINE_SIZE,\n+\t\t\t\t\t   rte_socket_id());\n+\n+\t\tmemcpy(eth_dev->data->dev_private, ark,\n+\t\t       sizeof(struct ark_adapter));\n+\t\tark = eth_dev->data->dev_private;\n+\t\tark->qbase = p * num_queues;\n+\n \t\teth_dev->dev_ops = ark->eth_dev->dev_ops;\n \t\teth_dev->tx_pkt_burst = ark->eth_dev->tx_pkt_burst;\n \t\teth_dev->rx_pkt_burst = ark->eth_dev->rx_pkt_burst;\ndiff --git a/drivers/net/ark/ark_ethdev_rx.c b/drivers/net/ark/ark_ethdev_rx.c\nindex cbc0416bc2..38bc69dff4 100644\n--- a/drivers/net/ark/ark_ethdev_rx.c\n+++ b/drivers/net/ark/ark_ethdev_rx.c\n@@ -68,7 +68,7 @@ struct ark_rx_queue {\n static int\n eth_ark_rx_hw_setup(struct rte_eth_dev *dev,\n \t\t    struct ark_rx_queue *queue,\n-\t\t    uint16_t rx_queue_id __rte_unused, uint16_t rx_queue_idx)\n+\t\t    uint16_t rx_queue_idx)\n {\n \trte_iova_t queue_base;\n \trte_iova_t phys_addr_q_base;\n@@ -124,7 +124,7 @@ eth_ark_dev_rx_queue_setup(struct rte_eth_dev *dev,\n \tuint32_t i;\n \tint status;\n \n-\tint qidx = queue_idx;\n+\tint qidx = ark->qbase + queue_idx;\n \n \t/* We may already be setup, free memory prior to re-allocation */\n \tif (dev->data->rx_queues[queue_idx] != NULL) {\n@@ -215,7 +215,7 @@ eth_ark_dev_rx_queue_setup(struct rte_eth_dev *dev,\n \t}\n \t/* MPU Setup */\n \tif (status == 0)\n-\t\tstatus = eth_ark_rx_hw_setup(dev, queue, qidx, queue_idx);\n+\t\tstatus = eth_ark_rx_hw_setup(dev, queue, queue_idx);\n \n \tif (unlikely(status != 0)) {\n \t\tstruct rte_mbuf **mbuf;\ndiff --git a/drivers/net/ark/ark_ethdev_tx.c b/drivers/net/ark/ark_ethdev_tx.c\nindex 5940a592a2..4792754f19 100644\n--- a/drivers/net/ark/ark_ethdev_tx.c\n+++ b/drivers/net/ark/ark_ethdev_tx.c\n@@ -229,7 +229,7 @@ eth_ark_tx_queue_setup(struct rte_eth_dev *dev,\n \tstruct ark_tx_queue *queue;\n \tint status;\n \n-\tint qidx = queue_idx;\n+\tint qidx = ark->qbase + queue_idx;\n \n \tif (!rte_is_power_of_2(nb_desc)) {\n \t\tARK_PMD_LOG(ERR,\ndiff --git a/drivers/net/ark/ark_global.h b/drivers/net/ark/ark_global.h\nindex 71d0b53e03..2f198edfe4 100644\n--- a/drivers/net/ark/ark_global.h\n+++ b/drivers/net/ark/ark_global.h\n@@ -112,7 +112,10 @@ struct ark_adapter {\n \tark_pkt_chkr_t pc;\n \tark_pkt_dir_t pd;\n \n+\t/* For single function, multiple ports */\n \tint num_ports;\n+\tuint16_t qbase;\n+\n \tbool isvf;\n \n \t/* Packet generator/checker args */\n",
    "prefixes": [
        "1/3"
    ]
}