Explorar o código

regulatory: add missing rtnl locking

restore_regulatory_settings() requires the RTNL to be held,
add the missing locking in reg_timeout_work().

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Johannes Berg %!s(int64=12) %!d(string=hai) anos
pai
achega
f77b86d7d3
Modificáronse 1 ficheiros con 2 adicións e 0 borrados
  1. 2 0
      net/wireless/reg.c

+ 2 - 0
net/wireless/reg.c

@@ -2279,7 +2279,9 @@ void wiphy_regulatory_deregister(struct wiphy *wiphy)
 static void reg_timeout_work(struct work_struct *work)
 static void reg_timeout_work(struct work_struct *work)
 {
 {
 	REG_DBG_PRINT("Timeout while waiting for CRDA to reply, restoring regulatory settings\n");
 	REG_DBG_PRINT("Timeout while waiting for CRDA to reply, restoring regulatory settings\n");
+	rtnl_lock();
 	restore_regulatory_settings(true);
 	restore_regulatory_settings(true);
+	rtnl_unlock();
 }
 }
 
 
 int __init regulatory_init(void)
 int __init regulatory_init(void)