net/sfc: fix promisc or all-multi mode reporting if dropped
Checks
Commit Message
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: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/sfc_rx.c | 2 ++
1 file changed, 2 insertions(+)
Comments
On 3/4/2020 3:01 PM, Andrew Rybchenko wrote:
> 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: stable@dpdk.org
>
> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Applied to dpdk-next-net/master, thanks.
@@ -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;