mac80211: fix locking in update_vlan_tailroom_need_count()
authorJohannes Berg <johannes.berg@intel.com>
Wed, 17 Jun 2015 11:54:54 +0000 (13:54 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 21 Jun 2015 17:06:07 +0000 (10:06 -0700)
commit51f458d9612177f69c2e2c437034ae15f93078e7
tree0240333477ebcabe65d564acc6500ad730a4139e
parent7b48f45797be7c4bdbb772de80efe6bdcd78e81d
mac80211: fix locking in update_vlan_tailroom_need_count()

Unfortunately, Michal's change to fix AP_VLAN crypto tailroom
caused a locking issue that was reported by lockdep, but only
in a few cases - the issue was a classic ABBA deadlock caused
by taking the mtx after the key_mtx, where normally they're
taken the other way around.

As the key mutex protects the field in question (I'm adding a
few annotations to make that clear) only the iteration needs
to be protected, but we can also iterate the interface list
with just RCU protection while holding the key mutex.

Fixes: f9dca80b98ca ("mac80211: fix AP_VLAN crypto tailroom calculation")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/mac80211/key.c