File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed
drivers/net/ethernet/renesas Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -2994,10 +2994,12 @@ static int __maybe_unused ravb_suspend(struct device *dev)
29942994
29952995 netif_device_detach (ndev );
29962996
2997+ rtnl_lock ();
29972998 if (priv -> wol_enabled )
29982999 ret = ravb_wol_setup (ndev );
29993000 else
30003001 ret = ravb_close (ndev );
3002+ rtnl_unlock ();
30013003
30023004 if (priv -> info -> ccc_gac )
30033005 ravb_ptp_stop (ndev );
@@ -3012,12 +3014,16 @@ static int __maybe_unused ravb_resume(struct device *dev)
30123014 const struct ravb_hw_info * info = priv -> info ;
30133015 int ret = 0 ;
30143016
3017+ rtnl_lock ();
30153018 /* If WoL is enabled set reset mode to rearm the WoL logic */
30163019 if (priv -> wol_enabled ) {
30173020 ret = ravb_set_opmode (ndev , CCC_OPC_RESET );
3018- if (ret )
3021+ if (ret ) {
3022+ rtnl_unlock ();
30193023 return ret ;
3024+ }
30203025 }
3026+ rtnl_unlock ();
30213027
30223028 /* All register have been reset to default values.
30233029 * Restore all registers which where setup at probe time and
@@ -3049,14 +3055,20 @@ static int __maybe_unused ravb_resume(struct device *dev)
30493055 ravb_ptp_init (ndev , priv -> pdev );
30503056
30513057 if (netif_running (ndev )) {
3058+ rtnl_lock ();
30523059 if (priv -> wol_enabled ) {
30533060 ret = ravb_wol_restore (ndev );
3054- if (ret )
3061+ if (ret ) {
3062+ rtnl_unlock ();
30553063 return ret ;
3064+ }
30563065 }
30573066 ret = ravb_open (ndev );
3058- if (ret < 0 )
3067+ if (ret < 0 ) {
3068+ rtnl_unlock ();
30593069 return ret ;
3070+ }
3071+ rtnl_unlock ();
30603072 ravb_set_rx_mode (ndev );
30613073 netif_device_attach (ndev );
30623074 }
You can’t perform that action at this time.
0 commit comments