net: stmmac: Avoid deadlock on suspend/resume
authorThierry Reding <treding@nvidia.com>
Wed, 2 Oct 2019 14:49:46 +0000 (16:49 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Oct 2019 00:21:26 +0000 (17:21 -0700)
commit134cc4cefad34d8d24670d8a911b59c3b89c6731
tree62c042685081aea0bdede5f09818c4bd54e0a1f8
parent53de429f4e88f538f7a8ec2b18be8c0cd9b2c8e1
net: stmmac: Avoid deadlock on suspend/resume

The stmmac driver will try to acquire its private mutex during suspend
via phylink_resolve() -> stmmac_mac_link_down() -> stmmac_eee_init().
However, the phylink configuration is updated with the private mutex
held already, which causes a deadlock during suspend.

Fix this by moving the phylink configuration updates out of the region
of code protected by the private mutex.

Fixes: 19e13cb27b99 ("net: stmmac: Hold rtnl lock in suspend/resume callbacks")
Suggested-by: Bitan Biswas <bbiswas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c