During EAL cleanup stage, all bus devices are cleaned up properly. Based on this, there is no need to do extra device close process, which may call the dev ops '*dev->dev_ops->dev_close' twice.
If this dev ops for ntb was called twice, the interrupt handle for EAL will be disabled twice and will lead to error for the seconde time. Like this: "EAL: Error disabling MSI-X interrupts for fd xx" Thus, this patch just remove the redundant logic for device close. Ports will be closed at rte_eal_cleanup() in the main loop. Fixes: 1cab1a40ea9b ("bus: cleanup devices on shutdown") Cc: sta...@dpdk.org Signed-off-by: Junfeng Guo <junfeng....@intel.com> --- examples/ntb/ntb_fwd.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/examples/ntb/ntb_fwd.c b/examples/ntb/ntb_fwd.c index 585aad9d70..3385b4b73c 100644 --- a/examples/ntb/ntb_fwd.c +++ b/examples/ntb/ntb_fwd.c @@ -177,13 +177,11 @@ cmd_quit_parsed(__rte_unused void *parsed_result, rte_eal_mp_wait_lcore(); in_test = 0; - /* Stop traffic and Close port. */ + /* Stop traffic only. */ rte_rawdev_stop(dev_id); - rte_rawdev_close(dev_id); - if (eth_port_id < RTE_MAX_ETHPORTS && fwd_mode == IOFWD) { + if (eth_port_id < RTE_MAX_ETHPORTS && fwd_mode == IOFWD) rte_eth_dev_stop(eth_port_id); - rte_eth_dev_close(eth_port_id); - } + /* Ports will be closed at rte_eal_cleanup() in the main loop. */ cmdline_quit(cl); } -- 2.34.1