linux/drivers/net/wireless/intel/iwlwifi
Sara Sharon 0232d2cd7a iwlwifi: fix access to prph when transport is stopped
When getting HW rfkill we get stop_device being called from
two paths.
One path is the IRQ calling stop device, and updating op
mode and stack.
As a result, cfg80211 is running rfkill sync work that shuts
down all devices (second path).
In the second path, we eventually get to iwl_mvm_stop_device
which calls iwl_fw_dump_conf_clear->iwl_fw_dbg_stop_recording,
that access periphery registers.
The device may be stopped at this point from the first path,
which will result with a failure to access those registers.
Simply checking for the trans status is insufficient, since
the race will still exist, only minimized.
Instead, move the stop from iwl_fw_dump_conf_clear (which is
getting called only from stop path) to the transport stop
device function, where the access is always safe.
This has the added value, of actually stopping dbgc before
stopping device even when the stop is initiated from the
transport.

Fixes: 1efc3843a4 ("iwlwifi: stop dbgc recording before stopping DMA")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2017-11-25 17:12:56 +02:00
..
cfg iwlwifi: fix firmware names for 9000 and A000 series hw 2017-11-16 10:40:15 +02:00
dvm License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fw iwlwifi: fix access to prph when transport is stopped 2017-11-25 17:12:56 +02:00
mvm iwlwifi: mvm: fix packet injection 2017-11-25 17:06:42 +02:00
pcie iwlwifi: fix access to prph when transport is stopped 2017-11-25 17:12:56 +02:00
iwl-agn-hw.h
iwl-config.h iwlwifi: fix PCI IDs and configuration mapping for 9000 series 2017-11-16 10:38:13 +02:00
iwl-context-info.h iwlwifi: pcie: add context information support 2017-04-11 15:19:34 +03:00
iwl-csr.h iwlwifi: remove dead code for internal devices only 2017-11-03 11:56:08 +02:00
iwl-debug.c
iwl-debug.h iwlwifi: acpi: add common code to read from ACPI 2017-10-06 15:22:28 +03:00
iwl-devtrace-data.h iwlwifi: simplify data tracepoint 2017-06-23 11:57:20 +03:00
iwl-devtrace-io.h iwlwifi: pcie: add MSI-X interrupt tracing 2017-06-29 20:27:48 +03:00
iwl-devtrace-iwlwifi.h iwlwifi: fix TX tracing for non-linear SKBs 2017-06-23 11:57:48 +03:00
iwl-devtrace-msg.h
iwl-devtrace-ucode.h
iwl-devtrace.c
iwl-devtrace.h iwlwifi: fix tracing when tx only is enabled 2017-07-21 12:26:38 +03:00
iwl-drv.c iwlwifi: remove dead code for internal devices only 2017-11-03 11:56:08 +02:00
iwl-drv.h iwlwifi: cleanup references to 8000 family in NVM code 2017-06-05 23:25:21 +03:00
iwl-eeprom-parse.c
iwl-eeprom-parse.h iwlwifi: remove useless iwl_free_nvm_data() function 2017-06-23 12:02:58 +03:00
iwl-eeprom-read.c
iwl-eeprom-read.h
iwl-fh.h iwlwifi: document transmit buffer bits better 2017-06-23 12:01:19 +03:00
iwl-io.c iwlwifi: fix nmi triggering from host 2017-08-09 21:14:43 +03:00
iwl-io.h
iwl-modparams.h iwlwifi: unify external & internal modparam names 2017-06-29 13:26:25 +03:00
iwl-nvm-parse.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers.git 2017-10-16 17:09:24 +03:00
iwl-nvm-parse.h iwlwifi: acpi: move function to get mcc into acpi code 2017-10-06 15:22:32 +03:00
iwl-op-mode.h
iwl-phy-db.c iwlwifi: mvm: add documentation for all command IDs 2017-06-29 13:26:24 +03:00
iwl-phy-db.h
iwl-prph.h iwlwifi: fix nmi triggering from host 2017-08-09 21:14:43 +03:00
iwl-scd.h
iwl-trans.c iwlwifi: trans: move ref/unref code to the common part of the transport 2017-10-06 14:57:20 +03:00
iwl-trans.h iwlwifi: Add more call-sites for pcie reg dumper 2017-11-03 11:56:08 +02:00
Kconfig iwlwifi: make RTPM depend on EXPERT 2017-02-08 17:54:20 +02:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00