]> git.baikalelectronics.ru Git - kernel.git/commit
mac80211: fix deadlock with multiple interfaces
authorJohannes Berg <johannes.berg@intel.com>
Tue, 5 Oct 2010 08:41:47 +0000 (10:41 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 5 Oct 2010 17:37:51 +0000 (13:37 -0400)
commit9ce95cfeef493ec3269b4dd5f821c48ee02f7048
tree0b28807104e80926d33eec8634dd94c5561e64ab
parentd53871c1dc78ba28e03b7e268e1b91f327167d31
mac80211: fix deadlock with multiple interfaces

The locking around ieee80211_recalc_smps is
buggy -- it cannot acquire another interface's
mutex while the iflist mutex is held because
another code path could be holding the iface
mutex and trying to acquire the iflist mutex.

But the locking is also unnecessary, we only
check "ifmgd->associated" as a bool, and don't
use the pointer (in check_mgd_smps).

Reported-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/cfg.c
net/mac80211/ieee80211_i.h
net/mac80211/main.c
net/mac80211/mlme.c
net/mac80211/util.c