diff mbox series

[net-next,v2,1/7] net: bcmgenet: set Rx mode before starting netif

Message ID 1588190526-2082-2-git-send-email-opendmb@gmail.com
State Accepted
Delegated to: David Miller
Headers show
Series net: bcmgenet: add support for Wake on Filter | expand

Commit Message

Doug Berger April 29, 2020, 8:02 p.m. UTC
This commit explicitly calls the bcmgenet_set_rx_mode() function when
the network interface is started. This function is normally called by
ndo_set_rx_mode when the flags are changed, but apparently not when
the driver is suspended and resumed.

This change ensures that address filtering or promiscuous mode are
properly restored by the driver after the MAC may have been reset.

Fixes: b6e978e50444 ("net: bcmgenet: add suspend/resume callbacks")
Signed-off-by: Doug Berger <opendmb@gmail.com>
---
 drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Florian Fainelli April 29, 2020, 9:21 p.m. UTC | #1
On 4/29/20 1:02 PM, Doug Berger wrote:
> This commit explicitly calls the bcmgenet_set_rx_mode() function when
> the network interface is started. This function is normally called by
> ndo_set_rx_mode when the flags are changed, but apparently not when
> the driver is suspended and resumed.
> 
> This change ensures that address filtering or promiscuous mode are
> properly restored by the driver after the MAC may have been reset.
> 
> Fixes: b6e978e50444 ("net: bcmgenet: add suspend/resume callbacks")
> Signed-off-by: Doug Berger <opendmb@gmail.com>

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 351d0282f199..eb0dd4d4800c 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -65,6 +65,9 @@ 
 #define GENET_RDMA_REG_OFF	(priv->hw_params->rdma_offset + \
 				TOTAL_DESC * DMA_DESC_SIZE)
 
+/* Forward declarations */
+static void bcmgenet_set_rx_mode(struct net_device *dev);
+
 static inline void bcmgenet_writel(u32 value, void __iomem *offset)
 {
 	/* MIPS chips strapped for BE will automagically configure the
@@ -2793,6 +2796,7 @@  static void bcmgenet_netif_start(struct net_device *dev)
 	struct bcmgenet_priv *priv = netdev_priv(dev);
 
 	/* Start the network engine */
+	bcmgenet_set_rx_mode(dev);
 	bcmgenet_enable_rx_napi(priv);
 
 	umac_enable_set(priv, CMD_TX_EN | CMD_RX_EN, true);