From: Jianfeng Tan Date: Tue, 17 Jan 2017 07:10:30 +0000 (+0000) Subject: examples/l3fwd-power: fix stop and close on signal X-Git-Tag: spdx-start~5147 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=e2a6f1246e273fb63a829badf0916029611a98bf;p=dpdk.git examples/l3fwd-power: fix stop and close on signal As it gets killed, in SIGINT signal handler, device is not stopped and closed. In virtio's case, vector assignment in the KVM is not deassigned. This patch will invoke dev_stop() and dev_close() in signal handler. Fixes: d7937e2e3d12 ("power: initial import") Signed-off-by: Jianfeng Tan Tested-by: Lei Yao --- diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index e741434e5d..15b47c7ddd 100644 --- a/examples/l3fwd-power/main.c +++ b/examples/l3fwd-power/main.c @@ -379,6 +379,7 @@ static void signal_exit_now(int sigtype) { unsigned lcore_id; + unsigned int portid, nb_ports; int ret; if (sigtype == SIGINT) { @@ -393,6 +394,15 @@ signal_exit_now(int sigtype) "library de-initialization failed on " "core%u\n", lcore_id); } + + nb_ports = rte_eth_dev_count(); + for (portid = 0; portid < nb_ports; portid++) { + if ((enabled_port_mask & (1 << portid)) == 0) + continue; + + rte_eth_dev_stop(portid); + rte_eth_dev_close(portid); + } } rte_exit(EXIT_SUCCESS, "User forced exit\n");