]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 May 2021 08:29:45 +0000 (10:29 +0200)
[ Upstream commit 4c7a94286ef7ac7301d633f17519fb1bb89d7550 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c

index 29f765a246a05f91ae4f53081b583af73a63b6cf..aaf37598cbd3ccf909cd991931b5e3ce371bd07f 100644 (file)
@@ -638,6 +638,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) {