From b1f4933ef320cfc9096101499b711d0dd65f2e51 Mon Sep 17 00:00:00 2001 From: Chengwen Feng Date: Fri, 23 Apr 2021 16:12:42 +0800 Subject: [PATCH] kni: check error code of allmulticast mode switch Some drivers may return errcode when switch allmulticast mode, so it's necessary to check the return code. Fixes: b34801d1aa2e ("kni: support allmulticast mode set") Cc: stable@dpdk.org Signed-off-by: Chengwen Feng Signed-off-by: Min Hu (Connor) Acked-by: Ferruh Yigit --- lib/kni/rte_kni.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/kni/rte_kni.c b/lib/kni/rte_kni.c index d3e236005e..fc8f0e7b5a 100644 --- a/lib/kni/rte_kni.c +++ b/lib/kni/rte_kni.c @@ -514,6 +514,8 @@ kni_config_promiscusity(uint16_t port_id, uint8_t to_on) static int kni_config_allmulticast(uint16_t port_id, uint8_t to_on) { + int ret; + if (!rte_eth_dev_is_valid_port(port_id)) { RTE_LOG(ERR, KNI, "Invalid port id %d\n", port_id); return -EINVAL; @@ -523,11 +525,16 @@ kni_config_allmulticast(uint16_t port_id, uint8_t to_on) port_id, to_on); if (to_on) - rte_eth_allmulticast_enable(port_id); + ret = rte_eth_allmulticast_enable(port_id); else - rte_eth_allmulticast_disable(port_id); + ret = rte_eth_allmulticast_disable(port_id); + if (ret != 0) + RTE_LOG(ERR, KNI, + "Failed to %s allmulticast mode for port %u: %s\n", + to_on ? "enable" : "disable", port_id, + rte_strerror(-ret)); - return 0; + return ret; } int -- 2.39.5