Requested promiscuous or all-multicast mode may be dropped on port
start if FW denies to enable it (e.g. because of no permission
in the case of VF). Return applied value on get.

Fixes: f5258439ee5d ("net/sfc: avoid failure on port start if Rx mode is 
rejected")
Cc: sta...@dpdk.org

Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com>
---
 drivers/net/sfc/sfc_rx.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
index 7afd2c8b3..f589ece75 100644
--- a/drivers/net/sfc/sfc_rx.c
+++ b/drivers/net/sfc/sfc_rx.c
@@ -719,6 +719,7 @@ sfc_rx_default_rxq_set_filter(struct sfc_adapter *sa, 
struct sfc_rxq *rxq)
                sfc_warn(sa, "promiscuous mode will be disabled");
 
                port->promisc = B_FALSE;
+               sa->eth_dev->data->promiscuous = 0;
                rc = sfc_set_rx_mode(sa);
                if (rc != 0)
                        return rc;
@@ -732,6 +733,7 @@ sfc_rx_default_rxq_set_filter(struct sfc_adapter *sa, 
struct sfc_rxq *rxq)
                sfc_warn(sa, "all-multicast mode will be disabled");
 
                port->allmulti = B_FALSE;
+               sa->eth_dev->data->all_multicast = 0;
                rc = sfc_set_rx_mode(sa);
                if (rc != 0)
                        return rc;
-- 
2.17.1

Reply via email to