Currently, EAL init cannot be interrupted with SIGINT because the
signal  handler is already overridden by the time EAL init happens.

Fix it by moving signal handler installation to after EAL
initialization, to allow SIGNIT to interrupt EAL initialization.

Fixes: d7937e2e3d12 ("power: initial import")
Cc: sta...@dpdk.org

Signed-off-by: Harneet Singh <harneet.si...@intel.com>

diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index 21c79567b1..002ba011c3 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -2532,9 +2532,6 @@ main(int argc, char **argv)
        uint16_t portid;
        const char *ptr_strings[NUM_TELSTATS];
 
-       /* catch SIGINT and restore cpufreq governor to ondemand */
-       signal(SIGINT, signal_exit_now);
-
        /* init EAL */
        ret = rte_eal_init(argc, argv);
        if (ret < 0)
@@ -2542,6 +2539,9 @@ main(int argc, char **argv)
        argc -= ret;
        argv += ret;
 
+       /* catch SIGINT and restore cpufreq governor to ondemand */
+       signal(SIGINT, signal_exit_now);
+
        /* init RTE timer library to be used late */
        rte_timer_subsystem_init();
 
-- 
2.25.1

Reply via email to