[dpdk-dev] [PATCH v5 00/20] Decouple ethdev from PCI device
Jan Blunck
jblunck at infradead.org
Fri Dec 23 16:57:51 CET 2016
This repost addresses the review comments of Thomas Monjalon to completely
remove the ethdev helper to further decrease the coupling of the ethdev and
the eal layers. This required me to squash together all patches using the
rte_eth_dev_to_pci() helper into "Decouple from PCI device" patch. As
discussed privately I'll keep the PCI information in rte_eth_dev_info
untouched.
Changes between v5 and v4:
- Removed ethdev helper rte_eth_dev_to_pci()
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 (14):
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: Decouple interrupt handling from PCI device
ethdev: Move dev_info filling of PCI information into drivers
ethdev: Decouple from 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/e1000_ethdev.h | 2 +
drivers/net/e1000/em_ethdev.c | 51 ++++++-----
drivers/net/e1000/igb_ethdev.c | 101 +++++++++++---------
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.h | 3 +
drivers/net/i40e/i40e_ethdev_vf.c | 59 +++++++-----
drivers/net/ixgbe/ixgbe_ethdev.c | 122 ++++++++++++++-----------
drivers/net/ixgbe/ixgbe_ethdev.h | 3 +
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 | 44 ++++-----
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/bsdapp/eal/eal_interrupts.c | 24 +++--
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 | 3 +-
46 files changed, 594 insertions(+), 403 deletions(-)
--
2.7.4
More information about the dev
mailing list