net: stmmac: Clear receive all(RA) bit when promiscuous mode is off
authorRamesh Babu B <ramesh.babu.b@intel.com>
Tue, 4 May 2021 15:42:41 +0000 (21:12 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 4 May 2021 19:01:37 +0000 (12:01 -0700)
In promiscuous mode Receive All bit is set in GMAC packet filter register,
but outside promiscuous mode Receive All bit is not cleared,
which resulted in all network packets are received when toggle (ON/OFF)
the promiscuous mode.

Fixes: e0f9956a3862 ("net: stmmac: Add option for VLAN filter fail queue enable")
Signed-off-by: Ramesh Babu B <ramesh.babu.b@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c

index 95864f014ffa2f35985242e17b998e43627a8be9..f35c03c9f91e344e899d0daaa5069bb292de29b2 100644 (file)
@@ -642,6 +642,7 @@ static void dwmac4_set_filter(struct mac_device_info *hw,
        value &= ~GMAC_PACKET_FILTER_PCF;
        value &= ~GMAC_PACKET_FILTER_PM;
        value &= ~GMAC_PACKET_FILTER_PR;
+       value &= ~GMAC_PACKET_FILTER_RA;
        if (dev->flags & IFF_PROMISC) {
                /* VLAN Tag Filter Fail Packets Queuing */
                if (hw->vlan_fail_q_en) {