mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 05:41:55 +00:00
36e6fea849
If you trigger a scan request on an interface and then take it down, or rmmod the module or unplug the device the driver might "forget" to cancel the scan request. That is a bug in the driver, but the current behaviour is that we just hang endlessly waiting for the netdev refcount to become 0 which it never will. To improve robustness, check for this situation in cfg80211, warn about it and clean up behind the driver. I don't just clean up silently because it's likely that the driver also has some internal state it has now leaked. Additionally, this fixes a locking bug, clearing the scan_req pointer should be done under the rdev lock. Finally, we also need to _wait_ for the scan work and not just abort it since it might be pending and wanting to do a cleanup. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com> |
||
---|---|---|
.. | ||
chan.c | ||
core.c | ||
core.h | ||
debugfs.c | ||
debugfs.h | ||
ibss.c | ||
Kconfig | ||
lib80211_crypt_ccmp.c | ||
lib80211_crypt_tkip.c | ||
lib80211_crypt_wep.c | ||
lib80211.c | ||
Makefile | ||
mlme.c | ||
nl80211.c | ||
nl80211.h | ||
radiotap.c | ||
reg.c | ||
reg.h | ||
scan.c | ||
sme.c | ||
sysfs.c | ||
sysfs.h | ||
util.c | ||
wext-compat.c | ||
wext-compat.h | ||
wext-sme.c | ||
wext.c |