aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/main.c8
-rw-r--r--net/mac80211/rate.c2
2 files changed, 9 insertions, 1 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 18fdeca43d98..fda97bb0018b 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -365,7 +365,7 @@ static int ieee80211_ifa_changed(struct notifier_block *nb,
365 if (sdata->vif.type != NL80211_IFTYPE_STATION) 365 if (sdata->vif.type != NL80211_IFTYPE_STATION)
366 return NOTIFY_DONE; 366 return NOTIFY_DONE;
367 367
368 idev = sdata->dev->ip_ptr; 368 idev = __in_dev_get_rtnl(sdata->dev);
369 if (!idev) 369 if (!idev)
370 return NOTIFY_DONE; 370 return NOTIFY_DONE;
371 371
@@ -868,6 +868,12 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw)
868 868
869 rtnl_unlock(); 869 rtnl_unlock();
870 870
871 /*
872 * Now all work items will be gone, but the
873 * timer might still be armed, so delete it
874 */
875 del_timer_sync(&local->work_timer);
876
871 cancel_work_sync(&local->restart_work); 877 cancel_work_sync(&local->restart_work);
872 cancel_work_sync(&local->reconfig_filter); 878 cancel_work_sync(&local->reconfig_filter);
873 879
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
index f77a45625c0b..4f772de2f213 100644
--- a/net/mac80211/rate.c
+++ b/net/mac80211/rate.c
@@ -103,6 +103,7 @@ ieee80211_rate_control_ops_get(const char *name)
103 struct rate_control_ops *ops; 103 struct rate_control_ops *ops;
104 const char *alg_name; 104 const char *alg_name;
105 105
106 kparam_block_sysfs_write(ieee80211_default_rc_algo);
106 if (!name) 107 if (!name)
107 alg_name = ieee80211_default_rc_algo; 108 alg_name = ieee80211_default_rc_algo;
108 else 109 else
@@ -120,6 +121,7 @@ ieee80211_rate_control_ops_get(const char *name)
120 /* try built-in one if specific alg requested but not found */ 121 /* try built-in one if specific alg requested but not found */
121 if (!ops && strlen(CONFIG_MAC80211_RC_DEFAULT)) 122 if (!ops && strlen(CONFIG_MAC80211_RC_DEFAULT))
122 ops = ieee80211_try_rate_control_ops_get(CONFIG_MAC80211_RC_DEFAULT); 123 ops = ieee80211_try_rate_control_ops_get(CONFIG_MAC80211_RC_DEFAULT);
124 kparam_unblock_sysfs_write(ieee80211_default_rc_algo);
123 125
124 return ops; 126 return ops;
125} 127}