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

Message ID 20170515102404.66997-1-ferruh.yigit@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

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

Commit Message

Ferruh Yigit May 15, 2017, 10:24 a.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>
Acked-by: Allain Legacy <allain.legacy@windriver.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
---

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

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

Comments

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

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

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

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

Patch

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