lkml.org 
[lkml]   [2019]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 108/237] net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode
    Date
    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(+)

    diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
    index ef79d2b6070b9..8f93ef74fa407 100644
    --- a/drivers/net/ethernet/ti/cpsw.c
    +++ b/drivers/net/ethernet/ti/cpsw.c
    @@ -642,6 +642,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);
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-11-16 17:50    [W:5.686 / U:0.148 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site