diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index 58fdc4f8dd4835a54711ea13cc3b9024d5881cc3..3072a5bd35760ad6e91cfd151687bd8dd67d1edb 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -2991,11 +2991,12 @@ static int __maybe_unused ravb_suspend(struct device *dev) netif_device_detach(ndev); + rtnl_lock(); if (priv->wol_enabled) ret = ravb_wol_setup(ndev); else ret = ravb_close(ndev); - + rtnl_unlock(); if (priv->info->ccc_gac) ravb_ptp_stop(ndev); @@ -3046,12 +3047,16 @@ static int __maybe_unused ravb_resume(struct device *dev) ravb_ptp_init(ndev, priv->pdev); if (netif_running(ndev)) { + rtnl_lock(); if (priv->wol_enabled) { ret = ravb_wol_restore(ndev); - if (ret) + if (ret) { + rtnl_unlock(); return ret; + } } ret = ravb_open(ndev); + rtnl_unlock(); if (ret < 0) return ret; ravb_set_rx_mode(ndev);