From: Huisong Li <lihuis...@huawei.com> Currently, ethtool directly ends the process after 'quit' cmd. In this case, software resources are not released and hardware resources of the device are not uninstalled.
This patch adds closing port operation to release resources. Fixes: bda68ab9d1e7 ("examples/ethtool: add user-space ethtool sample application") Cc: sta...@dpdk.org Signed-off-by: Huisong Li <lihuis...@huawei.com> Signed-off-by: Min Hu (Connor) <humi...@huawei.com> --- examples/ethtool/ethtool-app/main.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/examples/ethtool/ethtool-app/main.c b/examples/ethtool/ethtool-app/main.c index 21ed85c..9ac0a44 100644 --- a/examples/ethtool/ethtool-app/main.c +++ b/examples/ethtool/ethtool-app/main.c @@ -256,6 +256,22 @@ static int worker_main(__rte_unused void *ptr_data) return 0; } +static void close_ports(void) +{ + uint16_t portid; + int ret; + + for (portid = 0; portid < app_cfg.cnt_ports; portid++) { + printf("Closing port %d...", portid); + ret = rte_eth_dev_stop(portid); + if (ret != 0) + rte_exit(EXIT_FAILURE, "rte_eth_dev_stop: err=%s, port=%u\n", + strerror(-ret), portid); + rte_eth_dev_close(portid); + printf(" Done\n"); + } +} + int main(int argc, char **argv) { int cnt_args_parsed; @@ -299,6 +315,8 @@ int main(int argc, char **argv) return -1; } + close_ports(); + /* clean up the EAL */ rte_eal_cleanup(); -- 2.7.4