cfg80211: always check for scan end on P2P device
authorJohannes Berg <johannes.berg@intel.com>
Tue, 19 Mar 2013 14:04:07 +0000 (15:04 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Sun, 24 Mar 2013 10:15:58 +0000 (11:15 +0100)
commitf9f475292dbb0e7035fb6661d1524761ea0888d9
tree77f4bf7741deb74108ef033eeb68131069a8e406
parent8b305780ed0c49a49c6bd58a4372fd6b22a5a71e
cfg80211: always check for scan end on P2P device

If a P2P device wdev is removed while it has a scan, then the
scan completion might crash later as it is already freed by
that time. To avoid the crash always check the scan completion
when the P2P device is being removed for some reason. If the
driver already canceled it, don't want and free it, otherwise
warn and leak it to avoid later crashes.

In order to do this, locking needs to be changed away from the
rdev mutex (which can't always be guaranteed). For now, use
the sched_scan_mtx instead, I'll rename it to just scan_mtx in
a later patch.

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