cfg80211: fix potential deadlock regression
authorJohannes Berg <johannes.berg@intel.com>
Tue, 4 Jun 2013 17:21:08 +0000 (19:21 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 4 Jun 2013 20:22:41 +0000 (22:22 +0200)
commit256c90dedf538c59c70e65ba1a1340ce793c5b37
tree9b8e1290e91ee99bfc9edc88a5e7bcf500f64e70
parent3430140ad9da9ec1caaf800af6b0378351919f9c
cfg80211: fix potential deadlock regression

My big locking cleanups caused a problem by registering the
rfkill instance with the RTNL held, while the callback also
acquires the RTNL. This potentially causes a deadlock since
the two locks used (rfkill mutex and RTNL) can be acquired
in two different orders. Fix this by (un)registering rfkill
without holding the RTNL. This needs to be done after the
device struct is registered, but that can also be done w/o
holding the RTNL.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/core.c