DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] drivers/net: add generic ethdev macro to get PCI device
@ 2017-05-04 13:08 Ferruh Yigit
  2017-05-04 13:34 ` Legacy, Allain
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Ferruh Yigit @ 2017-05-04 13:08 UTC (permalink / raw)
  To: Thomas Monjalon, Shepard Siegel, Ed Czeck, John Miller,
	Allain Legacy, Matt Peters, Wenzhuo Lu, Helin Zhang, Jingjing Wu,
	Konstantin Ananyev, Andrew Rybchenko
  Cc: dev, Ferruh Yigit

Instead of many PMD define their own macro, define a generic one in
ethdev and use that in PMDs.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
 drivers/net/ark/ark_ethdev.c      |  4 ++--
 drivers/net/ark/ark_ethdev.h      |  4 ----
 drivers/net/avp/avp_ethdev.c      | 25 +++++++++++--------------
 drivers/net/e1000/e1000_ethdev.h  |  2 --
 drivers/net/e1000/em_ethdev.c     | 13 ++++++-------
 drivers/net/e1000/igb_ethdev.c    | 24 ++++++++++++------------
 drivers/net/e1000/igb_pf.c        |  2 +-
 drivers/net/i40e/i40e_ethdev.c    | 30 +++++++++++++++---------------
 drivers/net/i40e/i40e_ethdev.h    |  3 ---
 drivers/net/i40e/i40e_ethdev_vf.c | 18 +++++++++---------
 drivers/net/ixgbe/ixgbe_ethdev.c  | 38 +++++++++++++++++++-------------------
 drivers/net/ixgbe/ixgbe_ethdev.h  |  3 ---
 drivers/net/ixgbe/ixgbe_pf.c      |  2 +-
 drivers/net/ixgbe/rte_pmd_ixgbe.c | 20 ++++++++++----------
 drivers/net/sfc/sfc.c             |  4 ++--
 drivers/net/sfc/sfc.h             |  3 ---
 drivers/net/sfc/sfc_debug.h       |  3 ++-
 drivers/net/sfc/sfc_ethdev.c      |  2 +-
 drivers/net/sfc/sfc_intr.c        | 10 +++++-----
 drivers/net/sfc/sfc_log.h         |  3 ++-
 drivers/net/sfc/sfc_rx.c          |  2 +-
 drivers/net/sfc/sfc_tx.c          |  2 +-
 lib/librte_ether/rte_ethdev.h     |  2 ++
 23 files changed, 102 insertions(+), 117 deletions(-)

diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c
index 83961f5..230d3f5 100644
--- a/drivers/net/ark/ark_ethdev.c
+++ b/drivers/net/ark/ark_ethdev.c
@@ -278,7 +278,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
 	ret = check_for_ext(ark);
 	if (ret)
 		return ret;
-	pci_dev = ARK_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	rte_eth_copy_pci_info(dev, pci_dev);
 
 	/* Use dummy function until setup */
@@ -751,7 +751,7 @@ eth_ark_dev_info_get(struct rte_eth_dev *dev,
 				ETH_LINK_SPEED_40G |
 				ETH_LINK_SPEED_50G |
 				ETH_LINK_SPEED_100G);
-	dev_info->pci_dev = ARK_DEV_TO_PCI(dev);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 }
 
 static int
diff --git a/drivers/net/ark/ark_ethdev.h b/drivers/net/ark/ark_ethdev.h
index 9f8d32f..df5547b 100644
--- a/drivers/net/ark/ark_ethdev.h
+++ b/drivers/net/ark/ark_ethdev.h
@@ -34,8 +34,4 @@
 #ifndef _ARK_ETHDEV_H_
 #define _ARK_ETHDEV_H_
 
-#define ARK_DEV_TO_PCI(eth_dev)			\
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
-
 #endif
diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c
index fe6849f..d8ca213 100644
--- a/drivers/net/avp/avp_ethdev.c
+++ b/drivers/net/avp/avp_ethdev.c
@@ -113,9 +113,6 @@ static void avp_dev_stats_get(struct rte_eth_dev *dev,
 static void avp_dev_stats_reset(struct rte_eth_dev *dev);
 
 
-#define AVP_DEV_TO_PCI(eth_dev) RTE_DEV_TO_PCI((eth_dev)->device)
-
-
 #define AVP_MAX_RX_BURST 64
 #define AVP_MAX_TX_BURST 64
 #define AVP_MAX_MAC_ADDRS 1
@@ -393,7 +390,7 @@ static void *
 avp_dev_translate_address(struct rte_eth_dev *eth_dev,
 			  phys_addr_t host_phys_addr)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_mem_resource *resource;
 	struct rte_avp_memmap_info *info;
 	struct rte_avp_memmap *map;
@@ -446,7 +443,7 @@ avp_dev_version_check(uint32_t version)
 static int
 avp_dev_check_regions(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_avp_memmap_info *memmap;
 	struct rte_avp_device_info *info;
 	struct rte_mem_resource *resource;
@@ -582,7 +579,7 @@ _avp_set_rx_queue_mappings(struct rte_eth_dev *eth_dev, uint16_t rx_queue_id)
 static void
 _avp_set_queue_counts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 	struct rte_avp_device_info *host_info;
 	void *addr;
@@ -642,7 +639,7 @@ avp_dev_attach(struct rte_eth_dev *eth_dev)
 	 * re-run the device create utility which will parse the new host info
 	 * and setup the AVP device queue pointers.
 	 */
-	ret = avp_dev_create(AVP_DEV_TO_PCI(eth_dev), eth_dev);
+	ret = avp_dev_create(RTE_ETH_DEV_TO_PCI(eth_dev), eth_dev);
 	if (ret < 0) {
 		PMD_DRV_LOG(ERR, "Failed to re-create AVP device, ret=%d\n",
 			    ret);
@@ -696,7 +693,7 @@ static void
 avp_dev_interrupt_handler(void *data)
 {
 	struct rte_eth_dev *eth_dev = data;
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	uint32_t status, value;
 	int ret;
@@ -755,7 +752,7 @@ avp_dev_interrupt_handler(void *data)
 static int
 avp_dev_enable_interrupts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	int ret;
 
@@ -780,7 +777,7 @@ avp_dev_enable_interrupts(struct rte_eth_dev *eth_dev)
 static int
 avp_dev_disable_interrupts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	int ret;
 
@@ -805,7 +802,7 @@ avp_dev_disable_interrupts(struct rte_eth_dev *eth_dev)
 static int
 avp_dev_setup_interrupts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	int ret;
 
 	/* register a callback handler with UIO for interrupt notifications */
@@ -825,7 +822,7 @@ avp_dev_setup_interrupts(struct rte_eth_dev *eth_dev)
 static int
 avp_dev_migration_pending(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	uint32_t value;
 
@@ -986,7 +983,7 @@ eth_avp_dev_init(struct rte_eth_dev *eth_dev)
 	struct rte_pci_device *pci_dev;
 	int ret;
 
-	pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	eth_dev->dev_ops = &avp_eth_dev_ops;
 	eth_dev->rx_pkt_burst = &avp_recv_pkts;
 	eth_dev->tx_pkt_burst = &avp_xmit_pkts;
@@ -2011,7 +2008,7 @@ avp_dev_tx_queue_release(void *tx_queue)
 static int
 avp_dev_configure(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 	struct rte_avp_device_info *host_info;
 	struct rte_avp_device_config config;
diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h
index 8352d0a..4979895 100644
--- a/drivers/net/e1000/e1000_ethdev.h
+++ b/drivers/net/e1000/e1000_ethdev.h
@@ -291,8 +291,6 @@ struct e1000_adapter {
 #define E1000_DEV_PRIVATE_TO_FILTER_INFO(adapter) \
 	(&((struct e1000_adapter *)adapter)->filter)
 
-#define E1000_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
 /*
  * RX/TX IGB function prototypes
  */
diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index 599b9e0..e5c2380 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -316,7 +316,7 @@ eth_em_dev_is_ich8(struct e1000_hw *hw)
 static int
 eth_em_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
@@ -390,7 +390,7 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev)
 static int
 eth_em_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
@@ -593,8 +593,7 @@ eth_em_start(struct rte_eth_dev *dev)
 		E1000_DEV_PRIVATE(dev->data->dev_private);
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev =
-		E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int ret, mask;
 	uint32_t intr_vector = 0;
@@ -777,7 +776,7 @@ eth_em_stop(struct rte_eth_dev *dev)
 {
 	struct rte_eth_link link;
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	em_rxq_intr_disable(hw);
@@ -1041,7 +1040,7 @@ static int
 eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue_id)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	em_rxq_intr_enable(hw);
@@ -1598,7 +1597,7 @@ static int
 eth_em_interrupt_action(struct rte_eth_dev *dev,
 			struct rte_intr_handle *intr_handle)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_interrupt *intr =
diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index b6b81cb..c46878d 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -760,7 +760,7 @@ static int
 eth_igb_dev_init(struct rte_eth_dev *eth_dev)
 {
 	int error = 0;
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 	struct e1000_vfta * shadow_vfta =
@@ -936,7 +936,7 @@ eth_igb_dev_uninit(struct rte_eth_dev *eth_dev)
 		return -EPERM;
 
 	hw = E1000_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
-	pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	if (adapter->stopped == 0)
@@ -994,7 +994,7 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)
 		return 0;
 	}
 
-	pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	rte_eth_copy_pci_info(eth_dev, pci_dev);
 	eth_dev->data->dev_flags |= RTE_ETH_DEV_DETACHABLE;
 
@@ -1071,7 +1071,7 @@ eth_igbvf_dev_uninit(struct rte_eth_dev *eth_dev)
 {
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -1252,7 +1252,7 @@ eth_igb_start(struct rte_eth_dev *dev)
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int ret, mask;
 	uint32_t intr_vector = 0;
@@ -1461,7 +1461,7 @@ eth_igb_stop(struct rte_eth_dev *dev)
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_filter_info *filter_info =
 		E1000_DEV_PRIVATE_TO_FILTER_INFO(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_eth_link link;
 	struct e1000_flex_filter *p_flex;
 	struct e1000_5tuple_filter *p_5tuple, *p_5tuple_next;
@@ -1566,7 +1566,7 @@ eth_igb_close(struct rte_eth_dev *dev)
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
 	struct rte_eth_link link;
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	eth_igb_stop(dev);
@@ -2813,7 +2813,7 @@ eth_igb_interrupt_action(struct rte_eth_dev *dev,
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_interrupt *intr =
 		E1000_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	uint32_t tctl, rctl;
 	struct rte_eth_link link;
 	int ret;
@@ -3228,7 +3228,7 @@ igbvf_dev_start(struct rte_eth_dev *dev)
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int ret;
 	uint32_t intr_vector = 0;
@@ -3284,7 +3284,7 @@ igbvf_dev_start(struct rte_eth_dev *dev)
 static void
 igbvf_dev_stop(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	PMD_INIT_FUNC_TRACE();
@@ -5270,7 +5270,7 @@ eth_igb_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t mask = 1 << queue_id;
 	uint32_t regval;
@@ -5343,7 +5343,7 @@ eth_igb_configure_msix_intr(struct rte_eth_dev *dev)
 	uint32_t vec = E1000_MISC_VEC_ID;
 	uint32_t base = E1000_MISC_VEC_ID;
 	uint32_t misc_shift = 0;
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	/* won't configure msix register if no mapping is done
diff --git a/drivers/net/e1000/igb_pf.c b/drivers/net/e1000/igb_pf.c
index 67da3c2..8d30187 100644
--- a/drivers/net/e1000/igb_pf.c
+++ b/drivers/net/e1000/igb_pf.c
@@ -57,7 +57,7 @@
 static inline uint16_t
 dev_num_vf(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	return pci_dev->max_vfs;
 }
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 3fa25dc..4069687 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -879,7 +879,7 @@ is_floating_veb_supported(struct rte_devargs *devargs)
 static void
 config_floating_veb(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
@@ -1061,7 +1061,7 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
 		return 0;
 	}
 	i40e_set_default_ptype_table(dev);
-	pci_dev = I40E_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	rte_eth_copy_pci_info(dev, pci_dev);
@@ -1414,7 +1414,7 @@ eth_i40e_dev_uninit(struct rte_eth_dev *dev)
 
 	pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = I40E_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	if (hw->adapter_stopped == 0)
@@ -1547,7 +1547,7 @@ void
 i40e_vsi_queues_unbind_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t msix_vect = vsi->msix_intr;
@@ -1661,7 +1661,7 @@ void
 i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t msix_vect = vsi->msix_intr;
@@ -1733,7 +1733,7 @@ static void
 i40e_vsi_enable_queues_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t interval = i40e_calc_itr_interval(\
@@ -1765,7 +1765,7 @@ static void
 i40e_vsi_disable_queues_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t msix_intr, i;
@@ -1892,7 +1892,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct i40e_vsi *main_vsi = pf->main_vsi;
 	int ret, i;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t intr_vector = 0;
 	struct i40e_vsi *vsi;
@@ -2040,7 +2040,7 @@ i40e_dev_stop(struct rte_eth_dev *dev)
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_vsi *main_vsi = pf->main_vsi;
 	struct i40e_mirror_rule *p_mirror;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int i;
 
@@ -2092,7 +2092,7 @@ i40e_dev_close(struct rte_eth_dev *dev)
 {
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t reg;
 	int i;
@@ -2849,7 +2849,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct i40e_vsi *vsi = pf->main_vsi;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	dev_info->pci_dev = pci_dev;
 	dev_info->max_rx_queues = vsi->nb_qps;
@@ -3767,7 +3767,7 @@ i40e_pf_parameter_init(struct rte_eth_dev *dev)
 {
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_PF_TO_HW(pf);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	uint16_t qp_count = 0, vsi_count = 0;
 
 	if (pci_dev->max_vfs && !hw->func_caps.sr_iov_1_1) {
@@ -8987,7 +8987,7 @@ i40e_dev_filter_ctrl(struct rte_eth_dev *dev,
 static void
 i40e_enable_extended_tag(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	uint32_t buf = 0;
 	int ret;
 
@@ -10435,7 +10435,7 @@ i40e_dev_get_dcb_info(struct rte_eth_dev *dev,
 static int
 i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t interval =
@@ -10469,7 +10469,7 @@ i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 static int
 i40e_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t msix_intr;
diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h
index 71b0874..fc1e1fb 100644
--- a/drivers/net/i40e/i40e_ethdev.h
+++ b/drivers/net/i40e/i40e_ethdev.h
@@ -886,9 +886,6 @@ int i40e_add_macvlan_filters(struct i40e_vsi *vsi,
 			     int total);
 bool is_i40e_supported(struct rte_eth_dev *dev);
 
-#define I40E_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
 /* I40E_DEV_PRIVATE_TO */
 #define I40E_DEV_PRIVATE_TO_PF(adapter) \
 	(&((struct i40e_adapter *)adapter)->pf)
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index cb34023..0c0c5db 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -727,7 +727,7 @@ i40evf_config_irq_map(struct rte_eth_dev *dev)
 	uint8_t cmd_buffer[sizeof(struct i40e_virtchnl_irq_map_info) + \
 		sizeof(struct i40e_virtchnl_vector_map)];
 	struct i40e_virtchnl_irq_map_info *map_info;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t vector_id;
 	int i, err;
@@ -1460,7 +1460,7 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev)
 {
 	struct i40e_hw *hw
 		= I40E_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -1884,7 +1884,7 @@ i40evf_enable_queues_intr(struct rte_eth_dev *dev)
 {
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	if (!rte_intr_allow_others(intr_handle)) {
@@ -1917,7 +1917,7 @@ i40evf_disable_queues_intr(struct rte_eth_dev *dev)
 {
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	if (!rte_intr_allow_others(intr_handle)) {
@@ -1944,7 +1944,7 @@ i40evf_disable_queues_intr(struct rte_eth_dev *dev)
 static int
 i40evf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t interval =
@@ -1979,7 +1979,7 @@ i40evf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 static int
 i40evf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t msix_intr;
@@ -2064,7 +2064,7 @@ i40evf_dev_start(struct rte_eth_dev *dev)
 {
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t intr_vector = 0;
 
@@ -2130,7 +2130,7 @@ i40evf_dev_start(struct rte_eth_dev *dev)
 static void
 i40evf_dev_stop(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	PMD_INIT_FUNC_TRACE();
@@ -2330,7 +2330,7 @@ static void
 i40evf_dev_close(struct rte_eth_dev *dev)
 {
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	i40evf_dev_stop(dev);
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index bbae4f9..03a6fdc 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1131,7 +1131,7 @@ ixgbe_swfw_lock_reset(struct ixgbe_hw *hw)
 static int
 eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
@@ -1365,7 +1365,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
 static int
 eth_ixgbe_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw;
 
@@ -1598,7 +1598,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 {
 	int diag;
 	uint32_t tc, tcs;
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
@@ -1747,7 +1747,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 static int
 eth_ixgbevf_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw;
 
@@ -2176,7 +2176,7 @@ ixgbe_vmdq_vlan_hw_filter_enable(struct rte_eth_dev *dev)
 static int
 ixgbe_check_vf_rss_rxq_num(struct rte_eth_dev *dev, uint16_t nb_rx_q)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	switch (nb_rx_q) {
 	case 1:
@@ -2425,7 +2425,7 @@ ixgbe_set_vf_rate_limit(struct rte_eth_dev *dev, uint16_t vf,
 	uint16_t total_rate = 0;
 	struct rte_pci_device *pci_dev;
 
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	rte_eth_link_get_nowait(dev->data->port_id, &link);
 
 	if (vf >= pci_dev->max_vfs)
@@ -2496,7 +2496,7 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct ixgbe_vf_info *vfinfo =
 		*IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t intr_vector = 0;
 	int err, link_up = 0, negotiate = 0;
@@ -2714,7 +2714,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct ixgbe_vf_info *vfinfo =
 		*IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int vf;
 
@@ -3582,7 +3582,7 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
 static void
 ixgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct rte_eth_conf *dev_conf = &dev->data->dev_conf;
 
@@ -3724,7 +3724,7 @@ static void
 ixgbevf_dev_info_get(struct rte_eth_dev *dev,
 		     struct rte_eth_dev_info *dev_info)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
 	dev_info->pci_dev = pci_dev;
@@ -4035,7 +4035,7 @@ ixgbe_dev_interrupt_get_status(struct rte_eth_dev *dev)
 static void
 ixgbe_dev_link_status_print(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_eth_link link;
 
 	memset(&link, 0, sizeof(link));
@@ -4142,7 +4142,7 @@ static void
 ixgbe_dev_interrupt_delayed_handler(void *param)
 {
 	struct rte_eth_dev *dev = (struct rte_eth_dev *)param;
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_interrupt *intr =
 		IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
@@ -4794,7 +4794,7 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint32_t intr_vector = 0;
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	int err, mask = 0;
@@ -4858,7 +4858,7 @@ static void
 ixgbevf_dev_stop(struct rte_eth_dev *dev)
 {
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	PMD_INIT_FUNC_TRACE();
@@ -5331,7 +5331,7 @@ ixgbe_mirror_rule_reset(struct rte_eth_dev *dev, uint8_t rule_id)
 static int
 ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t mask;
 	struct ixgbe_hw *hw =
@@ -5365,7 +5365,7 @@ ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 static int
 ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t mask;
 	struct ixgbe_hw *hw =
@@ -5490,7 +5490,7 @@ ixgbe_set_ivar_map(struct ixgbe_hw *hw, int8_t direction,
 static void
 ixgbevf_configure_msix(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -5524,7 +5524,7 @@ ixgbevf_configure_msix(struct rte_eth_dev *dev)
 static void
 ixgbe_configure_msix(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -7517,7 +7517,7 @@ ixgbe_e_tag_insertion_en_dis(struct rte_eth_dev *dev,
 			     struct rte_eth_l2_tunnel_conf *l2_tunnel,
 			     bool en)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	int ret = 0;
 	uint32_t vmtir, vmvir;
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index b576a6f..32c0b38 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -464,9 +464,6 @@ struct ixgbe_adapter {
 	struct rte_timecounter      tx_tstamp_tc;
 };
 
-#define IXGBE_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
 #define IXGBE_DEV_PRIVATE_TO_HW(adapter)\
 	(&((struct ixgbe_adapter *)adapter)->hw)
 
diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c
index d88832e..f16a987 100644
--- a/drivers/net/ixgbe/ixgbe_pf.c
+++ b/drivers/net/ixgbe/ixgbe_pf.c
@@ -61,7 +61,7 @@
 static inline uint16_t
 dev_num_vf(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	return pci_dev->max_vfs;
 }
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
index e8fc9a6..d6eae6c 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
@@ -51,7 +51,7 @@ rte_pmd_ixgbe_set_vf_mac_addr(uint8_t port, uint16_t vf,
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -84,7 +84,7 @@ rte_pmd_ixgbe_ping_vf(uint8_t port, uint16_t vf)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -115,7 +115,7 @@ rte_pmd_ixgbe_set_vf_vlan_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -145,7 +145,7 @@ rte_pmd_ixgbe_set_vf_mac_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -174,7 +174,7 @@ rte_pmd_ixgbe_set_vf_vlan_insert(uint8_t port, uint16_t vf, uint16_t vlan_id)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -270,7 +270,7 @@ rte_pmd_ixgbe_set_vf_split_drop_en(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -306,7 +306,7 @@ rte_pmd_ixgbe_set_vf_vlan_stripq(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
 	if (!is_ixgbe_supported(dev))
@@ -354,7 +354,7 @@ rte_pmd_ixgbe_set_vf_rxmode(uint8_t port, uint16_t vf,
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -401,7 +401,7 @@ rte_pmd_ixgbe_set_vf_rx(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -452,7 +452,7 @@ rte_pmd_ixgbe_set_vf_tx(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
diff --git a/drivers/net/sfc/sfc.c b/drivers/net/sfc/sfc.c
index 4e241b2..6cecfc0 100644
--- a/drivers/net/sfc/sfc.c
+++ b/drivers/net/sfc/sfc.c
@@ -465,7 +465,7 @@ static int
 sfc_mem_bar_init(struct sfc_adapter *sa)
 {
 	struct rte_eth_dev *eth_dev = sa->eth_dev;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	efsys_bar_t *ebp = &sa->mem_bar;
 	unsigned int i;
 	struct rte_mem_resource *res;
@@ -666,7 +666,7 @@ sfc_detach(struct sfc_adapter *sa)
 int
 sfc_probe(struct sfc_adapter *sa)
 {
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 	efx_nic_t *enp;
 	int rc;
 
diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h
index fad0ce0..7927678 100644
--- a/drivers/net/sfc/sfc.h
+++ b/drivers/net/sfc/sfc.h
@@ -46,9 +46,6 @@
 extern "C" {
 #endif
 
-#define SFC_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
 #if EFSYS_OPT_RX_SCALE
 /** RSS key length (bytes) */
 #define SFC_RSS_KEY_SIZE	40
diff --git a/drivers/net/sfc/sfc_debug.h b/drivers/net/sfc/sfc_debug.h
index c0b4867..f4fe044 100644
--- a/drivers/net/sfc/sfc_debug.h
+++ b/drivers/net/sfc/sfc_debug.h
@@ -48,7 +48,8 @@
 #define sfc_panic(sa, fmt, args...) \
 	do {								\
 		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
-		const struct rte_pci_device *_pci_dev = SFC_DEV_TO_PCI(_dev); \
+		const struct rte_pci_device *_pci_dev =			\
+			RTE_ETH_DEV_TO_PCI(_dev);			\
 									\
 		rte_panic("sfc " PCI_PRI_FMT " #%" PRIu8 ": " fmt "\n",	\
 			  _pci_dev->addr.domain, _pci_dev->addr.bus,	\
diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
index 4c9335f..a7a3112 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
@@ -1486,7 +1486,7 @@ static int
 sfc_eth_dev_init(struct rte_eth_dev *dev)
 {
 	struct sfc_adapter *sa = dev->data->dev_private;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	int rc;
 	const efx_nic_cfg_t *encp;
 	const struct ether_addr *from;
diff --git a/drivers/net/sfc/sfc_intr.c b/drivers/net/sfc/sfc_intr.c
index 7eb4b86..dfa453a 100644
--- a/drivers/net/sfc/sfc_intr.c
+++ b/drivers/net/sfc/sfc_intr.c
@@ -77,7 +77,7 @@ sfc_intr_line_handler(void *cb_arg)
 	boolean_t fatal;
 	uint32_t qmask;
 	unsigned int lsc_seq = sa->port.lsc_seq;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
@@ -122,7 +122,7 @@ sfc_intr_message_handler(void *cb_arg)
 	efx_nic_t *enp = sa->nic;
 	boolean_t fatal;
 	unsigned int lsc_seq = sa->port.lsc_seq;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
@@ -177,7 +177,7 @@ sfc_intr_start(struct sfc_adapter *sa)
 	if (rc != 0)
 		goto fail_intr_init;
 
-	pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	if (intr->handler != NULL) {
@@ -232,7 +232,7 @@ void
 sfc_intr_stop(struct sfc_adapter *sa)
 {
 	struct sfc_intr *intr = &sa->intr;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
@@ -306,7 +306,7 @@ int
 sfc_intr_attach(struct sfc_adapter *sa)
 {
 	struct sfc_intr *intr = &sa->intr;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
diff --git a/drivers/net/sfc/sfc_log.h b/drivers/net/sfc/sfc_log.h
index 8a5e230..d0f8921 100644
--- a/drivers/net/sfc/sfc_log.h
+++ b/drivers/net/sfc/sfc_log.h
@@ -36,7 +36,8 @@
 #define SFC_LOG(sa, level, ...) \
 	do {								\
 		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
-		const struct rte_pci_device *_pci_dev = SFC_DEV_TO_PCI(_dev); \
+		const struct rte_pci_device *_pci_dev =			\
+			RTE_ETH_DEV_TO_PCI(_dev);			\
 									\
 		RTE_LOG(level, PMD,					\
 			RTE_FMT("sfc_efx " PCI_PRI_FMT " #%" PRIu8 ": "	\
diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
index 2ecd6f2..122b657 100644
--- a/drivers/net/sfc/sfc_rx.c
+++ b/drivers/net/sfc/sfc_rx.c
@@ -942,7 +942,7 @@ sfc_rx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
 	info.mem_bar = sa->mem_bar.esb_base;
 
 	rc = sa->dp_rx->qcreate(sa->eth_dev->data->port_id, sw_index,
-				&SFC_DEV_TO_PCI(sa->eth_dev)->addr,
+				&RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr,
 				socket_id, &info, &rxq->dp);
 	if (rc != 0)
 		goto fail_dp_rx_qcreate;
diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c
index b8581d1..d75fb84 100644
--- a/drivers/net/sfc/sfc_tx.c
+++ b/drivers/net/sfc/sfc_tx.c
@@ -185,7 +185,7 @@ sfc_tx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
 	info.mem_bar = sa->mem_bar.esb_base;
 
 	rc = sa->dp_tx->qcreate(sa->eth_dev->data->port_id, sw_index,
-				&SFC_DEV_TO_PCI(sa->eth_dev)->addr,
+				&RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr,
 				socket_id, &info, &txq->dp);
 	if (rc != 0)
 		goto fail_dp_tx_qinit;
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index f8c8c13..9dd9248 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -1048,6 +1048,8 @@ TAILQ_HEAD(rte_eth_dev_cb_list, rte_eth_dev_callback);
 	} \
 } while (0)
 
+#define RTE_ETH_DEV_TO_PCI(eth_dev)	RTE_DEV_TO_PCI((eth_dev)->device)
+
 /**
  * l2 tunnel configuration.
  */
-- 
2.9.3

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] drivers/net: add generic ethdev macro to get PCI device
  2017-05-04 13:08 [dpdk-dev] [PATCH] drivers/net: add generic ethdev macro to get PCI device Ferruh Yigit
@ 2017-05-04 13:34 ` Legacy, Allain
  2017-05-05  0:44 ` Lu, Wenzhuo
  2017-05-05  9:54 ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
  2 siblings, 0 replies; 9+ messages in thread
From: Legacy, Allain @ 2017-05-04 13:34 UTC (permalink / raw)
  To: YIGIT, FERRUH, Thomas Monjalon, Shepard Siegel, Ed Czeck,
	John Miller, Peters, Matt, LU, WENZHUO, ZHANG, HELIN, WU,
	JINGJING, ANANYEV, KONSTANTIN, Andrew Rybchenko
  Cc: dev, YIGIT, FERRUH

> -----Original Message-----
> From: Ferruh Yigit [mailto:ferruh.yigit@intel.com]
> Sent: Thursday, May 04, 2017 9:08 AM
> To: Thomas Monjalon; Shepard Siegel; Ed Czeck; John Miller; Legacy, Allain;
> Peters, Matt; LU, WENZHUO; ZHANG, HELIN; WU, JINGJING; ANANYEV,
> KONSTANTIN; Andrew Rybchenko
> Cc: dev@dpdk.org; YIGIT, FERRUH
> Subject: [PATCH] drivers/net: add generic ethdev macro to get PCI device
> 
> Instead of many PMD define their own macro, define a generic one in
> ethdev and use that in PMDs.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
Acked-by: Allain Legacy <allain.legacy@windriver.com>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] drivers/net: add generic ethdev macro to get PCI device
  2017-05-04 13:08 [dpdk-dev] [PATCH] drivers/net: add generic ethdev macro to get PCI device Ferruh Yigit
  2017-05-04 13:34 ` Legacy, Allain
@ 2017-05-05  0:44 ` Lu, Wenzhuo
  2017-05-05  9:44   ` Ferruh Yigit
  2017-05-05  9:54 ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
  2 siblings, 1 reply; 9+ messages in thread
From: Lu, Wenzhuo @ 2017-05-05  0:44 UTC (permalink / raw)
  To: Yigit, Ferruh, Thomas Monjalon, Shepard Siegel, Ed Czeck,
	John Miller, Legacy, Allain (Wind River),
	Peters, Matt (Wind River),
	Zhang, Helin, Wu, Jingjing, Ananyev, Konstantin,
	Andrew Rybchenko
  Cc: dev

Hi,

> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Thursday, May 4, 2017 9:08 PM
> To: Thomas Monjalon; Shepard Siegel; Ed Czeck; John Miller; Legacy, Allain
> (Wind River); Peters, Matt (Wind River); Lu, Wenzhuo; Zhang, Helin; Wu,
> Jingjing; Ananyev, Konstantin; Andrew Rybchenko
> Cc: dev@dpdk.org; Yigit, Ferruh
> Subject: [PATCH] drivers/net: add generic ethdev macro to get PCI device
> 
> Instead of many PMD define their own macro, define a generic one in ethdev
> and use that in PMDs.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>

BTW, there're RTE_DEV_TO_PCI(dev->device) in many places, maybe we can replace them by the new macro RTE_ETH_DEV_TO_PCI.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH] drivers/net: add generic ethdev macro to get PCI device
  2017-05-05  0:44 ` Lu, Wenzhuo
@ 2017-05-05  9:44   ` Ferruh Yigit
  0 siblings, 0 replies; 9+ messages in thread
From: Ferruh Yigit @ 2017-05-05  9:44 UTC (permalink / raw)
  To: Lu, Wenzhuo, Thomas Monjalon, Shepard Siegel, Ed Czeck,
	John Miller, Legacy, Allain (Wind River),
	Peters, Matt (Wind River),
	Zhang, Helin, Wu, Jingjing, Ananyev, Konstantin,
	Andrew Rybchenko
  Cc: dev

On 5/5/2017 1:44 AM, Lu, Wenzhuo wrote:
> Hi,
> 
>> -----Original Message-----
>> From: Yigit, Ferruh
>> Sent: Thursday, May 4, 2017 9:08 PM
>> To: Thomas Monjalon; Shepard Siegel; Ed Czeck; John Miller; Legacy, Allain
>> (Wind River); Peters, Matt (Wind River); Lu, Wenzhuo; Zhang, Helin; Wu,
>> Jingjing; Ananyev, Konstantin; Andrew Rybchenko
>> Cc: dev@dpdk.org; Yigit, Ferruh
>> Subject: [PATCH] drivers/net: add generic ethdev macro to get PCI device
>>
>> Instead of many PMD define their own macro, define a generic one in ethdev
>> and use that in PMDs.
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
> 
> BTW, there're RTE_DEV_TO_PCI(dev->device) in many places, maybe we can replace them by the new macro RTE_ETH_DEV_TO_PCI.

Net drivers use it always as RTE_DEV_TO_PCI(dev->device), since they all
have eth_dev references, not rte_device.

So there are two options, either convert all usages to
RTE_DEV_TO_PCI(eth_dev->device) or RTE_ETH_DEV_TO_PCI(eth_dev)

I think RTE_ETH_DEV_TO_PCI(eth_dev) is better since it hides
eth_dev->device detail, which is not required in this context. And it
reflects the intention better, get pci from eth device.

I will update the patch to convert those usages too.

Thanks,
ferruh

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [dpdk-dev] [PATCH v2] drivers/net: add generic ethdev macro to get PCI device
  2017-05-04 13:08 [dpdk-dev] [PATCH] drivers/net: add generic ethdev macro to get PCI device Ferruh Yigit
  2017-05-04 13:34 ` Legacy, Allain
  2017-05-05  0:44 ` Lu, Wenzhuo
@ 2017-05-05  9:54 ` Ferruh Yigit
  2017-05-05 10:57   ` Andrew Rybchenko
  2017-05-15 10:24   ` [dpdk-dev] [PATCH v3] " Ferruh Yigit
  2 siblings, 2 replies; 9+ messages in thread
From: Ferruh Yigit @ 2017-05-05  9:54 UTC (permalink / raw)
  To: Shepard Siegel, Ed Czeck, John Miller, Allain Legacy,
	Matt Peters, Harish Patil, Rasesh Mody, Stephen Hurd,
	Ajit Khaparde, Declan Doherty, Rahul Lakkireddy, Wenzhuo Lu,
	Marcin Wojtas, Michal Krawczyk, Guy Tzalik, Evgeny Schemeilin,
	John Daley, Nelson Escobar, Jing Chen, Helin Zhang, Jingjing Wu,
	Konstantin Ananyev, Shijith Thotton,
	Srisivasubramanian Srinivasan, Adrien Mazarguil,
	Nelio Laranjeiro, Alejandro Lucero, Andrew Rybchenko, Matej Vido,
	Jerin Jacob, Maciej Czekaj, Yuanhan Liu, Maxime Coquelin,
	Shrikrishna Khare, Thomas Monjalon
  Cc: dev, Ferruh Yigit

Instead of many PMD define their own macro, define a generic one in
ethdev and use that in PMDs.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Allain Legacy <allain.legacy@windriver.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---

v2:
* Convert RTE_DEV_TO_PCI(eth_dev->device) to RTE_ETH_DEV_TO_PCI(eth_dev)
---
 drivers/net/ark/ark_ethdev.c            |  4 ++--
 drivers/net/ark/ark_ethdev.h            |  4 ----
 drivers/net/avp/avp_ethdev.c            | 27 +++++++++++------------
 drivers/net/bnx2x/bnx2x_ethdev.c        |  4 ++--
 drivers/net/bnxt/bnxt_ethdev.c          |  6 +++---
 drivers/net/bonding/rte_eth_bond_args.c |  2 +-
 drivers/net/cxgbe/cxgbe_ethdev.c        |  4 ++--
 drivers/net/e1000/e1000_ethdev.h        |  2 --
 drivers/net/e1000/em_ethdev.c           | 15 ++++++-------
 drivers/net/e1000/igb_ethdev.c          | 28 ++++++++++++------------
 drivers/net/e1000/igb_pf.c              |  2 +-
 drivers/net/ena/ena_ethdev.c            |  4 ++--
 drivers/net/enic/enic_ethdev.c          |  4 ++--
 drivers/net/fm10k/fm10k_ethdev.c        | 16 +++++++-------
 drivers/net/i40e/i40e_ethdev.c          | 30 +++++++++++++-------------
 drivers/net/i40e/i40e_ethdev.h          |  3 ---
 drivers/net/i40e/i40e_ethdev_vf.c       | 20 ++++++++---------
 drivers/net/ixgbe/ixgbe_ethdev.c        | 38 ++++++++++++++++-----------------
 drivers/net/ixgbe/ixgbe_ethdev.h        |  3 ---
 drivers/net/ixgbe/ixgbe_pf.c            |  2 +-
 drivers/net/ixgbe/rte_pmd_ixgbe.c       | 20 ++++++++---------
 drivers/net/liquidio/lio_ethdev.c       |  2 +-
 drivers/net/mlx4/mlx4.c                 |  2 +-
 drivers/net/mlx5/mlx5_ethdev.c          |  2 +-
 drivers/net/nfp/nfp_net.c               | 16 +++++++-------
 drivers/net/qede/qede_ethdev.c          |  6 +++---
 drivers/net/sfc/sfc.c                   |  4 ++--
 drivers/net/sfc/sfc.h                   |  3 ---
 drivers/net/sfc/sfc_debug.h             |  3 ++-
 drivers/net/sfc/sfc_ethdev.c            |  4 ++--
 drivers/net/sfc/sfc_intr.c              | 10 ++++-----
 drivers/net/sfc/sfc_log.h               |  3 ++-
 drivers/net/sfc/sfc_rx.c                |  2 +-
 drivers/net/sfc/sfc_tx.c                |  2 +-
 drivers/net/szedata2/rte_eth_szedata2.c |  6 +++---
 drivers/net/thunderx/nicvf_ethdev.c     |  6 +++---
 drivers/net/virtio/virtio_ethdev.c      | 11 +++++-----
 drivers/net/vmxnet3/vmxnet3_ethdev.c    |  4 ++--
 lib/librte_ether/rte_ethdev.h           |  2 ++
 39 files changed, 155 insertions(+), 171 deletions(-)

diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c
index 83961f5..230d3f5 100644
--- a/drivers/net/ark/ark_ethdev.c
+++ b/drivers/net/ark/ark_ethdev.c
@@ -278,7 +278,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
 	ret = check_for_ext(ark);
 	if (ret)
 		return ret;
-	pci_dev = ARK_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	rte_eth_copy_pci_info(dev, pci_dev);
 
 	/* Use dummy function until setup */
@@ -751,7 +751,7 @@ eth_ark_dev_info_get(struct rte_eth_dev *dev,
 				ETH_LINK_SPEED_40G |
 				ETH_LINK_SPEED_50G |
 				ETH_LINK_SPEED_100G);
-	dev_info->pci_dev = ARK_DEV_TO_PCI(dev);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 }
 
 static int
diff --git a/drivers/net/ark/ark_ethdev.h b/drivers/net/ark/ark_ethdev.h
index 9f8d32f..df5547b 100644
--- a/drivers/net/ark/ark_ethdev.h
+++ b/drivers/net/ark/ark_ethdev.h
@@ -34,8 +34,4 @@
 #ifndef _ARK_ETHDEV_H_
 #define _ARK_ETHDEV_H_
 
-#define ARK_DEV_TO_PCI(eth_dev)			\
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
-
 #endif
diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c
index fe6849f..a66d1cf 100644
--- a/drivers/net/avp/avp_ethdev.c
+++ b/drivers/net/avp/avp_ethdev.c
@@ -113,9 +113,6 @@ static void avp_dev_stats_get(struct rte_eth_dev *dev,
 static void avp_dev_stats_reset(struct rte_eth_dev *dev);
 
 
-#define AVP_DEV_TO_PCI(eth_dev) RTE_DEV_TO_PCI((eth_dev)->device)
-
-
 #define AVP_MAX_RX_BURST 64
 #define AVP_MAX_TX_BURST 64
 #define AVP_MAX_MAC_ADDRS 1
@@ -393,7 +390,7 @@ static void *
 avp_dev_translate_address(struct rte_eth_dev *eth_dev,
 			  phys_addr_t host_phys_addr)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_mem_resource *resource;
 	struct rte_avp_memmap_info *info;
 	struct rte_avp_memmap *map;
@@ -446,7 +443,7 @@ avp_dev_version_check(uint32_t version)
 static int
 avp_dev_check_regions(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_avp_memmap_info *memmap;
 	struct rte_avp_device_info *info;
 	struct rte_mem_resource *resource;
@@ -582,7 +579,7 @@ _avp_set_rx_queue_mappings(struct rte_eth_dev *eth_dev, uint16_t rx_queue_id)
 static void
 _avp_set_queue_counts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 	struct rte_avp_device_info *host_info;
 	void *addr;
@@ -642,7 +639,7 @@ avp_dev_attach(struct rte_eth_dev *eth_dev)
 	 * re-run the device create utility which will parse the new host info
 	 * and setup the AVP device queue pointers.
 	 */
-	ret = avp_dev_create(AVP_DEV_TO_PCI(eth_dev), eth_dev);
+	ret = avp_dev_create(RTE_ETH_DEV_TO_PCI(eth_dev), eth_dev);
 	if (ret < 0) {
 		PMD_DRV_LOG(ERR, "Failed to re-create AVP device, ret=%d\n",
 			    ret);
@@ -696,7 +693,7 @@ static void
 avp_dev_interrupt_handler(void *data)
 {
 	struct rte_eth_dev *eth_dev = data;
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	uint32_t status, value;
 	int ret;
@@ -755,7 +752,7 @@ avp_dev_interrupt_handler(void *data)
 static int
 avp_dev_enable_interrupts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	int ret;
 
@@ -780,7 +777,7 @@ avp_dev_enable_interrupts(struct rte_eth_dev *eth_dev)
 static int
 avp_dev_disable_interrupts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	int ret;
 
@@ -805,7 +802,7 @@ avp_dev_disable_interrupts(struct rte_eth_dev *eth_dev)
 static int
 avp_dev_setup_interrupts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	int ret;
 
 	/* register a callback handler with UIO for interrupt notifications */
@@ -825,7 +822,7 @@ avp_dev_setup_interrupts(struct rte_eth_dev *eth_dev)
 static int
 avp_dev_migration_pending(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	uint32_t value;
 
@@ -986,7 +983,7 @@ eth_avp_dev_init(struct rte_eth_dev *eth_dev)
 	struct rte_pci_device *pci_dev;
 	int ret;
 
-	pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	eth_dev->dev_ops = &avp_eth_dev_ops;
 	eth_dev->rx_pkt_burst = &avp_recv_pkts;
 	eth_dev->tx_pkt_burst = &avp_xmit_pkts;
@@ -2011,7 +2008,7 @@ avp_dev_tx_queue_release(void *tx_queue)
 static int
 avp_dev_configure(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 	struct rte_avp_device_info *host_info;
 	struct rte_avp_device_config config;
@@ -2207,7 +2204,7 @@ avp_dev_info_get(struct rte_eth_dev *eth_dev,
 	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 
 	dev_info->driver_name = "rte_avp_pmd";
-	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	dev_info->max_rx_queues = avp->max_rx_queues;
 	dev_info->max_tx_queues = avp->max_tx_queues;
 	dev_info->min_rx_bufsize = AVP_MIN_RX_BUFSIZE;
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index 314e5ea..2e72d32 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -442,7 +442,7 @@ static void
 bnx2x_dev_infos_get(struct rte_eth_dev *dev, __rte_unused struct rte_eth_dev_info *dev_info)
 {
 	struct bnx2x_softc *sc = dev->data->dev_private;
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->max_rx_queues  = sc->max_rx_queues;
 	dev_info->max_tx_queues  = sc->max_tx_queues;
 	dev_info->min_rx_bufsize = BNX2X_MIN_RX_BUF_SIZE;
@@ -528,7 +528,7 @@ bnx2x_common_dev_init(struct rte_eth_dev *eth_dev, int is_vf)
 	PMD_INIT_FUNC_TRACE();
 
 	eth_dev->dev_ops = is_vf ? &bnx2xvf_eth_dev_ops : &bnx2x_eth_dev_ops;
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	rte_eth_copy_pci_info(eth_dev, pci_dev);
 
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 7805221..7080cbb 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -338,7 +338,7 @@ static void bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev,
 	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
 	uint16_t max_vnics, i, j, vpool, vrxq;
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	/* MAC Specifics */
 	dev_info->max_mac_addrs = MAX_NUM_MAC_ADDR;
@@ -1049,7 +1049,7 @@ static bool bnxt_vf_pciid(uint16_t id)
 static int bnxt_init_board(struct rte_eth_dev *eth_dev)
 {
 	struct bnxt *bp = eth_dev->data->dev_private;
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	int rc;
 
 	/* enable device (incl. PCI PM wakeup), and bus-mastering */
@@ -1085,7 +1085,7 @@ static int bnxt_dev_uninit(struct rte_eth_dev *eth_dev);
 static int
 bnxt_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	static int version_printed;
 	struct bnxt *bp;
 	int rc;
diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c
index e3bdad9..dac9eb0 100644
--- a/drivers/net/bonding/rte_eth_bond_args.c
+++ b/drivers/net/bonding/rte_eth_bond_args.c
@@ -69,7 +69,7 @@ find_port_id_by_pci_addr(const struct rte_pci_addr *pci_addr)
 		    rte_eth_devices[i].data->kdrv == RTE_KDRV_NONE)
 			continue;
 
-		pci_dev = RTE_DEV_TO_PCI(rte_eth_devices[i].device);
+		pci_dev = RTE_ETH_DEV_TO_PCI(&rte_eth_devices[i]);
 		eth_pci_addr = &pci_dev->addr;
 
 		if (pci_addr->bus == eth_pci_addr->bus &&
diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
index 34fed84..2e2f2cf 100644
--- a/drivers/net/cxgbe/cxgbe_ethdev.c
+++ b/drivers/net/cxgbe/cxgbe_ethdev.c
@@ -148,7 +148,7 @@ static void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
 		.nb_align = 1,
 	};
 
-	device_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	device_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	device_info->min_rx_bufsize = CXGBE_MIN_RX_BUFSIZE;
 	device_info->max_rx_pktlen = CXGBE_MAX_RX_PKTLEN;
@@ -1008,7 +1008,7 @@ static int eth_cxgbe_dev_init(struct rte_eth_dev *eth_dev)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
 
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	snprintf(name, sizeof(name), "cxgbeadapter%d", eth_dev->data->port_id);
 	adapter = rte_zmalloc(name, sizeof(*adapter), 0);
diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h
index 8352d0a..4979895 100644
--- a/drivers/net/e1000/e1000_ethdev.h
+++ b/drivers/net/e1000/e1000_ethdev.h
@@ -291,8 +291,6 @@ struct e1000_adapter {
 #define E1000_DEV_PRIVATE_TO_FILTER_INFO(adapter) \
 	(&((struct e1000_adapter *)adapter)->filter)
 
-#define E1000_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
 /*
  * RX/TX IGB function prototypes
  */
diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index 599b9e0..61b2649 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -316,7 +316,7 @@ eth_em_dev_is_ich8(struct e1000_hw *hw)
 static int
 eth_em_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
@@ -390,7 +390,7 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev)
 static int
 eth_em_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
@@ -593,8 +593,7 @@ eth_em_start(struct rte_eth_dev *dev)
 		E1000_DEV_PRIVATE(dev->data->dev_private);
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev =
-		E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int ret, mask;
 	uint32_t intr_vector = 0;
@@ -777,7 +776,7 @@ eth_em_stop(struct rte_eth_dev *dev)
 {
 	struct rte_eth_link link;
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	em_rxq_intr_disable(hw);
@@ -1041,7 +1040,7 @@ static int
 eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue_id)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	em_rxq_intr_enable(hw);
@@ -1091,7 +1090,7 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
 	dev_info->max_rx_pktlen = em_get_max_pktlen(hw);
 	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
@@ -1598,7 +1597,7 @@ static int
 eth_em_interrupt_action(struct rte_eth_dev *dev,
 			struct rte_intr_handle *intr_handle)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_interrupt *intr =
diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index b6b81cb..435a13d 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -760,7 +760,7 @@ static int
 eth_igb_dev_init(struct rte_eth_dev *eth_dev)
 {
 	int error = 0;
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 	struct e1000_vfta * shadow_vfta =
@@ -936,7 +936,7 @@ eth_igb_dev_uninit(struct rte_eth_dev *eth_dev)
 		return -EPERM;
 
 	hw = E1000_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
-	pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	if (adapter->stopped == 0)
@@ -994,7 +994,7 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)
 		return 0;
 	}
 
-	pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	rte_eth_copy_pci_info(eth_dev, pci_dev);
 	eth_dev->data->dev_flags |= RTE_ETH_DEV_DETACHABLE;
 
@@ -1071,7 +1071,7 @@ eth_igbvf_dev_uninit(struct rte_eth_dev *eth_dev)
 {
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -1252,7 +1252,7 @@ eth_igb_start(struct rte_eth_dev *dev)
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int ret, mask;
 	uint32_t intr_vector = 0;
@@ -1461,7 +1461,7 @@ eth_igb_stop(struct rte_eth_dev *dev)
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_filter_info *filter_info =
 		E1000_DEV_PRIVATE_TO_FILTER_INFO(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_eth_link link;
 	struct e1000_flex_filter *p_flex;
 	struct e1000_5tuple_filter *p_5tuple, *p_5tuple_next;
@@ -1566,7 +1566,7 @@ eth_igb_close(struct rte_eth_dev *dev)
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
 	struct rte_eth_link link;
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	eth_igb_stop(dev);
@@ -2152,7 +2152,7 @@ eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
 	dev_info->max_rx_pktlen  = 0x3FFF; /* See RLPML register. */
 	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
@@ -2281,7 +2281,7 @@ eth_igbvf_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
 	dev_info->max_rx_pktlen  = 0x3FFF; /* See RLPML register. */
 	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
@@ -2813,7 +2813,7 @@ eth_igb_interrupt_action(struct rte_eth_dev *dev,
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_interrupt *intr =
 		E1000_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	uint32_t tctl, rctl;
 	struct rte_eth_link link;
 	int ret;
@@ -3228,7 +3228,7 @@ igbvf_dev_start(struct rte_eth_dev *dev)
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int ret;
 	uint32_t intr_vector = 0;
@@ -3284,7 +3284,7 @@ igbvf_dev_start(struct rte_eth_dev *dev)
 static void
 igbvf_dev_stop(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	PMD_INIT_FUNC_TRACE();
@@ -5270,7 +5270,7 @@ eth_igb_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t mask = 1 << queue_id;
 	uint32_t regval;
@@ -5343,7 +5343,7 @@ eth_igb_configure_msix_intr(struct rte_eth_dev *dev)
 	uint32_t vec = E1000_MISC_VEC_ID;
 	uint32_t base = E1000_MISC_VEC_ID;
 	uint32_t misc_shift = 0;
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	/* won't configure msix register if no mapping is done
diff --git a/drivers/net/e1000/igb_pf.c b/drivers/net/e1000/igb_pf.c
index 67da3c2..8d30187 100644
--- a/drivers/net/e1000/igb_pf.c
+++ b/drivers/net/e1000/igb_pf.c
@@ -57,7 +57,7 @@
 static inline uint16_t
 dev_num_vf(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	return pci_dev->max_vfs;
 }
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index 64fee05..08e3719 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -1289,7 +1289,7 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
 
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	adapter->pdev = pci_dev;
 
 	PMD_INIT_LOG(INFO, "Initializing %x:%x:%x.%d",
@@ -1451,7 +1451,7 @@ static void ena_infos_get(struct rte_eth_dev *dev,
 	ena_dev = &adapter->ena_dev;
 	ena_assert_msg(ena_dev != NULL, "Uninitialized device");
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	dev_info->speed_capa =
 			ETH_LINK_SPEED_1G   |
diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
index 7579696..75deedc 100644
--- a/drivers/net/enic/enic_ethdev.c
+++ b/drivers/net/enic/enic_ethdev.c
@@ -455,7 +455,7 @@ static void enicpmd_dev_info_get(struct rte_eth_dev *eth_dev,
 	struct enic *enic = pmd_priv(eth_dev);
 
 	ENICPMD_FUNC_TRACE();
-	device_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	device_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	/* Scattered Rx uses two receive queues per rx queue exposed to dpdk */
 	device_info->max_rx_queues = enic->conf_rq_count / 2;
 	device_info->max_tx_queues = enic->conf_wq_count;
@@ -619,7 +619,7 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)
 	eth_dev->rx_pkt_burst = &enic_recv_pkts;
 	eth_dev->tx_pkt_burst = &enic_xmit_pkts;
 
-	pdev = RTE_DEV_TO_PCI(eth_dev->device);
+	pdev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	rte_eth_copy_pci_info(eth_dev, pdev);
 	enic->pdev = pdev;
 	addr = &pdev->addr;
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index 94b4d40..79b14c9 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -712,7 +712,7 @@ fm10k_dev_rx_init(struct rte_eth_dev *dev)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct fm10k_macvlan_filter_info *macvlan;
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
 	int i, ret;
 	struct fm10k_rx_queue *rxq;
@@ -1173,7 +1173,7 @@ static void
 fm10k_dev_stop(struct rte_eth_dev *dev)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
 	int i;
 
@@ -1393,7 +1393,7 @@ fm10k_dev_infos_get(struct rte_eth_dev *dev,
 	struct rte_eth_dev_info *dev_info)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -2344,7 +2344,7 @@ static int
 fm10k_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 
 	/* Enable ITR */
 	if (hw->mac.type == fm10k_mac_pf)
@@ -2361,7 +2361,7 @@ static int
 fm10k_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 
 	/* Disable ITR */
 	if (hw->mac.type == fm10k_mac_pf)
@@ -2377,7 +2377,7 @@ static int
 fm10k_dev_rxq_interrupt_setup(struct rte_eth_dev *dev)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
 	uint32_t intr_vector, vec;
 	uint16_t queue_id;
@@ -2881,7 +2881,7 @@ static int
 eth_fm10k_dev_init(struct rte_eth_dev *dev)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
 	int diag, i;
 	struct fm10k_macvlan_filter_info *macvlan;
@@ -3068,7 +3068,7 @@ static int
 eth_fm10k_dev_uninit(struct rte_eth_dev *dev)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
 	PMD_INIT_FUNC_TRACE();
 
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 3fa25dc..4069687 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -879,7 +879,7 @@ is_floating_veb_supported(struct rte_devargs *devargs)
 static void
 config_floating_veb(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
@@ -1061,7 +1061,7 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
 		return 0;
 	}
 	i40e_set_default_ptype_table(dev);
-	pci_dev = I40E_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	rte_eth_copy_pci_info(dev, pci_dev);
@@ -1414,7 +1414,7 @@ eth_i40e_dev_uninit(struct rte_eth_dev *dev)
 
 	pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = I40E_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	if (hw->adapter_stopped == 0)
@@ -1547,7 +1547,7 @@ void
 i40e_vsi_queues_unbind_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t msix_vect = vsi->msix_intr;
@@ -1661,7 +1661,7 @@ void
 i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t msix_vect = vsi->msix_intr;
@@ -1733,7 +1733,7 @@ static void
 i40e_vsi_enable_queues_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t interval = i40e_calc_itr_interval(\
@@ -1765,7 +1765,7 @@ static void
 i40e_vsi_disable_queues_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t msix_intr, i;
@@ -1892,7 +1892,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct i40e_vsi *main_vsi = pf->main_vsi;
 	int ret, i;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t intr_vector = 0;
 	struct i40e_vsi *vsi;
@@ -2040,7 +2040,7 @@ i40e_dev_stop(struct rte_eth_dev *dev)
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_vsi *main_vsi = pf->main_vsi;
 	struct i40e_mirror_rule *p_mirror;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int i;
 
@@ -2092,7 +2092,7 @@ i40e_dev_close(struct rte_eth_dev *dev)
 {
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t reg;
 	int i;
@@ -2849,7 +2849,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct i40e_vsi *vsi = pf->main_vsi;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	dev_info->pci_dev = pci_dev;
 	dev_info->max_rx_queues = vsi->nb_qps;
@@ -3767,7 +3767,7 @@ i40e_pf_parameter_init(struct rte_eth_dev *dev)
 {
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_PF_TO_HW(pf);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	uint16_t qp_count = 0, vsi_count = 0;
 
 	if (pci_dev->max_vfs && !hw->func_caps.sr_iov_1_1) {
@@ -8987,7 +8987,7 @@ i40e_dev_filter_ctrl(struct rte_eth_dev *dev,
 static void
 i40e_enable_extended_tag(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	uint32_t buf = 0;
 	int ret;
 
@@ -10435,7 +10435,7 @@ i40e_dev_get_dcb_info(struct rte_eth_dev *dev,
 static int
 i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t interval =
@@ -10469,7 +10469,7 @@ i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 static int
 i40e_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t msix_intr;
diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h
index 71b0874..fc1e1fb 100644
--- a/drivers/net/i40e/i40e_ethdev.h
+++ b/drivers/net/i40e/i40e_ethdev.h
@@ -886,9 +886,6 @@ int i40e_add_macvlan_filters(struct i40e_vsi *vsi,
 			     int total);
 bool is_i40e_supported(struct rte_eth_dev *dev);
 
-#define I40E_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
 /* I40E_DEV_PRIVATE_TO */
 #define I40E_DEV_PRIVATE_TO_PF(adapter) \
 	(&((struct i40e_adapter *)adapter)->pf)
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index cb34023..2d0c3c3 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -727,7 +727,7 @@ i40evf_config_irq_map(struct rte_eth_dev *dev)
 	uint8_t cmd_buffer[sizeof(struct i40e_virtchnl_irq_map_info) + \
 		sizeof(struct i40e_virtchnl_vector_map)];
 	struct i40e_virtchnl_irq_map_info *map_info;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t vector_id;
 	int i, err;
@@ -1460,7 +1460,7 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev)
 {
 	struct i40e_hw *hw
 		= I40E_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -1884,7 +1884,7 @@ i40evf_enable_queues_intr(struct rte_eth_dev *dev)
 {
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	if (!rte_intr_allow_others(intr_handle)) {
@@ -1917,7 +1917,7 @@ i40evf_disable_queues_intr(struct rte_eth_dev *dev)
 {
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	if (!rte_intr_allow_others(intr_handle)) {
@@ -1944,7 +1944,7 @@ i40evf_disable_queues_intr(struct rte_eth_dev *dev)
 static int
 i40evf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t interval =
@@ -1979,7 +1979,7 @@ i40evf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 static int
 i40evf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t msix_intr;
@@ -2064,7 +2064,7 @@ i40evf_dev_start(struct rte_eth_dev *dev)
 {
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t intr_vector = 0;
 
@@ -2130,7 +2130,7 @@ i40evf_dev_start(struct rte_eth_dev *dev)
 static void
 i40evf_dev_stop(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	PMD_INIT_FUNC_TRACE();
@@ -2261,7 +2261,7 @@ i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 
 	memset(dev_info, 0, sizeof(*dev_info));
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->max_rx_queues = vf->vsi_res->num_queue_pairs;
 	dev_info->max_tx_queues = vf->vsi_res->num_queue_pairs;
 	dev_info->min_rx_bufsize = I40E_BUF_SIZE_MIN;
@@ -2330,7 +2330,7 @@ static void
 i40evf_dev_close(struct rte_eth_dev *dev)
 {
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	i40evf_dev_stop(dev);
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index bbae4f9..03a6fdc 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1131,7 +1131,7 @@ ixgbe_swfw_lock_reset(struct ixgbe_hw *hw)
 static int
 eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
@@ -1365,7 +1365,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
 static int
 eth_ixgbe_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw;
 
@@ -1598,7 +1598,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 {
 	int diag;
 	uint32_t tc, tcs;
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
@@ -1747,7 +1747,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 static int
 eth_ixgbevf_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw;
 
@@ -2176,7 +2176,7 @@ ixgbe_vmdq_vlan_hw_filter_enable(struct rte_eth_dev *dev)
 static int
 ixgbe_check_vf_rss_rxq_num(struct rte_eth_dev *dev, uint16_t nb_rx_q)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	switch (nb_rx_q) {
 	case 1:
@@ -2425,7 +2425,7 @@ ixgbe_set_vf_rate_limit(struct rte_eth_dev *dev, uint16_t vf,
 	uint16_t total_rate = 0;
 	struct rte_pci_device *pci_dev;
 
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	rte_eth_link_get_nowait(dev->data->port_id, &link);
 
 	if (vf >= pci_dev->max_vfs)
@@ -2496,7 +2496,7 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct ixgbe_vf_info *vfinfo =
 		*IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t intr_vector = 0;
 	int err, link_up = 0, negotiate = 0;
@@ -2714,7 +2714,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct ixgbe_vf_info *vfinfo =
 		*IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int vf;
 
@@ -3582,7 +3582,7 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
 static void
 ixgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct rte_eth_conf *dev_conf = &dev->data->dev_conf;
 
@@ -3724,7 +3724,7 @@ static void
 ixgbevf_dev_info_get(struct rte_eth_dev *dev,
 		     struct rte_eth_dev_info *dev_info)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
 	dev_info->pci_dev = pci_dev;
@@ -4035,7 +4035,7 @@ ixgbe_dev_interrupt_get_status(struct rte_eth_dev *dev)
 static void
 ixgbe_dev_link_status_print(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_eth_link link;
 
 	memset(&link, 0, sizeof(link));
@@ -4142,7 +4142,7 @@ static void
 ixgbe_dev_interrupt_delayed_handler(void *param)
 {
 	struct rte_eth_dev *dev = (struct rte_eth_dev *)param;
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_interrupt *intr =
 		IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
@@ -4794,7 +4794,7 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint32_t intr_vector = 0;
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	int err, mask = 0;
@@ -4858,7 +4858,7 @@ static void
 ixgbevf_dev_stop(struct rte_eth_dev *dev)
 {
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	PMD_INIT_FUNC_TRACE();
@@ -5331,7 +5331,7 @@ ixgbe_mirror_rule_reset(struct rte_eth_dev *dev, uint8_t rule_id)
 static int
 ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t mask;
 	struct ixgbe_hw *hw =
@@ -5365,7 +5365,7 @@ ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 static int
 ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t mask;
 	struct ixgbe_hw *hw =
@@ -5490,7 +5490,7 @@ ixgbe_set_ivar_map(struct ixgbe_hw *hw, int8_t direction,
 static void
 ixgbevf_configure_msix(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -5524,7 +5524,7 @@ ixgbevf_configure_msix(struct rte_eth_dev *dev)
 static void
 ixgbe_configure_msix(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -7517,7 +7517,7 @@ ixgbe_e_tag_insertion_en_dis(struct rte_eth_dev *dev,
 			     struct rte_eth_l2_tunnel_conf *l2_tunnel,
 			     bool en)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	int ret = 0;
 	uint32_t vmtir, vmvir;
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index b576a6f..32c0b38 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -464,9 +464,6 @@ struct ixgbe_adapter {
 	struct rte_timecounter      tx_tstamp_tc;
 };
 
-#define IXGBE_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
 #define IXGBE_DEV_PRIVATE_TO_HW(adapter)\
 	(&((struct ixgbe_adapter *)adapter)->hw)
 
diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c
index d88832e..f16a987 100644
--- a/drivers/net/ixgbe/ixgbe_pf.c
+++ b/drivers/net/ixgbe/ixgbe_pf.c
@@ -61,7 +61,7 @@
 static inline uint16_t
 dev_num_vf(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	return pci_dev->max_vfs;
 }
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
index e8fc9a6..d6eae6c 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
@@ -51,7 +51,7 @@ rte_pmd_ixgbe_set_vf_mac_addr(uint8_t port, uint16_t vf,
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -84,7 +84,7 @@ rte_pmd_ixgbe_ping_vf(uint8_t port, uint16_t vf)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -115,7 +115,7 @@ rte_pmd_ixgbe_set_vf_vlan_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -145,7 +145,7 @@ rte_pmd_ixgbe_set_vf_mac_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -174,7 +174,7 @@ rte_pmd_ixgbe_set_vf_vlan_insert(uint8_t port, uint16_t vf, uint16_t vlan_id)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -270,7 +270,7 @@ rte_pmd_ixgbe_set_vf_split_drop_en(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -306,7 +306,7 @@ rte_pmd_ixgbe_set_vf_vlan_stripq(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
 	if (!is_ixgbe_supported(dev))
@@ -354,7 +354,7 @@ rte_pmd_ixgbe_set_vf_rxmode(uint8_t port, uint16_t vf,
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -401,7 +401,7 @@ rte_pmd_ixgbe_set_vf_rx(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -452,7 +452,7 @@ rte_pmd_ixgbe_set_vf_tx(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c
index 436d25b..132c837 100644
--- a/drivers/net/liquidio/lio_ethdev.c
+++ b/drivers/net/liquidio/lio_ethdev.c
@@ -1958,7 +1958,7 @@ lio_eth_dev_uninit(struct rte_eth_dev *eth_dev)
 static int
 lio_eth_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(eth_dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct lio_device *lio_dev = LIO_DEV(eth_dev);
 
 	PMD_INIT_FUNC_TRACE();
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index 0fdba80..aa60871 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -4300,7 +4300,7 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
 	unsigned int max;
 	char ifname[IF_NAMESIZE];
 
-	info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (priv == NULL)
 		return;
diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 3fd22cb..eadf452 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -661,7 +661,7 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
 	unsigned int max;
 	char ifname[IF_NAMESIZE];
 
-	info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	priv_lock(priv);
 	/* FIXME: we should ask the device for these values. */
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index 5c5cba1..7e286e9 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -647,7 +647,7 @@ nfp_configure_rx_interrupt(struct rte_eth_dev *dev,
 static int
 nfp_net_start(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t new_ctrl, update = 0;
 	struct nfp_net_hw *hw;
@@ -772,7 +772,7 @@ nfp_net_close(struct rte_eth_dev *dev)
 	PMD_INIT_LOG(DEBUG, "Close");
 
 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = RTE_DEV_TO_PCI(dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	/*
 	 * We assume that the DPDK application is stopping all the
@@ -1081,7 +1081,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->max_rx_queues = (uint16_t)hw->max_rx_queues;
 	dev_info->max_tx_queues = (uint16_t)hw->max_tx_queues;
 	dev_info->min_rx_bufsize = ETHER_MIN_MTU;
@@ -1201,7 +1201,7 @@ nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 	int base = 0;
 
 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = RTE_DEV_TO_PCI(dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (pci_dev->intr_handle.type != RTE_INTR_HANDLE_UIO)
 		base = 1;
@@ -1221,7 +1221,7 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 	int base = 0;
 
 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = RTE_DEV_TO_PCI(dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (pci_dev->intr_handle.type != RTE_INTR_HANDLE_UIO)
 		base = 1;
@@ -1235,7 +1235,7 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 static void
 nfp_net_dev_link_status_print(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_eth_link link;
 
 	memset(&link, 0, sizeof(link));
@@ -1269,7 +1269,7 @@ nfp_net_irq_unmask(struct rte_eth_dev *dev)
 	struct rte_pci_device *pci_dev;
 
 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = RTE_DEV_TO_PCI(dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (hw->ctrl & NFP_NET_CFG_CTRL_MSIXAUTO) {
 		/* If MSI-X auto-masking is used, clear the entry */
@@ -2450,7 +2450,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
 
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	rte_eth_copy_pci_info(eth_dev, pci_dev);
 	eth_dev->data->dev_flags |= RTE_ETH_DEV_DETACHABLE;
 
diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 7056fed..61beee6 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -944,7 +944,7 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev,
 
 	PMD_INIT_FUNC_TRACE(edev);
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	dev_info->min_rx_bufsize = (uint32_t)QEDE_MIN_RX_BUFF_SIZE;
 	dev_info->max_rx_pktlen = (uint32_t)ETH_TX_MAX_NON_LSO_PKT_LEN;
 	dev_info->rx_desc_lim = qede_rx_desc_lim;
@@ -1101,7 +1101,7 @@ static void qede_poll_sp_sb_cb(void *param)
 
 static void qede_dev_close(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev);
 	struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
 	int rc;
@@ -2102,7 +2102,7 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf)
 	/* Extract key data structures */
 	adapter = eth_dev->data->dev_private;
 	edev = &adapter->edev;
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	pci_addr = pci_dev->addr;
 
 	PMD_INIT_FUNC_TRACE(edev);
diff --git a/drivers/net/sfc/sfc.c b/drivers/net/sfc/sfc.c
index 4e241b2..6cecfc0 100644
--- a/drivers/net/sfc/sfc.c
+++ b/drivers/net/sfc/sfc.c
@@ -465,7 +465,7 @@ static int
 sfc_mem_bar_init(struct sfc_adapter *sa)
 {
 	struct rte_eth_dev *eth_dev = sa->eth_dev;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	efsys_bar_t *ebp = &sa->mem_bar;
 	unsigned int i;
 	struct rte_mem_resource *res;
@@ -666,7 +666,7 @@ sfc_detach(struct sfc_adapter *sa)
 int
 sfc_probe(struct sfc_adapter *sa)
 {
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 	efx_nic_t *enp;
 	int rc;
 
diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h
index fad0ce0..7927678 100644
--- a/drivers/net/sfc/sfc.h
+++ b/drivers/net/sfc/sfc.h
@@ -46,9 +46,6 @@
 extern "C" {
 #endif
 
-#define SFC_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
 #if EFSYS_OPT_RX_SCALE
 /** RSS key length (bytes) */
 #define SFC_RSS_KEY_SIZE	40
diff --git a/drivers/net/sfc/sfc_debug.h b/drivers/net/sfc/sfc_debug.h
index c0b4867..f4fe044 100644
--- a/drivers/net/sfc/sfc_debug.h
+++ b/drivers/net/sfc/sfc_debug.h
@@ -48,7 +48,8 @@
 #define sfc_panic(sa, fmt, args...) \
 	do {								\
 		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
-		const struct rte_pci_device *_pci_dev = SFC_DEV_TO_PCI(_dev); \
+		const struct rte_pci_device *_pci_dev =			\
+			RTE_ETH_DEV_TO_PCI(_dev);			\
 									\
 		rte_panic("sfc " PCI_PRI_FMT " #%" PRIu8 ": " fmt "\n",	\
 			  _pci_dev->addr.domain, _pci_dev->addr.bus,	\
diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
index 4c9335f..d5583ec 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
@@ -107,7 +107,7 @@ sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
 	sfc_log_init(sa, "entry");
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->max_rx_pktlen = EFX_MAC_PDU_MAX;
 
 	/* Autonegotiation may be disabled */
@@ -1486,7 +1486,7 @@ static int
 sfc_eth_dev_init(struct rte_eth_dev *dev)
 {
 	struct sfc_adapter *sa = dev->data->dev_private;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	int rc;
 	const efx_nic_cfg_t *encp;
 	const struct ether_addr *from;
diff --git a/drivers/net/sfc/sfc_intr.c b/drivers/net/sfc/sfc_intr.c
index 7eb4b86..dfa453a 100644
--- a/drivers/net/sfc/sfc_intr.c
+++ b/drivers/net/sfc/sfc_intr.c
@@ -77,7 +77,7 @@ sfc_intr_line_handler(void *cb_arg)
 	boolean_t fatal;
 	uint32_t qmask;
 	unsigned int lsc_seq = sa->port.lsc_seq;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
@@ -122,7 +122,7 @@ sfc_intr_message_handler(void *cb_arg)
 	efx_nic_t *enp = sa->nic;
 	boolean_t fatal;
 	unsigned int lsc_seq = sa->port.lsc_seq;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
@@ -177,7 +177,7 @@ sfc_intr_start(struct sfc_adapter *sa)
 	if (rc != 0)
 		goto fail_intr_init;
 
-	pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	if (intr->handler != NULL) {
@@ -232,7 +232,7 @@ void
 sfc_intr_stop(struct sfc_adapter *sa)
 {
 	struct sfc_intr *intr = &sa->intr;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
@@ -306,7 +306,7 @@ int
 sfc_intr_attach(struct sfc_adapter *sa)
 {
 	struct sfc_intr *intr = &sa->intr;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
diff --git a/drivers/net/sfc/sfc_log.h b/drivers/net/sfc/sfc_log.h
index 8a5e230..d0f8921 100644
--- a/drivers/net/sfc/sfc_log.h
+++ b/drivers/net/sfc/sfc_log.h
@@ -36,7 +36,8 @@
 #define SFC_LOG(sa, level, ...) \
 	do {								\
 		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
-		const struct rte_pci_device *_pci_dev = SFC_DEV_TO_PCI(_dev); \
+		const struct rte_pci_device *_pci_dev =			\
+			RTE_ETH_DEV_TO_PCI(_dev);			\
 									\
 		RTE_LOG(level, PMD,					\
 			RTE_FMT("sfc_efx " PCI_PRI_FMT " #%" PRIu8 ": "	\
diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
index 2ecd6f2..122b657 100644
--- a/drivers/net/sfc/sfc_rx.c
+++ b/drivers/net/sfc/sfc_rx.c
@@ -942,7 +942,7 @@ sfc_rx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
 	info.mem_bar = sa->mem_bar.esb_base;
 
 	rc = sa->dp_rx->qcreate(sa->eth_dev->data->port_id, sw_index,
-				&SFC_DEV_TO_PCI(sa->eth_dev)->addr,
+				&RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr,
 				socket_id, &info, &rxq->dp);
 	if (rc != 0)
 		goto fail_dp_rx_qcreate;
diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c
index b8581d1..d75fb84 100644
--- a/drivers/net/sfc/sfc_tx.c
+++ b/drivers/net/sfc/sfc_tx.c
@@ -185,7 +185,7 @@ sfc_tx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
 	info.mem_bar = sa->mem_bar.esb_base;
 
 	rc = sa->dp_tx->qcreate(sa->eth_dev->data->port_id, sw_index,
-				&SFC_DEV_TO_PCI(sa->eth_dev)->addr,
+				&RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr,
 				socket_id, &info, &txq->dp);
 	if (rc != 0)
 		goto fail_dp_tx_qinit;
diff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c
index 54212b7..c70e9f3 100644
--- a/drivers/net/szedata2/rte_eth_szedata2.c
+++ b/drivers/net/szedata2/rte_eth_szedata2.c
@@ -1032,7 +1032,7 @@ eth_dev_info(struct rte_eth_dev *dev,
 		struct rte_eth_dev_info *dev_info)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->if_index = 0;
 	dev_info->max_mac_addrs = 1;
 	dev_info->max_rx_pktlen = (uint32_t)-1;
@@ -1431,7 +1431,7 @@ rte_szedata2_eth_dev_init(struct rte_eth_dev *dev)
 	struct szedata *szedata_temp;
 	int ret;
 	uint32_t szedata2_index;
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_pci_addr *pci_addr = &pci_dev->addr;
 	struct rte_mem_resource *pci_rsc =
 		&pci_dev->mem_resource[PCI_RESOURCE_NUMBER];
@@ -1554,7 +1554,7 @@ rte_szedata2_eth_dev_init(struct rte_eth_dev *dev)
 static int
 rte_szedata2_eth_dev_uninit(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_pci_addr *pci_addr = &pci_dev->addr;
 
 	rte_free(dev->data->mac_addrs);
diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c
index e4910c9..dbfb3c9 100644
--- a/drivers/net/thunderx/nicvf_ethdev.c
+++ b/drivers/net/thunderx/nicvf_ethdev.c
@@ -1366,11 +1366,11 @@ static void
 nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
 	struct nicvf *nic = nicvf_pmd_priv(dev);
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	PMD_INIT_FUNC_TRACE();
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	dev_info->min_rx_bufsize = ETHER_MIN_MTU;
 	dev_info->max_rx_pktlen = NIC_HW_MAX_FRS;
@@ -2017,7 +2017,7 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)
 		}
 	}
 
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	rte_eth_copy_pci_info(eth_dev, pci_dev);
 
 	nic->device_id = pci_dev->id.device_id;
diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index b23f4c2..d140a6b 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1354,7 +1354,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
 		return -1;
 
 	if (!hw->virtio_user_dev) {
-		pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+		pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 		rte_eth_copy_pci_info(eth_dev, pci_dev);
 	}
 
@@ -1536,8 +1536,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
 
 	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
 		if (!hw->virtio_user_dev) {
-			ret = virtio_remap_pci(RTE_DEV_TO_PCI(eth_dev->device),
-					       hw);
+			ret = virtio_remap_pci(RTE_ETH_DEV_TO_PCI(eth_dev), hw);
 			if (ret)
 				return ret;
 		}
@@ -1566,7 +1565,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
 	 * virtio_user_eth_dev_alloc() before eth_virtio_dev_init() is called.
 	 */
 	if (!hw->virtio_user_dev) {
-		ret = vtpci_init(RTE_DEV_TO_PCI(eth_dev->device), hw);
+		ret = vtpci_init(RTE_ETH_DEV_TO_PCI(eth_dev), hw);
 		if (ret)
 			return ret;
 	}
@@ -1608,7 +1607,7 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)
 						virtio_interrupt_handler,
 						eth_dev);
 	if (eth_dev->device)
-		rte_eal_pci_unmap_device(RTE_DEV_TO_PCI(eth_dev->device));
+		rte_eal_pci_unmap_device(RTE_ETH_DEV_TO_PCI(eth_dev));
 
 	PMD_INIT_LOG(DEBUG, "dev_uninit completed");
 
@@ -1893,7 +1892,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
 	dev_info->speed_capa = ETH_LINK_SPEED_10G; /* fake value */
 
-	dev_info->pci_dev = dev->device ? RTE_DEV_TO_PCI(dev->device) : NULL;
+	dev_info->pci_dev = dev->device ? RTE_ETH_DEV_TO_PCI(dev) : NULL;
 	dev_info->max_rx_queues =
 		RTE_MIN(hw->max_queue_pairs, VIRTIO_MAX_RX_QUEUES);
 	dev_info->max_tx_queues =
diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index 0e8eb75..127f6fa 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -259,7 +259,7 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
 	eth_dev->rx_pkt_burst = &vmxnet3_recv_pkts;
 	eth_dev->tx_pkt_burst = &vmxnet3_xmit_pkts;
 	eth_dev->tx_pkt_prepare = vmxnet3_prep_pkts;
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	/*
 	 * for secondary processes, we don't initialize any further as primary
@@ -868,7 +868,7 @@ static void
 vmxnet3_dev_info_get(struct rte_eth_dev *dev,
 		     struct rte_eth_dev_info *dev_info)
 {
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	dev_info->max_rx_queues = VMXNET3_MAX_RX_QUEUES;
 	dev_info->max_tx_queues = VMXNET3_MAX_TX_QUEUES;
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index f8c8c13..9dd9248 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -1048,6 +1048,8 @@ TAILQ_HEAD(rte_eth_dev_cb_list, rte_eth_dev_callback);
 	} \
 } while (0)
 
+#define RTE_ETH_DEV_TO_PCI(eth_dev)	RTE_DEV_TO_PCI((eth_dev)->device)
+
 /**
  * l2 tunnel configuration.
  */
-- 
2.9.3

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH v2] drivers/net: add generic ethdev macro to get PCI device
  2017-05-05  9:54 ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
@ 2017-05-05 10:57   ` Andrew Rybchenko
  2017-05-15 10:24   ` [dpdk-dev] [PATCH v3] " Ferruh Yigit
  1 sibling, 0 replies; 9+ messages in thread
From: Andrew Rybchenko @ 2017-05-05 10:57 UTC (permalink / raw)
  To: Ferruh Yigit, Shepard Siegel, Ed Czeck, John Miller,
	Allain Legacy, Matt Peters, Harish Patil, Rasesh Mody,
	Stephen Hurd, Ajit Khaparde, Declan Doherty, Rahul Lakkireddy,
	Wenzhuo Lu, Marcin Wojtas, Michal Krawczyk, Guy Tzalik,
	Evgeny Schemeilin, John Daley, Nelson Escobar, Jing Chen,
	Helin Zhang, Jingjing Wu, Konstantin Ananyev, Shijith Thotton,
	Srisivasubramanian Srinivasan, Adrien Mazarguil,
	Nelio Laranjeiro, Alejandro Lucero, Matej Vido, Jerin Jacob,
	Maciej Czekaj, Yuanhan Liu, Maxime Coquelin, Shrikrishna Khare,
	Thomas Monjalon
  Cc: dev

On 05/05/2017 12:54 PM, Ferruh Yigit wrote:
> Instead of many PMD define their own macro, define a generic one in
> ethdev and use that in PMDs.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Acked-by: Allain Legacy <allain.legacy@windriver.com>
> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>

Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>

> ---
>
> v2:
> * Convert RTE_DEV_TO_PCI(eth_dev->device) to RTE_ETH_DEV_TO_PCI(eth_dev)
> ---
>   drivers/net/ark/ark_ethdev.c            |  4 ++--
>   drivers/net/ark/ark_ethdev.h            |  4 ----
>   drivers/net/avp/avp_ethdev.c            | 27 +++++++++++------------
>   drivers/net/bnx2x/bnx2x_ethdev.c        |  4 ++--
>   drivers/net/bnxt/bnxt_ethdev.c          |  6 +++---
>   drivers/net/bonding/rte_eth_bond_args.c |  2 +-
>   drivers/net/cxgbe/cxgbe_ethdev.c        |  4 ++--
>   drivers/net/e1000/e1000_ethdev.h        |  2 --
>   drivers/net/e1000/em_ethdev.c           | 15 ++++++-------
>   drivers/net/e1000/igb_ethdev.c          | 28 ++++++++++++------------
>   drivers/net/e1000/igb_pf.c              |  2 +-
>   drivers/net/ena/ena_ethdev.c            |  4 ++--
>   drivers/net/enic/enic_ethdev.c          |  4 ++--
>   drivers/net/fm10k/fm10k_ethdev.c        | 16 +++++++-------
>   drivers/net/i40e/i40e_ethdev.c          | 30 +++++++++++++-------------
>   drivers/net/i40e/i40e_ethdev.h          |  3 ---
>   drivers/net/i40e/i40e_ethdev_vf.c       | 20 ++++++++---------
>   drivers/net/ixgbe/ixgbe_ethdev.c        | 38 ++++++++++++++++-----------------
>   drivers/net/ixgbe/ixgbe_ethdev.h        |  3 ---
>   drivers/net/ixgbe/ixgbe_pf.c            |  2 +-
>   drivers/net/ixgbe/rte_pmd_ixgbe.c       | 20 ++++++++---------
>   drivers/net/liquidio/lio_ethdev.c       |  2 +-
>   drivers/net/mlx4/mlx4.c                 |  2 +-
>   drivers/net/mlx5/mlx5_ethdev.c          |  2 +-
>   drivers/net/nfp/nfp_net.c               | 16 +++++++-------
>   drivers/net/qede/qede_ethdev.c          |  6 +++---
>   drivers/net/sfc/sfc.c                   |  4 ++--
>   drivers/net/sfc/sfc.h                   |  3 ---
>   drivers/net/sfc/sfc_debug.h             |  3 ++-
>   drivers/net/sfc/sfc_ethdev.c            |  4 ++--
>   drivers/net/sfc/sfc_intr.c              | 10 ++++-----
>   drivers/net/sfc/sfc_log.h               |  3 ++-
>   drivers/net/sfc/sfc_rx.c                |  2 +-
>   drivers/net/sfc/sfc_tx.c                |  2 +-
>   drivers/net/szedata2/rte_eth_szedata2.c |  6 +++---
>   drivers/net/thunderx/nicvf_ethdev.c     |  6 +++---
>   drivers/net/virtio/virtio_ethdev.c      | 11 +++++-----
>   drivers/net/vmxnet3/vmxnet3_ethdev.c    |  4 ++--
>   lib/librte_ether/rte_ethdev.h           |  2 ++
>   39 files changed, 155 insertions(+), 171 deletions(-)
>
> diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c
> index 83961f5..230d3f5 100644
> --- a/drivers/net/ark/ark_ethdev.c
> +++ b/drivers/net/ark/ark_ethdev.c
> @@ -278,7 +278,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
>   	ret = check_for_ext(ark);
>   	if (ret)
>   		return ret;
> -	pci_dev = ARK_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	rte_eth_copy_pci_info(dev, pci_dev);
>   
>   	/* Use dummy function until setup */
> @@ -751,7 +751,7 @@ eth_ark_dev_info_get(struct rte_eth_dev *dev,
>   				ETH_LINK_SPEED_40G |
>   				ETH_LINK_SPEED_50G |
>   				ETH_LINK_SPEED_100G);
> -	dev_info->pci_dev = ARK_DEV_TO_PCI(dev);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   }
>   
>   static int
> diff --git a/drivers/net/ark/ark_ethdev.h b/drivers/net/ark/ark_ethdev.h
> index 9f8d32f..df5547b 100644
> --- a/drivers/net/ark/ark_ethdev.h
> +++ b/drivers/net/ark/ark_ethdev.h
> @@ -34,8 +34,4 @@
>   #ifndef _ARK_ETHDEV_H_
>   #define _ARK_ETHDEV_H_
>   
> -#define ARK_DEV_TO_PCI(eth_dev)			\
> -	RTE_DEV_TO_PCI((eth_dev)->device)
> -
> -
>   #endif
> diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c
> index fe6849f..a66d1cf 100644
> --- a/drivers/net/avp/avp_ethdev.c
> +++ b/drivers/net/avp/avp_ethdev.c
> @@ -113,9 +113,6 @@ static void avp_dev_stats_get(struct rte_eth_dev *dev,
>   static void avp_dev_stats_reset(struct rte_eth_dev *dev);
>   
>   
> -#define AVP_DEV_TO_PCI(eth_dev) RTE_DEV_TO_PCI((eth_dev)->device)
> -
> -
>   #define AVP_MAX_RX_BURST 64
>   #define AVP_MAX_TX_BURST 64
>   #define AVP_MAX_MAC_ADDRS 1
> @@ -393,7 +390,7 @@ static void *
>   avp_dev_translate_address(struct rte_eth_dev *eth_dev,
>   			  phys_addr_t host_phys_addr)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_mem_resource *resource;
>   	struct rte_avp_memmap_info *info;
>   	struct rte_avp_memmap *map;
> @@ -446,7 +443,7 @@ avp_dev_version_check(uint32_t version)
>   static int
>   avp_dev_check_regions(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_avp_memmap_info *memmap;
>   	struct rte_avp_device_info *info;
>   	struct rte_mem_resource *resource;
> @@ -582,7 +579,7 @@ _avp_set_rx_queue_mappings(struct rte_eth_dev *eth_dev, uint16_t rx_queue_id)
>   static void
>   _avp_set_queue_counts(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
>   	struct rte_avp_device_info *host_info;
>   	void *addr;
> @@ -642,7 +639,7 @@ avp_dev_attach(struct rte_eth_dev *eth_dev)
>   	 * re-run the device create utility which will parse the new host info
>   	 * and setup the AVP device queue pointers.
>   	 */
> -	ret = avp_dev_create(AVP_DEV_TO_PCI(eth_dev), eth_dev);
> +	ret = avp_dev_create(RTE_ETH_DEV_TO_PCI(eth_dev), eth_dev);
>   	if (ret < 0) {
>   		PMD_DRV_LOG(ERR, "Failed to re-create AVP device, ret=%d\n",
>   			    ret);
> @@ -696,7 +693,7 @@ static void
>   avp_dev_interrupt_handler(void *data)
>   {
>   	struct rte_eth_dev *eth_dev = data;
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
>   	uint32_t status, value;
>   	int ret;
> @@ -755,7 +752,7 @@ avp_dev_interrupt_handler(void *data)
>   static int
>   avp_dev_enable_interrupts(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
>   	int ret;
>   
> @@ -780,7 +777,7 @@ avp_dev_enable_interrupts(struct rte_eth_dev *eth_dev)
>   static int
>   avp_dev_disable_interrupts(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
>   	int ret;
>   
> @@ -805,7 +802,7 @@ avp_dev_disable_interrupts(struct rte_eth_dev *eth_dev)
>   static int
>   avp_dev_setup_interrupts(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	int ret;
>   
>   	/* register a callback handler with UIO for interrupt notifications */
> @@ -825,7 +822,7 @@ avp_dev_setup_interrupts(struct rte_eth_dev *eth_dev)
>   static int
>   avp_dev_migration_pending(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
>   	uint32_t value;
>   
> @@ -986,7 +983,7 @@ eth_avp_dev_init(struct rte_eth_dev *eth_dev)
>   	struct rte_pci_device *pci_dev;
>   	int ret;
>   
> -	pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	eth_dev->dev_ops = &avp_eth_dev_ops;
>   	eth_dev->rx_pkt_burst = &avp_recv_pkts;
>   	eth_dev->tx_pkt_burst = &avp_xmit_pkts;
> @@ -2011,7 +2008,7 @@ avp_dev_tx_queue_release(void *tx_queue)
>   static int
>   avp_dev_configure(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
>   	struct rte_avp_device_info *host_info;
>   	struct rte_avp_device_config config;
> @@ -2207,7 +2204,7 @@ avp_dev_info_get(struct rte_eth_dev *eth_dev,
>   	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
>   
>   	dev_info->driver_name = "rte_avp_pmd";
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	dev_info->max_rx_queues = avp->max_rx_queues;
>   	dev_info->max_tx_queues = avp->max_tx_queues;
>   	dev_info->min_rx_bufsize = AVP_MIN_RX_BUFSIZE;
> diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
> index 314e5ea..2e72d32 100644
> --- a/drivers/net/bnx2x/bnx2x_ethdev.c
> +++ b/drivers/net/bnx2x/bnx2x_ethdev.c
> @@ -442,7 +442,7 @@ static void
>   bnx2x_dev_infos_get(struct rte_eth_dev *dev, __rte_unused struct rte_eth_dev_info *dev_info)
>   {
>   	struct bnx2x_softc *sc = dev->data->dev_private;
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->max_rx_queues  = sc->max_rx_queues;
>   	dev_info->max_tx_queues  = sc->max_tx_queues;
>   	dev_info->min_rx_bufsize = BNX2X_MIN_RX_BUF_SIZE;
> @@ -528,7 +528,7 @@ bnx2x_common_dev_init(struct rte_eth_dev *eth_dev, int is_vf)
>   	PMD_INIT_FUNC_TRACE();
>   
>   	eth_dev->dev_ops = is_vf ? &bnx2xvf_eth_dev_ops : &bnx2x_eth_dev_ops;
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	rte_eth_copy_pci_info(eth_dev, pci_dev);
>   
> diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
> index 7805221..7080cbb 100644
> --- a/drivers/net/bnxt/bnxt_ethdev.c
> +++ b/drivers/net/bnxt/bnxt_ethdev.c
> @@ -338,7 +338,7 @@ static void bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev,
>   	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
>   	uint16_t max_vnics, i, j, vpool, vrxq;
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	/* MAC Specifics */
>   	dev_info->max_mac_addrs = MAX_NUM_MAC_ADDR;
> @@ -1049,7 +1049,7 @@ static bool bnxt_vf_pciid(uint16_t id)
>   static int bnxt_init_board(struct rte_eth_dev *eth_dev)
>   {
>   	struct bnxt *bp = eth_dev->data->dev_private;
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	int rc;
>   
>   	/* enable device (incl. PCI PM wakeup), and bus-mastering */
> @@ -1085,7 +1085,7 @@ static int bnxt_dev_uninit(struct rte_eth_dev *eth_dev);
>   static int
>   bnxt_dev_init(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	static int version_printed;
>   	struct bnxt *bp;
>   	int rc;
> diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c
> index e3bdad9..dac9eb0 100644
> --- a/drivers/net/bonding/rte_eth_bond_args.c
> +++ b/drivers/net/bonding/rte_eth_bond_args.c
> @@ -69,7 +69,7 @@ find_port_id_by_pci_addr(const struct rte_pci_addr *pci_addr)
>   		    rte_eth_devices[i].data->kdrv == RTE_KDRV_NONE)
>   			continue;
>   
> -		pci_dev = RTE_DEV_TO_PCI(rte_eth_devices[i].device);
> +		pci_dev = RTE_ETH_DEV_TO_PCI(&rte_eth_devices[i]);
>   		eth_pci_addr = &pci_dev->addr;
>   
>   		if (pci_addr->bus == eth_pci_addr->bus &&
> diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
> index 34fed84..2e2f2cf 100644
> --- a/drivers/net/cxgbe/cxgbe_ethdev.c
> +++ b/drivers/net/cxgbe/cxgbe_ethdev.c
> @@ -148,7 +148,7 @@ static void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
>   		.nb_align = 1,
>   	};
>   
> -	device_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	device_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	device_info->min_rx_bufsize = CXGBE_MIN_RX_BUFSIZE;
>   	device_info->max_rx_pktlen = CXGBE_MAX_RX_PKTLEN;
> @@ -1008,7 +1008,7 @@ static int eth_cxgbe_dev_init(struct rte_eth_dev *eth_dev)
>   	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
>   		return 0;
>   
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	snprintf(name, sizeof(name), "cxgbeadapter%d", eth_dev->data->port_id);
>   	adapter = rte_zmalloc(name, sizeof(*adapter), 0);
> diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h
> index 8352d0a..4979895 100644
> --- a/drivers/net/e1000/e1000_ethdev.h
> +++ b/drivers/net/e1000/e1000_ethdev.h
> @@ -291,8 +291,6 @@ struct e1000_adapter {
>   #define E1000_DEV_PRIVATE_TO_FILTER_INFO(adapter) \
>   	(&((struct e1000_adapter *)adapter)->filter)
>   
> -#define E1000_DEV_TO_PCI(eth_dev) \
> -	RTE_DEV_TO_PCI((eth_dev)->device)
>   /*
>    * RX/TX IGB function prototypes
>    */
> diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
> index 599b9e0..61b2649 100644
> --- a/drivers/net/e1000/em_ethdev.c
> +++ b/drivers/net/e1000/em_ethdev.c
> @@ -316,7 +316,7 @@ eth_em_dev_is_ich8(struct e1000_hw *hw)
>   static int
>   eth_em_dev_init(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
> @@ -390,7 +390,7 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev)
>   static int
>   eth_em_dev_uninit(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
> @@ -593,8 +593,7 @@ eth_em_start(struct rte_eth_dev *dev)
>   		E1000_DEV_PRIVATE(dev->data->dev_private);
>   	struct e1000_hw *hw =
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev =
> -		E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	int ret, mask;
>   	uint32_t intr_vector = 0;
> @@ -777,7 +776,7 @@ eth_em_stop(struct rte_eth_dev *dev)
>   {
>   	struct rte_eth_link link;
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	em_rxq_intr_disable(hw);
> @@ -1041,7 +1040,7 @@ static int
>   eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue_id)
>   {
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	em_rxq_intr_enable(hw);
> @@ -1091,7 +1090,7 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
>   	dev_info->max_rx_pktlen = em_get_max_pktlen(hw);
>   	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
> @@ -1598,7 +1597,7 @@ static int
>   eth_em_interrupt_action(struct rte_eth_dev *dev,
>   			struct rte_intr_handle *intr_handle)
>   {
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct e1000_hw *hw =
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct e1000_interrupt *intr =
> diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
> index b6b81cb..435a13d 100644
> --- a/drivers/net/e1000/igb_ethdev.c
> +++ b/drivers/net/e1000/igb_ethdev.c
> @@ -760,7 +760,7 @@ static int
>   eth_igb_dev_init(struct rte_eth_dev *eth_dev)
>   {
>   	int error = 0;
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct e1000_hw *hw =
>   		E1000_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
>   	struct e1000_vfta * shadow_vfta =
> @@ -936,7 +936,7 @@ eth_igb_dev_uninit(struct rte_eth_dev *eth_dev)
>   		return -EPERM;
>   
>   	hw = E1000_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
> -	pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	intr_handle = &pci_dev->intr_handle;
>   
>   	if (adapter->stopped == 0)
> @@ -994,7 +994,7 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)
>   		return 0;
>   	}
>   
> -	pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	rte_eth_copy_pci_info(eth_dev, pci_dev);
>   	eth_dev->data->dev_flags |= RTE_ETH_DEV_DETACHABLE;
>   
> @@ -1071,7 +1071,7 @@ eth_igbvf_dev_uninit(struct rte_eth_dev *eth_dev)
>   {
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	PMD_INIT_FUNC_TRACE();
>   
> @@ -1252,7 +1252,7 @@ eth_igb_start(struct rte_eth_dev *dev)
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	int ret, mask;
>   	uint32_t intr_vector = 0;
> @@ -1461,7 +1461,7 @@ eth_igb_stop(struct rte_eth_dev *dev)
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct e1000_filter_info *filter_info =
>   		E1000_DEV_PRIVATE_TO_FILTER_INFO(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_eth_link link;
>   	struct e1000_flex_filter *p_flex;
>   	struct e1000_5tuple_filter *p_5tuple, *p_5tuple_next;
> @@ -1566,7 +1566,7 @@ eth_igb_close(struct rte_eth_dev *dev)
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(dev->data->dev_private);
>   	struct rte_eth_link link;
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	eth_igb_stop(dev);
> @@ -2152,7 +2152,7 @@ eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
>   	dev_info->max_rx_pktlen  = 0x3FFF; /* See RLPML register. */
>   	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
> @@ -2281,7 +2281,7 @@ eth_igbvf_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
>   	dev_info->max_rx_pktlen  = 0x3FFF; /* See RLPML register. */
>   	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
> @@ -2813,7 +2813,7 @@ eth_igb_interrupt_action(struct rte_eth_dev *dev,
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct e1000_interrupt *intr =
>   		E1000_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	uint32_t tctl, rctl;
>   	struct rte_eth_link link;
>   	int ret;
> @@ -3228,7 +3228,7 @@ igbvf_dev_start(struct rte_eth_dev *dev)
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	int ret;
>   	uint32_t intr_vector = 0;
> @@ -3284,7 +3284,7 @@ igbvf_dev_start(struct rte_eth_dev *dev)
>   static void
>   igbvf_dev_stop(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	PMD_INIT_FUNC_TRACE();
> @@ -5270,7 +5270,7 @@ eth_igb_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
>   	struct e1000_hw *hw =
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t mask = 1 << queue_id;
>   	uint32_t regval;
> @@ -5343,7 +5343,7 @@ eth_igb_configure_msix_intr(struct rte_eth_dev *dev)
>   	uint32_t vec = E1000_MISC_VEC_ID;
>   	uint32_t base = E1000_MISC_VEC_ID;
>   	uint32_t misc_shift = 0;
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	/* won't configure msix register if no mapping is done
> diff --git a/drivers/net/e1000/igb_pf.c b/drivers/net/e1000/igb_pf.c
> index 67da3c2..8d30187 100644
> --- a/drivers/net/e1000/igb_pf.c
> +++ b/drivers/net/e1000/igb_pf.c
> @@ -57,7 +57,7 @@
>   static inline uint16_t
>   dev_num_vf(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	return pci_dev->max_vfs;
>   }
> diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
> index 64fee05..08e3719 100644
> --- a/drivers/net/ena/ena_ethdev.c
> +++ b/drivers/net/ena/ena_ethdev.c
> @@ -1289,7 +1289,7 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
>   	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
>   		return 0;
>   
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	adapter->pdev = pci_dev;
>   
>   	PMD_INIT_LOG(INFO, "Initializing %x:%x:%x.%d",
> @@ -1451,7 +1451,7 @@ static void ena_infos_get(struct rte_eth_dev *dev,
>   	ena_dev = &adapter->ena_dev;
>   	ena_assert_msg(ena_dev != NULL, "Uninitialized device");
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	dev_info->speed_capa =
>   			ETH_LINK_SPEED_1G   |
> diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
> index 7579696..75deedc 100644
> --- a/drivers/net/enic/enic_ethdev.c
> +++ b/drivers/net/enic/enic_ethdev.c
> @@ -455,7 +455,7 @@ static void enicpmd_dev_info_get(struct rte_eth_dev *eth_dev,
>   	struct enic *enic = pmd_priv(eth_dev);
>   
>   	ENICPMD_FUNC_TRACE();
> -	device_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	device_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	/* Scattered Rx uses two receive queues per rx queue exposed to dpdk */
>   	device_info->max_rx_queues = enic->conf_rq_count / 2;
>   	device_info->max_tx_queues = enic->conf_wq_count;
> @@ -619,7 +619,7 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)
>   	eth_dev->rx_pkt_burst = &enic_recv_pkts;
>   	eth_dev->tx_pkt_burst = &enic_xmit_pkts;
>   
> -	pdev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pdev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	rte_eth_copy_pci_info(eth_dev, pdev);
>   	enic->pdev = pdev;
>   	addr = &pdev->addr;
> diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
> index 94b4d40..79b14c9 100644
> --- a/drivers/net/fm10k/fm10k_ethdev.c
> +++ b/drivers/net/fm10k/fm10k_ethdev.c
> @@ -712,7 +712,7 @@ fm10k_dev_rx_init(struct rte_eth_dev *dev)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct fm10k_macvlan_filter_info *macvlan;
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
>   	int i, ret;
>   	struct fm10k_rx_queue *rxq;
> @@ -1173,7 +1173,7 @@ static void
>   fm10k_dev_stop(struct rte_eth_dev *dev)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
>   	int i;
>   
> @@ -1393,7 +1393,7 @@ fm10k_dev_infos_get(struct rte_eth_dev *dev,
>   	struct rte_eth_dev_info *dev_info)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	PMD_INIT_FUNC_TRACE();
>   
> @@ -2344,7 +2344,7 @@ static int
>   fm10k_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	/* Enable ITR */
>   	if (hw->mac.type == fm10k_mac_pf)
> @@ -2361,7 +2361,7 @@ static int
>   fm10k_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	/* Disable ITR */
>   	if (hw->mac.type == fm10k_mac_pf)
> @@ -2377,7 +2377,7 @@ static int
>   fm10k_dev_rxq_interrupt_setup(struct rte_eth_dev *dev)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
>   	uint32_t intr_vector, vec;
>   	uint16_t queue_id;
> @@ -2881,7 +2881,7 @@ static int
>   eth_fm10k_dev_init(struct rte_eth_dev *dev)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
>   	int diag, i;
>   	struct fm10k_macvlan_filter_info *macvlan;
> @@ -3068,7 +3068,7 @@ static int
>   eth_fm10k_dev_uninit(struct rte_eth_dev *dev)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
>   	PMD_INIT_FUNC_TRACE();
>   
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 3fa25dc..4069687 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -879,7 +879,7 @@ is_floating_veb_supported(struct rte_devargs *devargs)
>   static void
>   config_floating_veb(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
> @@ -1061,7 +1061,7 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
>   		return 0;
>   	}
>   	i40e_set_default_ptype_table(dev);
> -	pci_dev = I40E_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	intr_handle = &pci_dev->intr_handle;
>   
>   	rte_eth_copy_pci_info(dev, pci_dev);
> @@ -1414,7 +1414,7 @@ eth_i40e_dev_uninit(struct rte_eth_dev *dev)
>   
>   	pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	pci_dev = I40E_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	intr_handle = &pci_dev->intr_handle;
>   
>   	if (hw->adapter_stopped == 0)
> @@ -1547,7 +1547,7 @@ void
>   i40e_vsi_queues_unbind_intr(struct i40e_vsi *vsi)
>   {
>   	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
>   	uint16_t msix_vect = vsi->msix_intr;
> @@ -1661,7 +1661,7 @@ void
>   i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi)
>   {
>   	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
>   	uint16_t msix_vect = vsi->msix_intr;
> @@ -1733,7 +1733,7 @@ static void
>   i40e_vsi_enable_queues_intr(struct i40e_vsi *vsi)
>   {
>   	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
>   	uint16_t interval = i40e_calc_itr_interval(\
> @@ -1765,7 +1765,7 @@ static void
>   i40e_vsi_disable_queues_intr(struct i40e_vsi *vsi)
>   {
>   	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
>   	uint16_t msix_intr, i;
> @@ -1892,7 +1892,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct i40e_vsi *main_vsi = pf->main_vsi;
>   	int ret, i;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t intr_vector = 0;
>   	struct i40e_vsi *vsi;
> @@ -2040,7 +2040,7 @@ i40e_dev_stop(struct rte_eth_dev *dev)
>   	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	struct i40e_vsi *main_vsi = pf->main_vsi;
>   	struct i40e_mirror_rule *p_mirror;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	int i;
>   
> @@ -2092,7 +2092,7 @@ i40e_dev_close(struct rte_eth_dev *dev)
>   {
>   	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t reg;
>   	int i;
> @@ -2849,7 +2849,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct i40e_vsi *vsi = pf->main_vsi;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	dev_info->pci_dev = pci_dev;
>   	dev_info->max_rx_queues = vsi->nb_qps;
> @@ -3767,7 +3767,7 @@ i40e_pf_parameter_init(struct rte_eth_dev *dev)
>   {
>   	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_PF_TO_HW(pf);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	uint16_t qp_count = 0, vsi_count = 0;
>   
>   	if (pci_dev->max_vfs && !hw->func_caps.sr_iov_1_1) {
> @@ -8987,7 +8987,7 @@ i40e_dev_filter_ctrl(struct rte_eth_dev *dev,
>   static void
>   i40e_enable_extended_tag(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	uint32_t buf = 0;
>   	int ret;
>   
> @@ -10435,7 +10435,7 @@ i40e_dev_get_dcb_info(struct rte_eth_dev *dev,
>   static int
>   i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	uint16_t interval =
> @@ -10469,7 +10469,7 @@ i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   static int
>   i40e_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	uint16_t msix_intr;
> diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h
> index 71b0874..fc1e1fb 100644
> --- a/drivers/net/i40e/i40e_ethdev.h
> +++ b/drivers/net/i40e/i40e_ethdev.h
> @@ -886,9 +886,6 @@ int i40e_add_macvlan_filters(struct i40e_vsi *vsi,
>   			     int total);
>   bool is_i40e_supported(struct rte_eth_dev *dev);
>   
> -#define I40E_DEV_TO_PCI(eth_dev) \
> -	RTE_DEV_TO_PCI((eth_dev)->device)
> -
>   /* I40E_DEV_PRIVATE_TO */
>   #define I40E_DEV_PRIVATE_TO_PF(adapter) \
>   	(&((struct i40e_adapter *)adapter)->pf)
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
> index cb34023..2d0c3c3 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -727,7 +727,7 @@ i40evf_config_irq_map(struct rte_eth_dev *dev)
>   	uint8_t cmd_buffer[sizeof(struct i40e_virtchnl_irq_map_info) + \
>   		sizeof(struct i40e_virtchnl_vector_map)];
>   	struct i40e_virtchnl_irq_map_info *map_info;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t vector_id;
>   	int i, err;
> @@ -1460,7 +1460,7 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev)
>   {
>   	struct i40e_hw *hw
>   		= I40E_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	PMD_INIT_FUNC_TRACE();
>   
> @@ -1884,7 +1884,7 @@ i40evf_enable_queues_intr(struct rte_eth_dev *dev)
>   {
>   	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	if (!rte_intr_allow_others(intr_handle)) {
> @@ -1917,7 +1917,7 @@ i40evf_disable_queues_intr(struct rte_eth_dev *dev)
>   {
>   	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	if (!rte_intr_allow_others(intr_handle)) {
> @@ -1944,7 +1944,7 @@ i40evf_disable_queues_intr(struct rte_eth_dev *dev)
>   static int
>   i40evf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	uint16_t interval =
> @@ -1979,7 +1979,7 @@ i40evf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   static int
>   i40evf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	uint16_t msix_intr;
> @@ -2064,7 +2064,7 @@ i40evf_dev_start(struct rte_eth_dev *dev)
>   {
>   	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t intr_vector = 0;
>   
> @@ -2130,7 +2130,7 @@ i40evf_dev_start(struct rte_eth_dev *dev)
>   static void
>   i40evf_dev_stop(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	PMD_INIT_FUNC_TRACE();
> @@ -2261,7 +2261,7 @@ i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
>   
>   	memset(dev_info, 0, sizeof(*dev_info));
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->max_rx_queues = vf->vsi_res->num_queue_pairs;
>   	dev_info->max_tx_queues = vf->vsi_res->num_queue_pairs;
>   	dev_info->min_rx_bufsize = I40E_BUF_SIZE_MIN;
> @@ -2330,7 +2330,7 @@ static void
>   i40evf_dev_close(struct rte_eth_dev *dev)
>   {
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	i40evf_dev_stop(dev);
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
> index bbae4f9..03a6fdc 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -1131,7 +1131,7 @@ ixgbe_swfw_lock_reset(struct ixgbe_hw *hw)
>   static int
>   eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw =
>   		IXGBE_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
> @@ -1365,7 +1365,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
>   static int
>   eth_ixgbe_dev_uninit(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw;
>   
> @@ -1598,7 +1598,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
>   {
>   	int diag;
>   	uint32_t tc, tcs;
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw =
>   		IXGBE_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
> @@ -1747,7 +1747,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
>   static int
>   eth_ixgbevf_dev_uninit(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw;
>   
> @@ -2176,7 +2176,7 @@ ixgbe_vmdq_vlan_hw_filter_enable(struct rte_eth_dev *dev)
>   static int
>   ixgbe_check_vf_rss_rxq_num(struct rte_eth_dev *dev, uint16_t nb_rx_q)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	switch (nb_rx_q) {
>   	case 1:
> @@ -2425,7 +2425,7 @@ ixgbe_set_vf_rate_limit(struct rte_eth_dev *dev, uint16_t vf,
>   	uint16_t total_rate = 0;
>   	struct rte_pci_device *pci_dev;
>   
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	rte_eth_link_get_nowait(dev->data->port_id, &link);
>   
>   	if (vf >= pci_dev->max_vfs)
> @@ -2496,7 +2496,7 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>   		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct ixgbe_vf_info *vfinfo =
>   		*IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t intr_vector = 0;
>   	int err, link_up = 0, negotiate = 0;
> @@ -2714,7 +2714,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
>   		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct ixgbe_vf_info *vfinfo =
>   		*IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	int vf;
>   
> @@ -3582,7 +3582,7 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
>   static void
>   ixgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct rte_eth_conf *dev_conf = &dev->data->dev_conf;
>   
> @@ -3724,7 +3724,7 @@ static void
>   ixgbevf_dev_info_get(struct rte_eth_dev *dev,
>   		     struct rte_eth_dev_info *dev_info)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
>   	dev_info->pci_dev = pci_dev;
> @@ -4035,7 +4035,7 @@ ixgbe_dev_interrupt_get_status(struct rte_eth_dev *dev)
>   static void
>   ixgbe_dev_link_status_print(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_eth_link link;
>   
>   	memset(&link, 0, sizeof(link));
> @@ -4142,7 +4142,7 @@ static void
>   ixgbe_dev_interrupt_delayed_handler(void *param)
>   {
>   	struct rte_eth_dev *dev = (struct rte_eth_dev *)param;
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_interrupt *intr =
>   		IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
> @@ -4794,7 +4794,7 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
>   	struct ixgbe_hw *hw =
>   		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	uint32_t intr_vector = 0;
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	int err, mask = 0;
> @@ -4858,7 +4858,7 @@ static void
>   ixgbevf_dev_stop(struct rte_eth_dev *dev)
>   {
>   	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	PMD_INIT_FUNC_TRACE();
> @@ -5331,7 +5331,7 @@ ixgbe_mirror_rule_reset(struct rte_eth_dev *dev, uint8_t rule_id)
>   static int
>   ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t mask;
>   	struct ixgbe_hw *hw =
> @@ -5365,7 +5365,7 @@ ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   static int
>   ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t mask;
>   	struct ixgbe_hw *hw =
> @@ -5490,7 +5490,7 @@ ixgbe_set_ivar_map(struct ixgbe_hw *hw, int8_t direction,
>   static void
>   ixgbevf_configure_msix(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw =
>   		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> @@ -5524,7 +5524,7 @@ ixgbevf_configure_msix(struct rte_eth_dev *dev)
>   static void
>   ixgbe_configure_msix(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw =
>   		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> @@ -7517,7 +7517,7 @@ ixgbe_e_tag_insertion_en_dis(struct rte_eth_dev *dev,
>   			     struct rte_eth_l2_tunnel_conf *l2_tunnel,
>   			     bool en)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	int ret = 0;
>   	uint32_t vmtir, vmvir;
>   	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
> index b576a6f..32c0b38 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.h
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.h
> @@ -464,9 +464,6 @@ struct ixgbe_adapter {
>   	struct rte_timecounter      tx_tstamp_tc;
>   };
>   
> -#define IXGBE_DEV_TO_PCI(eth_dev) \
> -	RTE_DEV_TO_PCI((eth_dev)->device)
> -
>   #define IXGBE_DEV_PRIVATE_TO_HW(adapter)\
>   	(&((struct ixgbe_adapter *)adapter)->hw)
>   
> diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c
> index d88832e..f16a987 100644
> --- a/drivers/net/ixgbe/ixgbe_pf.c
> +++ b/drivers/net/ixgbe/ixgbe_pf.c
> @@ -61,7 +61,7 @@
>   static inline uint16_t
>   dev_num_vf(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	return pci_dev->max_vfs;
>   }
> diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
> index e8fc9a6..d6eae6c 100644
> --- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
> +++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
> @@ -51,7 +51,7 @@ rte_pmd_ixgbe_set_vf_mac_addr(uint8_t port, uint16_t vf,
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -84,7 +84,7 @@ rte_pmd_ixgbe_ping_vf(uint8_t port, uint16_t vf)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -115,7 +115,7 @@ rte_pmd_ixgbe_set_vf_vlan_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -145,7 +145,7 @@ rte_pmd_ixgbe_set_vf_mac_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -174,7 +174,7 @@ rte_pmd_ixgbe_set_vf_vlan_insert(uint8_t port, uint16_t vf, uint16_t vlan_id)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -270,7 +270,7 @@ rte_pmd_ixgbe_set_vf_split_drop_en(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -306,7 +306,7 @@ rte_pmd_ixgbe_set_vf_vlan_stripq(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
>   	if (!is_ixgbe_supported(dev))
> @@ -354,7 +354,7 @@ rte_pmd_ixgbe_set_vf_rxmode(uint8_t port, uint16_t vf,
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -401,7 +401,7 @@ rte_pmd_ixgbe_set_vf_rx(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -452,7 +452,7 @@ rte_pmd_ixgbe_set_vf_tx(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c
> index 436d25b..132c837 100644
> --- a/drivers/net/liquidio/lio_ethdev.c
> +++ b/drivers/net/liquidio/lio_ethdev.c
> @@ -1958,7 +1958,7 @@ lio_eth_dev_uninit(struct rte_eth_dev *eth_dev)
>   static int
>   lio_eth_dev_init(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(eth_dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct lio_device *lio_dev = LIO_DEV(eth_dev);
>   
>   	PMD_INIT_FUNC_TRACE();
> diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
> index 0fdba80..aa60871 100644
> --- a/drivers/net/mlx4/mlx4.c
> +++ b/drivers/net/mlx4/mlx4.c
> @@ -4300,7 +4300,7 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
>   	unsigned int max;
>   	char ifname[IF_NAMESIZE];
>   
> -	info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (priv == NULL)
>   		return;
> diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
> index 3fd22cb..eadf452 100644
> --- a/drivers/net/mlx5/mlx5_ethdev.c
> +++ b/drivers/net/mlx5/mlx5_ethdev.c
> @@ -661,7 +661,7 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
>   	unsigned int max;
>   	char ifname[IF_NAMESIZE];
>   
> -	info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	priv_lock(priv);
>   	/* FIXME: we should ask the device for these values. */
> diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
> index 5c5cba1..7e286e9 100644
> --- a/drivers/net/nfp/nfp_net.c
> +++ b/drivers/net/nfp/nfp_net.c
> @@ -647,7 +647,7 @@ nfp_configure_rx_interrupt(struct rte_eth_dev *dev,
>   static int
>   nfp_net_start(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t new_ctrl, update = 0;
>   	struct nfp_net_hw *hw;
> @@ -772,7 +772,7 @@ nfp_net_close(struct rte_eth_dev *dev)
>   	PMD_INIT_LOG(DEBUG, "Close");
>   
>   	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	/*
>   	 * We assume that the DPDK application is stopping all the
> @@ -1081,7 +1081,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   
>   	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->max_rx_queues = (uint16_t)hw->max_rx_queues;
>   	dev_info->max_tx_queues = (uint16_t)hw->max_tx_queues;
>   	dev_info->min_rx_bufsize = ETHER_MIN_MTU;
> @@ -1201,7 +1201,7 @@ nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   	int base = 0;
>   
>   	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (pci_dev->intr_handle.type != RTE_INTR_HANDLE_UIO)
>   		base = 1;
> @@ -1221,7 +1221,7 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   	int base = 0;
>   
>   	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (pci_dev->intr_handle.type != RTE_INTR_HANDLE_UIO)
>   		base = 1;
> @@ -1235,7 +1235,7 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   static void
>   nfp_net_dev_link_status_print(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_eth_link link;
>   
>   	memset(&link, 0, sizeof(link));
> @@ -1269,7 +1269,7 @@ nfp_net_irq_unmask(struct rte_eth_dev *dev)
>   	struct rte_pci_device *pci_dev;
>   
>   	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (hw->ctrl & NFP_NET_CFG_CTRL_MSIXAUTO) {
>   		/* If MSI-X auto-masking is used, clear the entry */
> @@ -2450,7 +2450,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
>   	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
>   		return 0;
>   
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	rte_eth_copy_pci_info(eth_dev, pci_dev);
>   	eth_dev->data->dev_flags |= RTE_ETH_DEV_DETACHABLE;
>   
> diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
> index 7056fed..61beee6 100644
> --- a/drivers/net/qede/qede_ethdev.c
> +++ b/drivers/net/qede/qede_ethdev.c
> @@ -944,7 +944,7 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev,
>   
>   	PMD_INIT_FUNC_TRACE(edev);
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	dev_info->min_rx_bufsize = (uint32_t)QEDE_MIN_RX_BUFF_SIZE;
>   	dev_info->max_rx_pktlen = (uint32_t)ETH_TX_MAX_NON_LSO_PKT_LEN;
>   	dev_info->rx_desc_lim = qede_rx_desc_lim;
> @@ -1101,7 +1101,7 @@ static void qede_poll_sp_sb_cb(void *param)
>   
>   static void qede_dev_close(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev);
>   	struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
>   	int rc;
> @@ -2102,7 +2102,7 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf)
>   	/* Extract key data structures */
>   	adapter = eth_dev->data->dev_private;
>   	edev = &adapter->edev;
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	pci_addr = pci_dev->addr;
>   
>   	PMD_INIT_FUNC_TRACE(edev);
> diff --git a/drivers/net/sfc/sfc.c b/drivers/net/sfc/sfc.c
> index 4e241b2..6cecfc0 100644
> --- a/drivers/net/sfc/sfc.c
> +++ b/drivers/net/sfc/sfc.c
> @@ -465,7 +465,7 @@ static int
>   sfc_mem_bar_init(struct sfc_adapter *sa)
>   {
>   	struct rte_eth_dev *eth_dev = sa->eth_dev;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	efsys_bar_t *ebp = &sa->mem_bar;
>   	unsigned int i;
>   	struct rte_mem_resource *res;
> @@ -666,7 +666,7 @@ sfc_detach(struct sfc_adapter *sa)
>   int
>   sfc_probe(struct sfc_adapter *sa)
>   {
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   	efx_nic_t *enp;
>   	int rc;
>   
> diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h
> index fad0ce0..7927678 100644
> --- a/drivers/net/sfc/sfc.h
> +++ b/drivers/net/sfc/sfc.h
> @@ -46,9 +46,6 @@
>   extern "C" {
>   #endif
>   
> -#define SFC_DEV_TO_PCI(eth_dev) \
> -	RTE_DEV_TO_PCI((eth_dev)->device)
> -
>   #if EFSYS_OPT_RX_SCALE
>   /** RSS key length (bytes) */
>   #define SFC_RSS_KEY_SIZE	40
> diff --git a/drivers/net/sfc/sfc_debug.h b/drivers/net/sfc/sfc_debug.h
> index c0b4867..f4fe044 100644
> --- a/drivers/net/sfc/sfc_debug.h
> +++ b/drivers/net/sfc/sfc_debug.h
> @@ -48,7 +48,8 @@
>   #define sfc_panic(sa, fmt, args...) \
>   	do {								\
>   		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
> -		const struct rte_pci_device *_pci_dev = SFC_DEV_TO_PCI(_dev); \
> +		const struct rte_pci_device *_pci_dev =			\
> +			RTE_ETH_DEV_TO_PCI(_dev);			\
>   									\
>   		rte_panic("sfc " PCI_PRI_FMT " #%" PRIu8 ": " fmt "\n",	\
>   			  _pci_dev->addr.domain, _pci_dev->addr.bus,	\
> diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
> index 4c9335f..d5583ec 100644
> --- a/drivers/net/sfc/sfc_ethdev.c
> +++ b/drivers/net/sfc/sfc_ethdev.c
> @@ -107,7 +107,7 @@ sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   
>   	sfc_log_init(sa, "entry");
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->max_rx_pktlen = EFX_MAC_PDU_MAX;
>   
>   	/* Autonegotiation may be disabled */
> @@ -1486,7 +1486,7 @@ static int
>   sfc_eth_dev_init(struct rte_eth_dev *dev)
>   {
>   	struct sfc_adapter *sa = dev->data->dev_private;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	int rc;
>   	const efx_nic_cfg_t *encp;
>   	const struct ether_addr *from;
> diff --git a/drivers/net/sfc/sfc_intr.c b/drivers/net/sfc/sfc_intr.c
> index 7eb4b86..dfa453a 100644
> --- a/drivers/net/sfc/sfc_intr.c
> +++ b/drivers/net/sfc/sfc_intr.c
> @@ -77,7 +77,7 @@ sfc_intr_line_handler(void *cb_arg)
>   	boolean_t fatal;
>   	uint32_t qmask;
>   	unsigned int lsc_seq = sa->port.lsc_seq;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   
>   	sfc_log_init(sa, "entry");
>   
> @@ -122,7 +122,7 @@ sfc_intr_message_handler(void *cb_arg)
>   	efx_nic_t *enp = sa->nic;
>   	boolean_t fatal;
>   	unsigned int lsc_seq = sa->port.lsc_seq;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   
>   	sfc_log_init(sa, "entry");
>   
> @@ -177,7 +177,7 @@ sfc_intr_start(struct sfc_adapter *sa)
>   	if (rc != 0)
>   		goto fail_intr_init;
>   
> -	pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   	intr_handle = &pci_dev->intr_handle;
>   
>   	if (intr->handler != NULL) {
> @@ -232,7 +232,7 @@ void
>   sfc_intr_stop(struct sfc_adapter *sa)
>   {
>   	struct sfc_intr *intr = &sa->intr;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   
>   	sfc_log_init(sa, "entry");
>   
> @@ -306,7 +306,7 @@ int
>   sfc_intr_attach(struct sfc_adapter *sa)
>   {
>   	struct sfc_intr *intr = &sa->intr;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   
>   	sfc_log_init(sa, "entry");
>   
> diff --git a/drivers/net/sfc/sfc_log.h b/drivers/net/sfc/sfc_log.h
> index 8a5e230..d0f8921 100644
> --- a/drivers/net/sfc/sfc_log.h
> +++ b/drivers/net/sfc/sfc_log.h
> @@ -36,7 +36,8 @@
>   #define SFC_LOG(sa, level, ...) \
>   	do {								\
>   		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
> -		const struct rte_pci_device *_pci_dev = SFC_DEV_TO_PCI(_dev); \
> +		const struct rte_pci_device *_pci_dev =			\
> +			RTE_ETH_DEV_TO_PCI(_dev);			\
>   									\
>   		RTE_LOG(level, PMD,					\
>   			RTE_FMT("sfc_efx " PCI_PRI_FMT " #%" PRIu8 ": "	\
> diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
> index 2ecd6f2..122b657 100644
> --- a/drivers/net/sfc/sfc_rx.c
> +++ b/drivers/net/sfc/sfc_rx.c
> @@ -942,7 +942,7 @@ sfc_rx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
>   	info.mem_bar = sa->mem_bar.esb_base;
>   
>   	rc = sa->dp_rx->qcreate(sa->eth_dev->data->port_id, sw_index,
> -				&SFC_DEV_TO_PCI(sa->eth_dev)->addr,
> +				&RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr,
>   				socket_id, &info, &rxq->dp);
>   	if (rc != 0)
>   		goto fail_dp_rx_qcreate;
> diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c
> index b8581d1..d75fb84 100644
> --- a/drivers/net/sfc/sfc_tx.c
> +++ b/drivers/net/sfc/sfc_tx.c
> @@ -185,7 +185,7 @@ sfc_tx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
>   	info.mem_bar = sa->mem_bar.esb_base;
>   
>   	rc = sa->dp_tx->qcreate(sa->eth_dev->data->port_id, sw_index,
> -				&SFC_DEV_TO_PCI(sa->eth_dev)->addr,
> +				&RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr,
>   				socket_id, &info, &txq->dp);
>   	if (rc != 0)
>   		goto fail_dp_tx_qinit;
> diff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c
> index 54212b7..c70e9f3 100644
> --- a/drivers/net/szedata2/rte_eth_szedata2.c
> +++ b/drivers/net/szedata2/rte_eth_szedata2.c
> @@ -1032,7 +1032,7 @@ eth_dev_info(struct rte_eth_dev *dev,
>   		struct rte_eth_dev_info *dev_info)
>   {
>   	struct pmd_internals *internals = dev->data->dev_private;
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->if_index = 0;
>   	dev_info->max_mac_addrs = 1;
>   	dev_info->max_rx_pktlen = (uint32_t)-1;
> @@ -1431,7 +1431,7 @@ rte_szedata2_eth_dev_init(struct rte_eth_dev *dev)
>   	struct szedata *szedata_temp;
>   	int ret;
>   	uint32_t szedata2_index;
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_pci_addr *pci_addr = &pci_dev->addr;
>   	struct rte_mem_resource *pci_rsc =
>   		&pci_dev->mem_resource[PCI_RESOURCE_NUMBER];
> @@ -1554,7 +1554,7 @@ rte_szedata2_eth_dev_init(struct rte_eth_dev *dev)
>   static int
>   rte_szedata2_eth_dev_uninit(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_pci_addr *pci_addr = &pci_dev->addr;
>   
>   	rte_free(dev->data->mac_addrs);
> diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c
> index e4910c9..dbfb3c9 100644
> --- a/drivers/net/thunderx/nicvf_ethdev.c
> +++ b/drivers/net/thunderx/nicvf_ethdev.c
> @@ -1366,11 +1366,11 @@ static void
>   nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
>   	struct nicvf *nic = nicvf_pmd_priv(dev);
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	PMD_INIT_FUNC_TRACE();
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	dev_info->min_rx_bufsize = ETHER_MIN_MTU;
>   	dev_info->max_rx_pktlen = NIC_HW_MAX_FRS;
> @@ -2017,7 +2017,7 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)
>   		}
>   	}
>   
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	rte_eth_copy_pci_info(eth_dev, pci_dev);
>   
>   	nic->device_id = pci_dev->id.device_id;
> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
> index b23f4c2..d140a6b 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -1354,7 +1354,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
>   		return -1;
>   
>   	if (!hw->virtio_user_dev) {
> -		pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +		pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   		rte_eth_copy_pci_info(eth_dev, pci_dev);
>   	}
>   
> @@ -1536,8 +1536,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
>   
>   	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
>   		if (!hw->virtio_user_dev) {
> -			ret = virtio_remap_pci(RTE_DEV_TO_PCI(eth_dev->device),
> -					       hw);
> +			ret = virtio_remap_pci(RTE_ETH_DEV_TO_PCI(eth_dev), hw);
>   			if (ret)
>   				return ret;
>   		}
> @@ -1566,7 +1565,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
>   	 * virtio_user_eth_dev_alloc() before eth_virtio_dev_init() is called.
>   	 */
>   	if (!hw->virtio_user_dev) {
> -		ret = vtpci_init(RTE_DEV_TO_PCI(eth_dev->device), hw);
> +		ret = vtpci_init(RTE_ETH_DEV_TO_PCI(eth_dev), hw);
>   		if (ret)
>   			return ret;
>   	}
> @@ -1608,7 +1607,7 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)
>   						virtio_interrupt_handler,
>   						eth_dev);
>   	if (eth_dev->device)
> -		rte_eal_pci_unmap_device(RTE_DEV_TO_PCI(eth_dev->device));
> +		rte_eal_pci_unmap_device(RTE_ETH_DEV_TO_PCI(eth_dev));
>   
>   	PMD_INIT_LOG(DEBUG, "dev_uninit completed");
>   
> @@ -1893,7 +1892,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   
>   	dev_info->speed_capa = ETH_LINK_SPEED_10G; /* fake value */
>   
> -	dev_info->pci_dev = dev->device ? RTE_DEV_TO_PCI(dev->device) : NULL;
> +	dev_info->pci_dev = dev->device ? RTE_ETH_DEV_TO_PCI(dev) : NULL;
>   	dev_info->max_rx_queues =
>   		RTE_MIN(hw->max_queue_pairs, VIRTIO_MAX_RX_QUEUES);
>   	dev_info->max_tx_queues =
> diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> index 0e8eb75..127f6fa 100644
> --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
> +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> @@ -259,7 +259,7 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
>   	eth_dev->rx_pkt_burst = &vmxnet3_recv_pkts;
>   	eth_dev->tx_pkt_burst = &vmxnet3_xmit_pkts;
>   	eth_dev->tx_pkt_prepare = vmxnet3_prep_pkts;
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	/*
>   	 * for secondary processes, we don't initialize any further as primary
> @@ -868,7 +868,7 @@ static void
>   vmxnet3_dev_info_get(struct rte_eth_dev *dev,
>   		     struct rte_eth_dev_info *dev_info)
>   {
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	dev_info->max_rx_queues = VMXNET3_MAX_RX_QUEUES;
>   	dev_info->max_tx_queues = VMXNET3_MAX_TX_QUEUES;
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index f8c8c13..9dd9248 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -1048,6 +1048,8 @@ TAILQ_HEAD(rte_eth_dev_cb_list, rte_eth_dev_callback);
>   	} \
>   } while (0)
>   
> +#define RTE_ETH_DEV_TO_PCI(eth_dev)	RTE_DEV_TO_PCI((eth_dev)->device)
> +
>   /**
>    * l2 tunnel configuration.
>    */

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [dpdk-dev] [PATCH v3] drivers/net: add generic ethdev macro to get PCI device
  2017-05-05  9:54 ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
  2017-05-05 10:57   ` Andrew Rybchenko
@ 2017-05-15 10:24   ` Ferruh Yigit
  2017-05-15 10:54     ` Andrew Rybchenko
  1 sibling, 1 reply; 9+ messages in thread
From: Ferruh Yigit @ 2017-05-15 10:24 UTC (permalink / raw)
  To: Shepard Siegel, Ed Czeck, John Miller, Allain Legacy,
	Matt Peters, Harish Patil, Rasesh Mody, Stephen Hurd,
	Ajit Khaparde, Declan Doherty, Rahul Lakkireddy, Wenzhuo Lu,
	Marcin Wojtas, Michal Krawczyk, Guy Tzalik, Evgeny Schemeilin,
	John Daley, Nelson Escobar, Jing Chen, Helin Zhang, Jingjing Wu,
	Konstantin Ananyev, Shijith Thotton,
	Srisivasubramanian Srinivasan, Adrien Mazarguil,
	Nelio Laranjeiro, Alejandro Lucero, Andrew Rybchenko, Matej Vido,
	Jerin Jacob, Maciej Czekaj, Yuanhan Liu, Maxime Coquelin,
	Shrikrishna Khare, Thomas Monjalon
  Cc: dev, Ferruh Yigit

Instead of many PMD define their own macro, define a generic one in
ethdev and use that in PMDs.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Allain Legacy <allain.legacy@windriver.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---

v3:
* rebased on top of latest next-net, there were updates in ixgbe and
virtio

v2:
* Convert RTE_DEV_TO_PCI(eth_dev->device) to RTE_ETH_DEV_TO_PCI(eth_dev)
---
 drivers/net/ark/ark_ethdev.c            |  4 ++--
 drivers/net/ark/ark_ethdev.h            |  4 ----
 drivers/net/avp/avp_ethdev.c            | 27 ++++++++++------------
 drivers/net/bnx2x/bnx2x_ethdev.c        |  4 ++--
 drivers/net/bnxt/bnxt_ethdev.c          |  6 ++---
 drivers/net/bonding/rte_eth_bond_args.c |  2 +-
 drivers/net/cxgbe/cxgbe_ethdev.c        |  4 ++--
 drivers/net/e1000/e1000_ethdev.h        |  2 --
 drivers/net/e1000/em_ethdev.c           | 15 ++++++-------
 drivers/net/e1000/igb_ethdev.c          | 28 +++++++++++------------
 drivers/net/e1000/igb_pf.c              |  2 +-
 drivers/net/ena/ena_ethdev.c            |  4 ++--
 drivers/net/enic/enic_ethdev.c          |  4 ++--
 drivers/net/fm10k/fm10k_ethdev.c        | 16 ++++++-------
 drivers/net/i40e/i40e_ethdev.c          | 30 ++++++++++++-------------
 drivers/net/i40e/i40e_ethdev.h          |  3 ---
 drivers/net/i40e/i40e_ethdev_vf.c       | 20 ++++++++---------
 drivers/net/ixgbe/ixgbe_ethdev.c        | 40 ++++++++++++++++-----------------
 drivers/net/ixgbe/ixgbe_ethdev.h        |  3 ---
 drivers/net/ixgbe/ixgbe_pf.c            |  2 +-
 drivers/net/ixgbe/rte_pmd_ixgbe.c       | 20 ++++++++---------
 drivers/net/liquidio/lio_ethdev.c       |  2 +-
 drivers/net/mlx4/mlx4.c                 |  2 +-
 drivers/net/mlx5/mlx5_ethdev.c          |  2 +-
 drivers/net/nfp/nfp_net.c               | 16 ++++++-------
 drivers/net/qede/qede_ethdev.c          |  6 ++---
 drivers/net/sfc/sfc.c                   |  4 ++--
 drivers/net/sfc/sfc.h                   |  3 ---
 drivers/net/sfc/sfc_debug.h             |  3 ++-
 drivers/net/sfc/sfc_ethdev.c            |  4 ++--
 drivers/net/sfc/sfc_intr.c              | 10 ++++-----
 drivers/net/sfc/sfc_log.h               |  3 ++-
 drivers/net/sfc/sfc_rx.c                |  2 +-
 drivers/net/sfc/sfc_tx.c                |  2 +-
 drivers/net/szedata2/rte_eth_szedata2.c |  6 ++---
 drivers/net/thunderx/nicvf_ethdev.c     |  6 ++---
 drivers/net/virtio/virtio_ethdev.c      | 11 +++++----
 drivers/net/vmxnet3/vmxnet3_ethdev.c    |  4 ++--
 lib/librte_ether/rte_ethdev.h           |  2 ++
 39 files changed, 156 insertions(+), 172 deletions(-)

diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c
index 995c93d..5c45038 100644
--- a/drivers/net/ark/ark_ethdev.c
+++ b/drivers/net/ark/ark_ethdev.c
@@ -278,7 +278,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
 	ret = check_for_ext(ark);
 	if (ret)
 		return ret;
-	pci_dev = ARK_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	rte_eth_copy_pci_info(dev, pci_dev);
 
 	/* Use dummy function until setup */
@@ -751,7 +751,7 @@ eth_ark_dev_info_get(struct rte_eth_dev *dev,
 				ETH_LINK_SPEED_40G |
 				ETH_LINK_SPEED_50G |
 				ETH_LINK_SPEED_100G);
-	dev_info->pci_dev = ARK_DEV_TO_PCI(dev);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 }
 
 static int
diff --git a/drivers/net/ark/ark_ethdev.h b/drivers/net/ark/ark_ethdev.h
index 9f8d32f..df5547b 100644
--- a/drivers/net/ark/ark_ethdev.h
+++ b/drivers/net/ark/ark_ethdev.h
@@ -34,8 +34,4 @@
 #ifndef _ARK_ETHDEV_H_
 #define _ARK_ETHDEV_H_
 
-#define ARK_DEV_TO_PCI(eth_dev)			\
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
-
 #endif
diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c
index b08dbaa..3554645 100644
--- a/drivers/net/avp/avp_ethdev.c
+++ b/drivers/net/avp/avp_ethdev.c
@@ -112,9 +112,6 @@ static void avp_dev_stats_get(struct rte_eth_dev *dev,
 static void avp_dev_stats_reset(struct rte_eth_dev *dev);
 
 
-#define AVP_DEV_TO_PCI(eth_dev) RTE_DEV_TO_PCI((eth_dev)->device)
-
-
 #define AVP_MAX_RX_BURST 64
 #define AVP_MAX_TX_BURST 64
 #define AVP_MAX_MAC_ADDRS 1
@@ -392,7 +389,7 @@ static void *
 avp_dev_translate_address(struct rte_eth_dev *eth_dev,
 			  phys_addr_t host_phys_addr)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_mem_resource *resource;
 	struct rte_avp_memmap_info *info;
 	struct rte_avp_memmap *map;
@@ -445,7 +442,7 @@ avp_dev_version_check(uint32_t version)
 static int
 avp_dev_check_regions(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_avp_memmap_info *memmap;
 	struct rte_avp_device_info *info;
 	struct rte_mem_resource *resource;
@@ -581,7 +578,7 @@ _avp_set_rx_queue_mappings(struct rte_eth_dev *eth_dev, uint16_t rx_queue_id)
 static void
 _avp_set_queue_counts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 	struct rte_avp_device_info *host_info;
 	void *addr;
@@ -641,7 +638,7 @@ avp_dev_attach(struct rte_eth_dev *eth_dev)
 	 * re-run the device create utility which will parse the new host info
 	 * and setup the AVP device queue pointers.
 	 */
-	ret = avp_dev_create(AVP_DEV_TO_PCI(eth_dev), eth_dev);
+	ret = avp_dev_create(RTE_ETH_DEV_TO_PCI(eth_dev), eth_dev);
 	if (ret < 0) {
 		PMD_DRV_LOG(ERR, "Failed to re-create AVP device, ret=%d\n",
 			    ret);
@@ -695,7 +692,7 @@ static void
 avp_dev_interrupt_handler(void *data)
 {
 	struct rte_eth_dev *eth_dev = data;
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	uint32_t status, value;
 	int ret;
@@ -754,7 +751,7 @@ avp_dev_interrupt_handler(void *data)
 static int
 avp_dev_enable_interrupts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	int ret;
 
@@ -779,7 +776,7 @@ avp_dev_enable_interrupts(struct rte_eth_dev *eth_dev)
 static int
 avp_dev_disable_interrupts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	int ret;
 
@@ -804,7 +801,7 @@ avp_dev_disable_interrupts(struct rte_eth_dev *eth_dev)
 static int
 avp_dev_setup_interrupts(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	int ret;
 
 	/* register a callback handler with UIO for interrupt notifications */
@@ -824,7 +821,7 @@ avp_dev_setup_interrupts(struct rte_eth_dev *eth_dev)
 static int
 avp_dev_migration_pending(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
 	uint32_t value;
 
@@ -985,7 +982,7 @@ eth_avp_dev_init(struct rte_eth_dev *eth_dev)
 	struct rte_pci_device *pci_dev;
 	int ret;
 
-	pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	eth_dev->dev_ops = &avp_eth_dev_ops;
 	eth_dev->rx_pkt_burst = &avp_recv_pkts;
 	eth_dev->tx_pkt_burst = &avp_xmit_pkts;
@@ -2010,7 +2007,7 @@ avp_dev_tx_queue_release(void *tx_queue)
 static int
 avp_dev_configure(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 	struct rte_avp_device_info *host_info;
 	struct rte_avp_device_config config;
@@ -2206,7 +2203,7 @@ avp_dev_info_get(struct rte_eth_dev *eth_dev,
 	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 
 	dev_info->driver_name = "rte_avp_pmd";
-	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	dev_info->max_rx_queues = avp->max_rx_queues;
 	dev_info->max_tx_queues = avp->max_tx_queues;
 	dev_info->min_rx_bufsize = AVP_MIN_RX_BUFSIZE;
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index 90cbb6c..b26e280 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -442,7 +442,7 @@ static void
 bnx2x_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
 	struct bnx2x_softc *sc = dev->data->dev_private;
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->max_rx_queues  = sc->max_rx_queues;
 	dev_info->max_tx_queues  = sc->max_tx_queues;
 	dev_info->min_rx_bufsize = BNX2X_MIN_RX_BUF_SIZE;
@@ -531,7 +531,7 @@ bnx2x_common_dev_init(struct rte_eth_dev *eth_dev, int is_vf)
 	PMD_INIT_FUNC_TRACE();
 
 	eth_dev->dev_ops = is_vf ? &bnx2xvf_eth_dev_ops : &bnx2x_eth_dev_ops;
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	rte_eth_copy_pci_info(eth_dev, pci_dev);
 
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index e659c57..c230394 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -338,7 +338,7 @@ static void bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev,
 	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
 	uint16_t max_vnics, i, j, vpool, vrxq;
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	/* MAC Specifics */
 	dev_info->max_mac_addrs = MAX_NUM_MAC_ADDR;
@@ -1049,7 +1049,7 @@ static bool bnxt_vf_pciid(uint16_t id)
 static int bnxt_init_board(struct rte_eth_dev *eth_dev)
 {
 	struct bnxt *bp = eth_dev->data->dev_private;
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	int rc;
 
 	/* enable device (incl. PCI PM wakeup), and bus-mastering */
@@ -1085,7 +1085,7 @@ static int bnxt_dev_uninit(struct rte_eth_dev *eth_dev);
 static int
 bnxt_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	static int version_printed;
 	struct bnxt *bp;
 	int rc;
diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c
index 3155fca..dc468d2 100644
--- a/drivers/net/bonding/rte_eth_bond_args.c
+++ b/drivers/net/bonding/rte_eth_bond_args.c
@@ -69,7 +69,7 @@ find_port_id_by_pci_addr(const struct rte_pci_addr *pci_addr)
 		    rte_eth_devices[i].data->kdrv == RTE_KDRV_NONE)
 			continue;
 
-		pci_dev = RTE_DEV_TO_PCI(rte_eth_devices[i].device);
+		pci_dev = RTE_ETH_DEV_TO_PCI(&rte_eth_devices[i]);
 		eth_pci_addr = &pci_dev->addr;
 
 		if (pci_addr->bus == eth_pci_addr->bus &&
diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
index 34fed84..2e2f2cf 100644
--- a/drivers/net/cxgbe/cxgbe_ethdev.c
+++ b/drivers/net/cxgbe/cxgbe_ethdev.c
@@ -148,7 +148,7 @@ static void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
 		.nb_align = 1,
 	};
 
-	device_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	device_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	device_info->min_rx_bufsize = CXGBE_MIN_RX_BUFSIZE;
 	device_info->max_rx_pktlen = CXGBE_MAX_RX_PKTLEN;
@@ -1008,7 +1008,7 @@ static int eth_cxgbe_dev_init(struct rte_eth_dev *eth_dev)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
 
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	snprintf(name, sizeof(name), "cxgbeadapter%d", eth_dev->data->port_id);
 	adapter = rte_zmalloc(name, sizeof(*adapter), 0);
diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h
index 8352d0a..4979895 100644
--- a/drivers/net/e1000/e1000_ethdev.h
+++ b/drivers/net/e1000/e1000_ethdev.h
@@ -291,8 +291,6 @@ struct e1000_adapter {
 #define E1000_DEV_PRIVATE_TO_FILTER_INFO(adapter) \
 	(&((struct e1000_adapter *)adapter)->filter)
 
-#define E1000_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
 /*
  * RX/TX IGB function prototypes
  */
diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
index 57eb017..132de6e 100644
--- a/drivers/net/e1000/em_ethdev.c
+++ b/drivers/net/e1000/em_ethdev.c
@@ -316,7 +316,7 @@ eth_em_dev_is_ich8(struct e1000_hw *hw)
 static int
 eth_em_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
@@ -390,7 +390,7 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev)
 static int
 eth_em_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
@@ -593,8 +593,7 @@ eth_em_start(struct rte_eth_dev *dev)
 		E1000_DEV_PRIVATE(dev->data->dev_private);
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev =
-		E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int ret, mask;
 	uint32_t intr_vector = 0;
@@ -777,7 +776,7 @@ eth_em_stop(struct rte_eth_dev *dev)
 {
 	struct rte_eth_link link;
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	em_rxq_intr_disable(hw);
@@ -1041,7 +1040,7 @@ static int
 eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue_id)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	em_rxq_intr_enable(hw);
@@ -1091,7 +1090,7 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
 	dev_info->max_rx_pktlen = em_get_max_pktlen(hw);
 	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
@@ -1598,7 +1597,7 @@ static int
 eth_em_interrupt_action(struct rte_eth_dev *dev,
 			struct rte_intr_handle *intr_handle)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_interrupt *intr =
diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index 707b8e9..0040170 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -760,7 +760,7 @@ static int
 eth_igb_dev_init(struct rte_eth_dev *eth_dev)
 {
 	int error = 0;
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
 	struct e1000_vfta * shadow_vfta =
@@ -936,7 +936,7 @@ eth_igb_dev_uninit(struct rte_eth_dev *eth_dev)
 		return -EPERM;
 
 	hw = E1000_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
-	pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	if (adapter->stopped == 0)
@@ -994,7 +994,7 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)
 		return 0;
 	}
 
-	pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	rte_eth_copy_pci_info(eth_dev, pci_dev);
 	eth_dev->data->dev_flags |= RTE_ETH_DEV_DETACHABLE;
 
@@ -1071,7 +1071,7 @@ eth_igbvf_dev_uninit(struct rte_eth_dev *eth_dev)
 {
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -1252,7 +1252,7 @@ eth_igb_start(struct rte_eth_dev *dev)
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int ret, mask;
 	uint32_t intr_vector = 0;
@@ -1461,7 +1461,7 @@ eth_igb_stop(struct rte_eth_dev *dev)
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_filter_info *filter_info =
 		E1000_DEV_PRIVATE_TO_FILTER_INFO(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_eth_link link;
 	struct e1000_flex_filter *p_flex;
 	struct e1000_5tuple_filter *p_5tuple, *p_5tuple_next;
@@ -1566,7 +1566,7 @@ eth_igb_close(struct rte_eth_dev *dev)
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
 	struct rte_eth_link link;
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	eth_igb_stop(dev);
@@ -2152,7 +2152,7 @@ eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
 	dev_info->max_rx_pktlen  = 0x3FFF; /* See RLPML register. */
 	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
@@ -2281,7 +2281,7 @@ eth_igbvf_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
 	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
 	dev_info->max_rx_pktlen  = 0x3FFF; /* See RLPML register. */
 	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
@@ -2813,7 +2813,7 @@ eth_igb_interrupt_action(struct rte_eth_dev *dev,
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_interrupt *intr =
 		E1000_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	uint32_t tctl, rctl;
 	struct rte_eth_link link;
 	int ret;
@@ -3229,7 +3229,7 @@ igbvf_dev_start(struct rte_eth_dev *dev)
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct e1000_adapter *adapter =
 		E1000_DEV_PRIVATE(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int ret;
 	uint32_t intr_vector = 0;
@@ -3285,7 +3285,7 @@ igbvf_dev_start(struct rte_eth_dev *dev)
 static void
 igbvf_dev_stop(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	PMD_INIT_FUNC_TRACE();
@@ -5271,7 +5271,7 @@ eth_igb_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
 	struct e1000_hw *hw =
 		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t mask = 1 << queue_id;
 	uint32_t regval;
@@ -5344,7 +5344,7 @@ eth_igb_configure_msix_intr(struct rte_eth_dev *dev)
 	uint32_t vec = E1000_MISC_VEC_ID;
 	uint32_t base = E1000_MISC_VEC_ID;
 	uint32_t misc_shift = 0;
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	/* won't configure msix register if no mapping is done
diff --git a/drivers/net/e1000/igb_pf.c b/drivers/net/e1000/igb_pf.c
index 923c78a..6809d30 100644
--- a/drivers/net/e1000/igb_pf.c
+++ b/drivers/net/e1000/igb_pf.c
@@ -57,7 +57,7 @@
 static inline uint16_t
 dev_num_vf(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	return pci_dev->max_vfs;
 }
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index c30c703..e7af041 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -1289,7 +1289,7 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
 
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	adapter->pdev = pci_dev;
 
 	PMD_INIT_LOG(INFO, "Initializing %x:%x:%x.%d",
@@ -1451,7 +1451,7 @@ static void ena_infos_get(struct rte_eth_dev *dev,
 	ena_dev = &adapter->ena_dev;
 	ena_assert_msg(ena_dev != NULL, "Uninitialized device");
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	dev_info->speed_capa =
 			ETH_LINK_SPEED_1G   |
diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
index 372bae7..8e16a71 100644
--- a/drivers/net/enic/enic_ethdev.c
+++ b/drivers/net/enic/enic_ethdev.c
@@ -455,7 +455,7 @@ static void enicpmd_dev_info_get(struct rte_eth_dev *eth_dev,
 	struct enic *enic = pmd_priv(eth_dev);
 
 	ENICPMD_FUNC_TRACE();
-	device_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	device_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	/* Scattered Rx uses two receive queues per rx queue exposed to dpdk */
 	device_info->max_rx_queues = enic->conf_rq_count / 2;
 	device_info->max_tx_queues = enic->conf_wq_count;
@@ -619,7 +619,7 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)
 	eth_dev->rx_pkt_burst = &enic_recv_pkts;
 	eth_dev->tx_pkt_burst = &enic_xmit_pkts;
 
-	pdev = RTE_DEV_TO_PCI(eth_dev->device);
+	pdev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	rte_eth_copy_pci_info(eth_dev, pdev);
 	enic->pdev = pdev;
 	addr = &pdev->addr;
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index 1982359..396f02b 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -712,7 +712,7 @@ fm10k_dev_rx_init(struct rte_eth_dev *dev)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct fm10k_macvlan_filter_info *macvlan;
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
 	int i, ret;
 	struct fm10k_rx_queue *rxq;
@@ -1173,7 +1173,7 @@ static void
 fm10k_dev_stop(struct rte_eth_dev *dev)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
 	int i;
 
@@ -1393,7 +1393,7 @@ fm10k_dev_infos_get(struct rte_eth_dev *dev,
 	struct rte_eth_dev_info *dev_info)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -2345,7 +2345,7 @@ static int
 fm10k_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 
 	/* Enable ITR */
 	if (hw->mac.type == fm10k_mac_pf)
@@ -2362,7 +2362,7 @@ static int
 fm10k_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 
 	/* Disable ITR */
 	if (hw->mac.type == fm10k_mac_pf)
@@ -2378,7 +2378,7 @@ static int
 fm10k_dev_rxq_interrupt_setup(struct rte_eth_dev *dev)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
 	uint32_t intr_vector, vec;
 	uint16_t queue_id;
@@ -2882,7 +2882,7 @@ static int
 eth_fm10k_dev_init(struct rte_eth_dev *dev)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
 	int diag, i;
 	struct fm10k_macvlan_filter_info *macvlan;
@@ -3069,7 +3069,7 @@ static int
 eth_fm10k_dev_uninit(struct rte_eth_dev *dev)
 {
 	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
 	PMD_INIT_FUNC_TRACE();
 
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 4c49673..d57a7af 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -879,7 +879,7 @@ is_floating_veb_supported(struct rte_devargs *devargs)
 static void
 config_floating_veb(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
@@ -1061,7 +1061,7 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
 		return 0;
 	}
 	i40e_set_default_ptype_table(dev);
-	pci_dev = I40E_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	rte_eth_copy_pci_info(dev, pci_dev);
@@ -1414,7 +1414,7 @@ eth_i40e_dev_uninit(struct rte_eth_dev *dev)
 
 	pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = I40E_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	if (hw->adapter_stopped == 0)
@@ -1547,7 +1547,7 @@ void
 i40e_vsi_queues_unbind_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t msix_vect = vsi->msix_intr;
@@ -1661,7 +1661,7 @@ void
 i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t msix_vect = vsi->msix_intr;
@@ -1733,7 +1733,7 @@ static void
 i40e_vsi_enable_queues_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t interval = i40e_calc_itr_interval(\
@@ -1765,7 +1765,7 @@ static void
 i40e_vsi_disable_queues_intr(struct i40e_vsi *vsi)
 {
 	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	uint16_t msix_intr, i;
@@ -1892,7 +1892,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct i40e_vsi *main_vsi = pf->main_vsi;
 	int ret, i;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t intr_vector = 0;
 	struct i40e_vsi *vsi;
@@ -2040,7 +2040,7 @@ i40e_dev_stop(struct rte_eth_dev *dev)
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_vsi *main_vsi = pf->main_vsi;
 	struct i40e_mirror_rule *p_mirror;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int i;
 
@@ -2092,7 +2092,7 @@ i40e_dev_close(struct rte_eth_dev *dev)
 {
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t reg;
 	int i;
@@ -2849,7 +2849,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct i40e_vsi *vsi = pf->main_vsi;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	dev_info->pci_dev = pci_dev;
 	dev_info->max_rx_queues = vsi->nb_qps;
@@ -3768,7 +3768,7 @@ i40e_pf_parameter_init(struct rte_eth_dev *dev)
 {
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_PF_TO_HW(pf);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	uint16_t qp_count = 0, vsi_count = 0;
 
 	if (pci_dev->max_vfs && !hw->func_caps.sr_iov_1_1) {
@@ -8988,7 +8988,7 @@ i40e_dev_filter_ctrl(struct rte_eth_dev *dev,
 static void
 i40e_enable_extended_tag(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	uint32_t buf = 0;
 	int ret;
 
@@ -10436,7 +10436,7 @@ i40e_dev_get_dcb_info(struct rte_eth_dev *dev,
 static int
 i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t interval =
@@ -10470,7 +10470,7 @@ i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 static int
 i40e_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t msix_intr;
diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h
index 677c214..b08902d 100644
--- a/drivers/net/i40e/i40e_ethdev.h
+++ b/drivers/net/i40e/i40e_ethdev.h
@@ -892,9 +892,6 @@ int i40e_add_macvlan_filters(struct i40e_vsi *vsi,
 			     int total);
 bool is_i40e_supported(struct rte_eth_dev *dev);
 
-#define I40E_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
 /* I40E_DEV_PRIVATE_TO */
 #define I40E_DEV_PRIVATE_TO_PF(adapter) \
 	(&((struct i40e_adapter *)adapter)->pf)
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index a33ab14..124cf63 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -727,7 +727,7 @@ i40evf_config_irq_map(struct rte_eth_dev *dev)
 	uint8_t cmd_buffer[sizeof(struct i40e_virtchnl_irq_map_info) + \
 		sizeof(struct i40e_virtchnl_vector_map)];
 	struct i40e_virtchnl_irq_map_info *map_info;
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t vector_id;
 	int i, err;
@@ -1459,7 +1459,7 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev)
 {
 	struct i40e_hw *hw
 		= I40E_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -1883,7 +1883,7 @@ i40evf_enable_queues_intr(struct rte_eth_dev *dev)
 {
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	if (!rte_intr_allow_others(intr_handle)) {
@@ -1916,7 +1916,7 @@ i40evf_disable_queues_intr(struct rte_eth_dev *dev)
 {
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	if (!rte_intr_allow_others(intr_handle)) {
@@ -1943,7 +1943,7 @@ i40evf_disable_queues_intr(struct rte_eth_dev *dev)
 static int
 i40evf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t interval =
@@ -1978,7 +1978,7 @@ i40evf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 static int
 i40evf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint16_t msix_intr;
@@ -2063,7 +2063,7 @@ i40evf_dev_start(struct rte_eth_dev *dev)
 {
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t intr_vector = 0;
 
@@ -2129,7 +2129,7 @@ i40evf_dev_start(struct rte_eth_dev *dev)
 static void
 i40evf_dev_stop(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	PMD_INIT_FUNC_TRACE();
@@ -2260,7 +2260,7 @@ i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
 
 	memset(dev_info, 0, sizeof(*dev_info));
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->max_rx_queues = vf->vsi_res->num_queue_pairs;
 	dev_info->max_tx_queues = vf->vsi_res->num_queue_pairs;
 	dev_info->min_rx_bufsize = I40E_BUF_SIZE_MIN;
@@ -2329,7 +2329,7 @@ static void
 i40evf_dev_close(struct rte_eth_dev *dev)
 {
 	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	i40evf_dev_stop(dev);
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 269c8a5..e674586 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -1131,7 +1131,7 @@ ixgbe_swfw_lock_reset(struct ixgbe_hw *hw)
 static int
 eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
@@ -1365,7 +1365,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
 static int
 eth_ixgbe_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw;
 
@@ -1598,7 +1598,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 {
 	int diag;
 	uint32_t tc, tcs;
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
@@ -1747,7 +1747,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
 static int
 eth_ixgbevf_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw;
 
@@ -2176,7 +2176,7 @@ ixgbe_vmdq_vlan_hw_filter_enable(struct rte_eth_dev *dev)
 static int
 ixgbe_check_vf_rss_rxq_num(struct rte_eth_dev *dev, uint16_t nb_rx_q)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	switch (nb_rx_q) {
 	case 1:
@@ -2425,7 +2425,7 @@ ixgbe_set_vf_rate_limit(struct rte_eth_dev *dev, uint16_t vf,
 	uint16_t total_rate = 0;
 	struct rte_pci_device *pci_dev;
 
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	rte_eth_link_get_nowait(dev->data->port_id, &link);
 
 	if (vf >= pci_dev->max_vfs)
@@ -2496,7 +2496,7 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct ixgbe_vf_info *vfinfo =
 		*IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t intr_vector = 0;
 	int err, link_up = 0, negotiate = 0;
@@ -2714,7 +2714,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct ixgbe_vf_info *vfinfo =
 		*IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	int vf;
 
@@ -3582,7 +3582,7 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
 static void
 ixgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	struct rte_eth_conf *dev_conf = &dev->data->dev_conf;
 
@@ -3724,7 +3724,7 @@ static void
 ixgbevf_dev_info_get(struct rte_eth_dev *dev,
 		     struct rte_eth_dev_info *dev_info)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
 	dev_info->pci_dev = pci_dev;
@@ -4035,7 +4035,7 @@ ixgbe_dev_interrupt_get_status(struct rte_eth_dev *dev)
 static void
 ixgbe_dev_link_status_print(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_eth_link link;
 
 	memset(&link, 0, sizeof(link));
@@ -4143,7 +4143,7 @@ static void
 ixgbe_dev_interrupt_delayed_handler(void *param)
 {
 	struct rte_eth_dev *dev = (struct rte_eth_dev *)param;
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_interrupt *intr =
 		IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
@@ -4660,7 +4660,7 @@ ixgbe_remove_rar(struct rte_eth_dev *dev, uint32_t index)
 static void
 ixgbe_set_default_mac_addr(struct rte_eth_dev *dev, struct ether_addr *addr)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	ixgbe_remove_rar(dev, 0);
 
@@ -4799,7 +4799,7 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 	uint32_t intr_vector = 0;
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	int err, mask = 0;
@@ -4863,7 +4863,7 @@ static void
 ixgbevf_dev_stop(struct rte_eth_dev *dev)
 {
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 
 	PMD_INIT_FUNC_TRACE();
@@ -5336,7 +5336,7 @@ ixgbe_mirror_rule_reset(struct rte_eth_dev *dev, uint8_t rule_id)
 static int
 ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t mask;
 	struct ixgbe_hw *hw =
@@ -5370,7 +5370,7 @@ ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 static int
 ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t mask;
 	struct ixgbe_hw *hw =
@@ -5495,7 +5495,7 @@ ixgbe_set_ivar_map(struct ixgbe_hw *hw, int8_t direction,
 static void
 ixgbevf_configure_msix(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -5529,7 +5529,7 @@ ixgbevf_configure_msix(struct rte_eth_dev *dev)
 static void
 ixgbe_configure_msix(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	struct ixgbe_hw *hw =
 		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -7531,7 +7531,7 @@ ixgbe_e_tag_insertion_en_dis(struct rte_eth_dev *dev,
 			     struct rte_eth_l2_tunnel_conf *l2_tunnel,
 			     bool en)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	int ret = 0;
 	uint32_t vmtir, vmvir;
 	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index b576a6f..32c0b38 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -464,9 +464,6 @@ struct ixgbe_adapter {
 	struct rte_timecounter      tx_tstamp_tc;
 };
 
-#define IXGBE_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
 #define IXGBE_DEV_PRIVATE_TO_HW(adapter)\
 	(&((struct ixgbe_adapter *)adapter)->hw)
 
diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c
index 6f30c42..a56b270 100644
--- a/drivers/net/ixgbe/ixgbe_pf.c
+++ b/drivers/net/ixgbe/ixgbe_pf.c
@@ -61,7 +61,7 @@
 static inline uint16_t
 dev_num_vf(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	return pci_dev->max_vfs;
 }
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
index e8fc9a6..d6eae6c 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
@@ -51,7 +51,7 @@ rte_pmd_ixgbe_set_vf_mac_addr(uint8_t port, uint16_t vf,
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -84,7 +84,7 @@ rte_pmd_ixgbe_ping_vf(uint8_t port, uint16_t vf)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -115,7 +115,7 @@ rte_pmd_ixgbe_set_vf_vlan_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -145,7 +145,7 @@ rte_pmd_ixgbe_set_vf_mac_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -174,7 +174,7 @@ rte_pmd_ixgbe_set_vf_vlan_insert(uint8_t port, uint16_t vf, uint16_t vlan_id)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -270,7 +270,7 @@ rte_pmd_ixgbe_set_vf_split_drop_en(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -306,7 +306,7 @@ rte_pmd_ixgbe_set_vf_vlan_stripq(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
 	if (!is_ixgbe_supported(dev))
@@ -354,7 +354,7 @@ rte_pmd_ixgbe_set_vf_rxmode(uint8_t port, uint16_t vf,
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -401,7 +401,7 @@ rte_pmd_ixgbe_set_vf_rx(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
@@ -452,7 +452,7 @@ rte_pmd_ixgbe_set_vf_tx(uint8_t port, uint16_t vf, uint8_t on)
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
 
 	dev = &rte_eth_devices[port];
-	pci_dev = IXGBE_DEV_TO_PCI(dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (!is_ixgbe_supported(dev))
 		return -ENOTSUP;
diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c
index 436d25b..132c837 100644
--- a/drivers/net/liquidio/lio_ethdev.c
+++ b/drivers/net/liquidio/lio_ethdev.c
@@ -1958,7 +1958,7 @@ lio_eth_dev_uninit(struct rte_eth_dev *eth_dev)
 static int
 lio_eth_dev_init(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(eth_dev->device);
+	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct lio_device *lio_dev = LIO_DEV(eth_dev);
 
 	PMD_INIT_FUNC_TRACE();
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index ec4419a..ec70f59 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -4300,7 +4300,7 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
 	unsigned int max;
 	char ifname[IF_NAMESIZE];
 
-	info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (priv == NULL)
 		return;
diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
index 3fd22cb..eadf452 100644
--- a/drivers/net/mlx5/mlx5_ethdev.c
+++ b/drivers/net/mlx5/mlx5_ethdev.c
@@ -661,7 +661,7 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
 	unsigned int max;
 	char ifname[IF_NAMESIZE];
 
-	info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	priv_lock(priv);
 	/* FIXME: we should ask the device for these values. */
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index 5c5cba1..7e286e9 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -647,7 +647,7 @@ nfp_configure_rx_interrupt(struct rte_eth_dev *dev,
 static int
 nfp_net_start(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
 	uint32_t new_ctrl, update = 0;
 	struct nfp_net_hw *hw;
@@ -772,7 +772,7 @@ nfp_net_close(struct rte_eth_dev *dev)
 	PMD_INIT_LOG(DEBUG, "Close");
 
 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = RTE_DEV_TO_PCI(dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	/*
 	 * We assume that the DPDK application is stopping all the
@@ -1081,7 +1081,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->max_rx_queues = (uint16_t)hw->max_rx_queues;
 	dev_info->max_tx_queues = (uint16_t)hw->max_tx_queues;
 	dev_info->min_rx_bufsize = ETHER_MIN_MTU;
@@ -1201,7 +1201,7 @@ nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
 	int base = 0;
 
 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = RTE_DEV_TO_PCI(dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (pci_dev->intr_handle.type != RTE_INTR_HANDLE_UIO)
 		base = 1;
@@ -1221,7 +1221,7 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 	int base = 0;
 
 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = RTE_DEV_TO_PCI(dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (pci_dev->intr_handle.type != RTE_INTR_HANDLE_UIO)
 		base = 1;
@@ -1235,7 +1235,7 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
 static void
 nfp_net_dev_link_status_print(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_eth_link link;
 
 	memset(&link, 0, sizeof(link));
@@ -1269,7 +1269,7 @@ nfp_net_irq_unmask(struct rte_eth_dev *dev)
 	struct rte_pci_device *pci_dev;
 
 	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-	pci_dev = RTE_DEV_TO_PCI(dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	if (hw->ctrl & NFP_NET_CFG_CTRL_MSIXAUTO) {
 		/* If MSI-X auto-masking is used, clear the entry */
@@ -2450,7 +2450,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
 
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	rte_eth_copy_pci_info(eth_dev, pci_dev);
 	eth_dev->data->dev_flags |= RTE_ETH_DEV_DETACHABLE;
 
diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 51624c7..49742ac 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -946,7 +946,7 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev,
 
 	PMD_INIT_FUNC_TRACE(edev);
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	dev_info->min_rx_bufsize = (uint32_t)QEDE_MIN_RX_BUFF_SIZE;
 	dev_info->max_rx_pktlen = (uint32_t)ETH_TX_MAX_NON_LSO_PKT_LEN;
 	dev_info->rx_desc_lim = qede_rx_desc_lim;
@@ -1103,7 +1103,7 @@ static void qede_poll_sp_sb_cb(void *param)
 
 static void qede_dev_close(struct rte_eth_dev *eth_dev)
 {
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev);
 	struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
 	int rc;
@@ -2163,7 +2163,7 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf)
 	/* Extract key data structures */
 	adapter = eth_dev->data->dev_private;
 	edev = &adapter->edev;
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	pci_addr = pci_dev->addr;
 
 	PMD_INIT_FUNC_TRACE(edev);
diff --git a/drivers/net/sfc/sfc.c b/drivers/net/sfc/sfc.c
index 4e241b2..6cecfc0 100644
--- a/drivers/net/sfc/sfc.c
+++ b/drivers/net/sfc/sfc.c
@@ -465,7 +465,7 @@ static int
 sfc_mem_bar_init(struct sfc_adapter *sa)
 {
 	struct rte_eth_dev *eth_dev = sa->eth_dev;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	efsys_bar_t *ebp = &sa->mem_bar;
 	unsigned int i;
 	struct rte_mem_resource *res;
@@ -666,7 +666,7 @@ sfc_detach(struct sfc_adapter *sa)
 int
 sfc_probe(struct sfc_adapter *sa)
 {
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 	efx_nic_t *enp;
 	int rc;
 
diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h
index fad0ce0..7927678 100644
--- a/drivers/net/sfc/sfc.h
+++ b/drivers/net/sfc/sfc.h
@@ -46,9 +46,6 @@
 extern "C" {
 #endif
 
-#define SFC_DEV_TO_PCI(eth_dev) \
-	RTE_DEV_TO_PCI((eth_dev)->device)
-
 #if EFSYS_OPT_RX_SCALE
 /** RSS key length (bytes) */
 #define SFC_RSS_KEY_SIZE	40
diff --git a/drivers/net/sfc/sfc_debug.h b/drivers/net/sfc/sfc_debug.h
index c0b4867..f4fe044 100644
--- a/drivers/net/sfc/sfc_debug.h
+++ b/drivers/net/sfc/sfc_debug.h
@@ -48,7 +48,8 @@
 #define sfc_panic(sa, fmt, args...) \
 	do {								\
 		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
-		const struct rte_pci_device *_pci_dev = SFC_DEV_TO_PCI(_dev); \
+		const struct rte_pci_device *_pci_dev =			\
+			RTE_ETH_DEV_TO_PCI(_dev);			\
 									\
 		rte_panic("sfc " PCI_PRI_FMT " #%" PRIu8 ": " fmt "\n",	\
 			  _pci_dev->addr.domain, _pci_dev->addr.bus,	\
diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
index 4c9335f..d5583ec 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
@@ -107,7 +107,7 @@ sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
 	sfc_log_init(sa, "entry");
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->max_rx_pktlen = EFX_MAC_PDU_MAX;
 
 	/* Autonegotiation may be disabled */
@@ -1486,7 +1486,7 @@ static int
 sfc_eth_dev_init(struct rte_eth_dev *dev)
 {
 	struct sfc_adapter *sa = dev->data->dev_private;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	int rc;
 	const efx_nic_cfg_t *encp;
 	const struct ether_addr *from;
diff --git a/drivers/net/sfc/sfc_intr.c b/drivers/net/sfc/sfc_intr.c
index 7eb4b86..dfa453a 100644
--- a/drivers/net/sfc/sfc_intr.c
+++ b/drivers/net/sfc/sfc_intr.c
@@ -77,7 +77,7 @@ sfc_intr_line_handler(void *cb_arg)
 	boolean_t fatal;
 	uint32_t qmask;
 	unsigned int lsc_seq = sa->port.lsc_seq;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
@@ -122,7 +122,7 @@ sfc_intr_message_handler(void *cb_arg)
 	efx_nic_t *enp = sa->nic;
 	boolean_t fatal;
 	unsigned int lsc_seq = sa->port.lsc_seq;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
@@ -177,7 +177,7 @@ sfc_intr_start(struct sfc_adapter *sa)
 	if (rc != 0)
 		goto fail_intr_init;
 
-	pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 	intr_handle = &pci_dev->intr_handle;
 
 	if (intr->handler != NULL) {
@@ -232,7 +232,7 @@ void
 sfc_intr_stop(struct sfc_adapter *sa)
 {
 	struct sfc_intr *intr = &sa->intr;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
@@ -306,7 +306,7 @@ int
 sfc_intr_attach(struct sfc_adapter *sa)
 {
 	struct sfc_intr *intr = &sa->intr;
-	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
 
 	sfc_log_init(sa, "entry");
 
diff --git a/drivers/net/sfc/sfc_log.h b/drivers/net/sfc/sfc_log.h
index 8a5e230..d0f8921 100644
--- a/drivers/net/sfc/sfc_log.h
+++ b/drivers/net/sfc/sfc_log.h
@@ -36,7 +36,8 @@
 #define SFC_LOG(sa, level, ...) \
 	do {								\
 		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
-		const struct rte_pci_device *_pci_dev = SFC_DEV_TO_PCI(_dev); \
+		const struct rte_pci_device *_pci_dev =			\
+			RTE_ETH_DEV_TO_PCI(_dev);			\
 									\
 		RTE_LOG(level, PMD,					\
 			RTE_FMT("sfc_efx " PCI_PRI_FMT " #%" PRIu8 ": "	\
diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
index 2ecd6f2..122b657 100644
--- a/drivers/net/sfc/sfc_rx.c
+++ b/drivers/net/sfc/sfc_rx.c
@@ -942,7 +942,7 @@ sfc_rx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
 	info.mem_bar = sa->mem_bar.esb_base;
 
 	rc = sa->dp_rx->qcreate(sa->eth_dev->data->port_id, sw_index,
-				&SFC_DEV_TO_PCI(sa->eth_dev)->addr,
+				&RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr,
 				socket_id, &info, &rxq->dp);
 	if (rc != 0)
 		goto fail_dp_rx_qcreate;
diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c
index b8581d1..d75fb84 100644
--- a/drivers/net/sfc/sfc_tx.c
+++ b/drivers/net/sfc/sfc_tx.c
@@ -185,7 +185,7 @@ sfc_tx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
 	info.mem_bar = sa->mem_bar.esb_base;
 
 	rc = sa->dp_tx->qcreate(sa->eth_dev->data->port_id, sw_index,
-				&SFC_DEV_TO_PCI(sa->eth_dev)->addr,
+				&RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr,
 				socket_id, &info, &txq->dp);
 	if (rc != 0)
 		goto fail_dp_tx_qinit;
diff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c
index 54212b7..c70e9f3 100644
--- a/drivers/net/szedata2/rte_eth_szedata2.c
+++ b/drivers/net/szedata2/rte_eth_szedata2.c
@@ -1032,7 +1032,7 @@ eth_dev_info(struct rte_eth_dev *dev,
 		struct rte_eth_dev_info *dev_info)
 {
 	struct pmd_internals *internals = dev->data->dev_private;
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	dev_info->if_index = 0;
 	dev_info->max_mac_addrs = 1;
 	dev_info->max_rx_pktlen = (uint32_t)-1;
@@ -1431,7 +1431,7 @@ rte_szedata2_eth_dev_init(struct rte_eth_dev *dev)
 	struct szedata *szedata_temp;
 	int ret;
 	uint32_t szedata2_index;
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_pci_addr *pci_addr = &pci_dev->addr;
 	struct rte_mem_resource *pci_rsc =
 		&pci_dev->mem_resource[PCI_RESOURCE_NUMBER];
@@ -1554,7 +1554,7 @@ rte_szedata2_eth_dev_init(struct rte_eth_dev *dev)
 static int
 rte_szedata2_eth_dev_uninit(struct rte_eth_dev *dev)
 {
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_pci_addr *pci_addr = &pci_dev->addr;
 
 	rte_free(dev->data->mac_addrs);
diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c
index ddcfaba..796701b 100644
--- a/drivers/net/thunderx/nicvf_ethdev.c
+++ b/drivers/net/thunderx/nicvf_ethdev.c
@@ -1373,11 +1373,11 @@ static void
 nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 {
 	struct nicvf *nic = nicvf_pmd_priv(dev);
-	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	PMD_INIT_FUNC_TRACE();
 
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	dev_info->min_rx_bufsize = ETHER_MIN_MTU;
 	dev_info->max_rx_pktlen = NIC_HW_MAX_FRS;
@@ -2024,7 +2024,7 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)
 		}
 	}
 
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 	rte_eth_copy_pci_info(eth_dev, pci_dev);
 
 	nic->device_id = pci_dev->id.device_id;
diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
index 763fef5..e58b475 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1355,7 +1355,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
 		return -1;
 
 	if (!hw->virtio_user_dev) {
-		pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+		pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 		rte_eth_copy_pci_info(eth_dev, pci_dev);
 	}
 
@@ -1537,8 +1537,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
 
 	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
 		if (!hw->virtio_user_dev) {
-			ret = virtio_remap_pci(RTE_DEV_TO_PCI(eth_dev->device),
-					       hw);
+			ret = virtio_remap_pci(RTE_ETH_DEV_TO_PCI(eth_dev), hw);
 			if (ret)
 				return ret;
 		}
@@ -1567,7 +1566,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
 	 * virtio_user_eth_dev_alloc() before eth_virtio_dev_init() is called.
 	 */
 	if (!hw->virtio_user_dev) {
-		ret = vtpci_init(RTE_DEV_TO_PCI(eth_dev->device), hw);
+		ret = vtpci_init(RTE_ETH_DEV_TO_PCI(eth_dev), hw);
 		if (ret)
 			return ret;
 	}
@@ -1609,7 +1608,7 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)
 						virtio_interrupt_handler,
 						eth_dev);
 	if (eth_dev->device)
-		rte_pci_unmap_device(RTE_DEV_TO_PCI(eth_dev->device));
+		rte_pci_unmap_device(RTE_ETH_DEV_TO_PCI(eth_dev));
 
 	PMD_INIT_LOG(DEBUG, "dev_uninit completed");
 
@@ -1894,7 +1893,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
 	dev_info->speed_capa = ETH_LINK_SPEED_10G; /* fake value */
 
-	dev_info->pci_dev = dev->device ? RTE_DEV_TO_PCI(dev->device) : NULL;
+	dev_info->pci_dev = dev->device ? RTE_ETH_DEV_TO_PCI(dev) : NULL;
 	dev_info->max_rx_queues =
 		RTE_MIN(hw->max_queue_pairs, VIRTIO_MAX_RX_QUEUES);
 	dev_info->max_tx_queues =
diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
index 98252bb..17b471f 100644
--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
@@ -259,7 +259,7 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
 	eth_dev->rx_pkt_burst = &vmxnet3_recv_pkts;
 	eth_dev->tx_pkt_burst = &vmxnet3_xmit_pkts;
 	eth_dev->tx_pkt_prepare = vmxnet3_prep_pkts;
-	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
+	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
 
 	/*
 	 * for secondary processes, we don't initialize any further as primary
@@ -868,7 +868,7 @@ static void
 vmxnet3_dev_info_get(struct rte_eth_dev *dev,
 		     struct rte_eth_dev_info *dev_info)
 {
-	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
+	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 
 	dev_info->max_rx_queues = VMXNET3_MAX_RX_QUEUES;
 	dev_info->max_tx_queues = VMXNET3_MAX_TX_QUEUES;
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 0f38b45..f23d116 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -1048,6 +1048,8 @@ TAILQ_HEAD(rte_eth_dev_cb_list, rte_eth_dev_callback);
 	} \
 } while (0)
 
+#define RTE_ETH_DEV_TO_PCI(eth_dev)	RTE_DEV_TO_PCI((eth_dev)->device)
+
 /**
  * l2 tunnel configuration.
  */
-- 
2.9.3

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH v3] drivers/net: add generic ethdev macro to get PCI device
  2017-05-15 10:24   ` [dpdk-dev] [PATCH v3] " Ferruh Yigit
@ 2017-05-15 10:54     ` Andrew Rybchenko
  2017-05-16 16:25       ` Ferruh Yigit
  0 siblings, 1 reply; 9+ messages in thread
From: Andrew Rybchenko @ 2017-05-15 10:54 UTC (permalink / raw)
  To: Ferruh Yigit, Shepard Siegel, Ed Czeck, John Miller,
	Allain Legacy, Matt Peters, Harish Patil, Rasesh Mody,
	Stephen Hurd, Ajit Khaparde, Declan Doherty, Rahul Lakkireddy,
	Wenzhuo Lu, Marcin Wojtas, Michal Krawczyk, Guy Tzalik,
	Evgeny Schemeilin, John Daley, Nelson Escobar, Jing Chen,
	Helin Zhang, Jingjing Wu, Konstantin Ananyev, Shijith Thotton,
	Srisivasubramanian Srinivasan, Adrien Mazarguil,
	Nelio Laranjeiro, Alejandro Lucero, Matej Vido, Jerin Jacob,
	Maciej Czekaj, Yuanhan Liu, Maxime Coquelin, Shrikrishna Khare,
	Thomas Monjalon
  Cc: dev

On 05/15/2017 01:24 PM, Ferruh Yigit wrote:
> Instead of many PMD define their own macro, define a generic one in
> ethdev and use that in PMDs.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Acked-by: Allain Legacy <allain.legacy@windriver.com>
> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>

Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>

> ---
>
> v3:
> * rebased on top of latest next-net, there were updates in ixgbe and
> virtio
>
> v2:
> * Convert RTE_DEV_TO_PCI(eth_dev->device) to RTE_ETH_DEV_TO_PCI(eth_dev)
> ---
>   drivers/net/ark/ark_ethdev.c            |  4 ++--
>   drivers/net/ark/ark_ethdev.h            |  4 ----
>   drivers/net/avp/avp_ethdev.c            | 27 ++++++++++------------
>   drivers/net/bnx2x/bnx2x_ethdev.c        |  4 ++--
>   drivers/net/bnxt/bnxt_ethdev.c          |  6 ++---
>   drivers/net/bonding/rte_eth_bond_args.c |  2 +-
>   drivers/net/cxgbe/cxgbe_ethdev.c        |  4 ++--
>   drivers/net/e1000/e1000_ethdev.h        |  2 --
>   drivers/net/e1000/em_ethdev.c           | 15 ++++++-------
>   drivers/net/e1000/igb_ethdev.c          | 28 +++++++++++------------
>   drivers/net/e1000/igb_pf.c              |  2 +-
>   drivers/net/ena/ena_ethdev.c            |  4 ++--
>   drivers/net/enic/enic_ethdev.c          |  4 ++--
>   drivers/net/fm10k/fm10k_ethdev.c        | 16 ++++++-------
>   drivers/net/i40e/i40e_ethdev.c          | 30 ++++++++++++-------------
>   drivers/net/i40e/i40e_ethdev.h          |  3 ---
>   drivers/net/i40e/i40e_ethdev_vf.c       | 20 ++++++++---------
>   drivers/net/ixgbe/ixgbe_ethdev.c        | 40 ++++++++++++++++-----------------
>   drivers/net/ixgbe/ixgbe_ethdev.h        |  3 ---
>   drivers/net/ixgbe/ixgbe_pf.c            |  2 +-
>   drivers/net/ixgbe/rte_pmd_ixgbe.c       | 20 ++++++++---------
>   drivers/net/liquidio/lio_ethdev.c       |  2 +-
>   drivers/net/mlx4/mlx4.c                 |  2 +-
>   drivers/net/mlx5/mlx5_ethdev.c          |  2 +-
>   drivers/net/nfp/nfp_net.c               | 16 ++++++-------
>   drivers/net/qede/qede_ethdev.c          |  6 ++---
>   drivers/net/sfc/sfc.c                   |  4 ++--
>   drivers/net/sfc/sfc.h                   |  3 ---
>   drivers/net/sfc/sfc_debug.h             |  3 ++-
>   drivers/net/sfc/sfc_ethdev.c            |  4 ++--
>   drivers/net/sfc/sfc_intr.c              | 10 ++++-----
>   drivers/net/sfc/sfc_log.h               |  3 ++-
>   drivers/net/sfc/sfc_rx.c                |  2 +-
>   drivers/net/sfc/sfc_tx.c                |  2 +-
>   drivers/net/szedata2/rte_eth_szedata2.c |  6 ++---
>   drivers/net/thunderx/nicvf_ethdev.c     |  6 ++---
>   drivers/net/virtio/virtio_ethdev.c      | 11 +++++----
>   drivers/net/vmxnet3/vmxnet3_ethdev.c    |  4 ++--
>   lib/librte_ether/rte_ethdev.h           |  2 ++
>   39 files changed, 156 insertions(+), 172 deletions(-)
>
> diff --git a/drivers/net/ark/ark_ethdev.c b/drivers/net/ark/ark_ethdev.c
> index 995c93d..5c45038 100644
> --- a/drivers/net/ark/ark_ethdev.c
> +++ b/drivers/net/ark/ark_ethdev.c
> @@ -278,7 +278,7 @@ eth_ark_dev_init(struct rte_eth_dev *dev)
>   	ret = check_for_ext(ark);
>   	if (ret)
>   		return ret;
> -	pci_dev = ARK_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	rte_eth_copy_pci_info(dev, pci_dev);
>   
>   	/* Use dummy function until setup */
> @@ -751,7 +751,7 @@ eth_ark_dev_info_get(struct rte_eth_dev *dev,
>   				ETH_LINK_SPEED_40G |
>   				ETH_LINK_SPEED_50G |
>   				ETH_LINK_SPEED_100G);
> -	dev_info->pci_dev = ARK_DEV_TO_PCI(dev);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   }
>   
>   static int
> diff --git a/drivers/net/ark/ark_ethdev.h b/drivers/net/ark/ark_ethdev.h
> index 9f8d32f..df5547b 100644
> --- a/drivers/net/ark/ark_ethdev.h
> +++ b/drivers/net/ark/ark_ethdev.h
> @@ -34,8 +34,4 @@
>   #ifndef _ARK_ETHDEV_H_
>   #define _ARK_ETHDEV_H_
>   
> -#define ARK_DEV_TO_PCI(eth_dev)			\
> -	RTE_DEV_TO_PCI((eth_dev)->device)
> -
> -
>   #endif
> diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c
> index b08dbaa..3554645 100644
> --- a/drivers/net/avp/avp_ethdev.c
> +++ b/drivers/net/avp/avp_ethdev.c
> @@ -112,9 +112,6 @@ static void avp_dev_stats_get(struct rte_eth_dev *dev,
>   static void avp_dev_stats_reset(struct rte_eth_dev *dev);
>   
>   
> -#define AVP_DEV_TO_PCI(eth_dev) RTE_DEV_TO_PCI((eth_dev)->device)
> -
> -
>   #define AVP_MAX_RX_BURST 64
>   #define AVP_MAX_TX_BURST 64
>   #define AVP_MAX_MAC_ADDRS 1
> @@ -392,7 +389,7 @@ static void *
>   avp_dev_translate_address(struct rte_eth_dev *eth_dev,
>   			  phys_addr_t host_phys_addr)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_mem_resource *resource;
>   	struct rte_avp_memmap_info *info;
>   	struct rte_avp_memmap *map;
> @@ -445,7 +442,7 @@ avp_dev_version_check(uint32_t version)
>   static int
>   avp_dev_check_regions(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_avp_memmap_info *memmap;
>   	struct rte_avp_device_info *info;
>   	struct rte_mem_resource *resource;
> @@ -581,7 +578,7 @@ _avp_set_rx_queue_mappings(struct rte_eth_dev *eth_dev, uint16_t rx_queue_id)
>   static void
>   _avp_set_queue_counts(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
>   	struct rte_avp_device_info *host_info;
>   	void *addr;
> @@ -641,7 +638,7 @@ avp_dev_attach(struct rte_eth_dev *eth_dev)
>   	 * re-run the device create utility which will parse the new host info
>   	 * and setup the AVP device queue pointers.
>   	 */
> -	ret = avp_dev_create(AVP_DEV_TO_PCI(eth_dev), eth_dev);
> +	ret = avp_dev_create(RTE_ETH_DEV_TO_PCI(eth_dev), eth_dev);
>   	if (ret < 0) {
>   		PMD_DRV_LOG(ERR, "Failed to re-create AVP device, ret=%d\n",
>   			    ret);
> @@ -695,7 +692,7 @@ static void
>   avp_dev_interrupt_handler(void *data)
>   {
>   	struct rte_eth_dev *eth_dev = data;
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
>   	uint32_t status, value;
>   	int ret;
> @@ -754,7 +751,7 @@ avp_dev_interrupt_handler(void *data)
>   static int
>   avp_dev_enable_interrupts(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
>   	int ret;
>   
> @@ -779,7 +776,7 @@ avp_dev_enable_interrupts(struct rte_eth_dev *eth_dev)
>   static int
>   avp_dev_disable_interrupts(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
>   	int ret;
>   
> @@ -804,7 +801,7 @@ avp_dev_disable_interrupts(struct rte_eth_dev *eth_dev)
>   static int
>   avp_dev_setup_interrupts(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	int ret;
>   
>   	/* register a callback handler with UIO for interrupt notifications */
> @@ -824,7 +821,7 @@ avp_dev_setup_interrupts(struct rte_eth_dev *eth_dev)
>   static int
>   avp_dev_migration_pending(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	void *registers = pci_dev->mem_resource[RTE_AVP_PCI_MMIO_BAR].addr;
>   	uint32_t value;
>   
> @@ -985,7 +982,7 @@ eth_avp_dev_init(struct rte_eth_dev *eth_dev)
>   	struct rte_pci_device *pci_dev;
>   	int ret;
>   
> -	pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	eth_dev->dev_ops = &avp_eth_dev_ops;
>   	eth_dev->rx_pkt_burst = &avp_recv_pkts;
>   	eth_dev->tx_pkt_burst = &avp_xmit_pkts;
> @@ -2010,7 +2007,7 @@ avp_dev_tx_queue_release(void *tx_queue)
>   static int
>   avp_dev_configure(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = AVP_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
>   	struct rte_avp_device_info *host_info;
>   	struct rte_avp_device_config config;
> @@ -2206,7 +2203,7 @@ avp_dev_info_get(struct rte_eth_dev *eth_dev,
>   	struct avp_dev *avp = AVP_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
>   
>   	dev_info->driver_name = "rte_avp_pmd";
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	dev_info->max_rx_queues = avp->max_rx_queues;
>   	dev_info->max_tx_queues = avp->max_tx_queues;
>   	dev_info->min_rx_bufsize = AVP_MIN_RX_BUFSIZE;
> diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
> index 90cbb6c..b26e280 100644
> --- a/drivers/net/bnx2x/bnx2x_ethdev.c
> +++ b/drivers/net/bnx2x/bnx2x_ethdev.c
> @@ -442,7 +442,7 @@ static void
>   bnx2x_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
>   	struct bnx2x_softc *sc = dev->data->dev_private;
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->max_rx_queues  = sc->max_rx_queues;
>   	dev_info->max_tx_queues  = sc->max_tx_queues;
>   	dev_info->min_rx_bufsize = BNX2X_MIN_RX_BUF_SIZE;
> @@ -531,7 +531,7 @@ bnx2x_common_dev_init(struct rte_eth_dev *eth_dev, int is_vf)
>   	PMD_INIT_FUNC_TRACE();
>   
>   	eth_dev->dev_ops = is_vf ? &bnx2xvf_eth_dev_ops : &bnx2x_eth_dev_ops;
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	rte_eth_copy_pci_info(eth_dev, pci_dev);
>   
> diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
> index e659c57..c230394 100644
> --- a/drivers/net/bnxt/bnxt_ethdev.c
> +++ b/drivers/net/bnxt/bnxt_ethdev.c
> @@ -338,7 +338,7 @@ static void bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev,
>   	struct bnxt *bp = (struct bnxt *)eth_dev->data->dev_private;
>   	uint16_t max_vnics, i, j, vpool, vrxq;
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	/* MAC Specifics */
>   	dev_info->max_mac_addrs = MAX_NUM_MAC_ADDR;
> @@ -1049,7 +1049,7 @@ static bool bnxt_vf_pciid(uint16_t id)
>   static int bnxt_init_board(struct rte_eth_dev *eth_dev)
>   {
>   	struct bnxt *bp = eth_dev->data->dev_private;
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	int rc;
>   
>   	/* enable device (incl. PCI PM wakeup), and bus-mastering */
> @@ -1085,7 +1085,7 @@ static int bnxt_dev_uninit(struct rte_eth_dev *eth_dev);
>   static int
>   bnxt_dev_init(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	static int version_printed;
>   	struct bnxt *bp;
>   	int rc;
> diff --git a/drivers/net/bonding/rte_eth_bond_args.c b/drivers/net/bonding/rte_eth_bond_args.c
> index 3155fca..dc468d2 100644
> --- a/drivers/net/bonding/rte_eth_bond_args.c
> +++ b/drivers/net/bonding/rte_eth_bond_args.c
> @@ -69,7 +69,7 @@ find_port_id_by_pci_addr(const struct rte_pci_addr *pci_addr)
>   		    rte_eth_devices[i].data->kdrv == RTE_KDRV_NONE)
>   			continue;
>   
> -		pci_dev = RTE_DEV_TO_PCI(rte_eth_devices[i].device);
> +		pci_dev = RTE_ETH_DEV_TO_PCI(&rte_eth_devices[i]);
>   		eth_pci_addr = &pci_dev->addr;
>   
>   		if (pci_addr->bus == eth_pci_addr->bus &&
> diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c
> index 34fed84..2e2f2cf 100644
> --- a/drivers/net/cxgbe/cxgbe_ethdev.c
> +++ b/drivers/net/cxgbe/cxgbe_ethdev.c
> @@ -148,7 +148,7 @@ static void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,
>   		.nb_align = 1,
>   	};
>   
> -	device_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	device_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	device_info->min_rx_bufsize = CXGBE_MIN_RX_BUFSIZE;
>   	device_info->max_rx_pktlen = CXGBE_MAX_RX_PKTLEN;
> @@ -1008,7 +1008,7 @@ static int eth_cxgbe_dev_init(struct rte_eth_dev *eth_dev)
>   	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
>   		return 0;
>   
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	snprintf(name, sizeof(name), "cxgbeadapter%d", eth_dev->data->port_id);
>   	adapter = rte_zmalloc(name, sizeof(*adapter), 0);
> diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h
> index 8352d0a..4979895 100644
> --- a/drivers/net/e1000/e1000_ethdev.h
> +++ b/drivers/net/e1000/e1000_ethdev.h
> @@ -291,8 +291,6 @@ struct e1000_adapter {
>   #define E1000_DEV_PRIVATE_TO_FILTER_INFO(adapter) \
>   	(&((struct e1000_adapter *)adapter)->filter)
>   
> -#define E1000_DEV_TO_PCI(eth_dev) \
> -	RTE_DEV_TO_PCI((eth_dev)->device)
>   /*
>    * RX/TX IGB function prototypes
>    */
> diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
> index 57eb017..132de6e 100644
> --- a/drivers/net/e1000/em_ethdev.c
> +++ b/drivers/net/e1000/em_ethdev.c
> @@ -316,7 +316,7 @@ eth_em_dev_is_ich8(struct e1000_hw *hw)
>   static int
>   eth_em_dev_init(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
> @@ -390,7 +390,7 @@ eth_em_dev_init(struct rte_eth_dev *eth_dev)
>   static int
>   eth_em_dev_uninit(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
> @@ -593,8 +593,7 @@ eth_em_start(struct rte_eth_dev *dev)
>   		E1000_DEV_PRIVATE(dev->data->dev_private);
>   	struct e1000_hw *hw =
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev =
> -		E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	int ret, mask;
>   	uint32_t intr_vector = 0;
> @@ -777,7 +776,7 @@ eth_em_stop(struct rte_eth_dev *dev)
>   {
>   	struct rte_eth_link link;
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	em_rxq_intr_disable(hw);
> @@ -1041,7 +1040,7 @@ static int
>   eth_em_rx_queue_intr_enable(struct rte_eth_dev *dev, __rte_unused uint16_t queue_id)
>   {
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	em_rxq_intr_enable(hw);
> @@ -1091,7 +1090,7 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
>   	dev_info->max_rx_pktlen = em_get_max_pktlen(hw);
>   	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
> @@ -1598,7 +1597,7 @@ static int
>   eth_em_interrupt_action(struct rte_eth_dev *dev,
>   			struct rte_intr_handle *intr_handle)
>   {
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct e1000_hw *hw =
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct e1000_interrupt *intr =
> diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
> index 707b8e9..0040170 100644
> --- a/drivers/net/e1000/igb_ethdev.c
> +++ b/drivers/net/e1000/igb_ethdev.c
> @@ -760,7 +760,7 @@ static int
>   eth_igb_dev_init(struct rte_eth_dev *eth_dev)
>   {
>   	int error = 0;
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct e1000_hw *hw =
>   		E1000_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
>   	struct e1000_vfta * shadow_vfta =
> @@ -936,7 +936,7 @@ eth_igb_dev_uninit(struct rte_eth_dev *eth_dev)
>   		return -EPERM;
>   
>   	hw = E1000_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
> -	pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	intr_handle = &pci_dev->intr_handle;
>   
>   	if (adapter->stopped == 0)
> @@ -994,7 +994,7 @@ eth_igbvf_dev_init(struct rte_eth_dev *eth_dev)
>   		return 0;
>   	}
>   
> -	pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	rte_eth_copy_pci_info(eth_dev, pci_dev);
>   	eth_dev->data->dev_flags |= RTE_ETH_DEV_DETACHABLE;
>   
> @@ -1071,7 +1071,7 @@ eth_igbvf_dev_uninit(struct rte_eth_dev *eth_dev)
>   {
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(eth_dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	PMD_INIT_FUNC_TRACE();
>   
> @@ -1252,7 +1252,7 @@ eth_igb_start(struct rte_eth_dev *dev)
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	int ret, mask;
>   	uint32_t intr_vector = 0;
> @@ -1461,7 +1461,7 @@ eth_igb_stop(struct rte_eth_dev *dev)
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct e1000_filter_info *filter_info =
>   		E1000_DEV_PRIVATE_TO_FILTER_INFO(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_eth_link link;
>   	struct e1000_flex_filter *p_flex;
>   	struct e1000_5tuple_filter *p_5tuple, *p_5tuple_next;
> @@ -1566,7 +1566,7 @@ eth_igb_close(struct rte_eth_dev *dev)
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(dev->data->dev_private);
>   	struct rte_eth_link link;
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	eth_igb_stop(dev);
> @@ -2152,7 +2152,7 @@ eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
>   	dev_info->max_rx_pktlen  = 0x3FFF; /* See RLPML register. */
>   	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
> @@ -2281,7 +2281,7 @@ eth_igbvf_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
>   	struct e1000_hw *hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->min_rx_bufsize = 256; /* See BSIZE field of RCTL register. */
>   	dev_info->max_rx_pktlen  = 0x3FFF; /* See RLPML register. */
>   	dev_info->max_mac_addrs = hw->mac.rar_entry_count;
> @@ -2813,7 +2813,7 @@ eth_igb_interrupt_action(struct rte_eth_dev *dev,
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct e1000_interrupt *intr =
>   		E1000_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	uint32_t tctl, rctl;
>   	struct rte_eth_link link;
>   	int ret;
> @@ -3229,7 +3229,7 @@ igbvf_dev_start(struct rte_eth_dev *dev)
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct e1000_adapter *adapter =
>   		E1000_DEV_PRIVATE(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	int ret;
>   	uint32_t intr_vector = 0;
> @@ -3285,7 +3285,7 @@ igbvf_dev_start(struct rte_eth_dev *dev)
>   static void
>   igbvf_dev_stop(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	PMD_INIT_FUNC_TRACE();
> @@ -5271,7 +5271,7 @@ eth_igb_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
>   	struct e1000_hw *hw =
>   		E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t mask = 1 << queue_id;
>   	uint32_t regval;
> @@ -5344,7 +5344,7 @@ eth_igb_configure_msix_intr(struct rte_eth_dev *dev)
>   	uint32_t vec = E1000_MISC_VEC_ID;
>   	uint32_t base = E1000_MISC_VEC_ID;
>   	uint32_t misc_shift = 0;
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	/* won't configure msix register if no mapping is done
> diff --git a/drivers/net/e1000/igb_pf.c b/drivers/net/e1000/igb_pf.c
> index 923c78a..6809d30 100644
> --- a/drivers/net/e1000/igb_pf.c
> +++ b/drivers/net/e1000/igb_pf.c
> @@ -57,7 +57,7 @@
>   static inline uint16_t
>   dev_num_vf(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = E1000_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	return pci_dev->max_vfs;
>   }
> diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
> index c30c703..e7af041 100644
> --- a/drivers/net/ena/ena_ethdev.c
> +++ b/drivers/net/ena/ena_ethdev.c
> @@ -1289,7 +1289,7 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
>   	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
>   		return 0;
>   
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	adapter->pdev = pci_dev;
>   
>   	PMD_INIT_LOG(INFO, "Initializing %x:%x:%x.%d",
> @@ -1451,7 +1451,7 @@ static void ena_infos_get(struct rte_eth_dev *dev,
>   	ena_dev = &adapter->ena_dev;
>   	ena_assert_msg(ena_dev != NULL, "Uninitialized device");
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	dev_info->speed_capa =
>   			ETH_LINK_SPEED_1G   |
> diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
> index 372bae7..8e16a71 100644
> --- a/drivers/net/enic/enic_ethdev.c
> +++ b/drivers/net/enic/enic_ethdev.c
> @@ -455,7 +455,7 @@ static void enicpmd_dev_info_get(struct rte_eth_dev *eth_dev,
>   	struct enic *enic = pmd_priv(eth_dev);
>   
>   	ENICPMD_FUNC_TRACE();
> -	device_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	device_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	/* Scattered Rx uses two receive queues per rx queue exposed to dpdk */
>   	device_info->max_rx_queues = enic->conf_rq_count / 2;
>   	device_info->max_tx_queues = enic->conf_wq_count;
> @@ -619,7 +619,7 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)
>   	eth_dev->rx_pkt_burst = &enic_recv_pkts;
>   	eth_dev->tx_pkt_burst = &enic_xmit_pkts;
>   
> -	pdev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pdev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	rte_eth_copy_pci_info(eth_dev, pdev);
>   	enic->pdev = pdev;
>   	addr = &pdev->addr;
> diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
> index 1982359..396f02b 100644
> --- a/drivers/net/fm10k/fm10k_ethdev.c
> +++ b/drivers/net/fm10k/fm10k_ethdev.c
> @@ -712,7 +712,7 @@ fm10k_dev_rx_init(struct rte_eth_dev *dev)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct fm10k_macvlan_filter_info *macvlan;
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
>   	int i, ret;
>   	struct fm10k_rx_queue *rxq;
> @@ -1173,7 +1173,7 @@ static void
>   fm10k_dev_stop(struct rte_eth_dev *dev)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
>   	int i;
>   
> @@ -1393,7 +1393,7 @@ fm10k_dev_infos_get(struct rte_eth_dev *dev,
>   	struct rte_eth_dev_info *dev_info)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	PMD_INIT_FUNC_TRACE();
>   
> @@ -2345,7 +2345,7 @@ static int
>   fm10k_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	/* Enable ITR */
>   	if (hw->mac.type == fm10k_mac_pf)
> @@ -2362,7 +2362,7 @@ static int
>   fm10k_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	/* Disable ITR */
>   	if (hw->mac.type == fm10k_mac_pf)
> @@ -2378,7 +2378,7 @@ static int
>   fm10k_dev_rxq_interrupt_setup(struct rte_eth_dev *dev)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
>   	uint32_t intr_vector, vec;
>   	uint16_t queue_id;
> @@ -2882,7 +2882,7 @@ static int
>   eth_fm10k_dev_init(struct rte_eth_dev *dev)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
>   	int diag, i;
>   	struct fm10k_macvlan_filter_info *macvlan;
> @@ -3069,7 +3069,7 @@ static int
>   eth_fm10k_dev_uninit(struct rte_eth_dev *dev)
>   {
>   	struct fm10k_hw *hw = FM10K_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pdev->intr_handle;
>   	PMD_INIT_FUNC_TRACE();
>   
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 4c49673..d57a7af 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -879,7 +879,7 @@ is_floating_veb_supported(struct rte_devargs *devargs)
>   static void
>   config_floating_veb(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
> @@ -1061,7 +1061,7 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
>   		return 0;
>   	}
>   	i40e_set_default_ptype_table(dev);
> -	pci_dev = I40E_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	intr_handle = &pci_dev->intr_handle;
>   
>   	rte_eth_copy_pci_info(dev, pci_dev);
> @@ -1414,7 +1414,7 @@ eth_i40e_dev_uninit(struct rte_eth_dev *dev)
>   
>   	pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	pci_dev = I40E_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	intr_handle = &pci_dev->intr_handle;
>   
>   	if (hw->adapter_stopped == 0)
> @@ -1547,7 +1547,7 @@ void
>   i40e_vsi_queues_unbind_intr(struct i40e_vsi *vsi)
>   {
>   	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
>   	uint16_t msix_vect = vsi->msix_intr;
> @@ -1661,7 +1661,7 @@ void
>   i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi)
>   {
>   	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
>   	uint16_t msix_vect = vsi->msix_intr;
> @@ -1733,7 +1733,7 @@ static void
>   i40e_vsi_enable_queues_intr(struct i40e_vsi *vsi)
>   {
>   	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
>   	uint16_t interval = i40e_calc_itr_interval(\
> @@ -1765,7 +1765,7 @@ static void
>   i40e_vsi_disable_queues_intr(struct i40e_vsi *vsi)
>   {
>   	struct rte_eth_dev *dev = vsi->adapter->eth_dev;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
>   	uint16_t msix_intr, i;
> @@ -1892,7 +1892,7 @@ i40e_dev_start(struct rte_eth_dev *dev)
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct i40e_vsi *main_vsi = pf->main_vsi;
>   	int ret, i;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t intr_vector = 0;
>   	struct i40e_vsi *vsi;
> @@ -2040,7 +2040,7 @@ i40e_dev_stop(struct rte_eth_dev *dev)
>   	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	struct i40e_vsi *main_vsi = pf->main_vsi;
>   	struct i40e_mirror_rule *p_mirror;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	int i;
>   
> @@ -2092,7 +2092,7 @@ i40e_dev_close(struct rte_eth_dev *dev)
>   {
>   	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t reg;
>   	int i;
> @@ -2849,7 +2849,7 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct i40e_vsi *vsi = pf->main_vsi;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	dev_info->pci_dev = pci_dev;
>   	dev_info->max_rx_queues = vsi->nb_qps;
> @@ -3768,7 +3768,7 @@ i40e_pf_parameter_init(struct rte_eth_dev *dev)
>   {
>   	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_PF_TO_HW(pf);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	uint16_t qp_count = 0, vsi_count = 0;
>   
>   	if (pci_dev->max_vfs && !hw->func_caps.sr_iov_1_1) {
> @@ -8988,7 +8988,7 @@ i40e_dev_filter_ctrl(struct rte_eth_dev *dev,
>   static void
>   i40e_enable_extended_tag(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	uint32_t buf = 0;
>   	int ret;
>   
> @@ -10436,7 +10436,7 @@ i40e_dev_get_dcb_info(struct rte_eth_dev *dev,
>   static int
>   i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	uint16_t interval =
> @@ -10470,7 +10470,7 @@ i40e_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   static int
>   i40e_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	uint16_t msix_intr;
> diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h
> index 677c214..b08902d 100644
> --- a/drivers/net/i40e/i40e_ethdev.h
> +++ b/drivers/net/i40e/i40e_ethdev.h
> @@ -892,9 +892,6 @@ int i40e_add_macvlan_filters(struct i40e_vsi *vsi,
>   			     int total);
>   bool is_i40e_supported(struct rte_eth_dev *dev);
>   
> -#define I40E_DEV_TO_PCI(eth_dev) \
> -	RTE_DEV_TO_PCI((eth_dev)->device)
> -
>   /* I40E_DEV_PRIVATE_TO */
>   #define I40E_DEV_PRIVATE_TO_PF(adapter) \
>   	(&((struct i40e_adapter *)adapter)->pf)
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
> index a33ab14..124cf63 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -727,7 +727,7 @@ i40evf_config_irq_map(struct rte_eth_dev *dev)
>   	uint8_t cmd_buffer[sizeof(struct i40e_virtchnl_irq_map_info) + \
>   		sizeof(struct i40e_virtchnl_vector_map)];
>   	struct i40e_virtchnl_irq_map_info *map_info;
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t vector_id;
>   	int i, err;
> @@ -1459,7 +1459,7 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev)
>   {
>   	struct i40e_hw *hw
>   		= I40E_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	PMD_INIT_FUNC_TRACE();
>   
> @@ -1883,7 +1883,7 @@ i40evf_enable_queues_intr(struct rte_eth_dev *dev)
>   {
>   	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	if (!rte_intr_allow_others(intr_handle)) {
> @@ -1916,7 +1916,7 @@ i40evf_disable_queues_intr(struct rte_eth_dev *dev)
>   {
>   	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	if (!rte_intr_allow_others(intr_handle)) {
> @@ -1943,7 +1943,7 @@ i40evf_disable_queues_intr(struct rte_eth_dev *dev)
>   static int
>   i40evf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	uint16_t interval =
> @@ -1978,7 +1978,7 @@ i40evf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   static int
>   i40evf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	uint16_t msix_intr;
> @@ -2063,7 +2063,7 @@ i40evf_dev_start(struct rte_eth_dev *dev)
>   {
>   	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t intr_vector = 0;
>   
> @@ -2129,7 +2129,7 @@ i40evf_dev_start(struct rte_eth_dev *dev)
>   static void
>   i40evf_dev_stop(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	PMD_INIT_FUNC_TRACE();
> @@ -2260,7 +2260,7 @@ i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   	struct i40e_vf *vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
>   
>   	memset(dev_info, 0, sizeof(*dev_info));
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->max_rx_queues = vf->vsi_res->num_queue_pairs;
>   	dev_info->max_tx_queues = vf->vsi_res->num_queue_pairs;
>   	dev_info->min_rx_bufsize = I40E_BUF_SIZE_MIN;
> @@ -2329,7 +2329,7 @@ static void
>   i40evf_dev_close(struct rte_eth_dev *dev)
>   {
>   	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = I40E_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	i40evf_dev_stop(dev);
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 269c8a5..e674586 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -1131,7 +1131,7 @@ ixgbe_swfw_lock_reset(struct ixgbe_hw *hw)
>   static int
>   eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw =
>   		IXGBE_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
> @@ -1365,7 +1365,7 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev)
>   static int
>   eth_ixgbe_dev_uninit(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw;
>   
> @@ -1598,7 +1598,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
>   {
>   	int diag;
>   	uint32_t tc, tcs;
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw =
>   		IXGBE_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
> @@ -1747,7 +1747,7 @@ eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev)
>   static int
>   eth_ixgbevf_dev_uninit(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw;
>   
> @@ -2176,7 +2176,7 @@ ixgbe_vmdq_vlan_hw_filter_enable(struct rte_eth_dev *dev)
>   static int
>   ixgbe_check_vf_rss_rxq_num(struct rte_eth_dev *dev, uint16_t nb_rx_q)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	switch (nb_rx_q) {
>   	case 1:
> @@ -2425,7 +2425,7 @@ ixgbe_set_vf_rate_limit(struct rte_eth_dev *dev, uint16_t vf,
>   	uint16_t total_rate = 0;
>   	struct rte_pci_device *pci_dev;
>   
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	rte_eth_link_get_nowait(dev->data->port_id, &link);
>   
>   	if (vf >= pci_dev->max_vfs)
> @@ -2496,7 +2496,7 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>   		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct ixgbe_vf_info *vfinfo =
>   		*IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t intr_vector = 0;
>   	int err, link_up = 0, negotiate = 0;
> @@ -2714,7 +2714,7 @@ ixgbe_dev_stop(struct rte_eth_dev *dev)
>   		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct ixgbe_vf_info *vfinfo =
>   		*IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	int vf;
>   
> @@ -3582,7 +3582,7 @@ ixgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size)
>   static void
>   ixgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	struct rte_eth_conf *dev_conf = &dev->data->dev_conf;
>   
> @@ -3724,7 +3724,7 @@ static void
>   ixgbevf_dev_info_get(struct rte_eth_dev *dev,
>   		     struct rte_eth_dev_info *dev_info)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
>   	dev_info->pci_dev = pci_dev;
> @@ -4035,7 +4035,7 @@ ixgbe_dev_interrupt_get_status(struct rte_eth_dev *dev)
>   static void
>   ixgbe_dev_link_status_print(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_eth_link link;
>   
>   	memset(&link, 0, sizeof(link));
> @@ -4143,7 +4143,7 @@ static void
>   ixgbe_dev_interrupt_delayed_handler(void *param)
>   {
>   	struct rte_eth_dev *dev = (struct rte_eth_dev *)param;
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_interrupt *intr =
>   		IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
> @@ -4660,7 +4660,7 @@ ixgbe_remove_rar(struct rte_eth_dev *dev, uint32_t index)
>   static void
>   ixgbe_set_default_mac_addr(struct rte_eth_dev *dev, struct ether_addr *addr)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	ixgbe_remove_rar(dev, 0);
>   
> @@ -4799,7 +4799,7 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
>   	struct ixgbe_hw *hw =
>   		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   	uint32_t intr_vector = 0;
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	int err, mask = 0;
> @@ -4863,7 +4863,7 @@ static void
>   ixgbevf_dev_stop(struct rte_eth_dev *dev)
>   {
>   	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   
>   	PMD_INIT_FUNC_TRACE();
> @@ -5336,7 +5336,7 @@ ixgbe_mirror_rule_reset(struct rte_eth_dev *dev, uint8_t rule_id)
>   static int
>   ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t mask;
>   	struct ixgbe_hw *hw =
> @@ -5370,7 +5370,7 @@ ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   static int
>   ixgbe_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t mask;
>   	struct ixgbe_hw *hw =
> @@ -5495,7 +5495,7 @@ ixgbe_set_ivar_map(struct ixgbe_hw *hw, int8_t direction,
>   static void
>   ixgbevf_configure_msix(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw =
>   		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> @@ -5529,7 +5529,7 @@ ixgbevf_configure_msix(struct rte_eth_dev *dev)
>   static void
>   ixgbe_configure_msix(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	struct ixgbe_hw *hw =
>   		IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> @@ -7531,7 +7531,7 @@ ixgbe_e_tag_insertion_en_dis(struct rte_eth_dev *dev,
>   			     struct rte_eth_l2_tunnel_conf *l2_tunnel,
>   			     bool en)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	int ret = 0;
>   	uint32_t vmtir, vmvir;
>   	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
> index b576a6f..32c0b38 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.h
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.h
> @@ -464,9 +464,6 @@ struct ixgbe_adapter {
>   	struct rte_timecounter      tx_tstamp_tc;
>   };
>   
> -#define IXGBE_DEV_TO_PCI(eth_dev) \
> -	RTE_DEV_TO_PCI((eth_dev)->device)
> -
>   #define IXGBE_DEV_PRIVATE_TO_HW(adapter)\
>   	(&((struct ixgbe_adapter *)adapter)->hw)
>   
> diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c
> index 6f30c42..a56b270 100644
> --- a/drivers/net/ixgbe/ixgbe_pf.c
> +++ b/drivers/net/ixgbe/ixgbe_pf.c
> @@ -61,7 +61,7 @@
>   static inline uint16_t
>   dev_num_vf(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = IXGBE_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	return pci_dev->max_vfs;
>   }
> diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.c b/drivers/net/ixgbe/rte_pmd_ixgbe.c
> index e8fc9a6..d6eae6c 100644
> --- a/drivers/net/ixgbe/rte_pmd_ixgbe.c
> +++ b/drivers/net/ixgbe/rte_pmd_ixgbe.c
> @@ -51,7 +51,7 @@ rte_pmd_ixgbe_set_vf_mac_addr(uint8_t port, uint16_t vf,
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -84,7 +84,7 @@ rte_pmd_ixgbe_ping_vf(uint8_t port, uint16_t vf)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -115,7 +115,7 @@ rte_pmd_ixgbe_set_vf_vlan_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -145,7 +145,7 @@ rte_pmd_ixgbe_set_vf_mac_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -174,7 +174,7 @@ rte_pmd_ixgbe_set_vf_vlan_insert(uint8_t port, uint16_t vf, uint16_t vlan_id)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -270,7 +270,7 @@ rte_pmd_ixgbe_set_vf_split_drop_en(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -306,7 +306,7 @@ rte_pmd_ixgbe_set_vf_vlan_stripq(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
>   	if (!is_ixgbe_supported(dev))
> @@ -354,7 +354,7 @@ rte_pmd_ixgbe_set_vf_rxmode(uint8_t port, uint16_t vf,
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -401,7 +401,7 @@ rte_pmd_ixgbe_set_vf_rx(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> @@ -452,7 +452,7 @@ rte_pmd_ixgbe_set_vf_tx(uint8_t port, uint16_t vf, uint8_t on)
>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
>   
>   	dev = &rte_eth_devices[port];
> -	pci_dev = IXGBE_DEV_TO_PCI(dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (!is_ixgbe_supported(dev))
>   		return -ENOTSUP;
> diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c
> index 436d25b..132c837 100644
> --- a/drivers/net/liquidio/lio_ethdev.c
> +++ b/drivers/net/liquidio/lio_ethdev.c
> @@ -1958,7 +1958,7 @@ lio_eth_dev_uninit(struct rte_eth_dev *eth_dev)
>   static int
>   lio_eth_dev_init(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pdev = RTE_DEV_TO_PCI(eth_dev->device);
> +	struct rte_pci_device *pdev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct lio_device *lio_dev = LIO_DEV(eth_dev);
>   
>   	PMD_INIT_FUNC_TRACE();
> diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
> index ec4419a..ec70f59 100644
> --- a/drivers/net/mlx4/mlx4.c
> +++ b/drivers/net/mlx4/mlx4.c
> @@ -4300,7 +4300,7 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
>   	unsigned int max;
>   	char ifname[IF_NAMESIZE];
>   
> -	info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (priv == NULL)
>   		return;
> diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
> index 3fd22cb..eadf452 100644
> --- a/drivers/net/mlx5/mlx5_ethdev.c
> +++ b/drivers/net/mlx5/mlx5_ethdev.c
> @@ -661,7 +661,7 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
>   	unsigned int max;
>   	char ifname[IF_NAMESIZE];
>   
> -	info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	priv_lock(priv);
>   	/* FIXME: we should ask the device for these values. */
> diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
> index 5c5cba1..7e286e9 100644
> --- a/drivers/net/nfp/nfp_net.c
> +++ b/drivers/net/nfp/nfp_net.c
> @@ -647,7 +647,7 @@ nfp_configure_rx_interrupt(struct rte_eth_dev *dev,
>   static int
>   nfp_net_start(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
>   	uint32_t new_ctrl, update = 0;
>   	struct nfp_net_hw *hw;
> @@ -772,7 +772,7 @@ nfp_net_close(struct rte_eth_dev *dev)
>   	PMD_INIT_LOG(DEBUG, "Close");
>   
>   	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	/*
>   	 * We assume that the DPDK application is stopping all the
> @@ -1081,7 +1081,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   
>   	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->max_rx_queues = (uint16_t)hw->max_rx_queues;
>   	dev_info->max_tx_queues = (uint16_t)hw->max_tx_queues;
>   	dev_info->min_rx_bufsize = ETHER_MIN_MTU;
> @@ -1201,7 +1201,7 @@ nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>   	int base = 0;
>   
>   	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (pci_dev->intr_handle.type != RTE_INTR_HANDLE_UIO)
>   		base = 1;
> @@ -1221,7 +1221,7 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   	int base = 0;
>   
>   	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (pci_dev->intr_handle.type != RTE_INTR_HANDLE_UIO)
>   		base = 1;
> @@ -1235,7 +1235,7 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
>   static void
>   nfp_net_dev_link_status_print(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_eth_link link;
>   
>   	memset(&link, 0, sizeof(link));
> @@ -1269,7 +1269,7 @@ nfp_net_irq_unmask(struct rte_eth_dev *dev)
>   	struct rte_pci_device *pci_dev;
>   
>   	hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> -	pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	if (hw->ctrl & NFP_NET_CFG_CTRL_MSIXAUTO) {
>   		/* If MSI-X auto-masking is used, clear the entry */
> @@ -2450,7 +2450,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
>   	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
>   		return 0;
>   
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	rte_eth_copy_pci_info(eth_dev, pci_dev);
>   	eth_dev->data->dev_flags |= RTE_ETH_DEV_DETACHABLE;
>   
> diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
> index 51624c7..49742ac 100644
> --- a/drivers/net/qede/qede_ethdev.c
> +++ b/drivers/net/qede/qede_ethdev.c
> @@ -946,7 +946,7 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev,
>   
>   	PMD_INIT_FUNC_TRACE(edev);
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	dev_info->min_rx_bufsize = (uint32_t)QEDE_MIN_RX_BUFF_SIZE;
>   	dev_info->max_rx_pktlen = (uint32_t)ETH_TX_MAX_NON_LSO_PKT_LEN;
>   	dev_info->rx_desc_lim = qede_rx_desc_lim;
> @@ -1103,7 +1103,7 @@ static void qede_poll_sp_sb_cb(void *param)
>   
>   static void qede_dev_close(struct rte_eth_dev *eth_dev)
>   {
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev);
>   	struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
>   	int rc;
> @@ -2163,7 +2163,7 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf)
>   	/* Extract key data structures */
>   	adapter = eth_dev->data->dev_private;
>   	edev = &adapter->edev;
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	pci_addr = pci_dev->addr;
>   
>   	PMD_INIT_FUNC_TRACE(edev);
> diff --git a/drivers/net/sfc/sfc.c b/drivers/net/sfc/sfc.c
> index 4e241b2..6cecfc0 100644
> --- a/drivers/net/sfc/sfc.c
> +++ b/drivers/net/sfc/sfc.c
> @@ -465,7 +465,7 @@ static int
>   sfc_mem_bar_init(struct sfc_adapter *sa)
>   {
>   	struct rte_eth_dev *eth_dev = sa->eth_dev;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	efsys_bar_t *ebp = &sa->mem_bar;
>   	unsigned int i;
>   	struct rte_mem_resource *res;
> @@ -666,7 +666,7 @@ sfc_detach(struct sfc_adapter *sa)
>   int
>   sfc_probe(struct sfc_adapter *sa)
>   {
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   	efx_nic_t *enp;
>   	int rc;
>   
> diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h
> index fad0ce0..7927678 100644
> --- a/drivers/net/sfc/sfc.h
> +++ b/drivers/net/sfc/sfc.h
> @@ -46,9 +46,6 @@
>   extern "C" {
>   #endif
>   
> -#define SFC_DEV_TO_PCI(eth_dev) \
> -	RTE_DEV_TO_PCI((eth_dev)->device)
> -
>   #if EFSYS_OPT_RX_SCALE
>   /** RSS key length (bytes) */
>   #define SFC_RSS_KEY_SIZE	40
> diff --git a/drivers/net/sfc/sfc_debug.h b/drivers/net/sfc/sfc_debug.h
> index c0b4867..f4fe044 100644
> --- a/drivers/net/sfc/sfc_debug.h
> +++ b/drivers/net/sfc/sfc_debug.h
> @@ -48,7 +48,8 @@
>   #define sfc_panic(sa, fmt, args...) \
>   	do {								\
>   		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
> -		const struct rte_pci_device *_pci_dev = SFC_DEV_TO_PCI(_dev); \
> +		const struct rte_pci_device *_pci_dev =			\
> +			RTE_ETH_DEV_TO_PCI(_dev);			\
>   									\
>   		rte_panic("sfc " PCI_PRI_FMT " #%" PRIu8 ": " fmt "\n",	\
>   			  _pci_dev->addr.domain, _pci_dev->addr.bus,	\
> diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
> index 4c9335f..d5583ec 100644
> --- a/drivers/net/sfc/sfc_ethdev.c
> +++ b/drivers/net/sfc/sfc_ethdev.c
> @@ -107,7 +107,7 @@ sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   
>   	sfc_log_init(sa, "entry");
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->max_rx_pktlen = EFX_MAC_PDU_MAX;
>   
>   	/* Autonegotiation may be disabled */
> @@ -1486,7 +1486,7 @@ static int
>   sfc_eth_dev_init(struct rte_eth_dev *dev)
>   {
>   	struct sfc_adapter *sa = dev->data->dev_private;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	int rc;
>   	const efx_nic_cfg_t *encp;
>   	const struct ether_addr *from;
> diff --git a/drivers/net/sfc/sfc_intr.c b/drivers/net/sfc/sfc_intr.c
> index 7eb4b86..dfa453a 100644
> --- a/drivers/net/sfc/sfc_intr.c
> +++ b/drivers/net/sfc/sfc_intr.c
> @@ -77,7 +77,7 @@ sfc_intr_line_handler(void *cb_arg)
>   	boolean_t fatal;
>   	uint32_t qmask;
>   	unsigned int lsc_seq = sa->port.lsc_seq;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   
>   	sfc_log_init(sa, "entry");
>   
> @@ -122,7 +122,7 @@ sfc_intr_message_handler(void *cb_arg)
>   	efx_nic_t *enp = sa->nic;
>   	boolean_t fatal;
>   	unsigned int lsc_seq = sa->port.lsc_seq;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   
>   	sfc_log_init(sa, "entry");
>   
> @@ -177,7 +177,7 @@ sfc_intr_start(struct sfc_adapter *sa)
>   	if (rc != 0)
>   		goto fail_intr_init;
>   
> -	pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   	intr_handle = &pci_dev->intr_handle;
>   
>   	if (intr->handler != NULL) {
> @@ -232,7 +232,7 @@ void
>   sfc_intr_stop(struct sfc_adapter *sa)
>   {
>   	struct sfc_intr *intr = &sa->intr;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   
>   	sfc_log_init(sa, "entry");
>   
> @@ -306,7 +306,7 @@ int
>   sfc_intr_attach(struct sfc_adapter *sa)
>   {
>   	struct sfc_intr *intr = &sa->intr;
> -	struct rte_pci_device *pci_dev = SFC_DEV_TO_PCI(sa->eth_dev);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(sa->eth_dev);
>   
>   	sfc_log_init(sa, "entry");
>   
> diff --git a/drivers/net/sfc/sfc_log.h b/drivers/net/sfc/sfc_log.h
> index 8a5e230..d0f8921 100644
> --- a/drivers/net/sfc/sfc_log.h
> +++ b/drivers/net/sfc/sfc_log.h
> @@ -36,7 +36,8 @@
>   #define SFC_LOG(sa, level, ...) \
>   	do {								\
>   		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
> -		const struct rte_pci_device *_pci_dev = SFC_DEV_TO_PCI(_dev); \
> +		const struct rte_pci_device *_pci_dev =			\
> +			RTE_ETH_DEV_TO_PCI(_dev);			\
>   									\
>   		RTE_LOG(level, PMD,					\
>   			RTE_FMT("sfc_efx " PCI_PRI_FMT " #%" PRIu8 ": "	\
> diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
> index 2ecd6f2..122b657 100644
> --- a/drivers/net/sfc/sfc_rx.c
> +++ b/drivers/net/sfc/sfc_rx.c
> @@ -942,7 +942,7 @@ sfc_rx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
>   	info.mem_bar = sa->mem_bar.esb_base;
>   
>   	rc = sa->dp_rx->qcreate(sa->eth_dev->data->port_id, sw_index,
> -				&SFC_DEV_TO_PCI(sa->eth_dev)->addr,
> +				&RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr,
>   				socket_id, &info, &rxq->dp);
>   	if (rc != 0)
>   		goto fail_dp_rx_qcreate;
> diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c
> index b8581d1..d75fb84 100644
> --- a/drivers/net/sfc/sfc_tx.c
> +++ b/drivers/net/sfc/sfc_tx.c
> @@ -185,7 +185,7 @@ sfc_tx_qinit(struct sfc_adapter *sa, unsigned int sw_index,
>   	info.mem_bar = sa->mem_bar.esb_base;
>   
>   	rc = sa->dp_tx->qcreate(sa->eth_dev->data->port_id, sw_index,
> -				&SFC_DEV_TO_PCI(sa->eth_dev)->addr,
> +				&RTE_ETH_DEV_TO_PCI(sa->eth_dev)->addr,
>   				socket_id, &info, &txq->dp);
>   	if (rc != 0)
>   		goto fail_dp_tx_qinit;
> diff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c
> index 54212b7..c70e9f3 100644
> --- a/drivers/net/szedata2/rte_eth_szedata2.c
> +++ b/drivers/net/szedata2/rte_eth_szedata2.c
> @@ -1032,7 +1032,7 @@ eth_dev_info(struct rte_eth_dev *dev,
>   		struct rte_eth_dev_info *dev_info)
>   {
>   	struct pmd_internals *internals = dev->data->dev_private;
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	dev_info->if_index = 0;
>   	dev_info->max_mac_addrs = 1;
>   	dev_info->max_rx_pktlen = (uint32_t)-1;
> @@ -1431,7 +1431,7 @@ rte_szedata2_eth_dev_init(struct rte_eth_dev *dev)
>   	struct szedata *szedata_temp;
>   	int ret;
>   	uint32_t szedata2_index;
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_pci_addr *pci_addr = &pci_dev->addr;
>   	struct rte_mem_resource *pci_rsc =
>   		&pci_dev->mem_resource[PCI_RESOURCE_NUMBER];
> @@ -1554,7 +1554,7 @@ rte_szedata2_eth_dev_init(struct rte_eth_dev *dev)
>   static int
>   rte_szedata2_eth_dev_uninit(struct rte_eth_dev *dev)
>   {
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   	struct rte_pci_addr *pci_addr = &pci_dev->addr;
>   
>   	rte_free(dev->data->mac_addrs);
> diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c
> index ddcfaba..796701b 100644
> --- a/drivers/net/thunderx/nicvf_ethdev.c
> +++ b/drivers/net/thunderx/nicvf_ethdev.c
> @@ -1373,11 +1373,11 @@ static void
>   nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   {
>   	struct nicvf *nic = nicvf_pmd_priv(dev);
> -	struct rte_pci_device *pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	PMD_INIT_FUNC_TRACE();
>   
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	dev_info->min_rx_bufsize = ETHER_MIN_MTU;
>   	dev_info->max_rx_pktlen = NIC_HW_MAX_FRS;
> @@ -2024,7 +2024,7 @@ nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)
>   		}
>   	}
>   
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   	rte_eth_copy_pci_info(eth_dev, pci_dev);
>   
>   	nic->device_id = pci_dev->id.device_id;
> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
> index 763fef5..e58b475 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -1355,7 +1355,7 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features)
>   		return -1;
>   
>   	if (!hw->virtio_user_dev) {
> -		pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +		pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   		rte_eth_copy_pci_info(eth_dev, pci_dev);
>   	}
>   
> @@ -1537,8 +1537,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
>   
>   	if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
>   		if (!hw->virtio_user_dev) {
> -			ret = virtio_remap_pci(RTE_DEV_TO_PCI(eth_dev->device),
> -					       hw);
> +			ret = virtio_remap_pci(RTE_ETH_DEV_TO_PCI(eth_dev), hw);
>   			if (ret)
>   				return ret;
>   		}
> @@ -1567,7 +1566,7 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
>   	 * virtio_user_eth_dev_alloc() before eth_virtio_dev_init() is called.
>   	 */
>   	if (!hw->virtio_user_dev) {
> -		ret = vtpci_init(RTE_DEV_TO_PCI(eth_dev->device), hw);
> +		ret = vtpci_init(RTE_ETH_DEV_TO_PCI(eth_dev), hw);
>   		if (ret)
>   			return ret;
>   	}
> @@ -1609,7 +1608,7 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev)
>   						virtio_interrupt_handler,
>   						eth_dev);
>   	if (eth_dev->device)
> -		rte_pci_unmap_device(RTE_DEV_TO_PCI(eth_dev->device));
> +		rte_pci_unmap_device(RTE_ETH_DEV_TO_PCI(eth_dev));
>   
>   	PMD_INIT_LOG(DEBUG, "dev_uninit completed");
>   
> @@ -1894,7 +1893,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>   
>   	dev_info->speed_capa = ETH_LINK_SPEED_10G; /* fake value */
>   
> -	dev_info->pci_dev = dev->device ? RTE_DEV_TO_PCI(dev->device) : NULL;
> +	dev_info->pci_dev = dev->device ? RTE_ETH_DEV_TO_PCI(dev) : NULL;
>   	dev_info->max_rx_queues =
>   		RTE_MIN(hw->max_queue_pairs, VIRTIO_MAX_RX_QUEUES);
>   	dev_info->max_tx_queues =
> diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> index 98252bb..17b471f 100644
> --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
> +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> @@ -259,7 +259,7 @@ eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev)
>   	eth_dev->rx_pkt_burst = &vmxnet3_recv_pkts;
>   	eth_dev->tx_pkt_burst = &vmxnet3_xmit_pkts;
>   	eth_dev->tx_pkt_prepare = vmxnet3_prep_pkts;
> -	pci_dev = RTE_DEV_TO_PCI(eth_dev->device);
> +	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>   
>   	/*
>   	 * for secondary processes, we don't initialize any further as primary
> @@ -868,7 +868,7 @@ static void
>   vmxnet3_dev_info_get(struct rte_eth_dev *dev,
>   		     struct rte_eth_dev_info *dev_info)
>   {
> -	dev_info->pci_dev = RTE_DEV_TO_PCI(dev->device);
> +	dev_info->pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>   
>   	dev_info->max_rx_queues = VMXNET3_MAX_RX_QUEUES;
>   	dev_info->max_tx_queues = VMXNET3_MAX_TX_QUEUES;
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index 0f38b45..f23d116 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -1048,6 +1048,8 @@ TAILQ_HEAD(rte_eth_dev_cb_list, rte_eth_dev_callback);
>   	} \
>   } while (0)
>   
> +#define RTE_ETH_DEV_TO_PCI(eth_dev)	RTE_DEV_TO_PCI((eth_dev)->device)
> +
>   /**
>    * l2 tunnel configuration.
>    */

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [dpdk-dev] [PATCH v3] drivers/net: add generic ethdev macro to get PCI device
  2017-05-15 10:54     ` Andrew Rybchenko
@ 2017-05-16 16:25       ` Ferruh Yigit
  0 siblings, 0 replies; 9+ messages in thread
From: Ferruh Yigit @ 2017-05-16 16:25 UTC (permalink / raw)
  To: Andrew Rybchenko, Shepard Siegel, Ed Czeck, John Miller,
	Allain Legacy, Matt Peters, Harish Patil, Rasesh Mody,
	Stephen Hurd, Ajit Khaparde, Declan Doherty, Rahul Lakkireddy,
	Wenzhuo Lu, Marcin Wojtas, Michal Krawczyk, Guy Tzalik,
	Evgeny Schemeilin, John Daley, Nelson Escobar, Jing Chen,
	Helin Zhang, Jingjing Wu, Konstantin Ananyev, Shijith Thotton,
	Srisivasubramanian Srinivasan, Adrien Mazarguil,
	Nelio Laranjeiro, Alejandro Lucero, Matej Vido, Jerin Jacob,
	Maciej Czekaj, Yuanhan Liu, Maxime Coquelin, Shrikrishna Khare,
	Thomas Monjalon
  Cc: dev

On 5/15/2017 11:54 AM, Andrew Rybchenko wrote:
> On 05/15/2017 01:24 PM, Ferruh Yigit wrote:
>> Instead of many PMD define their own macro, define a generic one in
>> ethdev and use that in PMDs.
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> Acked-by: Allain Legacy <allain.legacy@windriver.com>
>> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
> 
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>

Applied to dpdk-next-net/master, thanks.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-05-16 16:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-04 13:08 [dpdk-dev] [PATCH] drivers/net: add generic ethdev macro to get PCI device Ferruh Yigit
2017-05-04 13:34 ` Legacy, Allain
2017-05-05  0:44 ` Lu, Wenzhuo
2017-05-05  9:44   ` Ferruh Yigit
2017-05-05  9:54 ` [dpdk-dev] [PATCH v2] " Ferruh Yigit
2017-05-05 10:57   ` Andrew Rybchenko
2017-05-15 10:24   ` [dpdk-dev] [PATCH v3] " Ferruh Yigit
2017-05-15 10:54     ` Andrew Rybchenko
2017-05-16 16:25       ` Ferruh Yigit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).