From 7329b56f116881e745bd792f435bb4467d1d0abe Mon Sep 17 00:00:00 2001 From: Igor Romanov Date: Tue, 10 Mar 2020 09:42:09 +0000 Subject: [PATCH] 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 --- drivers/net/sfc/sfc_ethdev.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) 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 -- 2.20.1