linux/drivers/net/wireless/intel/iwlwifi
Sara Sharon caf4637712 iwlwifi: mvm: fix a race in CSA that caused assert 0x3420
When we get a channel switch with a very long quiet period, we schedule
a work to disconnect after a while. This work runs in background. In the
meanwhile, we keep getting beacons and sending FW modify command for each.
This has a potential race, where we modify the CSA after we aborted it.

Protect the flow by setting csa_failed to true in case we abort, and check
it before sending the modify command.

This required a modification to the way we treat csa_failed in
iwl_mvm_post_channel_switch:
1. The variable isn't being reset anymore, so we can still look at it in
iwl_mvm_channel_switch_rx_beacon. This is fine, since we reset it when
starting a new CSA.
2. There is no more early return in case of csa_failed. This is fine,
since before this patch csa_failed was set only for GO, and for GO the
function is only resetting the power settings, which we want to restore
even in case of failure.

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20201209231352.b023856bdf39.I4ed0149e0018fe5e1ae3c2a1cbc614954016063f@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2020-12-10 00:16:02 +02:00
..
cfg iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
dvm iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
fw iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
mvm iwlwifi: mvm: fix a race in CSA that caused assert 0x3420 2020-12-10 00:16:02 +02:00
pcie iwlwifi: pcie: clean up some rx code 2020-12-10 00:16:01 +02:00
queue iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-agn-hw.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-config.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-context-info-gen3.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-context-info.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-csr.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-dbg-tlv.c iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-dbg-tlv.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-debug.c iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-debug.h iwlwifi: mvm: add d3 prints 2020-10-01 22:00:59 +03:00
iwl-devtrace-data.h
iwl-devtrace-io.h
iwl-devtrace-iwlwifi.h
iwl-devtrace-msg.h net: iwlwifi: Remove in_interrupt() from tracing macro. 2020-09-29 14:02:55 -07:00
iwl-devtrace-ucode.h
iwl-devtrace.c
iwl-devtrace.h
iwl-drv.c iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-drv.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-eeprom-parse.c iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-eeprom-parse.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-eeprom-read.c iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-eeprom-read.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-fh.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-io.c iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-io.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-modparams.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-nvm-parse.c iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-nvm-parse.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-op-mode.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-phy-db.c iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-phy-db.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-prph.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-scd.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-trans.c iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-trans.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
Kconfig First set of patches intended for v5.9 2020-06-15 20:23:23 +03:00
Makefile iwlwifi: move PNVM implementation to common code 2020-10-08 20:14:58 +03:00