get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 132564,
    "url": "http://patches.dpdk.org/api/patches/132564/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231012012704.483828-8-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": "<20231012012704.483828-8-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231012012704.483828-8-chaoyong.he@corigine.com",
    "date": "2023-10-12T01:27:00",
    "name": "[v2,07/11] net/nfp: standard the blank character",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "9f64e6203cb3cd9e002b414f32dda998796d7e68",
    "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/20231012012704.483828-8-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 29821,
            "url": "http://patches.dpdk.org/api/series/29821/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=29821",
            "date": "2023-10-12T01:26:53",
            "name": "Unify the PMD coding style",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/29821/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/132564/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/132564/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 22E884236A;\n\tThu, 12 Oct 2023 03:28:39 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 323D6406FF;\n\tThu, 12 Oct 2023 03:28:02 +0200 (CEST)",
            "from NAM02-DM3-obe.outbound.protection.outlook.com\n (mail-dm3nam02on2121.outbound.protection.outlook.com [40.107.95.121])\n by mails.dpdk.org (Postfix) with ESMTP id 233EB4064E\n for <dev@dpdk.org>; Thu, 12 Oct 2023 03:28:01 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by SJ0PR13MB6111.namprd13.prod.outlook.com (2603:10b6:a03:4eb::10)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6863.42; Thu, 12 Oct\n 2023 01:27:59 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::2d5:f7d6:ecde:c93a]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::2d5:f7d6:ecde:c93a%4]) with mapi id 15.20.6863.032; Thu, 12 Oct 2023\n 01:27:59 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=m/Ue0ihwh/Mj11+ejfyn4KxvLJU4jqY2aSXT15ruejK54FJ36qRuhVl2WWG4e3wUWh7naRPa1NSPWu9yCpBooqSe/HKnUusD9TJ54ezjSuQaQCMO6NUrSngnNMTdXoppJX+jMQlKjJScjZfgldSKsgHpIwHvHFrZQZCJPTohYnhYOpa1pUq0FLWxym2S6q+MbUWOgYCTqegGQoQ5Xdx+PiWp9hNpPgKnXqBn32Q9FiLepEgcwrmsQdI63GUaqagO9lMJVLcNOuthF4oSUs4TTNNK3GtJwtWebYqnMro+SMIvYeMzj9H2Aj4NWVPaHaP3a0IjD5hnCdcCP/QjJTW3Yw==",
        "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=tO7LDVbntpUx1mhc3/bRhxSiQtJ2h5NqScXbX+W+2gA=;\n b=gKeBkyA1jNAT6hFzkS4ZmpEpRnmebFpriI3q4VYKi2Enlud50zdbw55jC4xwbY5FiqywwXOfq5N2F2K9JcTo6L/2/WfGNcOtflbUjHOW+JhbUGoQgIvQkuF+cU+HAw71rVnOIPcfP9ZzWQznYaqVDyb9SjIjD3JRr2dUu6poJT8ZcsHilUwoXkWr/2bPGaqtaII+zduFF8wrV+Y3p3pI2H8mSkml9EaC9tm7eQq+gNeUfdN9y15ekHvv/q9HFbRw8lS+VwOn1DkUIViXNYdlbW9J3XcT6/XHHpK8H3F16n6MwqgSNbUedYF103gwytW6uDjC0C9SQELdoQAg46YgNg==",
        "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=tO7LDVbntpUx1mhc3/bRhxSiQtJ2h5NqScXbX+W+2gA=;\n b=aZ0PpNbsYf5pzD+9w2T0g5GopyO2ednsqBYPMgeI7HOmT6ZXioqr1yzX9j61Ru+Rk+iA0B0futN1UOxFGoWjQws9/GvMQWcXLl8ZG/OI0/VQXJby6ejw9ch6Ozi0MLNbguUyncrsLgxXhB8LnjrqXZUbPAM6JlNl5lcvGGmO1tc=",
        "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 07/11] net/nfp: standard the blank character",
        "Date": "Thu, 12 Oct 2023 09:27:00 +0800",
        "Message-Id": "<20231012012704.483828-8-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20231012012704.483828-1-chaoyong.he@corigine.com>",
        "References": "<20231007023339.1546659-1-chaoyong.he@corigine.com>\n <20231012012704.483828-1-chaoyong.he@corigine.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "PH8PR15CA0015.namprd15.prod.outlook.com\n (2603:10b6:510:2d2::23) 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_|SJ0PR13MB6111:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "48f17d28-2af6-4d5e-fed1-08dbcac277dc",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n qKBQO5lBM6RQ1Xie4GsPvN5SjVeTACkUILzcGTMWnejcssV8IIQ1vdj9LtwBIg7EXXtXzyNRgUKloTaMZXqQCxoW8eEfnh9Z5LJ9yukTRwFfkwHCz8prjmuhxo/NooBjk0kdZjAgpGfOtAeDhxHbmryYq9uSbY77extkvD7thrM233JvPlUTonQPAO6Brfhvlh8MbkBL8iJq4hWhmA8Noyk07uhm5veY7k9QZlgwogRO1JcTvu4EqeM6g9XyPyZIpFP/1EohtE8QTo0Eu5lgsd4We3NMxCUzPEejgOff7MTa77qEzyVP1/G4XtBC5LXNhzvl4/FslZUsXsDXn+9+64QdQjGFtwh1u3arT+ezjT7U2uV9b60UYmzZ5MCEctMz8DK7tgfbgJvLKPidL3eqvIVmp06BhQ1WZT3aEBiO472Y5f044O31WXk8lcjmmiL6Rk/qtW7CbMkjv2tYbyUR8nCHtn1hc+kIBpSFpgDHHe9MvU3vghqJyM5KTK7VaPT7Hfeull4a7mhtDfvlRyQYZjEfImeSnZYDuuQBBwYo0kAmx7ln4zNxGSELt+ISV1pkLiEHDFgHnZej+q6S6fmpXFQKnVdB2y1RQGnhEK36Nj0/cwjsvnwnS6Mzf4dVRoMNSNmgpUVCAg5p79MENuRlwM3dQspPjjoAA7GCVRH2zCk=",
        "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)(346002)(366004)(136003)(376002)(396003)(39830400003)(230922051799003)(186009)(1800799009)(451199024)(64100799003)(6512007)(107886003)(52116002)(1076003)(2616005)(6666004)(6506007)(478600001)(26005)(6486002)(83380400001)(44832011)(8676002)(30864003)(2906002)(316002)(54906003)(5660300002)(41300700001)(66946007)(66476007)(66556008)(4326008)(8936002)(6916009)(36756003)(38100700002)(86362001)(38350700002)(66899024);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n UDwby+WIj9zHjO9VT+WQCq2VHd4FRQMMbsaPo9evP+XMiUIjMLkMgIBPIh/uxMMcNoQfIDF+9YZC85RulwGDuisQ5Hs+uyTXMqN5tOvcF1dZEY+SQUljNMYXXXyIevhsmgeUiQQ2iH2NNzpwPzF83J4rUEQgeHf8akSxO0v9Tz4XJaaAatvwYAgIxKTwkUeH4vd2emFzUjW7QzkwBDw+ANdhA+T2ceRPgW/4PGTXgjy6bh65sutGmgtKG6Wa8Q8mjCwWLE9qGP3MDlydOjHgOy4lv9mPDL+HTp8rb7K9qqLYh8O6TSrgp56jgAon8lcnkrNv8tPy4BvXun/Uwr5OvSsktlHff588B8+0RYMlqFniCsjOhMbgEFxOlsvXviVD4XuSoo12ZtUtVtbY8eYkQH/3axNvxWsSNkaUo8KSTNbELY/+T6eWaovGgPEYPXxUZm4/gRhy71sSiQjLnsESBWE/T4SGQJc+lxZLVU6uGAY75tmqwtKRCi7piN0R93l2RiznBAtcdAKODh18+rOM27dgC6glb661O0tyhEA04ei9zCO04qlWFz9m4PLPw5Kw+pvE9zhr3YbF3QgNanS6O4e/1Tdmvj/JVzoJ8uTtnCrSM5oi1nDm94LxvtTw6V+ABUVQtMeJJ0Zm9yssay1jGgXvdEp5q1f/V+j4fsvbjWctfGNnu/kdLJnvrmqA5qIq0igXIDvFahY8NHtWmXbGkir6FmcMIQF1QpNNonB7mvKuWiGkt38HI6tL3TYy9mTvXRenEQg9O9DeMRsvD2RDZMHjcerzWhnJFB40T+WqNhe3QrV4RPO9cYxs2tnIvCmB6UhwL2RM8YolyYWzi2LFozEbeB3mTYBQUDx9xg3FeQmPuHOJyT8DjT0tCUTbI52W38w3gwKhYQGb1czFa3Meet2GXccBfBjIudL9c2e4XRl+knsoovh7MZqvLHbzxZieJwfNgCRl9PQxNS5SC6Cc0MQ85NgiiGNHIP/5uPaPXJ6H+O7B4pYF6mJB2EOuQ05CDH5fe/jDt5ATZcvin7Y46JVETfecfkIgnIAE9h5jRpgeb89g/Pb3cTddFtzw/w018myCypXc9xUZ13e6AXqXpxEoXgit3PxW6jDW7wEghGtXk+6BLVcgsi0DxZd7eonlP2L25/xplLoyyU6oHdUXZOLyhZTuYOQi1vTxxxOnyZTpN+dobmfiHNZWjhmujfHQjmpUc7jRU1mOngW6auQKqPZFVgEALjGY2dKJrUnbJdu5ZkkXBTeVeXDJEogYxstrgcwp6xfurmsAiyT9MyrZYRRkSUdo0FkXJv4BKPThBsUQhgFJb8rn60bz9KB3eclUmGuNkPKv4xhuwWiWtQ/iys6AjVjsMlbRZOwteib7pZztYWcm9dXFdsfcX8wrpZ6llagwMrvcZN4sxwA+A0p0fSxAiRQxi5FPs+mczu5VW69Ytcs/01FbwMfiHjZMC+NGsum8oKJASJWZmPDVm1ZgyAKrImZeh6LQAJyQRLvECoN6yoKN5YwE0MoDQ4X572HeH2E4SamnO42ERZz+QQvLGT5HKq94DZvFfB2CbVgJGH5tgEwi0mp7BGT6VZkE4+9NVBB4ZPlCSRQVRAbWE0LdZg==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 48f17d28-2af6-4d5e-fed1-08dbcac277dc",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "12 Oct 2023 01:27:58.9746 (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 T2+MM9gB9ZcOnz5G1UG4JKogPRAXPyA52w+6/sQkklLpfINdsQJarsOWCCg6nsVyfEjFWem411ChqM56ABGxBK48KG4dZ2vcii35cveQeNY=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SJ0PR13MB6111",
        "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 space character to align instead of TAB character.\nThere should one blank line to split the block of logic, no more no less.\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/nfp_common.c           | 39 +++++++++--------\n drivers/net/nfp/nfp_common.h           |  6 +--\n drivers/net/nfp/nfp_cpp_bridge.c       |  5 +++\n drivers/net/nfp/nfp_ctrl.h             |  6 +--\n drivers/net/nfp/nfp_ethdev.c           | 58 +++++++++++++-------------\n drivers/net/nfp/nfp_ethdev_vf.c        | 49 +++++++++++-----------\n drivers/net/nfp/nfp_flow.c             | 27 +++++++-----\n drivers/net/nfp/nfp_flow.h             |  7 ++++\n drivers/net/nfp/nfp_rxtx.c             |  7 ++--\n drivers/net/nfp/nfpcore/nfp_resource.h |  2 +-\n 10 files changed, 114 insertions(+), 92 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c\nindex 130f004b4d..a102c6f272 100644\n--- a/drivers/net/nfp/nfp_common.c\n+++ b/drivers/net/nfp/nfp_common.c\n@@ -36,6 +36,7 @@ enum nfp_xstat_group {\n \tNFP_XSTAT_GROUP_NET,\n \tNFP_XSTAT_GROUP_MAC\n };\n+\n struct nfp_xstat {\n \tchar name[RTE_ETH_XSTATS_NAME_SIZE];\n \tint offset;\n@@ -184,6 +185,7 @@ nfp_net_notify_port_speed(struct nfp_net_hw *hw,\n \t\tnn_cfg_writew(hw, NFP_NET_CFG_STS_NSP_LINK_RATE, NFP_NET_CFG_STS_LINK_RATE_UNKNOWN);\n \t\treturn;\n \t}\n+\n \t/*\n \t * Link is up so write the link speed from the eth_table to\n \t * NFP_NET_CFG_STS_NSP_LINK_RATE.\n@@ -223,17 +225,21 @@ __nfp_net_reconfig(struct nfp_net_hw *hw,\n \t\tnew = nn_cfg_readl(hw, NFP_NET_CFG_UPDATE);\n \t\tif (new == 0)\n \t\t\tbreak;\n+\n \t\tif ((new & NFP_NET_CFG_UPDATE_ERR) != 0) {\n \t\t\tPMD_DRV_LOG(ERR, \"Reconfig error: %#08x\", new);\n \t\t\treturn -1;\n \t\t}\n+\n \t\tif (cnt >= NFP_NET_POLL_TIMEOUT) {\n \t\t\tPMD_DRV_LOG(ERR, \"Reconfig timeout for %#08x after %u ms\",\n \t\t\t\t\tupdate, cnt);\n \t\t\treturn -EIO;\n \t\t}\n+\n \t\tnanosleep(&wait, 0); /* Waiting for a 1ms */\n \t}\n+\n \tPMD_DRV_LOG(DEBUG, \"Ack DONE\");\n \treturn 0;\n }\n@@ -387,7 +393,6 @@ nfp_net_configure(struct rte_eth_dev *dev)\n \tstruct rte_eth_txmode *txmode;\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n-\n \tdev_conf = &dev->data->dev_conf;\n \trxmode = &dev_conf->rxmode;\n \ttxmode = &dev_conf->txmode;\n@@ -560,11 +565,13 @@ nfp_net_set_mac_addr(struct rte_eth_dev *dev,\n \tif ((hw->ctrl & NFP_NET_CFG_CTRL_ENABLE) != 0 &&\n \t\t\t(hw->cap & NFP_NET_CFG_CTRL_LIVE_ADDR) != 0)\n \t\tctrl |= NFP_NET_CFG_CTRL_LIVE_ADDR;\n+\n \t/* Signal the NIC about the change */\n \tif (nfp_net_reconfig(hw, ctrl, update) != 0) {\n \t\tPMD_DRV_LOG(ERR, \"MAC address update failed\");\n \t\treturn -EIO;\n \t}\n+\n \treturn 0;\n }\n \n@@ -832,13 +839,11 @@ nfp_net_stats_get(struct rte_eth_dev *dev,\n \n \t\tnfp_dev_stats.q_ipackets[i] =\n \t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_RXR_STATS(i));\n-\n \t\tnfp_dev_stats.q_ipackets[i] -=\n \t\t\t\thw->eth_stats_base.q_ipackets[i];\n \n \t\tnfp_dev_stats.q_ibytes[i] =\n \t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_RXR_STATS(i) + 0x8);\n-\n \t\tnfp_dev_stats.q_ibytes[i] -=\n \t\t\t\thw->eth_stats_base.q_ibytes[i];\n \t}\n@@ -850,42 +855,34 @@ nfp_net_stats_get(struct rte_eth_dev *dev,\n \n \t\tnfp_dev_stats.q_opackets[i] =\n \t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_TXR_STATS(i));\n-\n \t\tnfp_dev_stats.q_opackets[i] -= hw->eth_stats_base.q_opackets[i];\n \n \t\tnfp_dev_stats.q_obytes[i] =\n \t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_TXR_STATS(i) + 0x8);\n-\n \t\tnfp_dev_stats.q_obytes[i] -= hw->eth_stats_base.q_obytes[i];\n \t}\n \n \tnfp_dev_stats.ipackets = nn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_FRAMES);\n-\n \tnfp_dev_stats.ipackets -= hw->eth_stats_base.ipackets;\n \n \tnfp_dev_stats.ibytes = nn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_OCTETS);\n-\n \tnfp_dev_stats.ibytes -= hw->eth_stats_base.ibytes;\n \n \tnfp_dev_stats.opackets =\n \t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_TX_FRAMES);\n-\n \tnfp_dev_stats.opackets -= hw->eth_stats_base.opackets;\n \n \tnfp_dev_stats.obytes =\n \t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_TX_OCTETS);\n-\n \tnfp_dev_stats.obytes -= hw->eth_stats_base.obytes;\n \n \t/* Reading general device stats */\n \tnfp_dev_stats.ierrors =\n \t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_ERRORS);\n-\n \tnfp_dev_stats.ierrors -= hw->eth_stats_base.ierrors;\n \n \tnfp_dev_stats.oerrors =\n \t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_TX_ERRORS);\n-\n \tnfp_dev_stats.oerrors -= hw->eth_stats_base.oerrors;\n \n \t/* RX ring mbuf allocation failures */\n@@ -893,7 +890,6 @@ nfp_net_stats_get(struct rte_eth_dev *dev,\n \n \tnfp_dev_stats.imissed =\n \t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_DISCARDS);\n-\n \tnfp_dev_stats.imissed -= hw->eth_stats_base.imissed;\n \n \tif (stats != NULL) {\n@@ -981,6 +977,7 @@ nfp_net_xstats_size(const struct rte_eth_dev *dev)\n \t\t\tif (nfp_net_xstats[count].group == NFP_XSTAT_GROUP_MAC)\n \t\t\t\tbreak;\n \t\t}\n+\n \t\treturn count;\n \t}\n \n@@ -1154,6 +1151,7 @@ nfp_net_xstats_reset(struct rte_eth_dev *dev)\n \t\thw->eth_xstats_base[id].id = id;\n \t\thw->eth_xstats_base[id].value = nfp_net_xstats_value(dev, id, true);\n \t}\n+\n \t/* Successfully reset xstats, now call function to reset basic stats. */\n \treturn nfp_net_stats_reset(dev);\n }\n@@ -1201,6 +1199,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \tdev_info->max_rx_queues = (uint16_t)hw->max_rx_queues;\n \tdev_info->max_tx_queues = (uint16_t)hw->max_tx_queues;\n \tdev_info->min_rx_bufsize = RTE_ETHER_MIN_MTU;\n+\n \t/**\n \t * The maximum rx packet length (max_rx_pktlen) is set to the\n \t * maximum supported frame size that the NFP can handle. This\n@@ -1368,6 +1367,7 @@ nfp_net_supported_ptypes_get(struct rte_eth_dev *dev)\n \n \tif (dev->rx_pkt_burst == nfp_net_recv_pkts)\n \t\treturn ptypes;\n+\n \treturn NULL;\n }\n \n@@ -1381,7 +1381,6 @@ nfp_rx_queue_intr_enable(struct rte_eth_dev *dev,\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n \tpci_dev = RTE_ETH_DEV_TO_PCI(dev);\n-\n \tif (rte_intr_type_get(pci_dev->intr_handle) != RTE_INTR_HANDLE_UIO)\n \t\tbase = 1;\n \n@@ -1402,7 +1401,6 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev,\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n \tpci_dev = RTE_ETH_DEV_TO_PCI(dev);\n-\n \tif (rte_intr_type_get(pci_dev->intr_handle) != RTE_INTR_HANDLE_UIO)\n \t\tbase = 1;\n \n@@ -1619,11 +1617,11 @@ nfp_net_rss_reta_write(struct rte_eth_dev *dev,\n \t\tidx = i / RTE_ETH_RETA_GROUP_SIZE;\n \t\tshift = i % RTE_ETH_RETA_GROUP_SIZE;\n \t\tmask = (uint8_t)((reta_conf[idx].mask >> shift) & 0xF);\n-\n \t\tif (mask == 0)\n \t\t\tcontinue;\n \n \t\treta = 0;\n+\n \t\t/* If all 4 entries were set, don't need read RETA register */\n \t\tif (mask != 0xF)\n \t\t\treta = nn_cfg_readl(hw, NFP_NET_CFG_RSS_ITBL + i);\n@@ -1631,13 +1629,17 @@ nfp_net_rss_reta_write(struct rte_eth_dev *dev,\n \t\tfor (j = 0; j < 4; j++) {\n \t\t\tif ((mask & (0x1 << j)) == 0)\n \t\t\t\tcontinue;\n+\n \t\t\t/* Clearing the entry bits */\n \t\t\tif (mask != 0xF)\n \t\t\t\treta &= ~(0xFF << (8 * j));\n+\n \t\t\treta |= reta_conf[idx].reta[shift + j] << (8 * j);\n \t\t}\n+\n \t\tnn_cfg_writel(hw, NFP_NET_CFG_RSS_ITBL + (idx * 64) + shift, reta);\n \t}\n+\n \treturn 0;\n }\n \n@@ -1682,7 +1684,6 @@ nfp_net_reta_query(struct rte_eth_dev *dev,\n \tstruct nfp_net_hw *hw;\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n-\n \tif ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0)\n \t\treturn -EINVAL;\n \n@@ -1710,10 +1711,12 @@ nfp_net_reta_query(struct rte_eth_dev *dev,\n \t\tfor (j = 0; j < 4; j++) {\n \t\t\tif ((mask & (0x1 << j)) == 0)\n \t\t\t\tcontinue;\n+\n \t\t\treta_conf[idx].reta[shift + j] =\n \t\t\t\t\t(uint8_t)((reta >> (8 * j)) & 0xF);\n \t\t}\n \t}\n+\n \treturn 0;\n }\n \n@@ -1791,6 +1794,7 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev,\n \t\t\tPMD_DRV_LOG(ERR, \"RSS unsupported\");\n \t\t\treturn -EINVAL;\n \t\t}\n+\n \t\treturn 0; /* Nothing to do */\n \t}\n \n@@ -1888,6 +1892,7 @@ nfp_net_rss_config_default(struct rte_eth_dev *dev)\n \t\t\tqueue %= rx_queues;\n \t\t}\n \t}\n+\n \tret = nfp_net_rss_reta_write(dev, nfp_reta_conf, 0x80);\n \tif (ret != 0)\n \t\treturn ret;\n@@ -1897,8 +1902,8 @@ nfp_net_rss_config_default(struct rte_eth_dev *dev)\n \t\tPMD_DRV_LOG(ERR, \"Wrong rss conf\");\n \t\treturn -EINVAL;\n \t}\n-\trss_conf = dev_conf->rx_adv_conf.rss_conf;\n \n+\trss_conf = dev_conf->rx_adv_conf.rss_conf;\n \tret = nfp_net_rss_hash_write(dev, &rss_conf);\n \n \treturn ret;\ndiff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h\nindex 6a36e2b04c..5439865c5e 100644\n--- a/drivers/net/nfp/nfp_common.h\n+++ b/drivers/net/nfp/nfp_common.h\n@@ -32,7 +32,7 @@\n #define DEFAULT_RX_HTHRESH      8\n #define DEFAULT_RX_WTHRESH      0\n \n-#define DEFAULT_TX_RS_THRESH\t32\n+#define DEFAULT_TX_RS_THRESH    32\n #define DEFAULT_TX_FREE_THRESH  32\n #define DEFAULT_TX_PTHRESH      32\n #define DEFAULT_TX_HTHRESH      0\n@@ -40,12 +40,12 @@\n #define DEFAULT_TX_RSBIT_THRESH 32\n \n /* Alignment for dma zones */\n-#define NFP_MEMZONE_ALIGN\t128\n+#define NFP_MEMZONE_ALIGN       128\n \n #define NFP_QCP_QUEUE_ADDR_SZ   (0x800)\n \n /* Number of supported physical ports */\n-#define NFP_MAX_PHYPORTS\t12\n+#define NFP_MAX_PHYPORTS        12\n \n /* Firmware application ID's */\n enum nfp_app_fw_id {\ndiff --git a/drivers/net/nfp/nfp_cpp_bridge.c b/drivers/net/nfp/nfp_cpp_bridge.c\nindex 8f5271cde9..bb2a6fdcda 100644\n--- a/drivers/net/nfp/nfp_cpp_bridge.c\n+++ b/drivers/net/nfp/nfp_cpp_bridge.c\n@@ -191,6 +191,7 @@ nfp_cpp_bridge_serve_write(int sockfd,\n \t\t\t\tnfp_cpp_area_free(area);\n \t\t\t\treturn -EIO;\n \t\t\t}\n+\n \t\t\terr = nfp_cpp_area_write(area, pos, tmpbuf, len);\n \t\t\tif (err < 0) {\n \t\t\t\tPMD_CPP_LOG(ERR, \"nfp_cpp_area_write error\");\n@@ -312,6 +313,7 @@ nfp_cpp_bridge_serve_read(int sockfd,\n \t\tcurlen = (count > NFP_CPP_MEMIO_BOUNDARY) ?\n \t\t\t\tNFP_CPP_MEMIO_BOUNDARY : count;\n \t}\n+\n \treturn 0;\n }\n \n@@ -393,6 +395,7 @@ nfp_cpp_bridge_service_func(void *args)\n \tstruct timeval timeout = {1, 0};\n \n \tunlink(\"/tmp/nfp_cpp\");\n+\n \tsockfd = socket(AF_UNIX, SOCK_STREAM, 0);\n \tif (sockfd < 0) {\n \t\tPMD_CPP_LOG(ERR, \"socket creation error. Service failed\");\n@@ -456,8 +459,10 @@ nfp_cpp_bridge_service_func(void *args)\n \t\t\tif (op == 0)\n \t\t\t\tbreak;\n \t\t}\n+\n \t\tclose(datafd);\n \t}\n+\n \tclose(sockfd);\n \n \treturn 0;\ndiff --git a/drivers/net/nfp/nfp_ctrl.h b/drivers/net/nfp/nfp_ctrl.h\nindex cd0a2f92a8..5cc83ff3e6 100644\n--- a/drivers/net/nfp/nfp_ctrl.h\n+++ b/drivers/net/nfp/nfp_ctrl.h\n@@ -208,8 +208,8 @@ struct nfp_net_fw_ver {\n /*\n  * NFP6000/NFP4000 - Prepend configuration\n  */\n-#define NFP_NET_CFG_RX_OFFSET\t\t0x0050\n-#define NFP_NET_CFG_RX_OFFSET_DYNAMIC\t\t0\t/* Prepend mode */\n+#define NFP_NET_CFG_RX_OFFSET           0x0050\n+#define NFP_NET_CFG_RX_OFFSET_DYNAMIC          0    /* Prepend mode */\n \n /* Start anchor of the TLV area */\n #define NFP_NET_CFG_TLV_BASE            0x0058\n@@ -442,7 +442,7 @@ struct nfp_net_fw_ver {\n #define NFP_MAC_STATS_TX_PAUSE_FRAMES_CLASS6    (NFP_MAC_STATS_BASE + 0x1f0)\n #define NFP_MAC_STATS_TX_PAUSE_FRAMES_CLASS7    (NFP_MAC_STATS_BASE + 0x1f8)\n \n-#define NFP_PF_CSR_SLICE_SIZE\t(32 * 1024)\n+#define NFP_PF_CSR_SLICE_SIZE    (32 * 1024)\n \n /*\n  * General use mailbox area (0x1800 - 0x19ff)\ndiff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c\nindex 1651ac2455..b65c2c1fe0 100644\n--- a/drivers/net/nfp/nfp_ethdev.c\n+++ b/drivers/net/nfp/nfp_ethdev.c\n@@ -36,6 +36,7 @@ nfp_net_pf_read_mac(struct nfp_app_fw_nic *app_fw_nic,\n \trte_ether_addr_copy(&nfp_eth_table->ports[port].mac_addr, &hw->mac_addr);\n \n \tfree(nfp_eth_table);\n+\n \treturn 0;\n }\n \n@@ -73,6 +74,7 @@ nfp_net_start(struct rte_eth_dev *dev)\n \t\t\t\t\t\"with NFP multiport PF\");\n \t\t\t\treturn -EINVAL;\n \t\t}\n+\n \t\tif (rte_intr_type_get(intr_handle) == RTE_INTR_HANDLE_UIO) {\n \t\t\t/*\n \t\t\t * Better not to share LSC with RX interrupts.\n@@ -87,6 +89,7 @@ nfp_net_start(struct rte_eth_dev *dev)\n \t\t\t\treturn -EIO;\n \t\t\t}\n \t\t}\n+\n \t\tintr_vector = dev->data->nb_rx_queues;\n \t\tif (rte_intr_efd_enable(intr_handle, intr_vector) != 0)\n \t\t\treturn -1;\n@@ -198,7 +201,6 @@ nfp_net_stop(struct rte_eth_dev *dev)\n \n \t/* Clear queues */\n \tnfp_net_stop_tx_queue(dev);\n-\n \tnfp_net_stop_rx_queue(dev);\n \n \tif (rte_eal_process_type() == RTE_PROC_PRIMARY)\n@@ -262,12 +264,10 @@ nfp_net_close(struct rte_eth_dev *dev)\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_close_tx_queue(dev);\n-\n \tnfp_net_close_rx_queue(dev);\n \n \t/* Clear ipsec */\n@@ -413,35 +413,35 @@ nfp_udp_tunnel_port_del(struct rte_eth_dev *dev,\n \n /* Initialise and register driver with DPDK Application */\n static const struct eth_dev_ops nfp_net_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_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_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-\t.stats_get\t\t= nfp_net_stats_get,\n-\t.stats_reset\t\t= nfp_net_stats_reset,\n+\t.dev_configure          = nfp_net_configure,\n+\t.dev_start              = nfp_net_start,\n+\t.dev_stop               = nfp_net_stop,\n+\t.dev_set_link_up        = nfp_net_set_link_up,\n+\t.dev_set_link_down      = nfp_net_set_link_down,\n+\t.dev_close              = nfp_net_close,\n+\t.promiscuous_enable     = nfp_net_promisc_enable,\n+\t.promiscuous_disable    = nfp_net_promisc_disable,\n+\t.link_update            = nfp_net_link_update,\n+\t.stats_get              = nfp_net_stats_get,\n+\t.stats_reset            = nfp_net_stats_reset,\n \t.xstats_get             = nfp_net_xstats_get,\n \t.xstats_reset           = nfp_net_xstats_reset,\n \t.xstats_get_names       = nfp_net_xstats_get_names,\n \t.xstats_get_by_id       = nfp_net_xstats_get_by_id,\n \t.xstats_get_names_by_id = nfp_net_xstats_get_names_by_id,\n-\t.dev_infos_get\t\t= nfp_net_infos_get,\n+\t.dev_infos_get          = nfp_net_infos_get,\n \t.dev_supported_ptypes_get = nfp_net_supported_ptypes_get,\n-\t.mtu_set\t\t= nfp_net_dev_mtu_set,\n-\t.mac_addr_set\t\t= nfp_net_set_mac_addr,\n-\t.vlan_offload_set\t= nfp_net_vlan_offload_set,\n-\t.reta_update\t\t= nfp_net_reta_update,\n-\t.reta_query\t\t= nfp_net_reta_query,\n-\t.rss_hash_update\t= nfp_net_rss_hash_update,\n-\t.rss_hash_conf_get\t= nfp_net_rss_hash_conf_get,\n-\t.rx_queue_setup\t\t= nfp_net_rx_queue_setup,\n-\t.rx_queue_release\t= nfp_net_rx_queue_release,\n-\t.tx_queue_setup\t\t= nfp_net_tx_queue_setup,\n-\t.tx_queue_release\t= nfp_net_tx_queue_release,\n+\t.mtu_set                = nfp_net_dev_mtu_set,\n+\t.mac_addr_set           = nfp_net_set_mac_addr,\n+\t.vlan_offload_set       = nfp_net_vlan_offload_set,\n+\t.reta_update            = nfp_net_reta_update,\n+\t.reta_query             = nfp_net_reta_query,\n+\t.rss_hash_update        = nfp_net_rss_hash_update,\n+\t.rss_hash_conf_get      = nfp_net_rss_hash_conf_get,\n+\t.rx_queue_setup         = nfp_net_rx_queue_setup,\n+\t.rx_queue_release       = nfp_net_rx_queue_release,\n+\t.tx_queue_setup         = nfp_net_tx_queue_setup,\n+\t.tx_queue_release       = nfp_net_tx_queue_release,\n \t.rx_queue_intr_enable   = nfp_rx_queue_intr_enable,\n \t.rx_queue_intr_disable  = nfp_rx_queue_intr_disable,\n \t.udp_tunnel_port_add    = nfp_udp_tunnel_port_add,\n@@ -501,7 +501,6 @@ nfp_net_init(struct rte_eth_dev *eth_dev)\n \n \trte_eth_copy_pci_info(eth_dev, pci_dev);\n \n-\n \thw->ctrl_bar = pci_dev->mem_resource[0].addr;\n \tif (hw->ctrl_bar == NULL) {\n \t\tPMD_DRV_LOG(ERR, \"hw->ctrl_bar is NULL. BAR0 not configured\");\n@@ -519,10 +518,12 @@ nfp_net_init(struct rte_eth_dev *eth_dev)\n \t\t\tPMD_INIT_LOG(ERR, \"nfp_rtsym_map fails for _mac_stats_bar\");\n \t\t\treturn -EIO;\n \t\t}\n+\n \t\thw->mac_stats = hw->mac_stats_bar;\n \t} else {\n \t\tif (pf_dev->ctrl_bar == NULL)\n \t\t\treturn -ENODEV;\n+\n \t\t/* Use port offset in pf ctrl_bar for this ports control bar */\n \t\thw->ctrl_bar = pf_dev->ctrl_bar + (port * NFP_PF_CSR_SLICE_SIZE);\n \t\thw->mac_stats = app_fw_nic->ports[0]->mac_stats_bar + (port * NFP_MAC_STATS_SIZE);\n@@ -557,7 +558,6 @@ nfp_net_init(struct rte_eth_dev *eth_dev)\n \t\treturn -ENOMEM;\n \t}\n \n-\n \t/* Work out where in the BAR the queues start. */\n \ttx_base = nn_cfg_readl(hw, NFP_NET_CFG_START_TXQ);\n \trx_base = nn_cfg_readl(hw, NFP_NET_CFG_START_RXQ);\n@@ -653,12 +653,12 @@ nfp_fw_upload(struct rte_pci_device *dev,\n \t\t\t\"serial-%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x\",\n \t\t\tcpp_serial[0], cpp_serial[1], cpp_serial[2], cpp_serial[3],\n \t\t\tcpp_serial[4], cpp_serial[5], interface >> 8, interface & 0xff);\n-\n \tsnprintf(fw_name, sizeof(fw_name), \"%s/%s.nffw\", DEFAULT_FW_PATH, serial);\n \n \tPMD_DRV_LOG(DEBUG, \"Trying with fw file: %s\", fw_name);\n \tif (rte_firmware_read(fw_name, &fw_buf, &fsize) == 0)\n \t\tgoto load_fw;\n+\n \t/* Then try the PCI name */\n \tsnprintf(fw_name, sizeof(fw_name), \"%s/pci-%s.nffw\", DEFAULT_FW_PATH,\n \t\t\tdev->name);\ndiff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c\nindex c9e72dd953..7096695de6 100644\n--- a/drivers/net/nfp/nfp_ethdev_vf.c\n+++ b/drivers/net/nfp/nfp_ethdev_vf.c\n@@ -63,6 +63,7 @@ nfp_netvf_start(struct rte_eth_dev *dev)\n \t\t\t\treturn -EIO;\n \t\t\t}\n \t\t}\n+\n \t\tintr_vector = dev->data->nb_rx_queues;\n \t\tif (rte_intr_efd_enable(intr_handle, intr_vector) != 0)\n \t\t\treturn -1;\n@@ -172,12 +173,10 @@ nfp_netvf_close(struct rte_eth_dev *dev)\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_close_tx_queue(dev);\n-\n \tnfp_net_close_rx_queue(dev);\n \n \trte_intr_disable(pci_dev->intr_handle);\n@@ -194,35 +193,35 @@ nfp_netvf_close(struct rte_eth_dev *dev)\n \n /* Initialise and register VF driver with DPDK Application */\n static const struct eth_dev_ops nfp_netvf_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_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_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-\t.stats_get\t\t= nfp_net_stats_get,\n-\t.stats_reset\t\t= nfp_net_stats_reset,\n+\t.dev_configure          = nfp_net_configure,\n+\t.dev_start              = nfp_netvf_start,\n+\t.dev_stop               = nfp_netvf_stop,\n+\t.dev_set_link_up        = nfp_netvf_set_link_up,\n+\t.dev_set_link_down      = nfp_netvf_set_link_down,\n+\t.dev_close              = nfp_netvf_close,\n+\t.promiscuous_enable     = nfp_net_promisc_enable,\n+\t.promiscuous_disable    = nfp_net_promisc_disable,\n+\t.link_update            = nfp_net_link_update,\n+\t.stats_get              = nfp_net_stats_get,\n+\t.stats_reset            = nfp_net_stats_reset,\n \t.xstats_get             = nfp_net_xstats_get,\n \t.xstats_reset           = nfp_net_xstats_reset,\n \t.xstats_get_names       = nfp_net_xstats_get_names,\n \t.xstats_get_by_id       = nfp_net_xstats_get_by_id,\n \t.xstats_get_names_by_id = nfp_net_xstats_get_names_by_id,\n-\t.dev_infos_get\t\t= nfp_net_infos_get,\n+\t.dev_infos_get          = nfp_net_infos_get,\n \t.dev_supported_ptypes_get = nfp_net_supported_ptypes_get,\n-\t.mtu_set\t\t= nfp_net_dev_mtu_set,\n-\t.mac_addr_set\t\t= nfp_net_set_mac_addr,\n-\t.vlan_offload_set\t= nfp_net_vlan_offload_set,\n-\t.reta_update\t\t= nfp_net_reta_update,\n-\t.reta_query\t\t= nfp_net_reta_query,\n-\t.rss_hash_update\t= nfp_net_rss_hash_update,\n-\t.rss_hash_conf_get\t= nfp_net_rss_hash_conf_get,\n-\t.rx_queue_setup\t\t= nfp_net_rx_queue_setup,\n-\t.rx_queue_release\t= nfp_net_rx_queue_release,\n-\t.tx_queue_setup\t\t= nfp_net_tx_queue_setup,\n-\t.tx_queue_release\t= nfp_net_tx_queue_release,\n+\t.mtu_set                = nfp_net_dev_mtu_set,\n+\t.mac_addr_set           = nfp_net_set_mac_addr,\n+\t.vlan_offload_set       = nfp_net_vlan_offload_set,\n+\t.reta_update            = nfp_net_reta_update,\n+\t.reta_query             = nfp_net_reta_query,\n+\t.rss_hash_update        = nfp_net_rss_hash_update,\n+\t.rss_hash_conf_get      = nfp_net_rss_hash_conf_get,\n+\t.rx_queue_setup         = nfp_net_rx_queue_setup,\n+\t.rx_queue_release       = nfp_net_rx_queue_release,\n+\t.tx_queue_setup         = nfp_net_tx_queue_setup,\n+\t.tx_queue_release       = nfp_net_tx_queue_release,\n \t.rx_queue_intr_enable   = nfp_rx_queue_intr_enable,\n \t.rx_queue_intr_disable  = nfp_rx_queue_intr_disable,\n };\ndiff --git a/drivers/net/nfp/nfp_flow.c b/drivers/net/nfp/nfp_flow.c\nindex fbcdb3d19e..1bf31146fc 100644\n--- a/drivers/net/nfp/nfp_flow.c\n+++ b/drivers/net/nfp/nfp_flow.c\n@@ -496,6 +496,7 @@ nfp_stats_id_alloc(struct nfp_flow_priv *priv, uint32_t *ctx)\n \t\t\tpriv->stats_ids.init_unallocated--;\n \t\t\tpriv->active_mem_unit = 0;\n \t\t}\n+\n \t\treturn 0;\n \t}\n \n@@ -622,6 +623,7 @@ nfp_tun_add_ipv6_off(struct nfp_app_fw_flower *app_fw_flower,\n \t\tPMD_DRV_LOG(ERR, \"Mem error when offloading IP6 address.\");\n \t\treturn -ENOMEM;\n \t}\n+\n \tmemcpy(tmp_entry->ipv6_addr, ipv6, sizeof(tmp_entry->ipv6_addr));\n \ttmp_entry->ref_count = 1;\n \n@@ -1796,7 +1798,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {\n \t\t.next_item = NEXT_ITEM(RTE_FLOW_ITEM_TYPE_VLAN,\n \t\t\tRTE_FLOW_ITEM_TYPE_IPV4,\n \t\t\tRTE_FLOW_ITEM_TYPE_IPV6),\n-\t\t.mask_support = &(const struct rte_flow_item_eth){\n+\t\t.mask_support = &(const struct rte_flow_item_eth) {\n \t\t\t.hdr = {\n \t\t\t\t.dst_addr.addr_bytes = \"\\xff\\xff\\xff\\xff\\xff\\xff\",\n \t\t\t\t.src_addr.addr_bytes = \"\\xff\\xff\\xff\\xff\\xff\\xff\",\n@@ -1811,7 +1813,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {\n \t[RTE_FLOW_ITEM_TYPE_VLAN] = {\n \t\t.next_item = NEXT_ITEM(RTE_FLOW_ITEM_TYPE_IPV4,\n \t\t\tRTE_FLOW_ITEM_TYPE_IPV6),\n-\t\t.mask_support = &(const struct rte_flow_item_vlan){\n+\t\t.mask_support = &(const struct rte_flow_item_vlan) {\n \t\t\t.hdr = {\n \t\t\t\t.vlan_tci  = RTE_BE16(0xefff),\n \t\t\t\t.eth_proto = RTE_BE16(0xffff),\n@@ -1827,7 +1829,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {\n \t\t\tRTE_FLOW_ITEM_TYPE_UDP,\n \t\t\tRTE_FLOW_ITEM_TYPE_SCTP,\n \t\t\tRTE_FLOW_ITEM_TYPE_GRE),\n-\t\t.mask_support = &(const struct rte_flow_item_ipv4){\n+\t\t.mask_support = &(const struct rte_flow_item_ipv4) {\n \t\t\t.hdr = {\n \t\t\t\t.type_of_service = 0xff,\n \t\t\t\t.fragment_offset = RTE_BE16(0xffff),\n@@ -1846,7 +1848,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {\n \t\t\tRTE_FLOW_ITEM_TYPE_UDP,\n \t\t\tRTE_FLOW_ITEM_TYPE_SCTP,\n \t\t\tRTE_FLOW_ITEM_TYPE_GRE),\n-\t\t.mask_support = &(const struct rte_flow_item_ipv6){\n+\t\t.mask_support = &(const struct rte_flow_item_ipv6) {\n \t\t\t.hdr = {\n \t\t\t\t.vtc_flow   = RTE_BE32(0x0ff00000),\n \t\t\t\t.proto      = 0xff,\n@@ -1863,7 +1865,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {\n \t\t.merge = nfp_flow_merge_ipv6,\n \t},\n \t[RTE_FLOW_ITEM_TYPE_TCP] = {\n-\t\t.mask_support = &(const struct rte_flow_item_tcp){\n+\t\t.mask_support = &(const struct rte_flow_item_tcp) {\n \t\t\t.hdr = {\n \t\t\t\t.tcp_flags = 0xff,\n \t\t\t\t.src_port  = RTE_BE16(0xffff),\n@@ -1877,7 +1879,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {\n \t[RTE_FLOW_ITEM_TYPE_UDP] = {\n \t\t.next_item = NEXT_ITEM(RTE_FLOW_ITEM_TYPE_VXLAN,\n \t\t\tRTE_FLOW_ITEM_TYPE_GENEVE),\n-\t\t.mask_support = &(const struct rte_flow_item_udp){\n+\t\t.mask_support = &(const struct rte_flow_item_udp) {\n \t\t\t.hdr = {\n \t\t\t\t.src_port = RTE_BE16(0xffff),\n \t\t\t\t.dst_port = RTE_BE16(0xffff),\n@@ -1888,7 +1890,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {\n \t\t.merge = nfp_flow_merge_udp,\n \t},\n \t[RTE_FLOW_ITEM_TYPE_SCTP] = {\n-\t\t.mask_support = &(const struct rte_flow_item_sctp){\n+\t\t.mask_support = &(const struct rte_flow_item_sctp) {\n \t\t\t.hdr = {\n \t\t\t\t.src_port  = RTE_BE16(0xffff),\n \t\t\t\t.dst_port  = RTE_BE16(0xffff),\n@@ -1900,7 +1902,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {\n \t},\n \t[RTE_FLOW_ITEM_TYPE_VXLAN] = {\n \t\t.next_item = NEXT_ITEM(RTE_FLOW_ITEM_TYPE_ETH),\n-\t\t.mask_support = &(const struct rte_flow_item_vxlan){\n+\t\t.mask_support = &(const struct rte_flow_item_vxlan) {\n \t\t\t.hdr = {\n \t\t\t\t.vx_vni = RTE_BE32(0xffffff00),\n \t\t\t},\n@@ -1911,7 +1913,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {\n \t},\n \t[RTE_FLOW_ITEM_TYPE_GENEVE] = {\n \t\t.next_item = NEXT_ITEM(RTE_FLOW_ITEM_TYPE_ETH),\n-\t\t.mask_support = &(const struct rte_flow_item_geneve){\n+\t\t.mask_support = &(const struct rte_flow_item_geneve) {\n \t\t\t.vni = \"\\xff\\xff\\xff\",\n \t\t},\n \t\t.mask_default = &rte_flow_item_geneve_mask,\n@@ -1920,7 +1922,7 @@ static const struct nfp_flow_item_proc nfp_flow_item_proc_list[] = {\n \t},\n \t[RTE_FLOW_ITEM_TYPE_GRE] = {\n \t\t.next_item = NEXT_ITEM(RTE_FLOW_ITEM_TYPE_GRE_KEY),\n-\t\t.mask_support = &(const struct rte_flow_item_gre){\n+\t\t.mask_support = &(const struct rte_flow_item_gre) {\n \t\t\t.c_rsvd0_ver = RTE_BE16(0xa000),\n \t\t\t.protocol = RTE_BE16(0xffff),\n \t\t},\n@@ -1952,6 +1954,7 @@ nfp_flow_item_check(const struct rte_flow_item *item,\n \t\t\t\t\t\" without a corresponding 'spec'.\");\n \t\t\treturn -EINVAL;\n \t\t}\n+\n \t\t/* No spec, no mask, no problem. */\n \t\treturn 0;\n \t}\n@@ -3031,6 +3034,7 @@ nfp_pre_tun_table_check_add(struct nfp_flower_representor *repr,\n \tfor (i = 1; i < NFP_TUN_PRE_TUN_RULE_LIMIT; i++) {\n \t\tif (priv->pre_tun_bitmap[i] == 0)\n \t\t\tcontinue;\n+\n \t\tentry->mac_index = i;\n \t\tfind_entry = nfp_pre_tun_table_search(priv, (char *)entry, entry_size);\n \t\tif (find_entry != NULL) {\n@@ -3057,6 +3061,7 @@ nfp_pre_tun_table_check_add(struct nfp_flower_representor *repr,\n \n \t*index = entry->mac_index;\n \tpriv->pre_tun_cnt++;\n+\n \treturn 0;\n }\n \n@@ -3091,12 +3096,14 @@ nfp_pre_tun_table_check_del(struct nfp_flower_representor *repr,\n \tfor (i = 1; i < NFP_TUN_PRE_TUN_RULE_LIMIT; i++) {\n \t\tif (priv->pre_tun_bitmap[i] == 0)\n \t\t\tcontinue;\n+\n \t\tentry->mac_index = i;\n \t\tfind_entry = nfp_pre_tun_table_search(priv, (char *)entry, entry_size);\n \t\tif (find_entry != NULL) {\n \t\t\tfind_entry->ref_cnt--;\n \t\t\tif (find_entry->ref_cnt != 0)\n \t\t\t\tgoto free_entry;\n+\n \t\t\tpriv->pre_tun_bitmap[i] = 0;\n \t\t\tbreak;\n \t\t}\ndiff --git a/drivers/net/nfp/nfp_flow.h b/drivers/net/nfp/nfp_flow.h\nindex ab38dbe1f4..991629e6ed 100644\n--- a/drivers/net/nfp/nfp_flow.h\n+++ b/drivers/net/nfp/nfp_flow.h\n@@ -126,11 +126,14 @@ struct nfp_ipv6_addr_entry {\n struct nfp_flow_priv {\n \tuint32_t hash_seed; /**< Hash seed for hash tables in this structure. */\n \tuint64_t flower_version; /**< Flow version, always increase. */\n+\n \t/* Mask hash table */\n \tstruct nfp_fl_mask_id mask_ids; /**< Entry for mask hash table */\n \tstruct rte_hash *mask_table; /**< Hash table to store mask ids. */\n+\n \t/* Flow hash table */\n \tstruct rte_hash *flow_table; /**< Hash table to store flow rules. */\n+\n \t/* Flow stats */\n \tuint32_t active_mem_unit; /**< The size of active mem units. */\n \tuint32_t total_mem_units; /**< The size of total mem units. */\n@@ -138,16 +141,20 @@ struct nfp_flow_priv {\n \tstruct nfp_fl_stats_id stats_ids; /**< The stats id ring. */\n \tstruct nfp_fl_stats *stats; /**< Store stats of flow. */\n \trte_spinlock_t stats_lock; /** < Lock the update of 'stats' field. */\n+\n \t/* Pre tunnel rule */\n \tuint16_t pre_tun_cnt; /**< The size of pre tunnel rule */\n \tuint8_t pre_tun_bitmap[NFP_TUN_PRE_TUN_RULE_LIMIT]; /**< Bitmap of pre tunnel rule */\n \tstruct rte_hash *pre_tun_table; /**< Hash table to store pre tunnel rule */\n+\n \t/* IPv4 off */\n \tLIST_HEAD(, nfp_ipv4_addr_entry) ipv4_off_list; /**< Store ipv4 off */\n \trte_spinlock_t ipv4_off_lock; /**< Lock the ipv4 off list */\n+\n \t/* IPv6 off */\n \tLIST_HEAD(, nfp_ipv6_addr_entry) ipv6_off_list; /**< Store ipv6 off */\n \trte_spinlock_t ipv6_off_lock; /**< Lock the ipv6 off list */\n+\n \t/* Neighbor next */\n \tLIST_HEAD(, nfp_fl_tun)nn_list; /**< Store nn entry */\n \t/* Conntrack */\ndiff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c\nindex d506682b56..e284a67d7c 100644\n--- a/drivers/net/nfp/nfp_rxtx.c\n+++ b/drivers/net/nfp/nfp_rxtx.c\n@@ -190,6 +190,7 @@ nfp_net_rx_fill_freelist(struct nfp_net_rxq *rxq)\n \t\trxd->fld.dd = 0;\n \t\trxd->fld.dma_addr_hi = (dma_addr >> 32) & 0xffff;\n \t\trxd->fld.dma_addr_lo = dma_addr & 0xffffffff;\n+\n \t\trxe[i].mbuf = mbuf;\n \t}\n \n@@ -213,6 +214,7 @@ nfp_net_rx_freelist_setup(struct rte_eth_dev *dev)\n \t\tif (nfp_net_rx_fill_freelist(dev->data->rx_queues[i]) != 0)\n \t\t\treturn -1;\n \t}\n+\n \treturn 0;\n }\n \n@@ -225,7 +227,6 @@ nfp_net_rx_queue_count(void *rx_queue)\n \tstruct nfp_net_rx_desc *rxds;\n \n \trxq = rx_queue;\n-\n \tidx = rxq->rd_p;\n \n \t/*\n@@ -235,7 +236,6 @@ nfp_net_rx_queue_count(void *rx_queue)\n \t * performance. But ideally that should be done in descriptors\n \t * chunks belonging to the same cache line.\n \t */\n-\n \twhile (count < rxq->rx_count) {\n \t\trxds = &rxq->rxds[idx];\n \t\tif ((rxds->rxd.meta_len_dd & PCIE_DESC_RX_DD) == 0)\n@@ -394,6 +394,7 @@ nfp_net_parse_meta_qinq(const struct nfp_meta_parsed *meta,\n \n \tif (meta->vlan[0].offload == 0)\n \t\tmb->vlan_tci = rte_cpu_to_le_16(meta->vlan[0].tci);\n+\n \tmb->vlan_tci_outer = rte_cpu_to_le_16(meta->vlan[1].tci);\n \tPMD_RX_LOG(DEBUG, \"Received outer vlan TCI is %u inner vlan TCI is %u\",\n \t\t\tmb->vlan_tci_outer, mb->vlan_tci);\n@@ -638,7 +639,6 @@ nfp_net_parse_ptype(struct nfp_net_rx_desc *rxds,\n  * so looking at the implications of this type of allocation should be studied\n  * deeply.\n  */\n-\n uint16_t\n nfp_net_recv_pkts(void *rx_queue,\n \t\tstruct rte_mbuf **rx_pkts,\n@@ -903,7 +903,6 @@ nfp_net_rx_queue_setup(struct rte_eth_dev *dev,\n \ttz = rte_eth_dma_zone_reserve(dev, \"rx_ring\", queue_idx,\n \t\t\tsizeof(struct nfp_net_rx_desc) * max_rx_desc,\n \t\t\tNFP_MEMZONE_ALIGN, socket_id);\n-\n \tif (tz == NULL) {\n \t\tPMD_DRV_LOG(ERR, \"Error allocating rx dma\");\n \t\tnfp_net_rx_queue_release(dev, queue_idx);\ndiff --git a/drivers/net/nfp/nfpcore/nfp_resource.h b/drivers/net/nfp/nfpcore/nfp_resource.h\nindex 18196d273c..f49c99e462 100644\n--- a/drivers/net/nfp/nfpcore/nfp_resource.h\n+++ b/drivers/net/nfp/nfpcore/nfp_resource.h\n@@ -15,7 +15,7 @@\n #define NFP_RESOURCE_NFP_HWINFO         \"nfp.info\"\n \n /* Service Processor */\n-#define NFP_RESOURCE_NSP\t\t\"nfp.sp\"\n+#define NFP_RESOURCE_NSP                \"nfp.sp\"\n \n /* Opaque handle to a NFP Resource */\n struct nfp_resource;\n",
    "prefixes": [
        "v2",
        "07/11"
    ]
}