mac80211: make key locking clearer

The code in ieee80211_del_key() doesn't acquire the
key_mtx properly when it dereferences the keys. It
turns out that isn't actually necessary since the
key_mtx itself seems to be redundant since all key
manipulations are done under the RTNL, but as long
as we have the key_mtx we should use it the right
way too.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Johannes Berg
2011-05-12 14:31:49 +02:00
committed by John W. Linville
parent dea4096bc4
commit 5c0c36412b
3 changed files with 20 additions and 27 deletions

View File

@@ -471,8 +471,11 @@ int ieee80211_key_link(struct ieee80211_key *key,
return ret;
}
static void __ieee80211_key_free(struct ieee80211_key *key)
void __ieee80211_key_free(struct ieee80211_key *key)
{
if (!key)
return;
/*
* Replace key with nothingness if it was ever used.
*/
@@ -486,9 +489,6 @@ static void __ieee80211_key_free(struct ieee80211_key *key)
void ieee80211_key_free(struct ieee80211_local *local,
struct ieee80211_key *key)
{
if (!key)
return;
mutex_lock(&local->key_mtx);
__ieee80211_key_free(key);
mutex_unlock(&local->key_mtx);