File tree Expand file tree Collapse file tree 2 files changed +18
-8
lines changed
drivers/net/ethernet/renesas Expand file tree Collapse file tree 2 files changed +18
-8
lines changed Original file line number Diff line number Diff line change @@ -3217,10 +3217,15 @@ static int ravb_suspend(struct device *dev)
3217
3217
3218
3218
netif_device_detach (ndev );
3219
3219
3220
- if (priv -> wol_enabled )
3221
- return ravb_wol_setup (ndev );
3220
+ rtnl_lock ();
3221
+ if (priv -> wol_enabled ) {
3222
+ ret = ravb_wol_setup (ndev );
3223
+ rtnl_unlock ();
3224
+ return ret ;
3225
+ }
3222
3226
3223
3227
ret = ravb_close (ndev );
3228
+ rtnl_unlock ();
3224
3229
if (ret )
3225
3230
return ret ;
3226
3231
@@ -3245,19 +3250,20 @@ static int ravb_resume(struct device *dev)
3245
3250
if (!netif_running (ndev ))
3246
3251
return 0 ;
3247
3252
3253
+ rtnl_lock ();
3248
3254
/* If WoL is enabled restore the interface. */
3249
- if (priv -> wol_enabled ) {
3255
+ if (priv -> wol_enabled )
3250
3256
ret = ravb_wol_restore (ndev );
3251
- if (ret )
3252
- return ret ;
3253
- } else {
3257
+ else
3254
3258
ret = pm_runtime_force_resume (dev );
3255
- if (ret )
3256
- return ret ;
3259
+ if (ret ) {
3260
+ rtnl_unlock ();
3261
+ return ret ;
3257
3262
}
3258
3263
3259
3264
/* Reopening the interface will restore the device to the working state. */
3260
3265
ret = ravb_open (ndev );
3266
+ rtnl_unlock ();
3261
3267
if (ret < 0 )
3262
3268
goto out_rpm_put ;
3263
3269
Original file line number Diff line number Diff line change @@ -3494,10 +3494,12 @@ static int sh_eth_suspend(struct device *dev)
3494
3494
3495
3495
netif_device_detach (ndev );
3496
3496
3497
+ rtnl_lock ();
3497
3498
if (mdp -> wol_enabled )
3498
3499
ret = sh_eth_wol_setup (ndev );
3499
3500
else
3500
3501
ret = sh_eth_close (ndev );
3502
+ rtnl_unlock ();
3501
3503
3502
3504
return ret ;
3503
3505
}
@@ -3511,10 +3513,12 @@ static int sh_eth_resume(struct device *dev)
3511
3513
if (!netif_running (ndev ))
3512
3514
return 0 ;
3513
3515
3516
+ rtnl_lock ();
3514
3517
if (mdp -> wol_enabled )
3515
3518
ret = sh_eth_wol_restore (ndev );
3516
3519
else
3517
3520
ret = sh_eth_open (ndev );
3521
+ rtnl_unlock ();
3518
3522
3519
3523
if (ret < 0 )
3520
3524
return ret ;
You can’t perform that action at this time.
0 commit comments