get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 112250,
    "url": "http://patches.dpdk.org/api/patches/112250/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220602015304.710197-12-jin.liu@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": "<20220602015304.710197-12-jin.liu@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220602015304.710197-12-jin.liu@corigine.com",
    "date": "2022-06-02T01:53:01",
    "name": "[11/14] net/nfp: nfdk stop and close function",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "03071678c79c94f02b24f95f60e8831528625156",
    "submitter": {
        "id": 2670,
        "url": "http://patches.dpdk.org/api/people/2670/?format=api",
        "name": "Jin Liu",
        "email": "jin.liu@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/20220602015304.710197-12-jin.liu@corigine.com/mbox/",
    "series": [
        {
            "id": 23295,
            "url": "http://patches.dpdk.org/api/series/23295/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=23295",
            "date": "2022-06-02T01:52:50",
            "name": "Add support of NFP3800 chip and firmware with NFDk",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/23295/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/112250/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/112250/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 07675A0548;\n\tThu,  2 Jun 2022 03:55:33 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 24D3C42B85;\n\tThu,  2 Jun 2022 03:55:05 +0200 (CEST)",
            "from NAM11-CO1-obe.outbound.protection.outlook.com\n (mail-co1nam11on2106.outbound.protection.outlook.com [40.107.220.106])\n by mails.dpdk.org (Postfix) with ESMTP id D9B1442B6E\n for <dev@dpdk.org>; Thu,  2 Jun 2022 03:55:03 +0200 (CEST)",
            "from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21)\n by DM4PR13MB5858.namprd13.prod.outlook.com (2603:10b6:8:46::6) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.5314.11; Thu, 2 Jun 2022 01:55:02 +0000",
            "from DM6PR13MB3004.namprd13.prod.outlook.com\n ([fe80::d902:ed7d:82bb:c753]) by DM6PR13MB3004.namprd13.prod.outlook.com\n ([fe80::d902:ed7d:82bb:c753%4]) with mapi id 15.20.5314.013; Thu, 2 Jun 2022\n 01:55:02 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=hI5UwCZSNNMEbeM+TmzDoxYqJ+HwUDWFzYf8wuI4UciMKrOCfWu7OZnL6IFfJIQulM8m3VRtt+fQboRR66KoM9Gbf8P4oFd4p4XfIJ05ZiTpbEuMf5ZwfDN40PC3FtiYgIeAlxRvJMYGptbjmEg/PIWnymWznetDUJ3FoQsKjDw++C8K5kEHhgbFi6gxCKqiLsoFKCYpdAkx7n95WUdOY0cmdZVEHZAAhT7hSx+8C6IdtH6xEiEImUBIQ3cUENtB/AMGMGIWcT7gKwoAfupx9HjGNKNV/QDZIrSYpeQ5WsVfBFeaaGMqdl4IA46t0OgM1xV3nZHIOc/pCInpz9/kfA==",
        "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=L/UUeZmvBrxntf4SHCWo+DtJOwVW6aRvFfE056LN4bc=;\n b=RUlF3sWyo0f5DOoXetYNC4SYk6KeYAxO5BAbVFSJFdlbj9Ya2YKT2tgz0Ppz9ts6PWxJxZNa7kV19UQSOm9tuJLwzwPCsf0lZq3G89dK1niDiixMIeWUvFh66MBJMcs2/d8XD7zuvHu72AbFKCGtanq0EGvKQQFtQBfljRIZ359O8jGEohe48ZOOpChvBxK1wkrIqAsZEiQ5SRXZ/1Isgd1sgcsH5PUBcCCT1ZBQjnkbOyhNgK/c0tdmi5ecJuLiilDnJAwr7U3R541mJl8KheoifuJqJXyLAworwjWPy4WssqBe06ecoSmISxNmyaZdDEjyE5nAIcFsGW53HXtKfg==",
        "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=L/UUeZmvBrxntf4SHCWo+DtJOwVW6aRvFfE056LN4bc=;\n b=gwEifRJNqNNUPn2ZnipUbnyFfo0JwcoL/2njw+8KJQT0HYalHCgNF+nNJi7PwANR6vfTbplF8zawG6zFchH4xwdmQgDPWi+X8/Ur8GPKx4RZRUpzAxZiJgVcuxXJkOEBHv0gTK9p95PrCgQ0NAEIhz76WxpPfK6VTOZEao17OEo=",
        "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=corigine.com;",
        "From": "Jin Liu <jin.liu@corigine.com>",
        "To": "dev@dpdk.org",
        "Cc": "niklas.soderlund@corigine.com, Jin Liu <jin.liu@corigine.com>,\n Diana Wang <na.wang@corigine.com>, Peng Zhang <peng.zhang@corigine.com>,\n Chaoyong He <chaoyong.he@corigine.com>",
        "Subject": "[PATCH 11/14] net/nfp: nfdk stop and close function",
        "Date": "Thu,  2 Jun 2022 03:53:01 +0200",
        "Message-Id": "<20220602015304.710197-12-jin.liu@corigine.com>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20220602015304.710197-1-jin.liu@corigine.com>",
        "References": "<20220602015304.710197-1-jin.liu@corigine.com>",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-ClientProxiedBy": "LO4P123CA0457.GBRP123.PROD.OUTLOOK.COM\n (2603:10a6:600:1aa::12) To DM6PR13MB3004.namprd13.prod.outlook.com\n (2603:10b6:5:191::21)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "d6d00f54-7362-44cb-d2eb-08da443ae83f",
        "X-MS-TrafficTypeDiagnostic": "DM4PR13MB5858:EE_",
        "X-Microsoft-Antispam-PRVS": "\n <DM4PR13MB5858C29328C7DBCC2A064A3394DE9@DM4PR13MB5858.namprd13.prod.outlook.com>",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n 26/7EON0YxQGKFwww52mXq4+5CQhyrn0/n0gAaGjRP9Dj1Dvi4BM8bqKqmE4KqZJYjCmkEKLJJrn2OLqqK+eZaZsAo8ll4tmaoAmlyEa9mTChjWviCyRQdWjyut53WR3iKh1DhbHruTLBUpvaQe7Ac5nkG4VJVsgnKnIf3+HK+Fq5F8glZ++K9uNm+ZeF+tfWS8G76yi/n96IfCR5T1Wtu8hJ8CevKykT6aih2kuEaAXoXY0JTvPNs5/c6+I+sK18YT3BiwIDI7AxuNRWo/xkI977qpWabux4X/0h/T52DYxbF0C4ibwqXAJUs3JCjBZiyf8Lq5jAiMnNu+3qWPcqAsVbbi42fK04p/klp7dv2x8y1dGno2GG1BX3oKLdZLABKEfzNOE8Adu6toizlZwchS6La9r9RJNmfuLGwC5sWw5StxZglfbeCsjL+s393Qyk0JUtz+2qVrTnJYJl+EVl4k7V8EN/SiY6+Zc4ApmBST1LBuUeXD236Dl7Nwfy6PfJr+evd9WmONMIgSgUAbblhmHgEGgNFw1pUjlvZwBWt0i7igZuRrUiyEefKCoGgyRNtyJoTOft3ddlNQxuyyhPhE1rk8N1I9mEBg5ZB2hnybh5tr1SdMYSx0HfXqbXvlOKlyDZl2ACA23nAXJH2cuT4uSSyhFs7Lye2EaFU3Lrkwbnfhk/C+LRcLxeDWKMtiORslGfPVmt5c/RumymNvzAA==",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230001)(4636009)(346002)(366004)(396003)(136003)(376002)(39840400004)(36756003)(186003)(66574015)(83380400001)(5660300002)(4326008)(44832011)(8936002)(2906002)(6916009)(54906003)(1076003)(107886003)(6506007)(316002)(2616005)(41300700001)(8676002)(66946007)(66476007)(66556008)(26005)(6512007)(52116002)(38100700002)(38350700002)(86362001)(6486002)(508600001);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?2DKnnaGJmsUs1p2NXZHqJnrjvRkJ?=\n\t=?utf-8?q?7dejPLm0pCu9IqAHgN4k1PRP1vpAr7KglbJGNtK96RVv4LPnU+Jtwb0CuTdrZi64o?=\n\t=?utf-8?q?pnokmqWoBnDX+7fE/p51t/ZYue+YsNqAPvyP1NTa6aSnqBV/oVI4MaKchouGxqqR1?=\n\t=?utf-8?q?X5JqZ7VQSpDK2wt/uJCz338Jy5tT72MdY2DwsPFvvb4H5oLzc1QXOIGdTbBpc5FQK?=\n\t=?utf-8?q?zHI/VNN5Ert4gCtYuGZzwt0evbouAtRMcoOi92qFXT5pN2j/XcCQ003F1wmdMV720?=\n\t=?utf-8?q?RnjskA7vXtEBuFlit4wFvROoaN0j8Li8TVf8CHAmxMatjFZYyu/U/0cni/3HC/AtK?=\n\t=?utf-8?q?RpUYs6sIZgOrNTu5r/teJ9OLCo7xVXMU8yWTTv611ONqlTkjKQam2h1LJm78LvXDF?=\n\t=?utf-8?q?nt9JCVhQjBbgI0OoPIVrfrBzwqnGT1A74LJ/sK0/IyBZHsE4zGeBhp5iYTjO+Aq+X?=\n\t=?utf-8?q?QjZORyFdMKVebW0xdkkAQWi382126iaMI3nletwqv/kt4z9ad4PweR/hnGTHcdnBv?=\n\t=?utf-8?q?4upABUJx8SBFvDLEr/+gYNa1GYdws351/Ny5VDOHxtWrZF+5fuDcEvNg8CNlWz3ca?=\n\t=?utf-8?q?QIGUZYq4Chv+p3H6iq0mYHkbSN/e1Qbu9KwSCXTisrUQZ44dswbW3S4FM4A471Z/W?=\n\t=?utf-8?q?Ej74zKeTtv7KofAgzpDwJUE3eaTjqt81pPJwh57ED+8GzgbRYdipkAb7R+T672Lnj?=\n\t=?utf-8?q?bnuV0ALKzv8D8tu/UKck99tZHTI01zYTTXOxYI+XqATnYj5s9+VGCfWBLCo/fmgvF?=\n\t=?utf-8?q?hYzP2KV6kSfjVV08XDeIvDWerjixZ0oCgc46V9H1wjMx4nARL6Er/XhYR3KXKOuMr?=\n\t=?utf-8?q?I/9V5sEpGqsJEAaZHsfC7NVxO81iWt225OuxugtO8YR4duZNrkHhQBwVidUC90UQp?=\n\t=?utf-8?q?VltjaoemctgmwTaPXxzpLxEmRkmNwt2CIfMlk4D2fvHgdcKh5FDL9nRH7hM8QQvb0?=\n\t=?utf-8?q?xY4FSBI08g7KZQdoX7WDlCrDHb98EyrgxJkk8ByKdyaXAvXQE3dOqxOEQQ04N2NbT?=\n\t=?utf-8?q?Ha6snT95YoYL1CBwcSuESpgoyFf79SglL3hyfCR3s46WMrr8JKPckWS8ZnXT4EUBU?=\n\t=?utf-8?q?358epU4fG0ZQ9qvF9CLll16uK+MzDB0FtHusvk4xblQ1LSVCiuekVAa8DvWlHWmNX?=\n\t=?utf-8?q?owZTNEr3I8xJv3MFBjjbQ9OdiWL+BCWM0eKEqx3SuifLP/exdI+/bD7CIgQP1ytFZ?=\n\t=?utf-8?q?vFrfH+ew/4Vg6fxCBIlPq/dohydTWi0GEk3pfKYRRCtuvfCsiXPzD3HOLTRL6fCns?=\n\t=?utf-8?q?jTfXByoGx8UFNM45wDxyNlI4R4LVzpIiBkrjkEI4qc8Z7Yefp52OY5qq/w4iCeI78?=\n\t=?utf-8?q?DyZ8OPOhJh90Hx7gxKW9Z264Mg59hrrJTLvRfrfqyTZsoj2d73gGPX1dmpox16u1R?=\n\t=?utf-8?q?2qoPezzYO6oFyCupF4LDrtJSf8fgRy6mPF3i68KW9g8pH+ZqI18T4oxzsuVm5K0nT?=\n\t=?utf-8?q?TOMgA43fzSUSegQZ+D4Q5azjAryey/MxPLaTEHc3dlHpMzFciE+GGjNdYUn6+TENm?=\n\t=?utf-8?q?N4s+Gv5d3CR2xjBZqJzd2GF2zKnXlnq36SyOs6/yR7d4DvTdg9gFUxZA3e4qrrktX?=\n\t=?utf-8?q?wPWcoanwtYHF33PTMyb+Zq45otANYUkxah0sIRImBhvpv1d7c4DG+Is4J6Mh1TKxa?=\n\t=?utf-8?q?uxhQrYF7YJFx3QPEzIw/QlphFDLOL7aA=3D=3D?=",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n d6d00f54-7362-44cb-d2eb-08da443ae83f",
        "X-MS-Exchange-CrossTenant-AuthSource": "DM6PR13MB3004.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "02 Jun 2022 01:55:02.4291 (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 yW8TegUD0TZLgDJi8Q2M3eHTRhdtqquCv9Ja0GiXK17bWwtObRujIXEnmqTtBPW/ZbCK57GnpcBZ1kk4Up62yw==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM4PR13MB5858",
        "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": "Implement NIC stop and close function for NFDK firmware.\n\nSigned-off-by: Jin Liu <jin.liu@corigine.com>\nSigned-off-by: Diana Wang <na.wang@corigine.com>\nSigned-off-by: Peng Zhang <peng.zhang@corigine.com>\nSigned-off-by: Chaoyong He <chaoyong.he@corigine.com>\nSigned-off-by: Niklas Söderlund <niklas.soderlund@corigine.com>\n---\n drivers/net/nfp/nfp_ethdev.c    | 92 ++++++++++++++++++++++++++++++++-\n drivers/net/nfp/nfp_ethdev_vf.c | 64 +++++++++++++++++++++--\n 2 files changed, 151 insertions(+), 5 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c\nindex 0a5c703190..4e3a6a964d 100644\n--- a/drivers/net/nfp/nfp_ethdev.c\n+++ b/drivers/net/nfp/nfp_ethdev.c\n@@ -309,6 +309,94 @@ nfp_net_nfd3_close(struct rte_eth_dev *dev)\n \treturn 0;\n }\n \n+static int\n+nfp_net_nfdk_stop(struct rte_eth_dev *dev)\n+{\n+\tstruct nfp_net_hw *hw;\n+\n+\tPMD_INIT_LOG(DEBUG, \"Stop\");\n+\n+\thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n+\n+\tnfp_net_disable_queues(dev);\n+\n+\t/* Clear queues */\n+\tnfp_net_nfdk_stop_tx_queue(dev);\n+\n+\tnfp_net_stop_rx_queue(dev);\n+\n+\tif (rte_eal_process_type() == RTE_PROC_PRIMARY)\n+\t\t/* Configure the physical port down */\n+\t\tnfp_eth_set_configured(hw->cpp, hw->nfp_idx, 0);\n+\telse\n+\t\tnfp_eth_set_configured(dev->process_private, hw->nfp_idx, 0);\n+\n+\treturn 0;\n+}\n+\n+static int\n+nfp_net_nfdk_close(struct rte_eth_dev *dev)\n+{\n+\tint i;\n+\tstruct nfp_net_hw *hw;\n+\tstruct rte_pci_device *pci_dev;\n+\tstruct nfp_pf_dev *pf_dev;\n+\n+\tif (rte_eal_process_type() != RTE_PROC_PRIMARY)\n+\t\treturn 0;\n+\n+\tPMD_INIT_LOG(DEBUG, \"Close\");\n+\n+\tpf_dev = NFP_NET_DEV_PRIVATE_TO_PF(dev->data->dev_private);\n+\thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n+\tpci_dev = RTE_ETH_DEV_TO_PCI(dev);\n+\n+\t/*\n+\t * We assume that the DPDK application is stopping all the\n+\t * threads/queues before calling the device close function.\n+\t */\n+\n+\tnfp_net_disable_queues(dev);\n+\n+\t/* Clear queues */\n+\tnfp_net_nfdk_close_tx_queue(dev);\n+\n+\tnfp_net_close_rx_queue(dev);\n+\n+\t/* Cancel possible impending LSC work here before releasing the port*/\n+\trte_eal_alarm_cancel(nfp_net_dev_interrupt_delayed_handler, (void *)dev);\n+\n+\t/* Only free PF resources after all physical ports have been closed */\n+\t/* Mark this port as unused and free device priv resources*/\n+\tnn_cfg_writeb(hw, NFP_NET_CFG_LSC, 0xff);\n+\tpf_dev->ports[hw->idx] = NULL;\n+\trte_eth_dev_release_port(dev);\n+\n+\tfor (i = 0; i < pf_dev->total_phyports; i++) {\n+\t\t/* Check to see if ports are still in use */\n+\t\tif (pf_dev->ports[i])\n+\t\t\treturn 0;\n+\t}\n+\n+\t/* Now it is safe to free all PF resources */\n+\tPMD_INIT_LOG(INFO, \"Freeing PF resources\");\n+\tnfp_cpp_area_free(pf_dev->ctrl_area);\n+\tnfp_cpp_area_free(pf_dev->hwqueues_area);\n+\tfree(pf_dev->hwinfo);\n+\tfree(pf_dev->sym_tbl);\n+\tnfp_cpp_free(pf_dev->cpp);\n+\trte_free(pf_dev);\n+\n+\trte_intr_disable(pci_dev->intr_handle);\n+\n+\t/* unregister callback func from eal lib */\n+\trte_intr_callback_unregister(pci_dev->intr_handle,\n+\t\t\t\tnfp_net_dev_interrupt_handler,\n+\t\t\t\t(void *)dev);\n+\n+\treturn 0;\n+}\n+\n /* Initialise and register driver with DPDK Application */\n static const struct eth_dev_ops nfp_net_nfd3_eth_dev_ops = {\n \t.dev_configure\t\t= nfp_net_configure,\n@@ -342,10 +430,10 @@ static const struct eth_dev_ops nfp_net_nfd3_eth_dev_ops = {\n static const struct eth_dev_ops nfp_net_nfdk_eth_dev_ops = {\n \t.dev_configure\t\t= nfp_net_configure,\n \t.dev_start\t\t= nfp_net_start,\n-\t.dev_stop\t\t= nfp_net_nfd3_stop,\n+\t.dev_stop\t\t= nfp_net_nfdk_stop,\n \t.dev_set_link_up\t= nfp_net_set_link_up,\n \t.dev_set_link_down\t= nfp_net_set_link_down,\n-\t.dev_close\t\t= nfp_net_nfd3_close,\n+\t.dev_close\t\t= nfp_net_nfdk_close,\n \t.promiscuous_enable\t= nfp_net_promisc_enable,\n \t.promiscuous_disable\t= nfp_net_promisc_disable,\n \t.link_update\t\t= nfp_net_link_update,\ndiff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c\nindex d347c98134..a5c6aceb32 100644\n--- a/drivers/net/nfp/nfp_ethdev_vf.c\n+++ b/drivers/net/nfp/nfp_ethdev_vf.c\n@@ -214,6 +214,58 @@ nfp_netvf_nfd3_close(struct rte_eth_dev *dev)\n \treturn 0;\n }\n \n+static int\n+nfp_netvf_nfdk_stop(struct rte_eth_dev *dev)\n+{\n+\tPMD_INIT_LOG(DEBUG, \"Stop\");\n+\n+\tnfp_net_disable_queues(dev);\n+\n+\t/* Clear queues */\n+\tnfp_net_nfdk_stop_tx_queue(dev);\n+\n+\tnfp_net_stop_rx_queue(dev);\n+\n+\treturn 0;\n+}\n+\n+static int\n+nfp_netvf_nfdk_close(struct rte_eth_dev *dev)\n+{\n+\tstruct rte_pci_device *pci_dev;\n+\n+\tif (rte_eal_process_type() != RTE_PROC_PRIMARY)\n+\t\treturn 0;\n+\n+\tPMD_INIT_LOG(DEBUG, \"Close\");\n+\n+\tpci_dev = RTE_ETH_DEV_TO_PCI(dev);\n+\n+\t/*\n+\t * We assume that the DPDK application is stopping all the\n+\t * threads/queues before calling the device close function.\n+\t */\n+\n+\tnfp_net_disable_queues(dev);\n+\n+\t/* Clear queues */\n+\tnfp_net_nfdk_close_tx_queue(dev);\n+\n+\tnfp_net_close_rx_queue(dev);\n+\n+\trte_intr_disable(pci_dev->intr_handle);\n+\n+\t/* unregister callback func from eal lib */\n+\trte_intr_callback_unregister(pci_dev->intr_handle,\n+\t\t\t\tnfp_net_dev_interrupt_handler,\n+\t\t\t\t(void *)dev);\n+\n+\t/* Cancel possible impending LSC work here before releasing the port*/\n+\trte_eal_alarm_cancel(nfp_net_dev_interrupt_delayed_handler, (void *)dev);\n+\n+\treturn 0;\n+}\n+\n /* Initialise and register VF driver with DPDK Application */\n static const struct eth_dev_ops nfp_netvf_nfd3_eth_dev_ops = {\n \t.dev_configure\t\t= nfp_net_configure,\n@@ -247,10 +299,10 @@ static const struct eth_dev_ops nfp_netvf_nfd3_eth_dev_ops = {\n static const struct eth_dev_ops nfp_netvf_nfdk_eth_dev_ops = {\n \t.dev_configure\t\t= nfp_net_configure,\n \t.dev_start\t\t= nfp_netvf_start,\n-\t.dev_stop\t\t= nfp_netvf_nfd3_stop,\n+\t.dev_stop\t\t= nfp_netvf_nfdk_stop,\n \t.dev_set_link_up\t= nfp_netvf_set_link_up,\n \t.dev_set_link_down\t= nfp_netvf_set_link_down,\n-\t.dev_close\t\t= nfp_netvf_nfd3_close,\n+\t.dev_close\t\t= nfp_netvf_nfdk_close,\n \t.promiscuous_enable\t= nfp_net_promisc_enable,\n \t.promiscuous_disable\t= nfp_net_promisc_disable,\n \t.link_update\t\t= nfp_net_link_update,\n@@ -498,7 +550,13 @@ static const struct rte_pci_id pci_id_nfp_vf_net_map[] = {\n static int nfp_vf_pci_uninit(struct rte_eth_dev *eth_dev)\n {\n \t/* VF cleanup, just free private port data */\n-\treturn nfp_netvf_nfd3_close(eth_dev);\n+\tstruct nfp_net_hw *hw;\n+\n+\thw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);\n+\tif (NFD_CFG_CLASS_VER_of(hw->ver) == NFP_NET_CFG_VERSION_DP_NFD3)\n+\t\treturn nfp_netvf_nfd3_close(eth_dev);\n+\telse\n+\t\treturn nfp_netvf_nfdk_close(eth_dev);\n }\n \n static int eth_nfp_vf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,\n",
    "prefixes": [
        "11/14"
    ]
}