diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-04-10 15:36:09 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-04-16 14:53:22 -0400 |
commit | 98dd6a575928ed9c42130d208e6bfb0f7a914d5a (patch) | |
tree | 5fd946b2080a8aa68e75742ea958e768cace46cb /net/mac80211/wext.c | |
parent | 171afcd4ba093b50cd2fb33fe2371fbc1f7fd389 (diff) | |
download | linux-3.10-98dd6a575928ed9c42130d208e6bfb0f7a914d5a.tar.gz linux-3.10-98dd6a575928ed9c42130d208e6bfb0f7a914d5a.tar.bz2 linux-3.10-98dd6a575928ed9c42130d208e6bfb0f7a914d5a.zip |
mac80211: further RCU fixes
There were a few more instances of sta_info_get calls not being
protected by RCU, fix them.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/wext.c')
-rw-r--r-- | net/mac80211/wext.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c index 69aed16faff..5a452575719 100644 --- a/net/mac80211/wext.c +++ b/net/mac80211/wext.c @@ -980,6 +980,8 @@ static struct iw_statistics *ieee80211_get_wireless_stats(struct net_device *dev struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct sta_info *sta = NULL; + rcu_read_lock(); + if (sdata->vif.type == IEEE80211_IF_TYPE_STA || sdata->vif.type == IEEE80211_IF_TYPE_IBSS) sta = sta_info_get(local, sdata->u.sta.bssid); @@ -996,6 +998,9 @@ static struct iw_statistics *ieee80211_get_wireless_stats(struct net_device *dev wstats->qual.noise = sta->last_noise; wstats->qual.updated = local->wstats_flags; } + + rcu_read_unlock(); + return wstats; } |