get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 139530,
    "url": "http://patches.dpdk.org/api/patches/139530/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20240419052349.1294696-6-chaoyong.he@corigine.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": "<20240419052349.1294696-6-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240419052349.1294696-6-chaoyong.he@corigine.com",
    "date": "2024-04-19T05:23:46",
    "name": "[v2,5/8] net/nfp: move device info data field",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "f1e12d96c9fe87d0cbf53c5c22abb243a22afb0d",
    "submitter": {
        "id": 2554,
        "url": "http://patches.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.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/20240419052349.1294696-6-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 31788,
            "url": "http://patches.dpdk.org/api/series/31788/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=31788",
            "date": "2024-04-19T05:23:42",
            "name": "[v2,1/8] net/nfp: fix resource leak of secondary process",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/31788/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/139530/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/139530/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 6EEE443EAA;\n\tFri, 19 Apr 2024 07:24:57 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id DABEF406A2;\n\tFri, 19 Apr 2024 07:24:28 +0200 (CEST)",
            "from NAM12-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam12on2136.outbound.protection.outlook.com [40.107.237.136])\n by mails.dpdk.org (Postfix) with ESMTP id D895F40697\n for <dev@dpdk.org>; Fri, 19 Apr 2024 07:24:26 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by MW3PR13MB3961.namprd13.prod.outlook.com (2603:10b6:303:2c::18)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.42; Fri, 19 Apr\n 2024 05:24:25 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::ec12:7411:559a:850e]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::ec12:7411:559a:850e%5]) with mapi id 15.20.7472.042; Fri, 19 Apr 2024\n 05:24:25 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=jIdwjsTxl5jGNJvRBnbVORf2g2+9yCpE37hOsgSxzOUzcAo1HQ3sSs8Ba9GZZOTEuRSjvHW3xRdZIJ5xFRoF+DbpjsI+8e1DbsCKWtWHbaT74BRu3v0yffOiyzXszcyVhbDvqovQzRvIRYN46NdO68h3BoPSGFHHmqvFEGJZJ5stFa3Qsc5R6QXHbD5RIuDpMB+e88smY6KWrpV9DhuQFqcafJ1HS7NxssziQmi5xI/lkU6rLxpzlKzM1OnUeb74istqfYg6bP8eVpqtE8k8lC1gs9iGEZY4Ze9VmWPykSrD9f+DiJFTLbX31nkOmxWRhLRdZTgkNbbudJ7b9ai93g==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=ophcMQbguoqAGJ52WniBCOaFAuLHiPiGBqNoYI+eD4A=;\n b=MD5qdzc4UHlKj05HPJhLULiW74jSJJFgTfzWI6fs8C13KL07mybBTzlumIQJCc7j1oK8sjLvIT++CqsPFcjX+9DBTZ6ettlto7XOkSuv8bYefDI8zgfeaF49hBBrdWuoBd1+a7ViFitjQuqaQGsrHIXqEFGkDeGgqIoEAV40wkRwnfLlV1yaYjVXJC6MnQx5TUC57fepNbdda/bRAvINYQEMiY6CxWUgcb/mWs/UXyhm+CjC/g1WL5lh3xBmTbVgQfc6CpcfIUWNU7jaEu6r3cank5Zjotov7lYyXZBI/jz483TEiAP0eVL3wnEvWQEVAZQgcQz2y/wSRhNWqHh8Bw==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com;\n dkim=pass header.d=corigine.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=ophcMQbguoqAGJ52WniBCOaFAuLHiPiGBqNoYI+eD4A=;\n b=Kgg7QKP+5olgLHivVQLUTqNvgNYA1wrhKdxYs2J2W3TZjV8Gjaidca/wDNq92nWpXhzxfJSdSbzMpvt8lRmos99jGWppOBJiLUyFL20/HX/AXg8eYO2a4ynE1yT7ObAUOonBdGGGoPxRermjlkT4TLQ26Oa7k7KVVRnAywn2vxM=",
        "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=corigine.com;",
        "From": "Chaoyong He <chaoyong.he@corigine.com>",
        "To": "dev@dpdk.org",
        "Cc": "oss-drivers@corigine.com, Chaoyong He <chaoyong.he@corigine.com>,\n Long Wu <long.wu@corigine.com>, Peng Zhang <peng.zhang@corigine.com>",
        "Subject": "[PATCH v2 5/8] net/nfp: move device info data field",
        "Date": "Fri, 19 Apr 2024 13:23:46 +0800",
        "Message-Id": "<20240419052349.1294696-6-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20240419052349.1294696-1-chaoyong.he@corigine.com>",
        "References": "<20240419031226.1191069-1-chaoyong.he@corigine.com>\n <20240419052349.1294696-1-chaoyong.he@corigine.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "SG2PR03CA0087.apcprd03.prod.outlook.com\n (2603:1096:4:7c::15) To SJ0PR13MB5545.namprd13.prod.outlook.com\n (2603:10b6:a03:424::5)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "SJ0PR13MB5545:EE_|MW3PR13MB3961:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "1915d7e1-2bc2-4f13-2c05-08dc6030f9bd",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n hCv/S19xhHzDgMTmV0shiysDHPLsjPHV3Fct60UcJGz+KVZxpz6O25BtnmfRGukfaounK2Q/Enc8DHow6+9E48Et1X7cpfBAx0YEFclhriruI56Ps4YvOYxZO4MTeYp29gx4FwxlqeOdBIJ7XD2e4BrilAw2XkB/wGIaY0Y9VxxJCUUp5qa9CICNoKW55kFwNFKWHe33VDpoix0XjUCVCrFKD2sftEMapoJCkwMmYSjJEltrEJsJ9Z38SO4B7YOCcfFW+EQha9FvsSY1Q5E4ZVTFerJfAHT7UCC5mUyixXLnIwhiwijnO8IVqtq5CBMvvHC/+SLN3q2k3oytrYCDylRahSre2CjjfmViZc9PPGniJLV5Tu+4ECnI4q2faRZTgEROB1XNmaMOquPYQ1L4f5vyDlfetfFAkjeOI4RBkSlJUt1JqtWI/+2Uw5ZG7bMfDyuBv3zlywU3GRfnShY9hGmrhju2X4jtYdMLUHFSsjTg6YQoleL0h7tfbQgRRXqmwxR6qnqMZj5d6Pdxa8Gx+uJmIuldWa6oqsA+oySAn+cUP5eLnJlt0uZx/AzC0HuG9eLLLk9DTAet+05xakdo7fpBh/EYHWt2DahuVL+58Lf2d21S3c3BkH5XcV6v8sOrxfTuDp/Eh6aGBDyJqttwvrLMdhxNS3YeGrNS6bN+lZa/qtX3Lwp6gvQELwoiK15u43n4ZRyPDFPIOXI91OuUdfjOC5b5Ttf4lB8A1IcM1S/kpZ5fCE+B4c5BLnYg2k7EiF9ih5YiA8stavDge8zZPRFxq2YmAxo8t8i9EN2WX3H9oJ9OEyXxi5AEYO0FTKUN1YP+hOa49/wW2ztqwcviD5Xmi/cgeAybLAk0KiS3AJ6aiqU/1KFh0hDj1bG5rdJKndITmktS5i+GEOm5Y+VfmfUjYhhmDKfsajogirvqFx1nkph6qBtFFLjXXllu+Qx3euholOhBikHhRldxh+Lcgz06B3sWX0ctKJ9GL0PlRF79M0t4r6WWlwH65BQPXqP1Svjqtt6RhpnkhdeBxtxzO6kI3CAWbxArl4G1m0cgMJG3OfKNTrEikjbZmPch2ZwB3aqbQPk37FyB9wyTnnPriqSaf8LPOiVSEHjVxEi0CGYn0wH+sfA9CFtJ70Z2oi71F0OTUaEtFevQfEpCKeXVB0CjgMWhH8aLNW4wN+nntw0mOdnvT9tXyfJq6m+7W26hdkTR0v2/azxoW/J+sQvWG/fIegC+r6KASq1N2i/udtIOzo5XtLrS0pc5nTlcfaWQXRTs1IroeYG97QYc5XmOMvwtAxjVc/r+ik9eeDskwpfTd1d8dBcDf9Kkimdr8Df09HtZEGE2Qy2AYjmTOSSLJA==",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230031)(52116005)(1800799015)(366007)(376005)(38350700005); DIR:OUT;\n SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n dW9LXv5eFW/vWi0irxKwS9EBwSbQMScNRTIhcECqIV8Res494THgglikBmcU4eqSf0QBBIyfRIQzFu4TUOygd59rkN2Y+DHhC+4i7FzfUYIYuZbOEa0VrJdczmv69mpcWkpEdq+CFsGYTAoRk9aqtB+jbjAOx2rkRuVPN21yO3D6ZV3WYHFla3lE0ckim0weh6y2G9PPklgc6aOlYskxtz+QFO+7Qie/RCQIFh0qjvuc6PACm8ypmPu9Zn1D3ex31XAM27ooQvrLLVtsfvStdTt4E79k5zzE1U7+R8dNvTozG9nWIhOuyr+3dfkZB5bvLn2Tp2BjPmRqYic5Pi5PBGmXZFudMa3ut+d3BpEIL6+Dhg9j3p/AAkFSUoh7i6ZKKV9tfX9z+fwZOoCzD1MTc1geFlvoN0cjGYmkchkCj6Z5sSZjKJPzAAlmp/FeVojb5KX9rw9KXlncQ0R4e1SiN8MAJFd+xKNHwgE2a9PrgSULX+DqJv1GQcH6Z4lkMFIu40eUCuA6/ro3Yrs9hmHBaGIy1oVbU/BzMqVNtuSeaioU1ek19I36M70cI6dqsVPpTpVH9VoMeNSE0Q2VqucK24EwgHQ9d/8Y6R7FndLDVUMKvH7ScVyAi8c8vQZAljDK0kKQ+LqooAgCcMAeoUUVNwQ4vcbPWoRQKtP5+HtSkQMtpwo3sivF3g1M4guPZukN5DvOfcF6mZtKZ2NhTv7Xu5CaYoIlRIdRqCqtdhuz/HaxQjmbhpH0iR4J6ZKAKL6zYEcev27G64dvCFvBj89VCt3rrmLvfchb5jV7u/Rz6SdTjQQZWrOc5lam8sDqTFIIQJX0Q+WTAvtXWaaIAKAJcrO7DNnMS91gNOH7PSAaZQFIaGIemCujWxEPaMc41PoPPJbQ/b5Aw6CC+lqz4zyGcPi68UGVQ7tF30wM9CjTyu7wt+hmpKgh7K7NOcN5vnH69JJ7VR9AJlz+gdtllYj6sckrpgfYVq/SBqFnNqmsoKQoivJfKPqCjox+hCcfrpsxBHBX7QDNRaLONs8vgoEIzFZWsyKev3A+CDDxR0ax/xwalgZqQHWSLhoHrO8Ji3R8Yt7wQPJYEmSW+QeIPM1kSxNh9/sl3Tfpc9OjWTKe718ciL8JXuDxZEB+rwrSAEEqprMzHZ3XuXNMB/psWIp+U6TJyKyLz2dCDtuN2g3xx1AkIFQeq6yxEpZduA/4ddC5Wc2HMR6zKijduxonypcH25EAIO/KvNnyo6bGijFW0pk361hWfQZdGu4qBsiydcDvnRrfciqj9VjPwFLZ6fcvpi3cqA9/sRYnIZ7nLl/3X5Cur6v+N1452f71yplfn4Ln7NFHzDLI2iFb1mi8yu0cRxPYdaa5UBEOP2zGTUZpqBMgHon1jsBjVNuH/MEHe/XB9I2HwEeObAKDZ9YGSc3hUFYN/A/QLcoUrNV0ubEwq/RtBGTszimlRJreIBqQ2JRJWeUaRaSRrzkg89GbzA5LOt25fhbdKekTSenYxD9bUtmyFRCrYZAPIHQTK9cNfKf/SnYHrR8SvsvCk7EfKWBFh8hGkODeelwaa+VfDhv8UReZTBBfoCTpZw+5uuVBR/H0idScHUvtQjqaYAE9XNOLFQ==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 1915d7e1-2bc2-4f13-2c05-08dc6030f9bd",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "19 Apr 2024 05:24:25.4539 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "fe128f2c-073b-4c20-818e-7246a585940c",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n QdEb3dPNx3EtCdQ1NBhieJWAgkYtLYL2E2MS/dpxJMNq29EPWUBzvFLaXxF7qHxZFSP1kSQ3shvYp+ehg0fdfDfLYi5DAJDdEsHteUg4Gf8=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MW3PR13MB3961",
        "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": "Move 'dev_info' data field from process shared data structure into\nprocess private data structure.\n\nSigned-off-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Long Wu <long.wu@corigine.com>\nReviewed-by: Peng Zhang <peng.zhang@corigine.com>\n---\n drivers/net/nfp/flower/nfp_flower.c |  9 +++------\n drivers/net/nfp/flower/nfp_flower.h |  3 +--\n drivers/net/nfp/nfd3/nfp_nfd3_dp.c  |  4 +++-\n drivers/net/nfp/nfdk/nfp_nfdk_dp.c  |  4 +++-\n drivers/net/nfp/nfp_ethdev.c        | 10 +++++-----\n drivers/net/nfp/nfp_ethdev_vf.c     | 18 +++++++++++++++++-\n drivers/net/nfp/nfp_net_common.c    | 15 ++++++++-------\n drivers/net/nfp/nfp_net_common.h    |  9 +++++----\n drivers/net/nfp/nfp_rxtx.c          |  4 +++-\n 9 files changed, 48 insertions(+), 28 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c\nindex 8dd9e23c78..80874e23de 100644\n--- a/drivers/net/nfp/flower/nfp_flower.c\n+++ b/drivers/net/nfp/flower/nfp_flower.c\n@@ -372,7 +372,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_app_fw_flower *app_fw_flower,\n \t\t */\n \t\ttz = rte_eth_dma_zone_reserve(eth_dev, ctrl_rxring_name, i,\n \t\t\t\tsizeof(struct nfp_net_rx_desc) *\n-\t\t\t\thw->dev_info->max_qc_size,\n+\t\t\t\thw_priv->dev_info->max_qc_size,\n \t\t\t\tNFP_MEMZONE_ALIGN, numa_node);\n \t\tif (tz == NULL) {\n \t\t\tPMD_DRV_LOG(ERR, \"Error allocating rx dma\");\n@@ -430,7 +430,7 @@ nfp_flower_init_ctrl_vnic(struct nfp_app_fw_flower *app_fw_flower,\n \t\t */\n \t\ttz = rte_eth_dma_zone_reserve(eth_dev, ctrl_txring_name, i,\n \t\t\t\tsizeof(struct nfp_net_nfd3_tx_desc) *\n-\t\t\t\thw->dev_info->max_qc_size,\n+\t\t\t\thw_priv->dev_info->max_qc_size,\n \t\t\t\tNFP_MEMZONE_ALIGN, numa_node);\n \t\tif (tz == NULL) {\n \t\t\tPMD_DRV_LOG(ERR, \"Error allocating tx dma\");\n@@ -639,8 +639,7 @@ nfp_flower_nfd_func_register(struct nfp_app_fw_flower *app_fw_flower)\n }\n \n int\n-nfp_init_app_fw_flower(struct nfp_net_hw_priv *hw_priv,\n-\t\tconst struct nfp_dev_info *dev_info)\n+nfp_init_app_fw_flower(struct nfp_net_hw_priv *hw_priv)\n {\n \tint ret;\n \tint err;\n@@ -709,7 +708,6 @@ nfp_init_app_fw_flower(struct nfp_net_hw_priv *hw_priv,\n \tapp_fw_flower->pf_hw = pf_hw;\n \tpf_hw->super.ctrl_bar = pf_dev->ctrl_bar;\n \tpf_hw->cpp = pf_dev->cpp;\n-\tpf_hw->dev_info = dev_info;\n \n \tret = nfp_flower_init_vnic_common(hw_priv, pf_hw, \"pf_vnic\");\n \tif (ret != 0) {\n@@ -734,7 +732,6 @@ nfp_init_app_fw_flower(struct nfp_net_hw_priv *hw_priv,\n \n \t/* Now populate the ctrl vNIC */\n \tctrl_hw->cpp = pf_dev->cpp;\n-\tctrl_hw->dev_info = dev_info;\n \n \tret = nfp_flower_init_ctrl_vnic(app_fw_flower, hw_priv);\n \tif (ret != 0) {\ndiff --git a/drivers/net/nfp/flower/nfp_flower.h b/drivers/net/nfp/flower/nfp_flower.h\nindex 5cc29dcc87..5c2f338a20 100644\n--- a/drivers/net/nfp/flower/nfp_flower.h\n+++ b/drivers/net/nfp/flower/nfp_flower.h\n@@ -104,8 +104,7 @@ nfp_flower_support_decap_v2(const struct nfp_app_fw_flower *app_fw_flower)\n \treturn app_fw_flower->ext_features & NFP_FL_FEATS_DECAP_V2;\n }\n \n-int nfp_init_app_fw_flower(struct nfp_net_hw_priv *hw_priv,\n-\t\tconst struct nfp_dev_info *dev_info);\n+int nfp_init_app_fw_flower(struct nfp_net_hw_priv *hw_priv);\n void nfp_uninit_app_fw_flower(struct nfp_net_hw_priv *hw_priv);\n int nfp_secondary_init_app_fw_flower(struct nfp_net_hw_priv *hw_priv);\n bool nfp_flower_pf_dispatch_pkts(struct nfp_net_hw_priv *hw_priv,\ndiff --git a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\nindex 681a63eacd..ee96cd8e46 100644\n--- a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\n+++ b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\n@@ -385,10 +385,12 @@ nfp_net_nfd3_tx_queue_setup(struct rte_eth_dev *dev,\n \tstruct nfp_net_txq *txq;\n \tuint16_t tx_free_thresh;\n \tconst struct rte_memzone *tz;\n+\tstruct nfp_net_hw_priv *hw_priv;\n \n \thw = nfp_net_get_hw(dev);\n+\thw_priv = dev->process_private;\n \n-\tnfp_net_tx_desc_limits(hw, &min_tx_desc, &max_tx_desc);\n+\tnfp_net_tx_desc_limits(hw, hw_priv, &min_tx_desc, &max_tx_desc);\n \n \t/* Validating number of descriptors */\n \ttx_desc_sz = nb_desc * sizeof(struct nfp_net_nfd3_tx_desc);\ndiff --git a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\nindex 83eaec9c24..3ba97e23a9 100644\n--- a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\n+++ b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\n@@ -464,10 +464,12 @@ nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev,\n \tuint16_t tx_free_thresh;\n \tstruct nfp_net_txq *txq;\n \tconst struct rte_memzone *tz;\n+\tstruct nfp_net_hw_priv *hw_priv;\n \n \thw = nfp_net_get_hw(dev);\n+\thw_priv = dev->process_private;\n \n-\tnfp_net_tx_desc_limits(hw, &min_tx_desc, &max_tx_desc);\n+\tnfp_net_tx_desc_limits(hw, hw_priv, &min_tx_desc, &max_tx_desc);\n \n \t/* Validating number of descriptors */\n \ttx_desc_sz = nb_desc * sizeof(struct nfp_net_nfdk_tx_desc);\ndiff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c\nindex 58e155e92b..38fe153ab4 100644\n--- a/drivers/net/nfp/nfp_ethdev.c\n+++ b/drivers/net/nfp/nfp_ethdev.c\n@@ -1494,8 +1494,7 @@ nfp_enable_multi_pf(struct nfp_pf_dev *pf_dev)\n }\n \n static int\n-nfp_init_app_fw_nic(struct nfp_net_hw_priv *hw_priv,\n-\t\tconst struct nfp_dev_info *dev_info)\n+nfp_init_app_fw_nic(struct nfp_net_hw_priv *hw_priv)\n {\n \tuint8_t i;\n \tuint8_t id;\n@@ -1601,7 +1600,6 @@ nfp_init_app_fw_nic(struct nfp_net_hw_priv *hw_priv,\n \t\t/* Add this device to the PF's array of physical ports */\n \t\tapp_fw_nic->ports[id] = hw;\n \n-\t\thw->dev_info = dev_info;\n \t\thw->cpp = pf_dev->cpp;\n \t\thw->eth_dev = eth_dev;\n \t\thw->idx = id;\n@@ -1968,6 +1966,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev)\n \tPMD_INIT_LOG(DEBUG, \"qc_bar address: %p\", pf_dev->qc_bar);\n \n \thw_priv->pf_dev = pf_dev;\n+\thw_priv->dev_info = dev_info;\n \n \t/*\n \t * PF initialization has been done at this point. Call app specific\n@@ -1982,7 +1981,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev)\n \t\t}\n \n \t\tPMD_INIT_LOG(INFO, \"Initializing coreNIC\");\n-\t\tret = nfp_init_app_fw_nic(hw_priv, dev_info);\n+\t\tret = nfp_init_app_fw_nic(hw_priv);\n \t\tif (ret != 0) {\n \t\t\tPMD_INIT_LOG(ERR, \"Could not initialize coreNIC!\");\n \t\t\tgoto hwqueues_cleanup;\n@@ -1990,7 +1989,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev)\n \t\tbreak;\n \tcase NFP_APP_FW_FLOWER_NIC:\n \t\tPMD_INIT_LOG(INFO, \"Initializing Flower\");\n-\t\tret = nfp_init_app_fw_flower(hw_priv, dev_info);\n+\t\tret = nfp_init_app_fw_flower(hw_priv);\n \t\tif (ret != 0) {\n \t\t\tPMD_INIT_LOG(ERR, \"Could not initialize Flower!\");\n \t\t\tgoto hwqueues_cleanup;\n@@ -2187,6 +2186,7 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev)\n \tpf_dev->sync = sync;\n \n \thw_priv->pf_dev = pf_dev;\n+\thw_priv->dev_info = dev_info;\n \n \t/* Call app specific init code now */\n \tswitch (app_fw_id) {\ndiff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c\nindex 88da593190..bd3745a5c5 100644\n--- a/drivers/net/nfp/nfp_ethdev_vf.c\n+++ b/drivers/net/nfp/nfp_ethdev_vf.c\n@@ -162,14 +162,17 @@ nfp_netvf_close(struct rte_eth_dev *dev)\n {\n \tstruct nfp_net_hw *net_hw;\n \tstruct rte_pci_device *pci_dev;\n+\tstruct nfp_net_hw_priv *hw_priv;\n \n \tif (rte_eal_process_type() != RTE_PROC_PRIMARY)\n \t\treturn 0;\n \n \tnet_hw = dev->data->dev_private;\n \tpci_dev = RTE_ETH_DEV_TO_PCI(dev);\n+\thw_priv = dev->process_private;\n \n \trte_free(net_hw->eth_xstats_base);\n+\trte_free(hw_priv);\n \n \t/*\n \t * We assume that the DPDK application is stopping all the\n@@ -255,6 +258,7 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev)\n \tuint64_t tx_bar_off = 0;\n \tuint64_t rx_bar_off = 0;\n \tstruct rte_pci_device *pci_dev;\n+\tstruct nfp_net_hw_priv *hw_priv;\n \tconst struct nfp_dev_info *dev_info;\n \n \tport = eth_dev->data->port_id;\n@@ -267,7 +271,6 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev)\n \t}\n \n \tnet_hw = eth_dev->data->dev_private;\n-\tnet_hw->dev_info = dev_info;\n \thw = &net_hw->super;\n \n \thw->ctrl_bar = pci_dev->mem_resource[0].addr;\n@@ -284,6 +287,17 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev)\n \n \tnfp_netvf_ethdev_ops_mount(net_hw, eth_dev);\n \n+\thw_priv = rte_zmalloc(NULL, sizeof(*hw_priv), 0);\n+\tif (hw_priv == NULL) {\n+\t\tPMD_INIT_LOG(ERR, \"Can not alloc memory for hw priv data\");\n+\t\terr = -ENOMEM;\n+\t\tgoto hw_priv_free;\n+\t}\n+\n+\thw_priv->dev_info = dev_info;\n+\n+\teth_dev->process_private = hw_priv;\n+\n \t/* For secondary processes, the primary has done all the work */\n \tif (rte_eal_process_type() != RTE_PROC_PRIMARY)\n \t\treturn 0;\n@@ -366,6 +380,8 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev)\n \n free_xstats:\n \trte_free(net_hw->eth_xstats_base);\n+hw_priv_free:\n+\trte_free(hw_priv);\n \n \treturn err;\n }\ndiff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c\nindex 60d77b6178..8cc8b77318 100644\n--- a/drivers/net/nfp/nfp_net_common.c\n+++ b/drivers/net/nfp/nfp_net_common.c\n@@ -1144,16 +1144,17 @@ nfp_net_xstats_reset(struct rte_eth_dev *dev)\n }\n \n void\n-nfp_net_rx_desc_limits(struct nfp_net_hw *hw,\n+nfp_net_rx_desc_limits(struct nfp_net_hw_priv *hw_priv,\n \t\tuint16_t *min_rx_desc,\n \t\tuint16_t *max_rx_desc)\n {\n-\t*max_rx_desc = hw->dev_info->max_qc_size;\n-\t*min_rx_desc = hw->dev_info->min_qc_size;\n+\t*max_rx_desc = hw_priv->dev_info->max_qc_size;\n+\t*min_rx_desc = hw_priv->dev_info->min_qc_size;\n }\n \n void\n nfp_net_tx_desc_limits(struct nfp_net_hw *hw,\n+\t\tstruct nfp_net_hw_priv *hw_priv,\n \t\tuint16_t *min_tx_desc,\n \t\tuint16_t *max_tx_desc)\n {\n@@ -1164,8 +1165,8 @@ nfp_net_tx_desc_limits(struct nfp_net_hw *hw,\n \telse\n \t\ttx_dpp = NFDK_TX_DESC_PER_SIMPLE_PKT;\n \n-\t*max_tx_desc = hw->dev_info->max_qc_size / tx_dpp;\n-\t*min_tx_desc = hw->dev_info->min_qc_size / tx_dpp;\n+\t*max_tx_desc = hw_priv->dev_info->max_qc_size / tx_dpp;\n+\t*min_tx_desc = hw_priv->dev_info->min_qc_size / tx_dpp;\n }\n \n int\n@@ -1183,8 +1184,8 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \thw = nfp_net_get_hw(dev);\n \thw_priv = dev->process_private;\n \n-\tnfp_net_rx_desc_limits(hw, &min_rx_desc, &max_rx_desc);\n-\tnfp_net_tx_desc_limits(hw, &min_tx_desc, &max_tx_desc);\n+\tnfp_net_rx_desc_limits(hw_priv, &min_rx_desc, &max_rx_desc);\n+\tnfp_net_tx_desc_limits(hw, hw_priv, &min_tx_desc, &max_tx_desc);\n \n \tdev_info->max_rx_queues = (uint16_t)hw->max_rx_queues;\n \tdev_info->max_tx_queues = (uint16_t)hw->max_tx_queues;\ndiff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h\nindex 8dbe2fb973..31deeb43ce 100644\n--- a/drivers/net/nfp/nfp_net_common.h\n+++ b/drivers/net/nfp/nfp_net_common.h\n@@ -158,6 +158,9 @@ struct nfp_app_fw_nic {\n \n struct nfp_net_hw_priv {\n \tstruct nfp_pf_dev *pf_dev;\n+\n+\t/** NFP ASIC params */\n+\tconst struct nfp_dev_info *dev_info;\n };\n \n struct nfp_net_hw {\n@@ -177,9 +180,6 @@ struct nfp_net_hw {\n \tuint32_t rx_offset;\n \tenum nfp_net_meta_format meta_format;\n \n-\t/** NFP ASIC params */\n-\tconst struct nfp_dev_info *dev_info;\n-\n \tuint8_t *tx_bar;\n \tuint8_t *rx_bar;\n \n@@ -297,10 +297,11 @@ void nfp_net_close_rx_queue(struct rte_eth_dev *dev);\n void nfp_net_stop_tx_queue(struct rte_eth_dev *dev);\n void nfp_net_close_tx_queue(struct rte_eth_dev *dev);\n int nfp_net_set_vxlan_port(struct nfp_net_hw *hw, size_t idx, uint16_t port);\n-void nfp_net_rx_desc_limits(struct nfp_net_hw *hw,\n+void nfp_net_rx_desc_limits(struct nfp_net_hw_priv *hw_priv,\n \t\tuint16_t *min_rx_desc,\n \t\tuint16_t *max_rx_desc);\n void nfp_net_tx_desc_limits(struct nfp_net_hw *hw,\n+\t\tstruct nfp_net_hw_priv *hw_priv,\n \t\tuint16_t *min_tx_desc,\n \t\tuint16_t *max_tx_desc);\n int nfp_net_check_dma_mask(struct nfp_net_hw *hw, char *name);\ndiff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c\nindex 12f362a4f4..8697c5d711 100644\n--- a/drivers/net/nfp/nfp_rxtx.c\n+++ b/drivers/net/nfp/nfp_rxtx.c\n@@ -606,10 +606,12 @@ nfp_net_rx_queue_setup(struct rte_eth_dev *dev,\n \tstruct nfp_net_hw *hw;\n \tstruct nfp_net_rxq *rxq;\n \tconst struct rte_memzone *tz;\n+\tstruct nfp_net_hw_priv *hw_priv;\n \n \thw = nfp_net_get_hw(dev);\n+\thw_priv = dev->process_private;\n \n-\tnfp_net_rx_desc_limits(hw, &min_rx_desc, &max_rx_desc);\n+\tnfp_net_rx_desc_limits(hw_priv, &min_rx_desc, &max_rx_desc);\n \n \t/* Validating number of descriptors */\n \trx_desc_sz = nb_desc * sizeof(struct nfp_net_rx_desc);\n",
    "prefixes": [
        "v2",
        "5/8"
    ]
}