This is the end of a process started two years ago, to have a close which reliably releases an ethdev port without the need of removing the device (which can have more ports).
Unfortunately, some drivers might be broken because did not follow the migration recommendations. We cannot wait more, this should be merged before the 20.11-rc1 release. Steve Yang (1): net/iavf: release port upon close Thomas Monjalon (18): ethdev: reset device and interrupt pointers on release ethdev: allow drivers to return error on close net/af_packet: release port upon close net/atlantic: release port upon close net/axgbe: release port upon close net/bonding: release port upon close net/failsafe: release port upon close net/mlx4: release port upon close net/null: release port upon close net/octeontx: release port upon close net/pcap: release port upon close net/ring: release port upon close net/softnic: release port upon close ethdev: remove old close behaviour drivers/net: accept removing device without any port drivers/net: remove redundant MAC addresses freeing app/testpmd: reset port status on close notification app/testpmd: align behaviour of multi-port detach Yunjian Wang (1): net/tap: release port upon close MAINTAINERS | 22 ++++---- app/test-pmd/config.c | 7 ++- app/test-pmd/testpmd.c | 56 +++++++------------ app/test/virtual_pmd.c | 6 ++- doc/guides/rel_notes/deprecation.rst | 6 --- drivers/net/af_packet/rte_eth_af_packet.c | 58 ++++++++++---------- drivers/net/af_xdp/rte_eth_af_xdp.c | 6 +-- drivers/net/ark/ark_ethdev.c | 11 ++-- drivers/net/atlantic/atl_ethdev.c | 66 +++++++++-------------- drivers/net/avp/avp_ethdev.c | 7 ++- drivers/net/axgbe/axgbe_ethdev.c | 14 ++--- drivers/net/bnx2x/bnx2x_ethdev.c | 4 +- drivers/net/bnxt/bnxt_ethdev.c | 9 ++-- drivers/net/bnxt/bnxt_reps.c | 7 +-- drivers/net/bnxt/bnxt_reps.h | 2 +- drivers/net/bonding/eth_bond_private.h | 2 +- drivers/net/bonding/rte_eth_bond_pmd.c | 37 +++++++------ drivers/net/cxgbe/cxgbe_ethdev.c | 6 ++- drivers/net/cxgbe/cxgbe_pfvf.h | 2 +- drivers/net/dpaa/dpaa_ethdev.c | 4 +- drivers/net/dpaa2/dpaa2_ethdev.c | 6 ++- drivers/net/e1000/em_ethdev.c | 11 ++-- drivers/net/e1000/igb_ethdev.c | 22 +++----- drivers/net/ena/ena_ethdev.c | 12 ++--- drivers/net/enetc/enetc_ethdev.c | 4 +- drivers/net/enic/enic_ethdev.c | 6 +-- drivers/net/failsafe/failsafe.c | 24 ++------- drivers/net/failsafe/failsafe_ops.c | 60 +++++++++++++-------- drivers/net/failsafe/failsafe_private.h | 1 + drivers/net/fm10k/fm10k_ethdev.c | 9 ++-- drivers/net/hinic/hinic_pmd_ethdev.c | 15 ++---- drivers/net/hns3/hns3_ethdev.c | 11 ++-- drivers/net/hns3/hns3_ethdev_vf.c | 11 ++-- drivers/net/i40e/i40e_ethdev.c | 10 ++-- drivers/net/i40e/i40e_ethdev_vf.c | 10 ++-- drivers/net/iavf/iavf_ethdev.c | 44 ++++++++------- drivers/net/ice/ice_dcf_ethdev.c | 8 +-- drivers/net/ice/ice_ethdev.c | 14 ++--- drivers/net/igc/igc_ethdev.c | 11 ++-- drivers/net/ionic/ionic_ethdev.c | 10 ++-- drivers/net/ipn3ke/ipn3ke_ethdev.c | 6 +-- drivers/net/ipn3ke/ipn3ke_representor.c | 4 +- drivers/net/ixgbe/ixgbe_ethdev.c | 21 +++----- drivers/net/kni/rte_eth_kni.c | 22 ++++---- drivers/net/liquidio/lio_ethdev.c | 4 +- drivers/net/memif/rte_eth_memif.c | 7 ++- drivers/net/mlx4/mlx4.c | 5 +- drivers/net/mlx5/linux/mlx5_os.c | 2 - drivers/net/mlx5/mlx5.c | 9 ++-- drivers/net/mlx5/mlx5.h | 2 +- drivers/net/mvneta/mvneta_ethdev.c | 7 ++- drivers/net/mvpp2/mrvl_ethdev.c | 7 ++- drivers/net/netvsc/hn_ethdev.c | 9 ++-- drivers/net/nfb/nfb_ethdev.c | 8 +-- drivers/net/nfp/nfp_net.c | 8 ++- drivers/net/null/rte_eth_null.c | 23 +++++--- drivers/net/octeontx/octeontx_ethdev.c | 14 ++--- drivers/net/octeontx2/otx2_ethdev.c | 8 +-- drivers/net/pcap/rte_eth_pcap.c | 31 ++++++----- drivers/net/pfe/pfe_ethdev.c | 14 ++--- drivers/net/qede/qede_ethdev.c | 4 +- drivers/net/ring/rte_eth_ring.c | 50 ++++++++++------- drivers/net/sfc/sfc_ethdev.c | 8 +-- drivers/net/softnic/rte_eth_softnic.c | 64 +++++++++++----------- drivers/net/szedata2/rte_eth_szedata2.c | 20 +++---- drivers/net/tap/rte_eth_tap.c | 48 ++++++++++------- drivers/net/thunderx/nicvf_ethdev.c | 4 +- drivers/net/vhost/rte_eth_vhost.c | 8 +-- drivers/net/virtio/virtio_ethdev.c | 11 ++-- drivers/net/vmxnet3/vmxnet3_ethdev.c | 9 ++-- lib/librte_ethdev/rte_ethdev.c | 19 ++----- lib/librte_ethdev/rte_ethdev.h | 8 +-- lib/librte_ethdev/rte_ethdev_core.h | 2 +- lib/librte_ethdev/rte_ethdev_pci.h | 14 +---- 74 files changed, 503 insertions(+), 608 deletions(-) -- 2.28.0