summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-12-30 23:12:37 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-12-30 23:14:03 +0100
commit194ff52d42fd0b55fe0fcfbf4586ae9d7ab1f780 (patch)
treeeddb4c40ce1cc7a8aa590b1aeaf162a8a8bdba5a /net/mac80211
parent32db6b54dfba38aa8fa4072b2a3fc6425139166a (diff)
downloadlinux-194ff52d42fd0b55fe0fcfbf4586ae9d7ab1f780.tar.gz
linux-194ff52d42fd0b55fe0fcfbf4586ae9d7ab1f780.tar.bz2
linux-194ff52d42fd0b55fe0fcfbf4586ae9d7ab1f780.zip
cfg80211/mac80211: correct qos-map locking
Since the RTNL can't always be held, use wdev/sdata locking for the qos-map dereference in mac80211. This requires cfg80211 to consistently lock it, which it was missing in one place. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/cfg.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 09d2e58a2ba7..fd1020e791d8 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3854,7 +3854,7 @@ static int ieee80211_set_qos_map(struct wiphy *wiphy,
new_qos_map = NULL;
}
- old_qos_map = rtnl_dereference(sdata->qos_map);
+ old_qos_map = sdata_dereference(sdata->qos_map, sdata);
rcu_assign_pointer(sdata->qos_map, new_qos_map);
if (old_qos_map)
kfree_rcu(old_qos_map, rcu_head);