linux/net/mac80211
Johannes Berg c0ce77b832 mac80211: fix deferred hardware scan requests
Reinette found the reason for the warnings that
happened occasionally when a hw-offloaded scan
finished; her description of the problem:

  mac80211 will defer the handling of scan requests if it is
  busy with management work at the time. The scan requests
  are deferred and run after the work has completed. When
  this occurs there are currently two problems.

  * The scan request for hardware scan is not fully populated
    with the band and channels to scan not initialized.

  * When the scan is queued the state is not correctly updated
    to reflect that a scan is in progress. The problem here is
    that when the driver completes the scan and calls
    ieee80211_scan_completed() a warning will be triggered
    since mac80211 was not aware that a scan was in progress.

The reason is that the queued scan work will start
the hw scan right away when the hw_scan_req struct
has already been allocated. However, in the first
pass it will not have been filled, which happens
at the same time as setting the bits. To fix this,
simply move the allocation after the pending work
test as well, so that the first iteration of the
scan work will call __ieee80211_start_scan() even
in the hardware scan case.

Bug-identified-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-02-08 16:07:23 -05:00
..
aes_ccm.c mac80211: aes_ccm.c remove crypto wrapper and extra args 2008-07-08 14:16:02 -04:00
aes_ccm.h mac80211: pass scratch buffer directly, remove additional pointers 2008-07-08 14:16:02 -04:00
aes_cmac.c mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00
aes_cmac.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00
agg-rx.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-12-01 22:13:38 -08:00
agg-tx.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-12-01 22:13:38 -08:00
cfg.c mac80211: check that ieee80211_set_power_mgmt only handles STA interfaces. 2010-01-15 16:20:22 -05:00
cfg.h [MAC80211]: rename ieee80211_cfg.h to cfg.h 2007-10-10 16:52:34 -07:00
debugfs_key.c cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
debugfs_key.h mac80211: 802.11w - Use BIP (AES-128-CMAC) 2009-01-29 16:00:03 -05:00
debugfs_netdev.c mac80211: add nl80211/cfg80211 handling of the new mesh root mode option. 2009-11-13 17:43:57 -05:00
debugfs_netdev.h mac80211: revamp virtual interface handling 2008-07-14 14:30:07 -04:00
debugfs_sta.c mac80211: add per-station HT capability file 2009-11-19 11:09:08 -05:00
debugfs_sta.h mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
debugfs.c mac80211: make software rate control optional 2009-11-18 17:09:24 -05:00
debugfs.h cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
driver-ops.h mac80211: convert aggregation to operate on vifs/stas 2009-11-18 17:09:15 -05:00
driver-trace.c mac80211: fix sparse warnings/errors 2009-08-04 16:43:25 -04:00
driver-trace.h mac80211: fix NULL pointer dereference when ftrace is enabled 2010-01-26 11:52:13 -05:00
event.c cfg80211: use proper allocation flags 2009-07-10 15:01:49 -04:00
ht.c mac80211: fix peer HT capabilities 2009-12-21 11:32:27 -05:00
ibss.c mac80211: Fix probe request filtering in IBSS mode 2010-02-08 16:07:22 -05:00
ieee80211_i.h mac80211: Fix dynamic power save for scanning. 2009-12-07 16:51:18 -05:00
iface.c mac80211: fix queue selection for data frames on monitor interfaces 2010-01-11 19:37:09 -05:00
Kconfig mac80211: add MAC80211_VERBOSE_MHWMP_DEBUG 2009-11-11 15:23:58 -05:00
key.c mac80211: fix todo lock 2009-07-10 15:01:48 -04:00
key.h cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
led.c mac80211: rename files 2008-04-08 16:44:45 -04:00
led.h mac80211: rename files 2008-04-08 16:44:45 -04:00
main.c mac80211: Add define for TX headroom reserved by mac80211 itself. 2009-12-14 14:22:31 -05:00
Makefile mac80211: move TX status handling 2009-11-18 17:09:27 -05:00
mesh_hwmp.c mac80211: Revert 'Use correct sign for mesh active path refresh' 2009-12-10 16:12:52 -05:00
mesh_pathtbl.c mac80211: fix endianess on mesh_path_error_tx() calls 2009-11-19 11:38:24 -05:00
mesh_plink.c mac80211: remove encrypt parameter from ieee80211_tx_skb 2009-11-18 17:09:27 -05:00
mesh.c net/mac80211: Correct size given to memset 2009-12-10 16:09:52 -05:00
mesh.h mac80211: Revert 'Use correct sign for mesh active path refresh' 2009-12-10 16:12:52 -05:00
michael.c mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
michael.h mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
mlme.c mac80211: add missing sanity checks for action frames 2010-01-08 15:49:28 -05:00
pm.c mac80211: fix configure_filter invocation after stop 2009-08-28 14:40:25 -04:00
rate.c mac80211: make software rate control optional 2009-11-18 17:09:24 -05:00
rate.h mac80211: make software rate control optional 2009-11-18 17:09:24 -05:00
rc80211_minstrel_debugfs.c net: file_operations should be const 2009-09-02 01:03:53 -07:00
rc80211_minstrel.c rc80211_minstrel: fix contention window calculation 2009-09-23 11:35:42 -04:00
rc80211_minstrel.h mac80211: Remove unnused throughput field from minstrel_rate. 2009-08-28 14:40:34 -04:00
rc80211_pid_algo.c mac80211: fix sign error in pid controller 2010-01-18 15:07:02 -05:00
rc80211_pid_debugfs.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
rc80211_pid.h mac80211/drivers: rewrite the rate control API 2008-10-31 19:00:23 -04:00
rx.c mac80211: add missing sanity checks for action frames 2010-01-08 15:49:28 -05:00
scan.c mac80211: fix deferred hardware scan requests 2010-02-08 16:07:23 -05:00
spectmgmt.c mac80211: remove encrypt parameter from ieee80211_tx_skb 2009-11-18 17:09:27 -05:00
sta_info.c mac80211: make software rate control optional 2009-11-18 17:09:24 -05:00
sta_info.h mac80211: Fix missing kernel-doc notation 2009-11-23 17:05:40 -05:00
status.c mac80211: Fix TX status reporting for injected data frames 2009-12-04 14:16:23 -05:00
tkip.c mac80211: use fixed broadcast address 2009-11-18 17:09:18 -05:00
tkip.h mac80211: tkip.c consolidate tkip IV writing in helper 2008-06-14 12:18:13 -04:00
tx.c mac80211: fix skb buffering issue 2010-01-05 16:21:40 -05:00
util.c mac80211: fix skb buffering issue 2010-01-05 16:21:40 -05:00
wep.c mac80211: trim RX data 2009-11-18 17:09:17 -05:00
wep.h cfg80211: rework key operation 2009-07-24 15:05:09 -04:00
wme.c mac80211: fix-up build breakage in 2.6.33 2010-01-06 15:35:49 -05:00
wme.h mac80211: fix skb buffering issue 2010-01-05 16:21:40 -05:00
wpa.c mac80211: trim RX data 2009-11-18 17:09:17 -05:00
wpa.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00