[dpdk-dev] drivers/net: add generic ethdev macro to get PCI device

Message ID 20170504130826.60701-1-ferruh.yigit@intel.com (mailing list archive)
State Superseded, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Ferruh Yigit May 4, 2017, 1:08 p.m. UTC
  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(-)
  

Comments

Allain Legacy May 4, 2017, 1:34 p.m. UTC | #1
> -----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>
  
Wenzhuo Lu May 5, 2017, 12:44 a.m. UTC | #2
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.
  
Ferruh Yigit May 5, 2017, 9:44 a.m. UTC | #3
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
  
Andrew Rybchenko May 5, 2017, 10:57 a.m. UTC | #4
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.
>    */
  

Patch

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.
  */