This series is removing the PCI specific struct eth_driver from rte_ether. The PCI drivers are changed to use the newly introduced header-only helpers instead. Although the virtual drivers did not make use of the ethdev's driver field they are converted to use the VDEV specific allocation helpers. The motivation for this change is to properly embed a reference to the generic rte_device in the ethdev.
The series is based on: * http://dpdk.org/dev/patchwork/patch/20416/ * http://dpdk.org/dev/patchwork/patch/20417/ * my "Rework vdev probing to use rte_bus infrastructure" series * http://dpdk.org/dev/patchwork/patch/21058/ If requested I can push a tree with all dependent patches. Jan Blunck (38): eal: add name field to generic device eal: parse "driver" device argument before probing drivers net/nfp: use library function for DMA zone reserve net/vmxnet3: use library function for DMA zone reserve ether: add allocation helper for virtual drivers net/tap: use ethdev allocation helper for virtual devices net/vhost: use ethdev allocation helper for virtual devices net/virtio: use ethdev allocation helper for virtual devices net/af_packet: use ethdev allocation helper for virtual devices app/test: don't short-circuit null device creation net/null: internalize eth_dev_null_create() net/null: use ethdev allocation helper for virtual devices net/bonding: make bonding API call through EAL on create/free net/bonding: use ethdev allocation helper for virtual devices ethdev: add PCI driver helpers net/virtio: Don't use eth_driver net/bnx2x: Don't use eth_driver net/bnxt: Don't use eth_driver net/cxgbe: Don't use eth_driver net/em: Don't use eth_driver net/igb: Don't use eth_driver net/ena: Don't use eth_driver net/enic: Don't use eth_driver net/fm10k: Don't use eth_driver net/i40e: Don't use eth_driver net/i40evf: Don't use eth_driver net/ixgbe: Don't use eth_driver net/mlx: Don't reference eth_driver net/nfp: Don't use eth_driver net/qede: Don't use eth_driver net/sfc: Don't use eth_driver net/szedata2: Don't use eth_driver net/thunderx: Don't use eth_driver net/vmxnet3: Don't use eth_driver ethdev: remove unused ethdev PCI probe/remove ethdev: remove unused ethdev driver ethdev: remove PCI specific helper from generic ethdev header ethdev: don't include PCI header drivers/net/af_packet/rte_eth_af_packet.c | 42 +++---- drivers/net/bnx2x/bnx2x_ethdev.c | 64 ++++++---- drivers/net/bnxt/bnxt_ethdev.c | 36 ++++-- drivers/net/bonding/rte_eth_bond_api.c | 171 ++++---------------------- drivers/net/bonding/rte_eth_bond_args.c | 2 +- drivers/net/bonding/rte_eth_bond_pmd.c | 160 +++++++++++++++++++++++-- drivers/net/cxgbe/cxgbe_ethdev.c | 29 +++-- drivers/net/cxgbe/cxgbe_main.c | 2 +- drivers/net/cxgbe/sge.c | 6 +- drivers/net/e1000/em_ethdev.c | 30 +++-- drivers/net/e1000/igb_ethdev.c | 60 ++++++---- drivers/net/ena/ena_ethdev.c | 29 +++-- drivers/net/enic/enic_ethdev.c | 29 +++-- drivers/net/fm10k/fm10k_ethdev.c | 30 +++-- drivers/net/i40e/i40e_ethdev.c | 36 +++--- drivers/net/i40e/i40e_ethdev_vf.c | 31 +++-- drivers/net/i40e/i40e_fdir.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.c | 66 +++++++---- drivers/net/mlx4/mlx4.c | 17 ++- drivers/net/mlx5/mlx5.c | 19 ++- drivers/net/nfp/nfp_net.c | 59 ++++----- drivers/net/null/Makefile | 7 +- drivers/net/null/rte_eth_null.c | 55 +++------ drivers/net/null/rte_eth_null.h | 40 ------- drivers/net/null/rte_pmd_null_version.map | 7 -- drivers/net/qede/qede_ethdev.c | 60 ++++++---- drivers/net/qede/qede_ethdev.h | 1 + drivers/net/ring/rte_eth_ring.c | 1 - drivers/net/sfc/sfc_ethdev.c | 34 ++++-- drivers/net/szedata2/rte_eth_szedata2.c | 29 +++-- drivers/net/tap/rte_eth_tap.c | 37 ++---- drivers/net/thunderx/nicvf_ethdev.c | 29 +++-- drivers/net/vhost/rte_eth_vhost.c | 54 ++++----- drivers/net/virtio/virtio_ethdev.c | 34 ++++-- drivers/net/virtio/virtio_user_ethdev.c | 20 +--- drivers/net/vmxnet3/vmxnet3_ethdev.c | 30 +++-- drivers/net/vmxnet3/vmxnet3_rxtx.c | 30 +---- lib/librte_eal/bsdapp/eal/eal_pci.c | 3 + lib/librte_eal/common/eal_common_dev.c | 3 + lib/librte_eal/common/eal_common_vdev.c | 50 +++++++- lib/librte_eal/common/include/rte_dev.h | 1 + lib/librte_eal/common/include/rte_pci.h | 1 + lib/librte_eal/linuxapp/eal/eal_pci.c | 3 + lib/librte_ether/Makefile | 2 + lib/librte_ether/rte_ethdev.c | 117 ------------------ lib/librte_ether/rte_ethdev.h | 105 +--------------- lib/librte_ether/rte_ethdev_pci.h | 191 ++++++++++++++++++++++++++++++ lib/librte_ether/rte_ethdev_vdev.h | 84 +++++++++++++ lib/librte_ether/rte_ether_version.map | 4 - test/test/test_link_bonding_rssconf.c | 4 +- 50 files changed, 1065 insertions(+), 891 deletions(-) delete mode 100644 drivers/net/null/rte_eth_null.h create mode 100644 lib/librte_ether/rte_ethdev_pci.h create mode 100644 lib/librte_ether/rte_ethdev_vdev.h -- 2.7.4