OSDN Git Service

net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning during suspend
authorGrygorii Strashko <grygorii.strashko@ti.com>
Fri, 22 May 2020 17:09:28 +0000 (20:09 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sat, 23 May 2020 23:33:20 +0000 (16:33 -0700)
commit4c64b83d03f4aafcdf710caad994cbc855802e74
tree14cbc0f0748fbac0c44befa5a1764cc311dca2a5
parent0ddfee1feece1c85592d49b759286032ef2dd803
net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning during suspend

vlan_for_each() are required to be called with rtnl_lock taken, otherwise
ASSERT_RTNL() warning will be triggered - which happens now during System
resume from suspend:
  cpsw_suspend()
  |- cpsw_ndo_stop()
    |- __hw_addr_ref_unsync_dev()
      |- cpsw_purge_all_mc()
         |- vlan_for_each()
            |- ASSERT_RTNL();

Hence, fix it by surrounding cpsw_ndo_stop() by rtnl_lock/unlock() calls.

Fixes: 15180eca569b ("net: ethernet: ti: cpsw: fix vlan mcast")
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpsw.c