Device detach in librte_ether is rough right now. - Device hotplug capability is not properly checked - Device state should be set after a successful detach - MLX drivers are lacking the relevant flag - And this flag should actually be removed, thus occuring an API change for v17.11. An announce follows.
Without this series on an MLX4 port: testpmd> port close 0 Closing ports... Port 0 is now not stopped Done testpmd> port stop 0 Stopping ports... Checking link statuses... Done testpmd> port close 0 Closing ports... Done testpmd> port detach 0 Detaching a port... testpmd> show port info 0 Segmentation fault (core dumped) With this series: testpmd> port stop 0 Stopping ports... Checking link statuses... Done testpmd> port detach 0 Detaching a port... Please close port first testpmd> port close 0 Closing ports... Done testpmd> port detach 0 Detaching a port... Port '00:03.0' is detached. Now total ports is 0 Done testpmd> show port info 0 Invalid port 0 Valid port range is [0] Gaetan Rivet (6): ethdev: fix device state on detach ethdev: properly check detach capability net/mlx4: advertize the detach capability net/mlx5: advertize the detach capability app/testpmd: let the user know device detach failed doc: announce ethdev API change for detach flag app/test-pmd/testpmd.c | 9 ++++++--- core | Bin 0 -> 114331648 bytes doc/guides/rel_notes/deprecation.rst | 6 ++++++ drivers/net/mlx4/mlx4.c | 1 + drivers/net/mlx5/mlx5.c | 1 + lib/librte_ether/rte_ethdev.c | 11 +---------- 6 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 core -- 2.1.4