test: proceed if timer subsystem already initialized
authorStanislaw Kardach <kda@semihalf.com>
Fri, 26 Mar 2021 10:47:59 +0000 (11:47 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 8 Apr 2021 21:13:25 +0000 (23:13 +0200)
rte_timer_subsystem_init() may return -EALREADY if the timer subsystem
was already initialized. This can happen i.e. in PMD code (see
eth_ena_dev_init). This is not an error, rather a notification as the
initialization function simply returns without any action taken.

Fixes: 50247fe03fe0 ("test/timer: exercise new APIs in secondary process")
Cc: stable@dpdk.org
Signed-off-by: Stanislaw Kardach <kda@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
app/test/test.c

index 624dd48..864523e 100644 (file)
@@ -134,8 +134,13 @@ main(int argc, char **argv)
                goto out;
        }
 
+       argv += ret;
+
+       prgname = argv[0];
+
 #ifdef RTE_LIB_TIMER
-       if (rte_timer_subsystem_init() < 0) {
+       ret = rte_timer_subsystem_init();
+       if (ret < 0 && ret != -EALREADY) {
                ret = -1;
                goto out;
        }
@@ -146,10 +151,6 @@ main(int argc, char **argv)
                goto out;
        }
 
-       argv += ret;
-
-       prgname = argv[0];
-
        recursive_call = getenv(RECURSIVE_ENV_VAR);
        if (recursive_call != NULL) {
                ret = do_recursive_call();