This is a partial merge of Stephens and my patches to make the rte_eth_dev independent of the rte_pci_device.
Changes between v4 and v3: - broken out refactorings of drivers similar to Stephens example - use inline function instead of macro - fix build issues with bnx2x and mlx4/5 Changes between v3 and v2: - converted PCI device users I've missed in previous version Jan Blunck (17): eal: define container_of macro eal: Allow passing const rte_intr_handle virtio: Don't fill dev_info->driver_name virtio: Add vtpci_intr_handle() helper to get rte_intr_handle virtio: Don't depend on struct rte_eth_dev's pci_dev bnx2x: localize mapping from eth_dev to pci fm10k: localize mapping from eth_dev to pci qede: localize mapping of eth_dev to pci szedata2: localize handling of pci resources nfp: localize rte_pci_device handling vmxnet3: use eth_dev->data->drv_name instead of pci_drv name ethdev: Helper to map to struct rte_pci_device drivers: Replace per-PMD macros with rte_eth_dev_to_pci() helper drivers: Use rte_eth_dev_to_pci() helper ethdev: Move filling of rte_eth_dev_info->pci_dev to dev_infos_get() ethdev: Decouple interrupt handling from PCI device ethdev: Decouple struct rte_eth_dev from struct rte_pci_device Stephen Hemminger (6): rte_device: make driver pointer const pmd: remove useless reset of dev_info->dev_pci e1000: localize mapping from eth_dev to pci ixgbe: localize mapping from eth_dev to pci_device i40e: localize mapping of eth_dev to pci broadcom: localize mapping from eth_dev to pci app/test/virtual_pmd.c | 5 +- drivers/net/af_packet/rte_eth_af_packet.c | 1 - drivers/net/bnx2x/bnx2x_ethdev.c | 15 +-- drivers/net/bnxt/bnxt_ethdev.c | 24 +++-- drivers/net/bnxt/bnxt_ring.c | 16 ++-- drivers/net/bonding/rte_eth_bond_args.c | 12 ++- drivers/net/bonding/rte_eth_bond_pmd.c | 1 - drivers/net/cxgbe/cxgbe_ethdev.c | 4 +- drivers/net/cxgbe/cxgbe_main.c | 4 +- drivers/net/e1000/em_ethdev.c | 50 +++++----- drivers/net/e1000/igb_ethdev.c | 100 +++++++++++--------- drivers/net/e1000/igb_pf.c | 4 +- drivers/net/ena/ena_ethdev.c | 4 +- drivers/net/enic/enic_ethdev.c | 3 +- drivers/net/fm10k/fm10k_ethdev.c | 84 +++++++++-------- drivers/net/i40e/i40e_ethdev.c | 78 ++++++++++------ drivers/net/i40e/i40e_ethdev_vf.c | 59 +++++++----- drivers/net/ixgbe/ixgbe_ethdev.c | 122 ++++++++++++++----------- drivers/net/ixgbe/ixgbe_pf.c | 4 +- drivers/net/mlx4/mlx4.c | 4 +- drivers/net/mlx5/mlx5.c | 2 +- drivers/net/mlx5/mlx5_ethdev.c | 2 + drivers/net/nfp/nfp_net.c | 19 ++-- drivers/net/null/rte_eth_null.c | 1 - drivers/net/pcap/rte_eth_pcap.c | 1 - drivers/net/qede/qede_ethdev.c | 19 ++-- drivers/net/ring/rte_eth_ring.c | 1 - drivers/net/szedata2/rte_eth_szedata2.c | 73 +++++++++------ drivers/net/szedata2/rte_eth_szedata2.h | 58 +++++------- drivers/net/thunderx/nicvf_ethdev.c | 7 +- drivers/net/virtio/virtio_ethdev.c | 41 ++++----- drivers/net/virtio/virtio_pci.h | 6 ++ drivers/net/virtio/virtio_user_ethdev.c | 1 - drivers/net/vmxnet3/vmxnet3_ethdev.c | 8 +- drivers/net/xenvirt/rte_eth_xenvirt.c | 1 - lib/librte_eal/common/include/rte_common.h | 20 ++++ lib/librte_eal/common/include/rte_dev.h | 2 +- lib/librte_eal/common/include/rte_interrupts.h | 8 +- lib/librte_eal/common/include/rte_pci.h | 6 ++ lib/librte_eal/linuxapp/eal/eal_interrupts.c | 62 +++++++++---- lib/librte_ether/rte_ethdev.c | 25 +++-- lib/librte_ether/rte_ethdev.h | 13 ++- 42 files changed, 577 insertions(+), 393 deletions(-) -- 2.7.4