From: Pavan Nikhilesh Date: Thu, 21 Nov 2019 18:27:15 +0000 (+0530) Subject: examples/l2fwd-event: check function errors X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=8b33aa7ee2bf8a4f0d48130fecacdab0fe7011f8;p=dpdk.git examples/l2fwd-event: check function errors Validate `rte_eth_link_get_nowait`, `rte_service_map_lcore_set` and `rte_eth_dev_info_get` return values. Coverity issue: 350600 Coverity issue: 350601 Coverity issue: 350602 Signed-off-by: Pavan Nikhilesh --- diff --git a/examples/l2fwd-event/l2fwd_common.c b/examples/l2fwd-event/l2fwd_common.c index 4ba788550c..0c069ec350 100644 --- a/examples/l2fwd-event/l2fwd_common.c +++ b/examples/l2fwd-event/l2fwd_common.c @@ -41,7 +41,11 @@ l2fwd_event_init_ports(struct l2fwd_resources *rsrc) /* init port */ printf("Initializing port %u... ", port_id); fflush(stdout); - rte_eth_dev_info_get(port_id, &dev_info); + + ret = rte_eth_dev_info_get(port_id, &dev_info); + if (ret != 0) + rte_panic("Error during getting device (port %u) info: %s\n", + port_id, strerror(-ret)); if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE) local_port_conf.txmode.offloads |= DEV_TX_OFFLOAD_MBUF_FAST_FREE; diff --git a/examples/l2fwd-event/l2fwd_event.c b/examples/l2fwd-event/l2fwd_event.c index c7782cbc5c..0379c580d6 100644 --- a/examples/l2fwd-event/l2fwd_event.c +++ b/examples/l2fwd-event/l2fwd_event.c @@ -41,8 +41,9 @@ l2fwd_event_service_enable(uint32_t service_id) /* Get the core which has least number of services running. */ while (slcore_count--) { /* Reset default mapping */ - rte_service_map_lcore_set(service_id, - slcore_array[slcore_count], 0); + if (rte_service_map_lcore_set(service_id, + slcore_array[slcore_count], 0) != 0) + return -ENOENT; service_count = rte_service_lcore_count_services( slcore_array[slcore_count]); if (service_count < min_service_count) { @@ -50,7 +51,7 @@ l2fwd_event_service_enable(uint32_t service_id) min_service_count = service_count; } } - if (rte_service_map_lcore_set(service_id, slcore, 1)) + if (rte_service_map_lcore_set(service_id, slcore, 1) != 0) return -ENOENT; rte_service_lcore_start(slcore); diff --git a/examples/l2fwd-event/main.c b/examples/l2fwd-event/main.c index 142c00e8f5..89a6bb9a44 100644 --- a/examples/l2fwd-event/main.c +++ b/examples/l2fwd-event/main.c @@ -234,6 +234,7 @@ check_all_ports_link_status(struct l2fwd_resources *rsrc, uint16_t port_id; uint8_t count, all_ports_up, print_flag = 0; struct rte_eth_link link; + int ret; printf("\nChecking link status..."); fflush(stdout); @@ -247,7 +248,14 @@ check_all_ports_link_status(struct l2fwd_resources *rsrc, if ((port_mask & (1 << port_id)) == 0) continue; memset(&link, 0, sizeof(link)); - rte_eth_link_get_nowait(port_id, &link); + ret = rte_eth_link_get_nowait(port_id, &link); + if (ret < 0) { + all_ports_up = 0; + if (print_flag == 1) + printf("Port %u link get failed: %s\n", + port_id, rte_strerror(-ret)); + continue; + } /* print link status if flag set */ if (print_flag == 1) { if (link.link_status)