diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-12-30 17:12:37 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-12-30 17:14:03 -0500 |
commit | 194ff52d42fd0b55fe0fcfbf4586ae9d7ab1f780 (patch) | |
tree | eddb4c40ce1cc7a8aa590b1aeaf162a8a8bdba5a /net/wireless | |
parent | 32db6b54dfba38aa8fa4072b2a3fc6425139166a (diff) |
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/wireless')
-rw-r--r-- | net/wireless/util.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c index 5618888853b2..329b0efb3ded 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c | |||
@@ -879,7 +879,9 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev, | |||
879 | 879 | ||
880 | dev->ieee80211_ptr->use_4addr = false; | 880 | dev->ieee80211_ptr->use_4addr = false; |
881 | dev->ieee80211_ptr->mesh_id_up_len = 0; | 881 | dev->ieee80211_ptr->mesh_id_up_len = 0; |
882 | wdev_lock(dev->ieee80211_ptr); | ||
882 | rdev_set_qos_map(rdev, dev, NULL); | 883 | rdev_set_qos_map(rdev, dev, NULL); |
884 | wdev_unlock(dev->ieee80211_ptr); | ||
883 | 885 | ||
884 | switch (otype) { | 886 | switch (otype) { |
885 | case NL80211_IFTYPE_AP: | 887 | case NL80211_IFTYPE_AP: |