diff options
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/main.c | 8 | ||||
-rw-r--r-- | net/mac80211/rate.c | 2 |
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 | } |