From: Igor Romanov Date: Tue, 10 Mar 2020 09:42:09 +0000 (+0000) Subject: net/sfc: fix promiscuous and allmulticast toggles errors X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=7329b56f116881e745bd792f435bb4467d1d0abe net/sfc: fix promiscuous and allmulticast toggles errors Returned errors of ethdev callbacks are negative. Internal sfc functions return positive errors, so convert them to negative value. Fixes: 9039c8125730 ("ethdev: change promiscuous callbacks to return status") Cc: stable@dpdk.org Signed-off-by: Igor Romanov Signed-off-by: Andrew Rybchenko --- diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index 098038fbc0..f8867b0ec0 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -405,25 +405,37 @@ sfc_dev_filter_set(struct rte_eth_dev *dev, enum sfc_dev_filter_mode mode, static int sfc_dev_promisc_enable(struct rte_eth_dev *dev) { - return sfc_dev_filter_set(dev, SFC_DEV_FILTER_MODE_PROMISC, B_TRUE); + int rc = sfc_dev_filter_set(dev, SFC_DEV_FILTER_MODE_PROMISC, B_TRUE); + + SFC_ASSERT(rc >= 0); + return -rc; } static int sfc_dev_promisc_disable(struct rte_eth_dev *dev) { - return sfc_dev_filter_set(dev, SFC_DEV_FILTER_MODE_PROMISC, B_FALSE); + int rc = sfc_dev_filter_set(dev, SFC_DEV_FILTER_MODE_PROMISC, B_FALSE); + + SFC_ASSERT(rc >= 0); + return -rc; } static int sfc_dev_allmulti_enable(struct rte_eth_dev *dev) { - return sfc_dev_filter_set(dev, SFC_DEV_FILTER_MODE_ALLMULTI, B_TRUE); + int rc = sfc_dev_filter_set(dev, SFC_DEV_FILTER_MODE_ALLMULTI, B_TRUE); + + SFC_ASSERT(rc >= 0); + return -rc; } static int sfc_dev_allmulti_disable(struct rte_eth_dev *dev) { - return sfc_dev_filter_set(dev, SFC_DEV_FILTER_MODE_ALLMULTI, B_FALSE); + int rc = sfc_dev_filter_set(dev, SFC_DEV_FILTER_MODE_ALLMULTI, B_FALSE); + + SFC_ASSERT(rc >= 0); + return -rc; } static int