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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Jun 2020 06:20:45 +0000 (08:20 +0200)
commit53cf25df80c734ab323761eae9c36fddab8da362
tree64eba532b040db4bb57ede18cccd90cddeb2defc
parent557045f771e26e67f245c0b34461326133c4c841
net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning during suspend

[ Upstream commit 4c64b83d03f4aafcdf710caad994cbc855802e74 ]

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/ti/cpsw.c