Johannes Berg
f9d15d162b
cfg80211: send scan results from work queue
...
Due to the previous commit, when a scan finishes, it is in theory
possible to hit the following sequence:
1. interface starts being removed
2. scan is cancelled by driver and cfg80211 is notified
3. scan done work is scheduled
4. interface is removed completely, rdev->scan_req is freed,
event sent to userspace but scan done work remains pending
5. new scan is requested on another virtual interface
6. scan done work runs, freeing the still-running scan
To fix this situation, hang on to the scan done message and block
new scans while that is the case, and only send the message from
the work function, regardless of whether the scan_req is already
freed from interface removal. This makes step 5 above impossible
and changes step 6 to be
5. scan done work runs, sending the scan done message
As this can't work for wext, so we send the message immediately,
but this shouldn't be an issue since we still return -EBUSY.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2014-02-06 09:55:19 +01:00
..
.gitignore
wireless: support internal statically compiled regulatory database
2009-12-21 18:56:10 -05:00
ap.c
cfg80211: Add support for QoS mapping
2013-12-19 16:29:22 +01:00
chan.c
cfg80211: allow beaconing after DFS CAC
2013-11-25 20:50:49 +01:00
core.c
cfg80211: send scan results from work queue
2014-02-06 09:55:19 +01:00
core.h
cfg80211: send scan results from work queue
2014-02-06 09:55:19 +01:00
db.txt
wireless: support internal statically compiled regulatory database
2009-12-21 18:56:10 -05:00
debugfs.c
mac80211: fix some snprintf misuses
2013-10-01 12:16:51 +02:00
debugfs.h
cfg80211/mac80211: use debugfs_remove_recursive
2009-10-30 16:49:18 -04:00
ethtool.c
ethtool: fix drvinfo strings set in drivers
2013-01-06 21:06:31 -08:00
ethtool.h
net/wireless/ethtool.h: drop unnecessary include of linux/ethtool.h
2009-10-07 16:39:49 -04:00
genregdb.awk
cfg80211: fix parsing when db.txt ends on a rule
2013-11-25 20:50:58 +01:00
ibss.c
cfg80211: Add support for QoS mapping
2013-12-19 16:29:22 +01:00
Kconfig
lib80211: hide Kconfig symbol
2012-11-16 14:29:09 -05:00
lib80211.c
lib80211: remove exports for functions not called by other modules
2011-08-09 15:42:36 -04:00
lib80211_crypt_ccmp.c
hostap: Don't use create_proc_read_entry()
2013-04-29 15:41:56 -04:00
lib80211_crypt_tkip.c
hostap: Don't use create_proc_read_entry()
2013-04-29 15:41:56 -04:00
lib80211_crypt_wep.c
hostap: Don't use create_proc_read_entry()
2013-04-29 15:41:56 -04:00
Makefile
cfg80211: add tracing to rdev-ops
2012-10-18 10:53:37 +02:00
mesh.c
cfg80211: Add support for QoS mapping
2013-12-19 16:29:22 +01:00
mlme.c
cfg80211: aggregate mgmt_tx parameters into a struct
2013-12-02 11:51:52 +01:00
nl80211.c
cfg80211: send scan results from work queue
2014-02-06 09:55:19 +01:00
nl80211.h
cfg80211: send scan results from work queue
2014-02-06 09:55:19 +01:00
radiotap.c
radiotap: fix bitmap-end-finding buffer overrun
2013-12-16 12:06:43 +01:00
rdev-ops.h
cfg80211: Add support for QoS mapping
2013-12-19 16:29:22 +01:00
reg.c
cfg80211: make regulatory_hint() remove REGULATORY_CUSTOM_REG
2014-01-13 14:46:58 -05:00
reg.h
cfg80211: add reg_get_dfs_region()
2013-12-03 13:53:40 +01:00
regdb.h
cfg80211: relicense reg.c reg.h and genregdb.awk to ISC
2012-01-04 14:30:41 -05:00
scan.c
cfg80211: send scan results from work queue
2014-02-06 09:55:19 +01:00
sme.c
cfg80211: send scan results from work queue
2014-02-06 09:55:19 +01:00
sysfs.c
net: wireless: convert class code to use dev_groups
2013-07-25 16:34:40 -07:00
sysfs.h
net: misc: Remove extern from function prototypes
2013-10-19 19:12:11 -04:00
trace.c
cfg80211: add tracing to rdev-ops
2012-10-18 10:53:37 +02:00
trace.h
cfg80211: Add support for QoS mapping
2013-12-19 16:29:22 +01:00
util.c
cfg80211: Add a function to get the number of supported channels
2014-01-09 14:24:24 +01:00
wext-compat.c
cfg80211: add sanity check for retry limit in wext-compat
2014-01-09 17:05:28 +01:00
wext-compat.h
cfg80211: remove unused wext handler exports
2011-08-08 14:26:29 -04:00
wext-core.c
wext: include wireless event id when it has a size problem
2012-09-05 16:12:44 +02:00
wext-priv.c
wext: fix potential private ioctl memory content leak
2010-09-20 13:41:40 -04:00
wext-proc.c
net: proc: change proc_net_remove to remove_proc_entry
2013-02-18 14:53:08 -05:00
wext-sme.c
cfg80211: separate internal SME implementation
2013-06-04 13:03:11 +02:00
wext-spy.c
wireless: Convert compare_ether_addr to ether_addr_equal
2012-05-09 20:49:19 -04:00