[AUTOSEL,4.14,01/73] net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode

Message ID 20181031230948.29203-1-sashal@kernel.org
State New
Headers show
Series
  • [AUTOSEL,4.14,01/73] net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode
Related show

Commit Message

Sasha Levin Oct. 31, 2018, 11:08 p.m.
From: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>


[ Upstream commit 9737cc99dd14b5b8b9d267618a6061feade8ea68 ]

After flushing all mcast entries from the table, the ones contained in
mc list of ndev are not restored when promisc mode is toggled off,
because they are considered as synched with ALE, thus, in order to
restore them after promisc mode - reset syncing info. This fix
touches only switch mode devices, including single port boards
like Beagle Bone.

Fixes: commit 5da1948969bc
("net: ethernet: ti: cpsw: fix lost of mcast packets while rx_mode update")

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>

Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>

Signed-off-by: David S. Miller <davem@davemloft.net>

Signed-off-by: Sasha Levin <sashal@kernel.org>

---
 drivers/net/ethernet/ti/cpsw.c | 1 +
 1 file changed, 1 insertion(+)

-- 
2.17.1

Comments

Mark Brown Nov. 1, 2018, 12:06 p.m. | #1
On Wed, Oct 31, 2018 at 07:08:57PM -0400, Sasha Levin wrote:
> From: Linus Walleij <linus.walleij@linaro.org>

> 

> [ Upstream commit 28be5f15df2ee6882b0a122693159c96a28203c7 ]

> 

> commit efdfeb079cc3

> ("regulator: fixed: Convert to use GPIO descriptor only")

> switched to use gpiod_get() to look up the regulator from the

> gpiolib core whether that is device tree or boardfile.


This patch is only introduced in v4.19...
Sasha Levin Nov. 1, 2018, 3:48 p.m. | #2
On Thu, Nov 01, 2018 at 12:06:30PM +0000, Mark Brown wrote:
>On Wed, Oct 31, 2018 at 07:08:57PM -0400, Sasha Levin wrote:

>> From: Linus Walleij <linus.walleij@linaro.org>

>>

>> [ Upstream commit 28be5f15df2ee6882b0a122693159c96a28203c7 ]

>>

>> commit efdfeb079cc3

>> ("regulator: fixed: Convert to use GPIO descriptor only")

>> switched to use gpiod_get() to look up the regulator from the

>> gpiolib core whether that is device tree or boardfile.

>

>This patch is only introduced in v4.19...


Ah, the word "commit" in the fixes tag confused my script, I'll fix
that. Thanks!

--
Thanks,
Sasha

Patch

diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 8cb44eabc283..a44838aac97d 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -601,6 +601,7 @@  static void cpsw_set_promiscious(struct net_device *ndev, bool enable)
 
 			/* Clear all mcast from ALE */
 			cpsw_ale_flush_multicast(ale, ALE_ALL_PORTS, -1);
+			__dev_mc_unsync(ndev, NULL);
 
 			/* Flood All Unicast Packets to Host port */
 			cpsw_ale_control_set(ale, 0, ALE_P0_UNI_FLOOD, 1);