examples: check stop call status
authorIvan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Thu, 15 Oct 2020 13:30:38 +0000 (14:30 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 16 Oct 2020 20:26:41 +0000 (22:26 +0200)
rte_eth_dev_stop() return value was changed from void to int,
so this patch modify usage of this function across examples
according to new return type.

Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
12 files changed:
examples/ethtool/lib/rte_ethtool.c
examples/eventdev_pipeline/main.c
examples/flow_filtering/main.c
examples/ioat/ioatfwd.c
examples/ipsec-secgw/event_helper.c
examples/ipsec-secgw/ipsec-secgw.c
examples/kni/main.c
examples/l2fwd-event/main.c
examples/l2fwd/main.c
examples/l3fwd-graph/main.c
examples/l3fwd-power/main.c
examples/l3fwd/main.c

index db8150e..86e3de0 100644 (file)
@@ -297,7 +297,11 @@ rte_ethtool_set_pauseparam(uint16_t port_id,
 int
 rte_ethtool_net_open(uint16_t port_id)
 {
-       rte_eth_dev_stop(port_id);
+       int ret;
+
+       ret = rte_eth_dev_stop(port_id);
+       if (ret != 0)
+               return ret;
 
        return rte_eth_dev_start(port_id);
 }
@@ -305,10 +309,7 @@ rte_ethtool_net_open(uint16_t port_id)
 int
 rte_ethtool_net_stop(uint16_t port_id)
 {
-       RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
-       rte_eth_dev_stop(port_id);
-
-       return 0;
+       return rte_eth_dev_stop(port_id);
 }
 
 int
@@ -459,7 +460,9 @@ rte_ethtool_set_ringparam(uint16_t port_id,
        if (stat != 0)
                return stat;
 
-       rte_eth_dev_stop(port_id);
+       stat = rte_eth_dev_stop(port_id);
+       if (stat != 0)
+               return stat;
 
        stat = rte_eth_tx_queue_setup(port_id, 0, ring_param->tx_pending,
                rte_socket_id(), NULL);
index 4ac5821..597540c 100644 (file)
@@ -296,7 +296,8 @@ signal_handler(int signum)
                RTE_ETH_FOREACH_DEV(portid) {
                        rte_event_eth_rx_adapter_stop(portid);
                        rte_event_eth_tx_adapter_stop(portid);
-                       rte_eth_dev_stop(portid);
+                       if (rte_eth_dev_stop(portid) < 0)
+                               printf("Failed to stop port %u", portid);
                }
 
                rte_eal_mp_wait_lcore();
index cc9e7e7..93523d6 100644 (file)
@@ -52,7 +52,7 @@ print_ether_addr(const char *what, struct rte_ether_addr *eth_addr)
        printf("%s%s", what, buf);
 }
 
-static void
+static int
 main_loop(void)
 {
        struct rte_mbuf *mbufs[32];
@@ -61,6 +61,7 @@ main_loop(void)
        uint16_t nb_rx;
        uint16_t i;
        uint16_t j;
+       int ret;
 
        while (!force_quit) {
                for (i = 0; i < nr_queues; i++) {
@@ -88,8 +89,12 @@ main_loop(void)
 
        /* closing and releasing resources */
        rte_flow_flush(port_id, &error);
-       rte_eth_dev_stop(port_id);
+       ret = rte_eth_dev_stop(port_id);
+       if (ret < 0)
+               printf("Failed to stop port %u: %s",
+                      port_id, rte_strerror(-ret));
        rte_eth_dev_close(port_id);
+       return ret;
 }
 
 #define CHECK_INTERVAL 1000  /* 100ms */
@@ -254,7 +259,5 @@ main(int argc, char **argv)
                rte_exit(EXIT_FAILURE, "error in creating flow");
        }
 
-       main_loop();
-
-       return 0;
+       return main_loop();
 }
index 8cf606e..dc1ef95 100644 (file)
@@ -995,7 +995,11 @@ main(int argc, char **argv)
        uint32_t j;
        for (i = 0; i < cfg.nb_ports; i++) {
                printf("Closing port %d\n", cfg.ports[i].rxtx_port);
-               rte_eth_dev_stop(cfg.ports[i].rxtx_port);
+               ret = rte_eth_dev_stop(cfg.ports[i].rxtx_port);
+               if (ret != 0)
+                       RTE_LOG(ERR, IOAT, "rte_eth_dev_stop: err=%s, port=%u\n",
+                               rte_strerror(-ret), cfg.ports[i].rxtx_port);
+
                rte_eth_dev_close(cfg.ports[i].rxtx_port);
                if (copy_mode == COPY_MODE_IOAT_NUM) {
                        for (j = 0; j < cfg.ports[i].nb_queues; j++) {
index 865dc91..ce4dbdc 100644 (file)
@@ -1583,7 +1583,12 @@ eh_devs_init(struct eh_conf *conf)
                if ((conf->eth_portmask & (1 << port_id)) == 0)
                        continue;
 
-               rte_eth_dev_stop(port_id);
+               ret = rte_eth_dev_stop(port_id);
+               if (ret != 0) {
+                       EH_LOG_ERR("Failed to stop port %u, err: %d",
+                                       port_id, ret);
+                       return ret;
+               }
        }
 
        /* Setup eventdev */
index 60132c4..58ecfd6 100644 (file)
@@ -3032,7 +3032,12 @@ main(int32_t argc, char **argv)
                                        " for port %u, err msg: %s\n", portid,
                                        err.message);
                }
-               rte_eth_dev_stop(portid);
+               ret = rte_eth_dev_stop(portid);
+               if (ret != 0)
+                       RTE_LOG(ERR, IPSEC,
+                               "rte_eth_dev_stop: err=%s, port=%u\n",
+                               rte_strerror(-ret), portid);
+
                rte_eth_dev_close(portid);
                printf(" Done\n");
        }
index 2223bd3..ac6309e 100644 (file)
@@ -782,7 +782,12 @@ kni_change_mtu_(uint16_t port_id, unsigned int new_mtu)
        RTE_LOG(INFO, APP, "Change MTU of port %d to %u\n", port_id, new_mtu);
 
        /* Stop specific port */
-       rte_eth_dev_stop(port_id);
+       ret = rte_eth_dev_stop(port_id);
+       if (ret != 0) {
+               RTE_LOG(ERR, APP, "Failed to stop port %d: %s\n",
+                       port_id, rte_strerror(-ret));
+               return ret;
+       }
 
        memcpy(&conf, &port_conf, sizeof(conf));
        /* Set new MTU */
@@ -875,10 +880,23 @@ kni_config_network_interface(uint16_t port_id, uint8_t if_up)
        rte_atomic32_inc(&kni_pause);
 
        if (if_up != 0) { /* Configure network interface up */
-               rte_eth_dev_stop(port_id);
+               ret = rte_eth_dev_stop(port_id);
+               if (ret != 0) {
+                       RTE_LOG(ERR, APP, "Failed to stop port %d: %s\n",
+                               port_id, rte_strerror(-ret));
+                       rte_atomic32_dec(&kni_pause);
+                       return ret;
+               }
                ret = rte_eth_dev_start(port_id);
-       } else /* Configure network interface down */
-               rte_eth_dev_stop(port_id);
+       } else { /* Configure network interface down */
+               ret = rte_eth_dev_stop(port_id);
+               if (ret != 0) {
+                       RTE_LOG(ERR, APP, "Failed to stop port %d: %s\n",
+                               port_id, rte_strerror(-ret));
+                       rte_atomic32_dec(&kni_pause);
+                       return ret;
+               }
+       }
 
        rte_atomic32_dec(&kni_pause);
 
@@ -998,6 +1016,7 @@ static int
 kni_free_kni(uint16_t port_id)
 {
        uint8_t i;
+       int ret;
        struct kni_port_params **p = kni_port_params_array;
 
        if (port_id >= RTE_MAX_ETHPORTS || !p[port_id])
@@ -1008,7 +1027,10 @@ kni_free_kni(uint16_t port_id)
                        printf("Fail to release kni\n");
                p[port_id]->kni[i] = NULL;
        }
-       rte_eth_dev_stop(port_id);
+       ret = rte_eth_dev_stop(port_id);
+       if (ret != 0)
+               RTE_LOG(ERR, APP, "Failed to stop port %d: %s\n",
+                       port_id, rte_strerror(-ret));
 
        return 0;
 }
index 9f831b1..b48794d 100644 (file)
@@ -683,7 +683,10 @@ main(int argc, char **argv)
                        if ((rsrc->enabled_port_mask &
                                                        (1 << port_id)) == 0)
                                continue;
-                       rte_eth_dev_stop(port_id);
+                       ret = rte_eth_dev_stop(port_id);
+                       if (ret < 0)
+                               printf("rte_eth_dev_stop:err=%d, port=%u\n",
+                                      ret, port_id);
                }
 
                rte_eal_mp_wait_lcore();
@@ -705,7 +708,10 @@ main(int argc, char **argv)
                                                        (1 << port_id)) == 0)
                                continue;
                        printf("Closing port %d...", port_id);
-                       rte_eth_dev_stop(port_id);
+                       ret = rte_eth_dev_stop(port_id);
+                       if (ret < 0)
+                               printf("rte_eth_dev_stop:err=%d, port=%u\n",
+                                      ret, port_id);
                        rte_eth_dev_close(port_id);
                        printf(" Done\n");
                }
index 7e30787..7d1b08a 100644 (file)
@@ -896,7 +896,10 @@ main(int argc, char **argv)
                if ((l2fwd_enabled_port_mask & (1 << portid)) == 0)
                        continue;
                printf("Closing port %d...", portid);
-               rte_eth_dev_stop(portid);
+               ret = rte_eth_dev_stop(portid);
+               if (ret != 0)
+                       printf("rte_eth_dev_stop: err=%d, port=%d\n",
+                              ret, portid);
                rte_eth_dev_close(portid);
                printf(" Done\n");
        }
index 2306ba9..2fd536e 100644 (file)
@@ -1116,7 +1116,10 @@ main(int argc, char **argv)
                if ((enabled_port_mask & (1 << portid)) == 0)
                        continue;
                printf("Closing port %d...", portid);
-               rte_eth_dev_stop(portid);
+               ret = rte_eth_dev_stop(portid);
+               if (ret != 0)
+                       printf("Failed to stop port %u: %s\n",
+                              portid, rte_strerror(-ret));
                rte_eth_dev_close(portid);
                printf(" Done\n");
        }
index d0e6c9b..b1535b2 100644 (file)
@@ -2805,7 +2805,11 @@ main(int argc, char **argv)
                if ((enabled_port_mask & (1 << portid)) == 0)
                        continue;
 
-               rte_eth_dev_stop(portid);
+               ret = rte_eth_dev_stop(portid);
+               if (ret != 0)
+                       RTE_LOG(ERR, L3FWD_POWER, "rte_eth_dev_stop: err=%d, port=%u\n",
+                               ret, portid);
+
                rte_eth_dev_close(portid);
        }
 
index 80f3434..3811a1e 100644 (file)
@@ -1284,7 +1284,10 @@ main(int argc, char **argv)
                RTE_ETH_FOREACH_DEV(portid) {
                        if ((enabled_port_mask & (1 << portid)) == 0)
                                continue;
-                       rte_eth_dev_stop(portid);
+                       ret = rte_eth_dev_stop(portid);
+                       if (ret != 0)
+                               printf("rte_eth_dev_stop: err=%d, port=%u\n",
+                                      ret, portid);
                }
 
                rte_eal_mp_wait_lcore();
@@ -1304,7 +1307,10 @@ main(int argc, char **argv)
                        if ((enabled_port_mask & (1 << portid)) == 0)
                                continue;
                        printf("Closing port %d...", portid);
-                       rte_eth_dev_stop(portid);
+                       ret = rte_eth_dev_stop(portid);
+                       if (ret != 0)
+                               printf("rte_eth_dev_stop: err=%d, port=%u\n",
+                                      ret, portid);
                        rte_eth_dev_close(portid);
                        printf(" Done\n");
                }