From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <shreyansh.jain@nxp.com>
Received: from NAM02-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam02on0074.outbound.protection.outlook.com [104.47.36.74])
 by dpdk.org (Postfix) with ESMTP id DC856FA4B
 for <dev@dpdk.org>; Fri, 16 Dec 2016 14:09:28 +0100 (CET)
Received: from CY4PR03CA0005.namprd03.prod.outlook.com (10.168.162.15) by
 CY4PR03MB2470.namprd03.prod.outlook.com (10.168.163.148) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id
 15.1.771.8; Fri, 16 Dec 2016 13:09:27 +0000
Received: from BL2FFO11FD039.protection.gbl (2a01:111:f400:7c09::126) by
 CY4PR03CA0005.outlook.office365.com (2603:10b6:903:33::15) with Microsoft
 SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14 via
 Frontend Transport; Fri, 16 Dec 2016 13:09:27 +0000
Authentication-Results: spf=fail (sender IP is 192.88.168.50)
 smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)
 header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;nxp.com;
 dkim=none (message not signed) header.d=none;
Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not
 designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; 
 client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net;
Received: from tx30smr01.am.freescale.net (192.88.168.50) by
 BL2FFO11FD039.mail.protection.outlook.com (10.173.161.135) with Microsoft
 SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id
 15.1.761.6 via Frontend Transport; Fri, 16 Dec 2016 13:09:26 +0000
X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:;
 SizeAsReceived:822; Count:10
Received: from Tophie.ap.freescale.net ([10.232.14.87])
 by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id uBGD8BtN028345;
 Fri, 16 Dec 2016 06:09:23 -0700
From: Shreyansh Jain <shreyansh.jain@nxp.com>
To: <dev@dpdk.org>, <david.marchand@6wind.com>
CC: <thomas.monjalon@6wind.com>, <ferruh.yigit@intel.com>,
 <jianbo.liu@linaro.org>, Shreyansh Jain <shreyansh.jain@nxp.com>
Date: Fri, 16 Dec 2016 18:40:53 +0530
Message-ID: <1481893853-31790-13-git-send-email-shreyansh.jain@nxp.com>
X-Mailer: git-send-email 2.7.4
In-Reply-To: <1481893853-31790-1-git-send-email-shreyansh.jain@nxp.com>
References: <1481636232-2300-1-git-send-email-shreyansh.jain@nxp.com>
 <1481893853-31790-1-git-send-email-shreyansh.jain@nxp.com>
X-IncomingHeaderCount: 10
X-EOPAttributedMessage: 0
X-Matching-Connectors: 131263673671788999;
 (91ab9b29-cfa4-454e-5278-08d120cd25b8); ()
X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;
 SFV:NSPM;
 SFS:(10009020)(6009001)(336005)(7916002)(39860400002)(39400400002)(39410400002)(39380400002)(39840400002)(39450400003)(39850400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(4326007)(47776003)(5003940100001)(6666003)(2906002)(356003)(2950100002)(5660300001)(626004)(104016004)(76176999)(50986999)(48376002)(105606002)(68736007)(106466001)(50466002)(77096006)(305945005)(38730400001)(5001770100001)(92566002)(97736004)(33646002)(189998001)(8936002)(50226002)(36756003)(86362001)(575784001)(8666005)(85426001)(8676002)(81156014)(81166006)(7059030)(21314002)(2101003);
 DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB2470; H:tx30smr01.am.freescale.net;
 FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; 
X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD039;
 1:ZExTxBMYvGYAzC0ZlOXEmGkqh3RvI/oLiOqhuzdHCSzr9BXIjTldsrgix/bfHthkl4qtVEhCo0X2LJ1MYAyyRNoB0S7J2PIZfXCHQU8YwsOZSpLVNUB2jlgObORATrnRNA5jqyQKNZLIZcip2+0m6zs/VzMsTwlCTUtp5xE8TUm02ezX3S45Na9pstNM5ZJ32ildhQPTZgTmIrviXueyJg+8jO8y/xHYhDC6Gz7ygjvFKqkkyHdc5zjDd1hEdXVN4ci4QzAzf6Kdxh1xMkCTg+swSVpZU4cwC8zkXEkhVFB6fZf8SjbS916qWYLpDUM3uc+UNics6ReJXKI4c8AGA8ILTvgd0ykzeYK3MMVNVpoV6SnSHzF3vPEe6Dn77CYzHZrsflpyNV/aukRfOkjGSmbEh8XgEnCEJ7GSp8p5QK8swLvc4bHus8lvunIRBr3NdUxd1aNzckIUSkahW3wVipX4RzFKcCugWCRQq0r8Ae6qHe/VIqmdOJtujI2b4aQsDhZxegM5IDD7tgl9e7YReTuf1wS9iE3PtSYhEWEQ0yCWR3sGwP5lmU9biRYUBb+gKd+OJPYzY1hOcWOLjYto2zY9HKQV0jAd8unTuKcp5odTMU7zzFogy2CaCVcAppFdXXyd38J8UR823YFrbt0lfUSyiIU2tvMgjzNusCo2/t5rtSp0QuecabmN+x/YnKG4cxHv/q44CYOfJ+tNx6L+jIU5snQLLVb/MtOFuiRfB/qXnrpTc94v+PTBr747FEB2GsledfmHZy64uhb0nrCJBQ==
MIME-Version: 1.0
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: c7fc536d-9c4e-4ca7-4868-08d425b4c393
X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY4PR03MB2470;
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2470;
 3:mLlXZtHD9iw+/iHZwkR49t1WH72ZrzO/Q61eu5BPSJKwLZsJC8IiHgFXmKJhe2l+j+41A3ifXbHYI92b1mBplW8NEBSUsgegoznXrbiJF1UG1bIYxyjbJzDHnjTnEue9b7xqPEhEm1zekdgPddKBS8ephVgGGCDr9e8UTK5Qj7FKUvYgHqprYP7ife2Mc6VEK8XeBbYJeZDjEAzoB/rXzGu7aEzIWi1BnWMbH2WFWUBhEeG0zJ2igvd+R3DvwbtziWuIWyAsQ8t6Em9vh7gSK4CgADH3/58Ztx33ig+s2bMlDmdJOa12LF5Uf8dxX5axR651VtywB2dPtFocLg1OUeUmkF4LkQQQlyZj86iyRC9HuWUtApCkGeS5qXZVrtCc;
 25:jZLHw4T9RCtvZR0O7ifnOB/eQXH1b6nErUn6tf6x6r3cxbFT54iNYbS6q7njo7fS9hdxL+1DOn25az0FGXwWPoV8ZFzYioswxmxbkFG0om4FUzfYzDXHJS5uU3edzSPFgt9Ah3dJiSo6CVsquaRFuBzttY25jgZL3NYwfe2VS56CNV2W0JsR9NtaFcWzCbc2vwfdV5aZxGGpo/pNlTaCyPyJOEGJtUiHRPvTVzeKWumj2lQoa7sy6b7Zhvq0Bzu3sF3t+bOh79F0tfPxXqWs1ylg4HNVY8dTa6qLSfIZ9jS7mEFbjDxWszZ57FrL3Uznu+3ngjBmDb24v7dRn14SYmwk4gJR9imU5twdWgpngH3Kqkr41PPVbRX9NCWhuXPcEj6R/QwfgZ65Kq9HcXiwUYZI4QD33BJHM2DOc0RHyfrVtpbWNj/0HfLCn1sZBb5lgW6fPHeYOivG32CrGBI/1w==
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2470;
 31:d4frWLMGfG+vNTYqy0VD1HhYvnDjSt6oPjx+ILtjpRUK44J1yRfhDQBX1kNpRjca4W5uNwPXcb17h1MF6F9dmluj1b1+k5pimK+frDQLT0yZfl/refiVfyfL4yH+D002qcoLcJtI2CoxZyRL83+0Pk1MUGucIdenwAVOfJM6+aakW9FERTAfiWgBrTO4+0y6p2Mt3rkcm+nM9ly1Iow18OA094r6KI+/GekGb2sSGmP/AangnZz3HRwClU6uRaQbn4n/ISMwNeovPKc6UjaGhQ==
X-Microsoft-Antispam-PRVS: <CY4PR03MB24701F1F939FAC761731ACFB909C0@CY4PR03MB2470.namprd03.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(185117386973197);
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(6095060)(601004)(2401047)(13017025)(13018025)(13015025)(13024025)(13023025)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6096035)(20161123563025)(20161123565025)(20161123556025)(20161123559025)(20161123561025);
 SRVR:CY4PR03MB2470; BCL:0; PCL:0; RULEID:(400006); SRVR:CY4PR03MB2470; 
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2470;
 4:3vdp47ERDFhPNTKNiP8FU2h6gj/21wT6vPZkkS+PQ88hWG5dKxXMQGVh9AtlAn/cFLt21S5nhsPHk8V+ZJ/gqah6qPai2s+wGhVGpTIbvXu7MdmvCzdLXUJd4tnYuGCBJ/nVTAFZS9nMn7wP0egLOauWqC82g475l1hW5AmFe+ib9gItC5MzM1S9R2W9HpvBta27qSua3BNYCPFCC4iL6e+7l2t8Y0kwyI81RzuJa7Nsy1hZiXOV0suAI25F33yPeoDQLQBVmq+Ob/7PJM1LdLQEn1zX8EpUB0Y41stRPH2xRpTdVFwcNkeLOrZCzYkW4TjevHv3PtCOo42p1MYBcuCN+qONT34TU4M6X6DNgpfIAeU9g+UC+CjjmrXWuA3yo/VQ95tZkyWa31rK7rwixQhG7FfRXqdvAuBtJxgEAN7xJ2c7EWrXnKCbvE8mM+qgKIrCfkItQVVKU8uyYH+DiK3+3yXOub3WBJdSj7RL1+mNr5Pj9s9MQy3PE/qu7dm9pBRKU5kuD4IYIZHQsMAXterkrfM3iR/9K/te4NZbVjKmloYGlx/UH27PXNr3x+d5972+v/P9hATtDd7pyNdrmSBLqZ0IL+d9EzNW0mqMxGeljI/a4/J8OVktOeP/9oAyuzkOdAKQfS037jukNng6jlVp50vIEOtKNt5Y/FGv1F6bmQd1CPR3DIu1+xy+cpfoBYm7ZS6/8IM1MLSfZCOp2QvfvotjqMALikKag0rUg9FOnJrxmauLF5Q4QM4eh/LW
X-Forefront-PRVS: 01583E185C
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB2470;
 23:NWXaM6DpDaz/pUg7R8TgrYr/AKr9M5B0E9new+NwY?=
 =?us-ascii?Q?NL5wKAuvxpk2LMfeM8319KNAw/Mir22vBabrNGt1SW/Q+XylBgT81wo/b6MG?=
 =?us-ascii?Q?xj3Bz28L1ad/PesOKRZtCwBLHdGgmEpAVPk6emqzL3I5AGhOOz0CeXG9ncMb?=
 =?us-ascii?Q?sGwVOVrZdcVXYaTg8Yav4q98mqg19eesAcUyYw7GVFEDg5enxbV0tgbX47t6?=
 =?us-ascii?Q?Z5OnPLJtqOK9zdwqzgn69DA0jxeXDye1up6FwQAEBPGBn0c+vYxNHWFlb2sg?=
 =?us-ascii?Q?LYJMgl0EcNCiiUd8SoC0DW33MttMb5DHv82Zzc/G61NiUEpNvtlkVZ1L88jo?=
 =?us-ascii?Q?Vbi8xQ8DQcBoLyzhcF/n15g4Vtq+ubBM20thDu9DbQtUqg2Q7mHfyxEUNWre?=
 =?us-ascii?Q?KrOBATV1OURFBvlCe/3PfJ11V0Ax97Bk7D1WyMkQKootvWoPI9R/omGyxRGX?=
 =?us-ascii?Q?a8Iii9v1bRt0eV9bscwcrd56s/RWDKkj96Q7/rgGIUKuspfDkMrNfobfMvZ7?=
 =?us-ascii?Q?kXLia5VT/3jyhAiE47hOHX9gyH4CKkz+z5fZiGYUbe4LEh1fbEt6t2gL3mXG?=
 =?us-ascii?Q?EOAUslVdOmMv6WPsBMa3UEjtNna2sb3kIEcJwYgT9LBwM21IuJPIxZBWPXIf?=
 =?us-ascii?Q?sKRZbV3+avHmFYfP9rMfv7OmoYN95Keief6IRRBmlc4PHN5EcPcF0+r4qn5G?=
 =?us-ascii?Q?F/yHDnhQOIojdWeaj2bZo+pKE2KOIpa5Mix4eZPKquVCTK/nqBbidhWUG1Sn?=
 =?us-ascii?Q?Myq7QK+0O3HFk6VkBDFtmiBXo1ukG2YKoCoQR29Gl/TbdXsfM7l/+/VlnTu1?=
 =?us-ascii?Q?DvYeAlC2Rq2slWTDz6zXrPP0vVao3tmKfg8sCwauv2HbbRF3RniWBSTflsph?=
 =?us-ascii?Q?QUW5aP7+OfrJPTRIMWCXRRTKdh6xlJ7pLJMriHS4vI5nBz3f9QQUzEnaTEBZ?=
 =?us-ascii?Q?A0S8JvsdbeWv4xSmtJZzShYpX1iPMCdOl5CCbWLmBpE5I8KKwEzJVyXr2D64?=
 =?us-ascii?Q?nY8I97ow5h8eP87JNA/DmwEvUjcjGxUw/jpd9bLkmC5BjLBxUsgmSgdWtxBb?=
 =?us-ascii?Q?ZFLawOsYxxValbFXhBCXDEGhlt96Se20PSmOJRzlQySAl148D3+FQzfdoQRi?=
 =?us-ascii?Q?mBZoTC0oWfnXOrm3W/rMeZoDWBSvhiTc7VJxGoQozwGE0IDg9qHAAFWsN7EF?=
 =?us-ascii?Q?WDxdvTkQBtf2j7DcVfvDJhG2SX9NJ1cL3KHxLnCg2BInRVq8LTmTMQu36ldQ?=
 =?us-ascii?Q?GtjloEPt75RlpIoJvjSrVBKnOvOpC/T76qtcs/tlMJO91fIp0TQ5OeG1eAyi?=
 =?us-ascii?Q?jZ7PUlqMFReyK5uXQQRqo0=3D?=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2470;
 6:WfYe9A/h2H2hgf1yVGu/xiO8d6VvdrKC54edfxAZI3qs4aVUu2XMlL0annJyaCTWSUORg81gxLHxXUWw9i3ztVXwgiu0DG7hWRXup1PN9fFYOThz6p3R6S89Np1Ke8VdO6x53ASWAfckb/WEf5q1ligarewCoKlE9n2Rqf/vl8hRDVbknlm9aC0GRUsLwSzAeAPv/VKwChfO3WV48gt98QQdf1eMkAHIeyjimmjGEuShL7tCCJ2d5Q3VN1mtERWtaBTvLriNgbxNZiBt4erzHZXWWcApypXx8T4hLGudWsVRxJnF3DhLmRsSd2D8AsKQhCi7lk6LOpOTprTF0Vhs0dI2/BnBnwoUX7wqNhx7Vu7lgnEIgpxGLnbjGMsDkN+wkaiihrMB3EORqMmVoWQ9DnWf6nm5PAYB6gEe1+RsZLbiGQ1+V1XhFpDKLNp99D8Z;
 5:kPkJQoUn+B8MdnkaK2hAwgq61jJzcAXc5nlwzFj4tc48DyAx69KZ2Vc9rCkwwBUjrS6cEdHO3W4583p4rKGup25sXS+3zXLWbDsM2EYdj/KBTcMfMw4+/6DrkFnWi44/QuptmaaYIkkHhHplUEcIlVKAt4IzP6B1u1o4YmAiL/IeZ1Lc7GMcSo2vwDcEdY7t;
 24:PXi1aHi2k/4/07YrvivrWv7vU03fys+HeKDJKkNZ15LWE4sZuy+YZ0b/ZfTA8Oex/b84EYzdjtOv6fJDf/C66Q/OWNboKHS0dWAoNb5c+uk=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2470;
 7:uM5nYmUGSbwc2BGdon0mS/aIrfjOgrv3XL1jCB8fg8qGs9S8XivbKi5+BgNw04QN6qVIo/2j+A6Y1vXFXWer+dD1lbHwTzJ0ZmmnBzZtf+VpnXueIwCEF69GMd7qOAS64bWqrUktIwPcmyEnJTJCgVDp+65VvWLEUu95niu9lUhXoKHD1St/anOl8IF4kpJmvs5cfxoZI5yReY7GgcNzpmRxsdQxRDlCFCUMWXDwgGo1KE4HWlmYs+tibhLkB97mLR64rygMQ6d/h6nhgd2Q2rdC1ku+21mXsluk7BjKCxi0ijGa4TST6ab4oQRGRxED7eN6nX7ksGyKrwx18EnpMZUapDAv15mMaBd3F1K8wZ8s1WMWuVMaGeHBLdtDqf3g7TUY6BkacyzxHydKVtKJCNKkx3VfQb9Yj7hZCahBodKOBE42jyjfE0c41fdyLTDN9eZV8SwzQnAYBGtOfgQ45A==
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2016 13:09:26.9917 (UTC)
X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50];
 Helo=[tx30smr01.am.freescale.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB2470
Subject: [dpdk-dev] [PATCH v3 12/12] drivers: update PMDs to use rte_driver
	probe and remove
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <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>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 16 Dec 2016 13:09:29 -0000

These callbacks now act as first layer of PCI interfaces from the Bus.
Bus probe would enter the PMDs through the rte_driver->probe/remove
callbacks, falling to rte_xxx_driver->probe/remove (Currently, all the
drivers are rte_pci_driver).

This patch also changes QAT which is the only crypto PMD based on PCI.
All others would be changed in a separate patch focused on VDEV.

Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
---
 drivers/crypto/qat/rte_qat_cryptodev.c  | 4 ++++
 drivers/net/bnx2x/bnx2x_ethdev.c        | 8 ++++++++
 drivers/net/bnxt/bnxt_ethdev.c          | 4 ++++
 drivers/net/cxgbe/cxgbe_ethdev.c        | 4 ++++
 drivers/net/e1000/em_ethdev.c           | 4 ++++
 drivers/net/e1000/igb_ethdev.c          | 8 ++++++++
 drivers/net/ena/ena_ethdev.c            | 4 ++++
 drivers/net/enic/enic_ethdev.c          | 4 ++++
 drivers/net/fm10k/fm10k_ethdev.c        | 4 ++++
 drivers/net/i40e/i40e_ethdev.c          | 4 ++++
 drivers/net/i40e/i40e_ethdev_vf.c       | 4 ++++
 drivers/net/ixgbe/ixgbe_ethdev.c        | 8 ++++++++
 drivers/net/mlx4/mlx4.c                 | 4 +++-
 drivers/net/mlx5/mlx5.c                 | 1 +
 drivers/net/nfp/nfp_net.c               | 4 ++++
 drivers/net/qede/qede_ethdev.c          | 8 ++++++++
 drivers/net/szedata2/rte_eth_szedata2.c | 4 ++++
 drivers/net/thunderx/nicvf_ethdev.c     | 4 ++++
 drivers/net/virtio/virtio_ethdev.c      | 2 ++
 drivers/net/vmxnet3/vmxnet3_ethdev.c    | 4 ++++
 20 files changed, 90 insertions(+), 1 deletion(-)

diff --git a/drivers/crypto/qat/rte_qat_cryptodev.c b/drivers/crypto/qat/rte_qat_cryptodev.c
index 1e7ee61..bc1a9c6 100644
--- a/drivers/crypto/qat/rte_qat_cryptodev.c
+++ b/drivers/crypto/qat/rte_qat_cryptodev.c
@@ -120,6 +120,10 @@ crypto_qat_dev_init(__attribute__((unused)) struct rte_cryptodev_driver *crypto_
 
 static struct rte_cryptodev_driver rte_qat_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_qat_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
 		.probe = rte_cryptodev_pci_probe,
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index 0eae433..9f3b3f2 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -618,6 +618,10 @@ eth_bnx2xvf_dev_init(struct rte_eth_dev *eth_dev)
 
 static struct eth_driver rte_bnx2x_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_bnx2x_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
 		.probe = rte_eth_dev_pci_probe,
@@ -632,6 +636,10 @@ static struct eth_driver rte_bnx2x_pmd = {
  */
 static struct eth_driver rte_bnx2xvf_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_bnx2xvf_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
 		.probe = rte_eth_dev_pci_probe,
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 035fe07..c8671c8 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -1160,6 +1160,10 @@ bnxt_dev_uninit(struct rte_eth_dev *eth_dev) {
 
 static struct eth_driver bnxt_rte_pmd = {
 	.pci_drv = {
+		    .driver = {
+			    .probe = rte_eal_pci_probe,
+			    .remove = rte_eal_pci_remove,
+		    },
 		    .id_table = bnxt_pci_id_map,
 		    .drv_flags = RTE_PCI_DRV_NEED_MAPPING |
 			    RTE_PCI_DRV_DETACHABLE | RTE_PCI_DRV_INTR_LSC,
diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
index b7f28eb..67714fa 100644
--- a/drivers/net/cxgbe/cxgbe_ethdev.c
+++ b/drivers/net/cxgbe/cxgbe_ethdev.c
@@ -1039,6 +1039,10 @@ static int eth_cxgbe_dev_init(struct rte_eth_dev *eth_dev)
 
 static struct eth_driver rte_cxgbe_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = cxgb4_pci_tbl,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
 		.probe = rte_eth_dev_pci_probe,
diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index aee3d34..7be5da3 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -391,6 +391,10 @@ eth_em_dev_uninit(struct rte_eth_dev *eth_dev)
 
 static struct eth_driver rte_em_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_em_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |
 			RTE_PCI_DRV_DETACHABLE,
diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index 2fddf0c..70dd24c 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -1078,6 +1078,10 @@ eth_igbvf_dev_uninit(struct rte_eth_dev *eth_dev)
 
 static struct eth_driver rte_igb_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_igb_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |
 			RTE_PCI_DRV_DETACHABLE,
@@ -1094,6 +1098,10 @@ static struct eth_driver rte_igb_pmd = {
  */
 static struct eth_driver rte_igbvf_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_igbvf_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_DETACHABLE,
 		.probe = rte_eth_dev_pci_probe,
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index ab9a178..54fc8de 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -1705,6 +1705,10 @@ static uint16_t eth_ena_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 
 static struct eth_driver rte_ena_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_ena_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING,
 		.probe = rte_eth_dev_pci_probe,
diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
index 2b154ec..c2783db 100644
--- a/drivers/net/enic/enic_ethdev.c
+++ b/drivers/net/enic/enic_ethdev.c
@@ -634,6 +634,10 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)
 
 static struct eth_driver rte_enic_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_enic_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
 		.probe = rte_eth_dev_pci_probe,
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index 923690c..d1a2efa 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -3061,6 +3061,10 @@ static const struct rte_pci_id pci_id_fm10k_map[] = {
 
 static struct eth_driver rte_pmd_fm10k = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_fm10k_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |
 			RTE_PCI_DRV_DETACHABLE,
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 67778ba..9c5d50f 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -670,6 +670,10 @@ static const struct rte_i40e_xstats_name_off rte_i40e_txq_prio_strings[] = {
 
 static struct eth_driver rte_i40e_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_i40e_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |
 			RTE_PCI_DRV_DETACHABLE,
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index aa306d6..10bf6ab 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -1527,6 +1527,10 @@ i40evf_dev_uninit(struct rte_eth_dev *eth_dev)
  */
 static struct eth_driver rte_i40evf_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_i40evf_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_DETACHABLE,
 		.probe = rte_eth_dev_pci_probe,
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index edc9b22..80ee232 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1564,6 +1564,10 @@ eth_ixgbevf_dev_uninit(struct rte_eth_dev *eth_dev)
 
 static struct eth_driver rte_ixgbe_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_ixgbe_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |
 			RTE_PCI_DRV_DETACHABLE,
@@ -1580,6 +1584,10 @@ static struct eth_driver rte_ixgbe_pmd = {
  */
 static struct eth_driver rte_ixgbevf_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_ixgbevf_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_DETACHABLE,
 		.probe = rte_eth_dev_pci_probe,
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index da61a85..e3dcd41 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -5907,7 +5907,9 @@ static const struct rte_pci_id mlx4_pci_id_map[] = {
 static struct eth_driver mlx4_driver = {
 	.pci_drv = {
 		.driver = {
-			.name = MLX4_DRIVER_NAME
+			.name = MLX4_DRIVER_NAME,
+			.probe = rte_eal_pci_probe,
+		},
 		},
 		.id_table = mlx4_pci_id_map,
 		.probe = mlx4_pci_probe,
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index 90cc35e..76dda13 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -731,6 +731,7 @@ static struct eth_driver mlx5_driver = {
 	.pci_drv = {
 		.driver = {
 			.name = MLX5_DRIVER_NAME
+			.probe = rte_eal_pci_probe,
 		},
 		.id_table = mlx5_pci_id_map,
 		.probe = mlx5_pci_probe,
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index de80b46..125ba86 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -2469,6 +2469,10 @@ static struct rte_pci_id pci_id_nfp_net_map[] = {
 
 static struct eth_driver rte_nfp_net_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_nfp_net_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC |
 			     RTE_PCI_DRV_DETACHABLE,
diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index d106dd0..31f6733 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -1642,6 +1642,10 @@ static struct rte_pci_id pci_id_qede_map[] = {
 
 static struct eth_driver rte_qedevf_pmd = {
 	.pci_drv = {
+		    .driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		    },
 		    .id_table = pci_id_qedevf_map,
 		    .drv_flags =
 		    RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
@@ -1655,6 +1659,10 @@ static struct eth_driver rte_qedevf_pmd = {
 
 static struct eth_driver rte_qede_pmd = {
 	.pci_drv = {
+		    .driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		    },
 		    .id_table = pci_id_qede_map,
 		    .drv_flags =
 		    RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
diff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c
index f3cd52d..a649e60 100644
--- a/drivers/net/szedata2/rte_eth_szedata2.c
+++ b/drivers/net/szedata2/rte_eth_szedata2.c
@@ -1572,6 +1572,10 @@ static const struct rte_pci_id rte_szedata2_pci_id_table[] = {
 
 static struct eth_driver szedata2_eth_driver = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = rte_szedata2_pci_id_table,
 		.probe = rte_eth_dev_pci_probe,
 		.remove = rte_eth_dev_pci_remove,
diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c
index 466e49c..72ac748 100644
--- a/drivers/net/thunderx/nicvf_ethdev.c
+++ b/drivers/net/thunderx/nicvf_ethdev.c
@@ -2110,6 +2110,10 @@ static const struct rte_pci_id pci_id_nicvf_map[] = {
 
 static struct eth_driver rte_nicvf_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_nicvf_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,
 		.probe = rte_eth_dev_pci_probe,
diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 079fd6c..4d5d1bb 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1377,6 +1377,8 @@ static struct eth_driver rte_virtio_pmd = {
 	.pci_drv = {
 		.driver = {
 			.name = "net_virtio",
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
 		},
 		.id_table = pci_id_virtio_map,
 		.drv_flags = RTE_PCI_DRV_DETACHABLE,
diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index 8bb13e5..57f66cb 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -335,6 +335,10 @@ eth_vmxnet3_dev_uninit(struct rte_eth_dev *eth_dev)
 
 static struct eth_driver rte_vmxnet3_pmd = {
 	.pci_drv = {
+		.driver = {
+			.probe = rte_eal_pci_probe,
+			.remove = rte_eal_pci_remove,
+		},
 		.id_table = pci_id_vmxnet3_map,
 		.drv_flags = RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_DETACHABLE,
 		.probe = rte_eth_dev_pci_probe,
-- 
2.7.4