linux/drivers/net/wireless/iwlwifi
Johannes Berg 84b1bec6d7 iwlagn: fix scan complete processing
When we cancel a scan, the completion runs
only from the workqueue. This can cause the
remain-on-channel scan to fail when another
one was just canceled, because we're still
aborting it.

To fix this, run the completion inline with
the lock still held before returning from
iwl_scan_cancel_timeout().

Also, to avoid the scan complete work from
completing a new scan prematurely, add a
new STATUS_SCAN_COMPLETE bit.

Reported-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Tested-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-09-27 14:34:09 -04:00
..
iwl-1000.c iwlagn: rename iwl-pci.h to iwl-cfg.h 2011-09-19 16:10:09 -04:00
iwl-2000.c iwlagn: add support for v2 of temperature offset calibration 2011-09-19 16:10:10 -04:00
iwl-5000-hw.h iwlagn: add support for v2 of temperature offset calibration 2011-09-19 16:10:10 -04:00
iwl-5000.c iwlagn: rename iwl-pci.h to iwl-cfg.h 2011-09-19 16:10:09 -04:00
iwl-6000-hw.h
iwl-6000.c iwlagn: rename iwl-pci.h to iwl-cfg.h 2011-09-19 16:10:09 -04:00
iwl-agn-calib.c iwlagn: simplify chain_noise_num_beacons indirection 2011-09-19 15:58:29 -04:00
iwl-agn-calib.h iwlagn: remove iwlagn_hcmd_utils structure and call directly 2011-07-11 15:02:10 -04:00
iwl-agn-hw.h iwlagn: iwl-dev.h doesn't include iwl-fh.h any more 2011-08-29 15:30:28 -04:00
iwl-agn-lib.c iwlagn: remove the callback in host commands 2011-09-21 16:19:42 -04:00
iwl-agn-rs.c iwlagn: remove common station priv 2011-09-21 16:19:42 -04:00
iwl-agn-rs.h iwlagn: no 3945 define needed 2011-04-08 08:00:19 -07:00
iwl-agn-rxon.c iwlagn: fix slot programming 2011-09-27 14:34:08 -04:00
iwl-agn-sta.c iwlagn: move all iwl_is_XXX helpers to iwl-shared.h 2011-08-29 15:25:35 -04:00
iwl-agn-tt.c iwlagn: remove Kelvin support 2011-09-27 14:34:08 -04:00
iwl-agn-tt.h iwlagn: clean up of transport layer 2011-09-14 13:56:37 -04:00
iwl-agn-tx.c iwlagn: update rate scaling with BA notifications 2011-09-27 14:34:07 -04:00
iwl-agn-ucode.c iwlagn: remove the callback in host commands 2011-09-21 16:19:42 -04:00
iwl-agn.c iwlagn: split remain-on-channel 2011-09-21 16:19:42 -04:00
iwl-agn.h iwlagn: remove the callback in host commands 2011-09-21 16:19:42 -04:00
iwl-bus.h iwlagn: remove drvdata support from bus layer 2011-09-19 16:10:10 -04:00
iwl-cfg.h iwlagn: rename iwl-pci.h to iwl-cfg.h 2011-09-19 16:10:09 -04:00
iwl-commands.h iwlagn: add support for v2 of temperature offset calibration 2011-09-19 16:10:10 -04:00
iwl-core.c iwlagn: use kcalloc when possible for array allocation 2011-09-27 14:34:07 -04:00
iwl-core.h iwlagn: make iwl_scan_cancel_timeout void 2011-09-27 14:34:08 -04:00
iwl-csr.h iwlagn: iwl-trans.c can't dereference iwl_priv any more 2011-09-14 13:56:39 -04:00
iwl-debug.h iwlagn: add missing includes 2011-08-29 15:30:28 -04:00
iwl-debugfs.c iwlagn: sparse warning priv->temperature is signed 2011-09-27 14:34:06 -04:00
iwl-dev.h iwlagn: remove Kelvin support 2011-09-27 14:34:08 -04:00
iwl-devtrace.c
iwl-devtrace.h iwlagn: all function iwl-io.c receive iwl_bus 2011-08-29 15:30:29 -04:00
iwl-eeprom.c iwlagn: use kcalloc when possible for array allocation 2011-09-27 14:34:07 -04:00
iwl-eeprom.h iwlagn: use iwl_eeprom_calib_hdr structure 2011-09-19 16:10:10 -04:00
iwl-fh.h iwlagn: add missing includes 2011-08-29 15:30:28 -04:00
iwl-helpers.h iwlagn: clean up of transport layer 2011-09-14 13:56:37 -04:00
iwl-io.c iwlagn: all function iwl-io.c receive iwl_bus 2011-08-29 15:30:29 -04:00
iwl-io.h iwlagn: all function iwl-io.c receive iwl_bus 2011-08-29 15:30:29 -04:00
iwl-led.c iwlagn: remove the callback in host commands 2011-09-21 16:19:42 -04:00
iwl-led.h iwlagn: use direct call for led functions 2011-04-18 08:47:43 -07:00
iwl-pci.c Merge branch 'master' of git://git.infradead.org/users/linville/wireless 2011-09-20 14:11:55 -04:00
iwl-power.c iwlagn: remove dereferences of priv from transport 2011-08-29 15:30:31 -04:00
iwl-power.h iwlagn: move PCI power related functions to the PCI layer 2011-06-18 08:17:29 -07:00
iwl-prph.h iwlagn: cmd_queue moves to iwl_shared 2011-08-29 15:25:31 -04:00
iwl-rx.c iwlagn: remove the callback in host commands 2011-09-21 16:19:42 -04:00
iwl-scan.c iwlagn: fix scan complete processing 2011-09-27 14:34:09 -04:00
iwl-shared.h iwlagn: fix scan complete processing 2011-09-27 14:34:09 -04:00
iwl-sta.c iwlagn: simplify the iwl_device_cmd layout 2011-09-21 16:19:43 -04:00
iwl-sta.h iwlagn: remove the callback in host commands 2011-09-21 16:19:42 -04:00
iwl-sv-open.c iwlagn: clean up of transport layer 2011-09-14 13:56:37 -04:00
iwl-testmode.h iwlagn: allow application own the uCode operation 2011-07-11 15:02:08 -04:00
iwl-trans-pcie-int.h iwlagn: remove uneeded declaration 2011-09-21 16:19:43 -04:00
iwl-trans-pcie-rx.c iwlagn: remove warning in iwl_rx_handle 2011-09-27 14:34:05 -04:00
iwl-trans-pcie-tx.c iwlagn: simplify the iwl_device_cmd layout 2011-09-21 16:19:43 -04:00
iwl-trans-pcie.c iwlagn: use kcalloc when possible for array allocation 2011-09-27 14:34:07 -04:00
iwl-trans.c iwlagn: generically provide iwl_trans_send_cmd_pdu 2011-09-19 16:08:07 -04:00
iwl-trans.h iwlagn: simplify the iwl_device_cmd layout 2011-09-21 16:19:43 -04:00
Kconfig iwlagn: support new P2P implementation 2011-08-08 16:04:04 -04:00
Makefile iwlagn: Makefile whitespace cleanup 2011-09-19 16:08:08 -04:00