get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 15982,
    "url": "https://patches.dpdk.org/api/patches/15982/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1474375296-26078-22-git-send-email-shreyansh.jain@nxp.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<1474375296-26078-22-git-send-email-shreyansh.jain@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1474375296-26078-22-git-send-email-shreyansh.jain@nxp.com",
    "date": "2016-09-20T12:41:33",
    "name": "[dpdk-dev,v11,21/24] eal/pci: inherit RTE driver in PCI driver",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "fb9078d3e7398b4ae778a43e7b7d572d49e7ff41",
    "submitter": {
        "id": 497,
        "url": "https://patches.dpdk.org/api/people/497/?format=api",
        "name": "Shreyansh Jain",
        "email": "shreyansh.jain@nxp.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1474375296-26078-22-git-send-email-shreyansh.jain@nxp.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/15982/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/15982/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 071887F14;\n\tTue, 20 Sep 2016 14:43:12 +0200 (CEST)",
            "from NAM01-BN3-obe.outbound.protection.outlook.com\n\t(mail-bn3nam01on0074.outbound.protection.outlook.com [104.47.33.74])\n\tby dpdk.org (Postfix) with ESMTP id CE76C91B2\n\tfor <dev@dpdk.org>; Tue, 20 Sep 2016 14:43:07 +0200 (CEST)",
            "from BN3PR0301CA0036.namprd03.prod.outlook.com (10.160.180.174) by\n\tBLUPR0301MB2003.namprd03.prod.outlook.com (10.164.22.17) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id\n\t15.1.629.8; Tue, 20 Sep 2016 12:43:06 +0000",
            "from BL2FFO11FD038.protection.gbl (2a01:111:f400:7c09::144) by\n\tBN3PR0301CA0036.outlook.office365.com (2a01:111:e400:4000::46) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8 via\n\tFrontend Transport; Tue, 20 Sep 2016 12:43:06 +0000",
            "from tx30smr01.am.freescale.net (192.88.168.50) by\n\tBL2FFO11FD038.mail.protection.outlook.com (10.173.161.134) with\n\tMicrosoft\n\tSMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id\n\t15.1.629.5 via Frontend Transport; Tue, 20 Sep 2016 12:43:06 +0000",
            "from Tophie.ap.freescale.net ([10.232.14.87])\n\tby tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tu8KCexsn006559; Tue, 20 Sep 2016 05:43:03 -0700"
        ],
        "Authentication-Results": "spf=fail (sender IP is 192.88.168.50)\n\tsmtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)\n\theader.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com;\n\tnxp.com; \n\tdkim=none (message not signed) header.d=none;",
        "Received-SPF": "Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.168.50 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.168.50; helo=tx30smr01.am.freescale.net;",
        "From": "Shreyansh Jain <shreyansh.jain@nxp.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<viktorin@rehivetech.com>, David Marchand <david.marchand@6wind.com>,\n\t<hemant.agrawal@nxp.com>, Thomas Monjalon <thomas.monjalon@6wind.com>,\n\tShreyansh Jain <shreyansh.jain@nxp.com>",
        "Date": "Tue, 20 Sep 2016 18:11:33 +0530",
        "Message-ID": "<1474375296-26078-22-git-send-email-shreyansh.jain@nxp.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1474375296-26078-1-git-send-email-shreyansh.jain@nxp.com>",
        "References": "<1466510566-9240-1-git-send-email-shreyansh.jain@nxp.com>\n\t<1474375296-26078-1-git-send-email-shreyansh.jain@nxp.com>",
        "X-EOPAttributedMessage": "0",
        "X-Matching-Connectors": "131188489865652693;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()",
        "X-Forefront-Antispam-Report": "CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(68736007)(47776003)(36756003)(110136003)(76176999)(33646002)(2351001)(106466001)(11100500001)(575784001)(50986999)(5003940100001)(104016004)(5660300001)(86362001)(105606002)(50466002)(48376002)(50226002)(626004)(2906002)(189998001)(97736004)(586003)(8936002)(77096005)(8676002)(81166006)(81156014)(2950100001)(92566002)(8666005)(4326007)(356003)(19580395003)(19580405001)(305945005)(85426001)(7846002)(87936001)(229853001)(7059030);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0301MB2003;\n\tH:tx30smr01.am.freescale.net; \n\tFPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BL2FFO11FD038;\n\t1:8meYuiZOzohPlimr/31GdgHWajdKnQs+uh7BD0cdd+ZOz8CO7ObZiVjdy8IJDtNcJOueYONzIMAlNRlKfgYGNtVy2TnsKk64bKj1B4FnnxoiVtaDx1jT4sdNVQliTFVVQK+0akUdboJO7rnGWuERUdvu53slXVjq+cba7DwXUcb3dg2BXErVRlmefrjmj2BCtfU2lV4ms8wdlSkdgelPaGrc3AYm3J8LV50VZnjNbJVJOVSYwXOeudX2laaZdyn2KUiAptSfAXveTlRLhT8wMnQUq+KPpRDEpiBGrb6ZKqFVsvSxkk7V+TszBcGGlX+l6Q4aKDWNieOQ150MV6n8ajvU5HgTOCky1kp6e7I4IsnpCTbvHgpkk3d+nuWQrOAMb3Plr7yMepoCQ3ZX8qZd/igvNjXROnUXDX4CNiWz92u5B2k3IMQS2iNFRAnxQ7eXxPiND21VHAxYDe76yLTKY7Kiq8xBUInXhbYKPNMF+QrXX5uv9cLBVna1y8pql7FAHa+Np0vZWwqGCKbyn3FulrO+mtAenmcSfoh1fAlx3rkgfTRjZDn7g/dbDCxdwHJNFYRbjU1cNWICNls2ZJgmUdtmKCc46VZlUZqWH91rP/a9r9+gjnt7/KePqCue8XMrwcf9sqG9b6S7jAqwDv50s43kbOFrQ6T6yCnwm86KbopTNJaxiRWJKCFeIWeSdcmz5alJZK5ZqSC3FquHdsrWcI4dv3NWzZIXhMxsx5XndxY=",
            "1; BLUPR0301MB2003;\n\t2:cRhYEsD6ZbYqIElJyG8zpycT9wLAWxgJXrJ5l3/L4tTJ1AwGRND5Fahdv12P070HviOUQ+9D2CwPGYum3fvow5OETGAwbpUZMn5avxvjmEy0518X8dGJtoLIOTdiQTGgTX0+NeNefUza01cT42BijR/n+rKKaVE0tfZLZiUQKsHlVAFVFFkVtMlWSZ0YvokP;\n\t3:bi6qZFWPE1q2wDp6LuYhmIphQggP3KhcbDIpl8yUFNJUdDeu8G7un0KaJN3EoytCECXDJWDy9AvoRQtHlk+uxNoXU92L48QJqD6RmK3LlX2VpRGgEA5VdJcoDqSlI8KXnvE7hvnC9S4HanAiJlWFIL7WEVdklQC5S4lOHoPS9ItRAbLk+EqiEoneA/X1BA2+Zywvx+n36yWk32oXHYNS5Qni86s2YZUFUtplZiDNIGU=",
            "1; BLUPR0301MB2003;\n\t25:NEr4GksLvgSywpo8kl/465o3C54U6K7X2HcQfWKohdNvDZFhGkh63DHsfGJyPgTzkLDk6hnJoV0SY1kXxq9xU21K11MtzvmaOoNmVuhYr1yQQDF6okPvYVCQF+oIKKz5A9za84JDP3tkdOyY8NyOn2p/Hbhwf7IHkc28OCauTB7mgHdszuTCEBhOx7CVgk1PXtdspm7JpdcnQICoSIrt1lSPYJi7vBzZn0Lr9yla7bwbJu7V1WyenUHkd+NccLaV2UkNyNoJmvrtqe1FWQiGYoVfm+Y1gvxVeO4211/frKDWNoh1FB2o27wiPUUB+96sEz8L2IYW2btDuRRW7rG0SIuzsJWOpKY749xJLCFVxmWT2wXZ5lXVq054LQHr9aha5Ih2NLbvq5h2/4EmWSrL7bnva463LAyEjuLibEdZxkmvq/RLo58pxdq+aMaULzseur4NGqF/rh87foyWY9+eMOhALNHoF4FG4aIUS4jfC0eta6o53Ht4SV13JOWctCeDA9s4A3R35pjJBzf1QxrDt7bwHy4pK1AFncKz43T7y/Qc4HHtIdyPYex70dpBqig461fitM45l6yJ8waLPjC4cbgRnkoix+8Eie3VTtFiAsNlAf2cysxIN0oe1XXg7/IEUyXzj+XFqzWjHtn5lb3Fc3tAP8SToTeEdmDKY7+IH312k7BBtmgQF8IEOKLhlxAj/gLC+EvW6p9OoIKmZtLfGrsZWzbBv1qpclFkNSbHG8Q=",
            "1; BLUPR0301MB2003;\n\t31:sfZeiJg/XDUUlruWb6dNwn4AClk7GhNcifSDTR4ttXShihxo5kQXGmL5ifsqz+vgxbkY3xKihKsZsMMCGb7rNhVZF7pplVI/ZJwFU1Wrm7tt9QRk39o3AW0rnbXKrKMagFsH9O45tTYUX2TZRO9Ltcm7smCmsKX6VI2C3Xcz3BL+Y57qk+zkCN8k/81e8Ch0/1e5qOIEnIR22mok3mn/xyY6t+oRQrq5GVrkRs/B2M8=;\n\t4:XBlAnZca+wlTm1G1EJzjrnoXZbUQsDiShgMR18XYcXnMH7Qq2qXr23TIugYKYSFgQ5oHZMSaDFokTxTmm1jJ61MwrTbwk+LJUQz9dIucF8F7otbF3uqZzd1DDub5UWr+hpTM4Ww/Ri5fs1nogt5XiDQbsxrdxkfEaP7vWAMepe5JnSCp9lYC7XWb6sif/BDFN2vnxNcIUg6mL29RyhtXjGCik255BdIIFYDjCETQ4WFPXFZiytAax/dRvvyU0ZlIe1Cc0w7D4MMbwZgKi1vNECtzCgz6hOhbETs+lPedCAQTxPuh8QzsclmpB22vATFAw1LSskaPLbgJ0+BF4iWqYlAc/Q6ITF2lFCzfTtu9zgKMIG4S5qPoZWyCj8SEEX6l/gFmoGoG5ax5rVTAHDmKeybxkOGpimOJHibXfeDSzwf8gs1GU72w+qyYAXyRqaEW0Rret84MCrgaDiXLj24qPg7jMtHrJSPh/WstGCNxIb+PVJsWiEbheU59MO6FKmpwxGAPNzldP6O2FheNvd2e8MmhLKw6Dad2FYzrAec+F80=",
            "=?us-ascii?Q?1; BLUPR0301MB2003;\n\t23:jMpc2lzKOtlLE+sjNnIgSxRpZV5pBljA4nJ8dvb?=\n\t=?us-ascii?Q?bEqDusAVjgJ5bKMCR9u3dEuGwb55wvQl00OJ8CmBgd+eI65li1mSfXyzoOw4?=\n\t=?us-ascii?Q?AuELDIWxi4ii+jAENWFCsA/T1DJ3eN2n1XkWx2LHDYroUx1+fOTZSPtvKh+r?=\n\t=?us-ascii?Q?rBvZab96A4zqj/R8l3qBpKx4LRVSbaxkoTOEoNcffw2DU4HLYk8mB9Kk0k1e?=\n\t=?us-ascii?Q?USP2UkyPirVLabNN6yfI17oanDp36JVBZJs4Kdqp1WMImc+2btx5yb18TzCX?=\n\t=?us-ascii?Q?qUF1qddDuAZpsCaw6/LCgj8yjm6s++luJllu7ReM2DHuOXYiZQ3m3AxVRd2m?=\n\t=?us-ascii?Q?VmsPz8wXMUGbcowgKIcgho3WPrQm9/Da0vmrlJpx1K7qx0wfusLhu2Pb/Q8n?=\n\t=?us-ascii?Q?be6m/ICrRPXUvd7rfEOT2bhZKEm7WYGx9FfvEggzocIkyTnDdkOxBV3LN8GO?=\n\t=?us-ascii?Q?aUG7HLDfaCTwV6na2NDbw4SCDhQDAWgDNK2yb2g0+QEh+NhvoTrt4GskKnmU?=\n\t=?us-ascii?Q?ELFwMICcJkAFy2OkT6anvFyUhYVLAK+Fu0/2Qd59eO4//S7ztkmCHU9kNOPW?=\n\t=?us-ascii?Q?ppe3u+W+FG440XUINpNWR0JOJef03DPm47fsf11IyOZb6k6hkTVPiKgXT7mt?=\n\t=?us-ascii?Q?FuduJCzaex60uIjrymqUDlscXpR2RjHLZoT+hz325qrhnf6XxecNAXqllh1W?=\n\t=?us-ascii?Q?+fRu3DV5SYLxtsuiIHlPGElStzKn7SYYT1VVw62TQW38ymgGvnHbKhmbaAi6?=\n\t=?us-ascii?Q?+2NR/ymmGot1njaq3VPPp0s7jyynwIMvgpb5HWQgAiAdgFhz8u/RZI7m5sZ7?=\n\t=?us-ascii?Q?kBdme5BbruwTNk4TR4CWVOaxHF6YhNwBFbHdA9sfiTP+TWXFUD7Bhkud/l/A?=\n\t=?us-ascii?Q?tcvkHVleVQGorvFBs6Fa1ZC5Oo3gfOERqZuza+93v6FcjYmy6DTr2NvyN1fq?=\n\t=?us-ascii?Q?qyTFGyodst4UQ1MBYIRWCWtdrpkds8NlgruC2Ckf8rqYwyE88jGwvLKlDv/+?=\n\t=?us-ascii?Q?VAuDXoDMNQsr3bwwMLgg/gAUUt9OKLDJIXnnFX8sJtLIwTysY6o9oEkm4Fu2?=\n\t=?us-ascii?Q?iYzRydY41OUNNhk+OywienLco8i4IMV/bZAJ+Qs7mcb0cYNXt5Q3Uh8bHrYG?=\n\t=?us-ascii?Q?A+kUIlU8J5+tVmLwSxPWV+shGWD2GUSACHA8qsh/u9HMJ44wiXKPw17Zi+dl?=\n\t=?us-ascii?Q?jSc9799gICk/rfTcPdsu72m3kKmLVW9XKjzDD?=",
            "1; BLUPR0301MB2003;\n\t6:C28AEXMmyhZ5+06xoBXT3u03aodNXFzuhuto1RpBIY67EgGnJ2qcrGi6WKZaOf5oa4Ci3zC8SqURCiQdsjSIOIEG/Tvjg5sWv434qxcm5uEt0g62cqYrfTLqOzvhJtHb2gIZQXRsnYj8wP4m6M7dqlxrYlGJZaA+oRohg5KT1UPg7PasyeL2tqYzSX9JuHqEVTbca/YUp+90GX2VT/h9kJGExOqx7LWFuiHdtdBIXIncYpB6EHUlYU0ZQMvfHVeOrwCNPmeUHGV1yqkXcMJVC82TK4K+SYlBcX7ctqwAFHQ=;\n\t5:rzSFrPrG/2fO9j2W1hP5W/cYKFDvbzvKJ1NfIcfASgJtlPOb4JrASoxRMCo9G3FW+j2wEDxpr2RffqMChryGK3yeZS8T0gfBNK9nVQJJKDsq7ogrMuW57ln2nWFPxY5qgXa/Qz2CUy+plN0tbtkZUzI4s4Ar4RHOfSg+Iqag4Nk=;\n\t24:jozQVJIhmSwS26IMvh+ZfrYXj+QaimgifMCMO7x3pXo7xLeHbEutfhhy16B9yPxP1TyhsotelqAnR8JApNqfbxS9u1DWlaD7OwcIVzX4dEo=;\n\t7:i5KZY1/0U0tpYAxcrqBaJqe6+mXLDNtuWVpG/xYMqL017rMKIIS7WRiMcTlNfc2aqBQ40kdCmWAZdCIEGBKc8PEQ6DAFzkjJeeVcLwSq0mc/7diDXJZWA7aEZpa5PsECSGMxsF4IfLfLjd+OaqgmcFxea2HW8gl5UrYeTQbY+MlDw0D5dX1lvcQ+k1ENl/2dPpncktvVR4vALMz0RiGZLoUmdfS5aumctudrJg9+qvL4OeXfFJqGT8G4+6EgqD/bl1BN74hDAsoIwxXGmrjiYwNj42sV1mhcxXAA1KoG3JAFKGABAo32xzGJHJyiXfdO"
        ],
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-MS-Office365-Filtering-Correlation-Id": "f1d07db0-a188-4fc6-e9d5-08d3e153ab86",
        "X-Microsoft-Antispam": "UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0301MB2003;",
        "X-Microsoft-Antispam-PRVS": "<BLUPR0301MB2003198A5E84E02F42BDDE3990F70@BLUPR0301MB2003.namprd03.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6040176)(601004)(2401047)(13018025)(13017025)(13015025)(13023025)(13024025)(8121501046)(5005006)(3002001)(10201501046)(6055026);\n\tSRVR:BLUPR0301MB2003; BCL:0; PCL:0; RULEID:(400006);\n\tSRVR:BLUPR0301MB2003; ",
        "X-Forefront-PRVS": "0071BFA85B",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "20 Sep 2016 12:43:06.3936\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Id": "5afe0b00-7697-4969-b663-5eab37d5f47e",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;\n\tIp=[192.88.168.50]; \n\tHelo=[tx30smr01.am.freescale.net]",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BLUPR0301MB2003",
        "Subject": "[dpdk-dev] [PATCH v11 21/24] eal/pci: inherit RTE driver in PCI\n\tdriver",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Jan Viktorin <viktorin@rehivetech.com>\n\nRemove the 'name' member from rte_pci_driver and move to generic\nrte_driver.\n\nMost of the PMD drivers were initially using DRIVER_REGISTER_PCI(<name>..)\nas well as assigning a name to eth_driver.pci_drv.name member.\nIn this patch, only the original DRIVER_REGISTER_PCI(<name>..) name has\nbeen populated into the rte_driver.name member - assignments through\neth_driver has been removed.\n\nSigned-off-by: Jan Viktorin <viktorin@rehivetech.com>\n[Shreyansh: Rebase and expand changes to newly added files]\nSigned-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>\n---\n app/test/test_pci.c                     | 10 +++++++---\n app/test/virtual_pmd.c                  |  2 +-\n drivers/crypto/qat/qat_qp.c             |  2 +-\n drivers/net/bnx2x/bnx2x_ethdev.c        |  2 --\n drivers/net/bnx2x/bnx2x_rxtx.c          |  3 ++-\n drivers/net/bnxt/bnxt_ethdev.c          |  1 -\n drivers/net/cxgbe/cxgbe_ethdev.c        |  1 -\n drivers/net/cxgbe/sge.c                 |  7 ++++---\n drivers/net/e1000/em_ethdev.c           |  1 -\n drivers/net/e1000/igb_ethdev.c          |  2 --\n drivers/net/ena/ena_ethdev.c            |  1 -\n drivers/net/enic/enic_ethdev.c          |  1 -\n drivers/net/fm10k/fm10k_ethdev.c        |  1 -\n drivers/net/i40e/i40e_ethdev.c          |  1 -\n drivers/net/i40e/i40e_ethdev_vf.c       |  1 -\n drivers/net/i40e/i40e_fdir.c            |  2 +-\n drivers/net/ixgbe/ixgbe_ethdev.c        |  2 --\n drivers/net/mlx4/mlx4.c                 |  4 +++-\n drivers/net/mlx5/mlx5.c                 |  4 +++-\n drivers/net/nfp/nfp_net.c               |  5 ++---\n drivers/net/qede/qede_ethdev.c          |  2 --\n drivers/net/szedata2/rte_eth_szedata2.c |  1 -\n drivers/net/thunderx/nicvf_ethdev.c     |  1 -\n drivers/net/virtio/virtio_ethdev.c      |  3 +--\n drivers/net/vmxnet3/vmxnet3_ethdev.c    |  4 ++--\n drivers/net/vmxnet3/vmxnet3_rxtx.c      |  2 +-\n lib/librte_cryptodev/rte_cryptodev.c    |  4 ++--\n lib/librte_eal/common/eal_common_pci.c  |  4 ++--\n lib/librte_eal/common/include/rte_pci.h |  4 ++--\n lib/librte_ether/rte_ethdev.c           |  6 +++---\n 30 files changed, 37 insertions(+), 47 deletions(-)",
    "diff": "diff --git a/app/test/test_pci.c b/app/test/test_pci.c\nindex f1b988a..cda186d 100644\n--- a/app/test/test_pci.c\n+++ b/app/test/test_pci.c\n@@ -78,14 +78,18 @@ struct rte_pci_id my_driver_id2[] = {\n };\n \n struct rte_pci_driver my_driver = {\n-\t.name = \"test_driver\",\n+\t.driver = {\n+\t\t.name = \"test_driver\"\n+\t},\n \t.probe = my_driver_init,\n \t.id_table = my_driver_id,\n \t.drv_flags = 0,\n };\n \n struct rte_pci_driver my_driver2 = {\n-\t.name = \"test_driver2\",\n+\t.driver = {\n+\t\t.name = \"test_driver2\"\n+\t},\n \t.probe = my_driver_init,\n \t.id_table = my_driver_id2,\n \t.drv_flags = 0,\n@@ -95,7 +99,7 @@ static int\n my_driver_init(__attribute__((unused)) struct rte_pci_driver *dr,\n \t       struct rte_pci_device *dev)\n {\n-\tprintf(\"My driver init called in %s\\n\", dr->name);\n+\tprintf(\"My driver init called in %s\\n\", dr->driver.name);\n \tprintf(\"%x:%x:%x.%d\", dev->addr.domain, dev->addr.bus,\n \t       dev->addr.devid, dev->addr.function);\n \tprintf(\" - vendor:%x device:%x\\n\", dev->id.vendor_id, dev->id.device_id);\ndiff --git a/app/test/virtual_pmd.c b/app/test/virtual_pmd.c\nindex 8a1f0d0..56eeb99 100644\n--- a/app/test/virtual_pmd.c\n+++ b/app/test/virtual_pmd.c\n@@ -586,7 +586,7 @@ virtual_ethdev_create(const char *name, struct ether_addr *mac_addr,\n \t\tgoto err;\n \n \tpci_dev->numa_node = socket_id;\n-\tpci_drv->name = virtual_ethdev_driver_name;\n+\tpci_drv->driver.name = virtual_ethdev_driver_name;\n \tpci_drv->id_table = id_table;\n \n \tif (isr_support)\ndiff --git a/drivers/crypto/qat/qat_qp.c b/drivers/crypto/qat/qat_qp.c\nindex 5de47e3..2e7188b 100644\n--- a/drivers/crypto/qat/qat_qp.c\n+++ b/drivers/crypto/qat/qat_qp.c\n@@ -300,7 +300,7 @@ qat_queue_create(struct rte_cryptodev *dev, struct qat_queue *queue,\n \t * Allocate a memzone for the queue - create a unique name.\n \t */\n \tsnprintf(queue->memz_name, sizeof(queue->memz_name), \"%s_%s_%d_%d_%d\",\n-\t\tdev->driver->pci_drv.name, \"qp_mem\", dev->data->dev_id,\n+\t\tdev->driver->pci_drv.driver.name, \"qp_mem\", dev->data->dev_id,\n \t\tqueue->hw_bundle_number, queue->hw_queue_number);\n \tqp_mz = queue_dma_zone_reserve(queue->memz_name, queue_size_bytes,\n \t\t\tsocket_id);\ndiff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c\nindex 7d9ecdf..e38c238 100644\n--- a/drivers/net/bnx2x/bnx2x_ethdev.c\n+++ b/drivers/net/bnx2x/bnx2x_ethdev.c\n@@ -618,7 +618,6 @@ eth_bnx2xvf_dev_init(struct rte_eth_dev *eth_dev)\n \n static struct eth_driver rte_bnx2x_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_bnx2x_pmd\",\n \t\t.id_table = pci_id_bnx2x_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,\n \t\t.probe = rte_eth_dev_pci_probe,\n@@ -633,7 +632,6 @@ static struct eth_driver rte_bnx2x_pmd = {\n  */\n static struct eth_driver rte_bnx2xvf_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_bnx2xvf_pmd\",\n \t\t.id_table = pci_id_bnx2xvf_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING,\n \t\t.probe = rte_eth_dev_pci_probe,\ndiff --git a/drivers/net/bnx2x/bnx2x_rxtx.c b/drivers/net/bnx2x/bnx2x_rxtx.c\nindex 0ec4f89..7adea99 100644\n--- a/drivers/net/bnx2x/bnx2x_rxtx.c\n+++ b/drivers/net/bnx2x/bnx2x_rxtx.c\n@@ -19,7 +19,8 @@ ring_dma_zone_reserve(struct rte_eth_dev *dev, const char *ring_name,\n \tconst struct rte_memzone *mz;\n \n \tsnprintf(z_name, sizeof(z_name), \"%s_%s_%d_%d\",\n-\t\t\tdev->driver->pci_drv.name, ring_name, dev->data->port_id, queue_id);\n+\t\t\tdev->driver->pci_drv.driver.name, ring_name,\n+\t\t\tdev->data->port_id, queue_id);\n \n \tmz = rte_memzone_lookup(z_name);\n \tif (mz)\ndiff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex d389fc8..aee2db8 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -1045,7 +1045,6 @@ bnxt_dev_uninit(struct rte_eth_dev *eth_dev) {\n \n static struct eth_driver bnxt_rte_pmd = {\n \t.pci_drv = {\n-\t\t    .name = \"rte_\" DRV_MODULE_NAME \"_pmd\",\n \t\t    .id_table = bnxt_pci_id_map,\n \t\t    .drv_flags = RTE_PCI_DRV_NEED_MAPPING,\n \t\t    .probe = rte_eth_dev_pci_probe,\ndiff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c\nindex bb929a9..d3ff94a 100644\n--- a/drivers/net/cxgbe/cxgbe_ethdev.c\n+++ b/drivers/net/cxgbe/cxgbe_ethdev.c\n@@ -1039,7 +1039,6 @@ out_free_adapter:\n \n static struct eth_driver rte_cxgbe_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_cxgbe_pmd\",\n \t\t.id_table = cxgb4_pci_tbl,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,\n \t\t.probe = rte_eth_dev_pci_probe,\ndiff --git a/drivers/net/cxgbe/sge.c b/drivers/net/cxgbe/sge.c\nindex ab5a842..736f08c 100644\n--- a/drivers/net/cxgbe/sge.c\n+++ b/drivers/net/cxgbe/sge.c\n@@ -1645,7 +1645,8 @@ int t4_sge_alloc_rxq(struct adapter *adap, struct sge_rspq *iq, bool fwevtq,\n \tiq->size = cxgbe_roundup(iq->size, 16);\n \n \tsnprintf(z_name, sizeof(z_name), \"%s_%s_%d_%d\",\n-\t\t eth_dev->driver->pci_drv.name, fwevtq ? \"fwq_ring\" : \"rx_ring\",\n+\t\t eth_dev->driver->pci_drv.driver.name,\n+\t\t fwevtq ? \"fwq_ring\" : \"rx_ring\",\n \t\t eth_dev->data->port_id, queue_id);\n \tsnprintf(z_name_sw, sizeof(z_name_sw), \"%s_sw_ring\", z_name);\n \n@@ -1697,7 +1698,7 @@ int t4_sge_alloc_rxq(struct adapter *adap, struct sge_rspq *iq, bool fwevtq,\n \t\tfl->size = cxgbe_roundup(fl->size, 8);\n \n \t\tsnprintf(z_name, sizeof(z_name), \"%s_%s_%d_%d\",\n-\t\t\t eth_dev->driver->pci_drv.name,\n+\t\t\t eth_dev->driver->pci_drv.driver.name,\n \t\t\t fwevtq ? \"fwq_ring\" : \"fl_ring\",\n \t\t\t eth_dev->data->port_id, queue_id);\n \t\tsnprintf(z_name_sw, sizeof(z_name_sw), \"%s_sw_ring\", z_name);\n@@ -1893,7 +1894,7 @@ int t4_sge_alloc_eth_txq(struct adapter *adap, struct sge_eth_txq *txq,\n \tnentries = txq->q.size + s->stat_len / sizeof(struct tx_desc);\n \n \tsnprintf(z_name, sizeof(z_name), \"%s_%s_%d_%d\",\n-\t\t eth_dev->driver->pci_drv.name, \"tx_ring\",\n+\t\t eth_dev->driver->pci_drv.driver.name, \"tx_ring\",\n \t\t eth_dev->data->port_id, queue_id);\n \tsnprintf(z_name_sw, sizeof(z_name_sw), \"%s_sw_ring\", z_name);\n \ndiff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c\nindex d4914a5..f767e1c 100644\n--- a/drivers/net/e1000/em_ethdev.c\n+++ b/drivers/net/e1000/em_ethdev.c\n@@ -391,7 +391,6 @@ eth_em_dev_uninit(struct rte_eth_dev *eth_dev)\n \n static struct eth_driver rte_em_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_em_pmd\",\n \t\t.id_table = pci_id_em_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |\n \t\t\tRTE_PCI_DRV_DETACHABLE,\ndiff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c\nindex c54c8e8..5a1a83e 100644\n--- a/drivers/net/e1000/igb_ethdev.c\n+++ b/drivers/net/e1000/igb_ethdev.c\n@@ -1078,7 +1078,6 @@ eth_igbvf_dev_uninit(struct rte_eth_dev *eth_dev)\n \n static struct eth_driver rte_igb_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_igb_pmd\",\n \t\t.id_table = pci_id_igb_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |\n \t\t\tRTE_PCI_DRV_DETACHABLE,\n@@ -1095,7 +1094,6 @@ static struct eth_driver rte_igb_pmd = {\n  */\n static struct eth_driver rte_igbvf_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_igbvf_pmd\",\n \t\t.id_table = pci_id_igbvf_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_DETACHABLE,\n \t\t.probe = rte_eth_dev_pci_probe,\ndiff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c\nindex 85c5086..6efd801 100644\n--- a/drivers/net/ena/ena_ethdev.c\n+++ b/drivers/net/ena/ena_ethdev.c\n@@ -1686,7 +1686,6 @@ static uint16_t eth_ena_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,\n \n static struct eth_driver rte_ena_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_ena_pmd\",\n \t\t.id_table = pci_id_ena_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING,\n \t\t.probe = rte_eth_dev_pci_probe,\ndiff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c\nindex 9006197..2ac0476 100644\n--- a/drivers/net/enic/enic_ethdev.c\n+++ b/drivers/net/enic/enic_ethdev.c\n@@ -613,7 +613,6 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)\n \n static struct eth_driver rte_enic_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_enic_pmd\",\n \t\t.id_table = pci_id_enic_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING,\n \t\t.probe = rte_eth_dev_pci_probe,\ndiff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c\nindex 8d55c43..71d35f7 100644\n--- a/drivers/net/fm10k/fm10k_ethdev.c\n+++ b/drivers/net/fm10k/fm10k_ethdev.c\n@@ -3055,7 +3055,6 @@ static const struct rte_pci_id pci_id_fm10k_map[] = {\n \n static struct eth_driver rte_pmd_fm10k = {\n \t.pci_drv = {\n-\t\t.name = \"rte_pmd_fm10k\",\n \t\t.id_table = pci_id_fm10k_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |\n \t\t\tRTE_PCI_DRV_DETACHABLE,\ndiff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c\nindex 56bd2c6..5564e82 100644\n--- a/drivers/net/i40e/i40e_ethdev.c\n+++ b/drivers/net/i40e/i40e_ethdev.c\n@@ -663,7 +663,6 @@ static const struct rte_i40e_xstats_name_off rte_i40e_txq_prio_strings[] = {\n \n static struct eth_driver rte_i40e_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_i40e_pmd\",\n \t\t.id_table = pci_id_i40e_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |\n \t\t\tRTE_PCI_DRV_DETACHABLE,\ndiff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c\nindex 8177626..34eb274 100644\n--- a/drivers/net/i40e/i40e_ethdev_vf.c\n+++ b/drivers/net/i40e/i40e_ethdev_vf.c\n@@ -1554,7 +1554,6 @@ i40evf_dev_uninit(struct rte_eth_dev *eth_dev)\n  */\n static struct eth_driver rte_i40evf_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_i40evf_pmd\",\n \t\t.id_table = pci_id_i40evf_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_DETACHABLE,\n \t\t.probe = rte_eth_dev_pci_probe,\ndiff --git a/drivers/net/i40e/i40e_fdir.c b/drivers/net/i40e/i40e_fdir.c\nindex f65c411..a4efc6d 100644\n--- a/drivers/net/i40e/i40e_fdir.c\n+++ b/drivers/net/i40e/i40e_fdir.c\n@@ -251,7 +251,7 @@ i40e_fdir_setup(struct i40e_pf *pf)\n \n \t/* reserve memory for the fdir programming packet */\n \tsnprintf(z_name, sizeof(z_name), \"%s_%s_%d\",\n-\t\t\teth_dev->driver->pci_drv.name,\n+\t\t\teth_dev->driver->pci_drv.driver.name,\n \t\t\tI40E_FDIR_MZ_NAME,\n \t\t\teth_dev->data->port_id);\n \tmz = i40e_memzone_reserve(z_name, I40E_FDIR_PKT_LEN, SOCKET_ID_ANY);\ndiff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c\nindex 4b9e3d4..fbe1756 100644\n--- a/drivers/net/ixgbe/ixgbe_ethdev.c\n+++ b/drivers/net/ixgbe/ixgbe_ethdev.c\n@@ -1562,7 +1562,6 @@ eth_ixgbevf_dev_uninit(struct rte_eth_dev *eth_dev)\n \n static struct eth_driver rte_ixgbe_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_ixgbe_pmd\",\n \t\t.id_table = pci_id_ixgbe_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |\n \t\t\tRTE_PCI_DRV_DETACHABLE,\n@@ -1579,7 +1578,6 @@ static struct eth_driver rte_ixgbe_pmd = {\n  */\n static struct eth_driver rte_ixgbevf_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_ixgbevf_pmd\",\n \t\t.id_table = pci_id_ixgbevf_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_DETACHABLE,\n \t\t.probe = rte_eth_dev_pci_probe,\ndiff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c\nindex 6efea24..e952bd8 100644\n--- a/drivers/net/mlx4/mlx4.c\n+++ b/drivers/net/mlx4/mlx4.c\n@@ -5911,7 +5911,9 @@ static const struct rte_pci_id mlx4_pci_id_map[] = {\n \n static struct eth_driver mlx4_driver = {\n \t.pci_drv = {\n-\t\t.name = MLX4_DRIVER_NAME,\n+\t\t.driver = {\n+\t\t\t.name = MLX4_DRIVER_NAME\n+\t\t},\n \t\t.id_table = mlx4_pci_id_map,\n \t\t.probe = mlx4_pci_probe,\n \t\t.drv_flags = RTE_PCI_DRV_INTR_LSC,\ndiff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c\nindex f1de40a..16f9891 100644\n--- a/drivers/net/mlx5/mlx5.c\n+++ b/drivers/net/mlx5/mlx5.c\n@@ -728,7 +728,9 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {\n \n static struct eth_driver mlx5_driver = {\n \t.pci_drv = {\n-\t\t.name = MLX5_DRIVER_NAME,\n+\t\t.driver = {\n+\t\t\t.name = MLX5_DRIVER_NAME\n+\t\t},\n \t\t.id_table = mlx5_pci_id_map,\n \t\t.probe = mlx5_pci_probe,\n \t\t.drv_flags = RTE_PCI_DRV_INTR_LSC,\ndiff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c\nindex e140074..d43db47 100644\n--- a/drivers/net/nfp/nfp_net.c\n+++ b/drivers/net/nfp/nfp_net.c\n@@ -214,7 +214,7 @@ ring_dma_zone_reserve(struct rte_eth_dev *dev, const char *ring_name,\n \tconst struct rte_memzone *mz;\n \n \tsnprintf(z_name, sizeof(z_name), \"%s_%s_%d_%d\",\n-\t\t dev->driver->pci_drv.name,\n+\t\t dev->driver->pci_drv.driver.name,\n \t\t ring_name, dev->data->port_id, queue_id);\n \n \tmz = rte_memzone_lookup(z_name);\n@@ -1000,7 +1000,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n \n-\tdev_info->driver_name = dev->driver->pci_drv.name;\n+\tdev_info->driver_name = dev->driver->pci_drv.driver.name;\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 = ETHER_MIN_MTU;\n@@ -2460,7 +2460,6 @@ static struct rte_pci_id pci_id_nfp_net_map[] = {\n \n static struct eth_driver rte_nfp_net_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_nfp_net_pmd\",\n \t\t.id_table = pci_id_nfp_net_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |\n \t\t\t     RTE_PCI_DRV_DETACHABLE,\ndiff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c\nindex 696a32b..d00c1d9 100644\n--- a/drivers/net/qede/qede_ethdev.c\n+++ b/drivers/net/qede/qede_ethdev.c\n@@ -1478,7 +1478,6 @@ static struct rte_pci_id pci_id_qede_map[] = {\n \n static struct eth_driver rte_qedevf_pmd = {\n \t.pci_drv = {\n-\t\t    .name = \"rte_qedevf_pmd\",\n \t\t    .id_table = pci_id_qedevf_map,\n \t\t    .drv_flags =\n \t\t    RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,\n@@ -1492,7 +1491,6 @@ static struct eth_driver rte_qedevf_pmd = {\n \n static struct eth_driver rte_qede_pmd = {\n \t.pci_drv = {\n-\t\t    .name = \"rte_qede_pmd\",\n \t\t    .id_table = pci_id_qede_map,\n \t\t    .drv_flags =\n \t\t    RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,\ndiff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c\nindex f117220..f4ec5ea 100644\n--- a/drivers/net/szedata2/rte_eth_szedata2.c\n+++ b/drivers/net/szedata2/rte_eth_szedata2.c\n@@ -1572,7 +1572,6 @@ static const struct rte_pci_id rte_szedata2_pci_id_table[] = {\n \n static struct eth_driver szedata2_eth_driver = {\n \t.pci_drv = {\n-\t\t.name     = RTE_SZEDATA2_PCI_DRIVER_NAME,\n \t\t.id_table = rte_szedata2_pci_id_table,\n \t\t.probe = rte_eth_dev_pci_probe,\n \t\t.remove = rte_eth_dev_pci_remove,\ndiff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c\nindex 9ccf59e..d98a537 100644\n--- a/drivers/net/thunderx/nicvf_ethdev.c\n+++ b/drivers/net/thunderx/nicvf_ethdev.c\n@@ -1759,7 +1759,6 @@ static const struct rte_pci_id pci_id_nicvf_map[] = {\n \n static struct eth_driver rte_nicvf_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_nicvf_pmd\",\n \t\t.id_table = pci_id_nicvf_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,\n \t\t.probe = rte_eth_dev_pci_probe,\ndiff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c\nindex 1c2bf01..b05bb40 100644\n--- a/drivers/net/virtio/virtio_ethdev.c\n+++ b/drivers/net/virtio/virtio_ethdev.c\n@@ -1304,7 +1304,6 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)\n \n static struct eth_driver rte_virtio_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_virtio_pmd\",\n \t\t.id_table = pci_id_virtio_map,\n \t\t.drv_flags = RTE_PCI_DRV_DETACHABLE,\n \t\t.probe = rte_eth_dev_pci_probe,\n@@ -1534,7 +1533,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \tstruct virtio_hw *hw = dev->data->dev_private;\n \n \tif (dev->pci_dev)\n-\t\tdev_info->driver_name = dev->driver->pci_drv.name;\n+\t\tdev_info->driver_name = dev->driver->pci_drv.driver.name;\n \telse\n \t\tdev_info->driver_name = \"virtio_user PMD\";\n \tdev_info->max_rx_queues = (uint16_t)hw->max_rx_queues;\ndiff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c\nindex f15cda5..fa49759 100644\n--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c\n+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c\n@@ -137,7 +137,8 @@ gpa_zone_reserve(struct rte_eth_dev *dev, uint32_t size,\n \tconst struct rte_memzone *mz;\n \n \tsnprintf(z_name, sizeof(z_name), \"%s_%d_%s\",\n-\t\t\t\t\tdev->driver->pci_drv.name, dev->data->port_id, post_string);\n+\t\t\t\t\tdev->driver->pci_drv.driver.name,\n+\t\t\t\t\tdev->data->port_id, post_string);\n \n \tmz = rte_memzone_lookup(z_name);\n \tif (mz)\n@@ -328,7 +329,6 @@ eth_vmxnet3_dev_uninit(struct rte_eth_dev *eth_dev)\n \n static struct eth_driver rte_vmxnet3_pmd = {\n \t.pci_drv = {\n-\t\t.name = \"rte_vmxnet3_pmd\",\n \t\t.id_table = pci_id_vmxnet3_map,\n \t\t.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_DETACHABLE,\n \t\t.probe = rte_eth_dev_pci_probe,\ndiff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c\nindex f97f4d0..42c9d95 100644\n--- a/drivers/net/vmxnet3/vmxnet3_rxtx.c\n+++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c\n@@ -773,7 +773,7 @@ ring_dma_zone_reserve(struct rte_eth_dev *dev, const char *ring_name,\n \tconst struct rte_memzone *mz;\n \n \tsnprintf(z_name, sizeof(z_name), \"%s_%s_%d_%d\",\n-\t\t\tdev->driver->pci_drv.name, ring_name,\n+\t\t\tdev->driver->pci_drv.driver.name, ring_name,\n \t\t\tdev->data->port_id, queue_id);\n \n \tmz = rte_memzone_lookup(z_name);\ndiff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c\nindex 17e4502..127e8d0 100644\n--- a/lib/librte_cryptodev/rte_cryptodev.c\n+++ b/lib/librte_cryptodev/rte_cryptodev.c\n@@ -458,7 +458,7 @@ rte_cryptodev_pci_probe(struct rte_pci_driver *pci_drv,\n \t\treturn 0;\n \n \tCDEV_LOG_ERR(\"driver %s: crypto_dev_init(vendor_id=0x%x device_id=0x%x)\"\n-\t\t\t\" failed\", pci_drv->name,\n+\t\t\t\" failed\", pci_drv->driver.name,\n \t\t\t(unsigned) pci_dev->id.vendor_id,\n \t\t\t(unsigned) pci_dev->id.device_id);\n \n@@ -869,7 +869,7 @@ rte_cryptodev_info_get(uint8_t dev_id, struct rte_cryptodev_info *dev_info)\n \n \tdev_info->pci_dev = dev->pci_dev;\n \tif (dev->driver)\n-\t\tdev_info->driver_name = dev->driver->pci_drv.name;\n+\t\tdev_info->driver_name = dev->driver->pci_drv.driver.name;\n }\n \n \ndiff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c\nindex bef7ee8..79f5526 100644\n--- a/lib/librte_eal/common/eal_common_pci.c\n+++ b/lib/librte_eal/common/eal_common_pci.c\n@@ -195,7 +195,7 @@ rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr, struct rte_pci_device *d\n \t\t}\n \n \t\tRTE_LOG(INFO, EAL, \"  probe driver: %x:%x %s\\n\", dev->id.vendor_id,\n-\t\t\t\tdev->id.device_id, dr->name);\n+\t\t\t\tdev->id.device_id, dr->driver.name);\n \n \t\tif (dr->drv_flags & RTE_PCI_DRV_NEED_MAPPING) {\n \t\t\t/* map resources for devices that use igb_uio */\n@@ -255,7 +255,7 @@ rte_eal_pci_detach_dev(struct rte_pci_driver *dr,\n \t\t\t\tloc->function, dev->numa_node);\n \n \t\tRTE_LOG(DEBUG, EAL, \"  remove driver: %x:%x %s\\n\", dev->id.vendor_id,\n-\t\t\t\tdev->id.device_id, dr->name);\n+\t\t\t\tdev->id.device_id, dr->driver.name);\n \n \t\tif (dr->remove && (dr->remove(dev) < 0))\n \t\t\treturn -1;\t/* negative value is an error */\ndiff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h\nindex 67f6ee7..f0a9ea2 100644\n--- a/lib/librte_eal/common/include/rte_pci.h\n+++ b/lib/librte_eal/common/include/rte_pci.h\n@@ -200,7 +200,7 @@ typedef int (pci_remove_t)(struct rte_pci_device *);\n  */\n struct rte_pci_driver {\n \tTAILQ_ENTRY(rte_pci_driver) next;       /**< Next in list. */\n-\tconst char *name;                       /**< Driver name. */\n+\tstruct rte_driver driver;               /**< Inherit core driver. */\n \tpci_probe_t *probe;                     /**< Device Probe function. */\n \tpci_remove_t *remove;                   /**< Device Remove function. */\n \tconst struct rte_pci_id *id_table;\t/**< ID table, NULL terminated. */\n@@ -492,7 +492,7 @@ void rte_eal_pci_register(struct rte_pci_driver *driver);\n RTE_INIT(pciinitfn_ ##nm); \\\n static void pciinitfn_ ##nm(void) \\\n {\\\n-\t(pci_drv).name = RTE_STR(nm);\\\n+\t(pci_drv).driver.name = RTE_STR(nm);\\\n \trte_eal_pci_register(&pci_drv); \\\n } \\\n DRIVER_EXPORT_NAME(nm, __COUNTER__)\ndiff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c\nindex cc2f921..a88a05d 100644\n--- a/lib/librte_ether/rte_ethdev.c\n+++ b/lib/librte_ether/rte_ethdev.c\n@@ -275,7 +275,7 @@ rte_eth_dev_pci_probe(struct rte_pci_driver *pci_drv,\n \t\treturn 0;\n \n \tRTE_PMD_DEBUG_TRACE(\"driver %s: eth_dev_init(vendor_id=0x%u device_id=0x%x) failed\\n\",\n-\t\t\tpci_drv->name,\n+\t\t\tpci_drv->driver.name,\n \t\t\t(unsigned) pci_dev->id.vendor_id,\n \t\t\t(unsigned) pci_dev->id.device_id);\n \tif (rte_eal_process_type() == RTE_PROC_PRIMARY)\n@@ -2568,7 +2568,7 @@ rte_eth_dma_zone_reserve(const struct rte_eth_dev *dev, const char *ring_name,\n \tconst struct rte_memzone *mz;\n \n \tsnprintf(z_name, sizeof(z_name), \"%s_%s_%d_%d\",\n-\t\t dev->driver->pci_drv.name, ring_name,\n+\t\t dev->driver->pci_drv.driver.name, ring_name,\n \t\t dev->data->port_id, queue_id);\n \n \tmz = rte_memzone_lookup(z_name);\n@@ -3210,7 +3210,7 @@ rte_eth_copy_pci_info(struct rte_eth_dev *eth_dev, struct rte_pci_device *pci_de\n \n \teth_dev->data->kdrv = pci_dev->kdrv;\n \teth_dev->data->numa_node = pci_dev->numa_node;\n-\teth_dev->data->drv_name = pci_dev->driver->name;\n+\teth_dev->data->drv_name = pci_dev->driver->driver.name;\n }\n \n int\n",
    "prefixes": [
        "dpdk-dev",
        "v11",
        "21/24"
    ]
}