mirror_ubuntu-kernels/drivers/net/wireless/intel/iwlwifi
Avraham Stern a76b57311b iwlwifi: mvm: don't schedule the roc_done_wk if it is already running
When P2P roc is removed, the IWL_MVM_STATUS_NEED_FLUSH_P2P bit is set
to indicate to iwl_mvm_roc_done_wk() that the removed roc is a P2P
one, so it will flush the broadcast station and not the aux station.

However, since setting this bit and scheduling the worker is done
in roc ended flow as well as in case the roc is removed, there is
a race where the worker has already started running (but did not
test this bit yet) and then it is scheduled again. In this case,
the first run of the worker will clear this bit, and thus the second
run will find it already cleared and will try to flush and remove
the aux station by mistake.

Fix it by scheduling the worker only if this bit is not yet set. In
case this bit is already set, the worker is either running or
scheduled, so there is no need to re-schedule it.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210819183728.8c147659b331.If5924375e9bfd46214ab8ab81cb9d0f5c82fbcbc@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2021-08-26 23:37:07 +03:00
..
cfg iwlwifi: bump FW API to 65 for AX devices 2021-08-26 23:37:05 +03:00
dvm iwlwifi: remove trailing semicolon in macro definition 2021-08-26 23:33:24 +03:00
fw iwlwifi: yoyo: support for new DBGI_SRAM region 2021-08-26 23:37:07 +03:00
mvm iwlwifi: mvm: don't schedule the roc_done_wk if it is already running 2021-08-26 23:37:07 +03:00
pcie iwlwifi: pcie: avoid dma unmap/remap in crash dump 2021-08-26 23:37:06 +03:00
queue iwlwifi: queue: avoid memory leak in reset flow 2021-04-14 12:07:19 +03:00
iwl-agn-hw.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-config.h iwlwifi: read MAC address from correct place on Bz 2021-08-26 23:34:24 +03:00
iwl-context-info-gen3.h iwlwifi: support loading the reduced power table from UEFI 2021-06-22 16:57:57 +03:00
iwl-context-info.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-csr.h iwlwifi: implement Bz NMI behaviour 2021-08-26 23:34:25 +03:00
iwl-dbg-tlv.c iwlwifi: yoyo: cleanup internal buffer allocation in D3 2021-08-26 23:34:20 +03:00
iwl-dbg-tlv.h iwlwifi: prepare for synchronous error dumps 2021-08-26 23:32:21 +03: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 DEFINE_MUTEX() for mutex lock 2021-08-26 23:33:24 +03:00
iwl-drv.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-eeprom-parse.c iwlwifi: remove max_ht_ampdu_exponent config parameter 2021-02-11 01:52:10 +02:00
iwl-eeprom-parse.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-eeprom-read.c iwlwifi: iwl-eeprom-read: Demote one nonconformant function header 2020-12-11 20:24:22 +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: implement Bz NMI behaviour 2021-08-26 23:34:25 +03:00
iwl-io.h iwlwifi: fix the NMI flow for old devices 2021-01-25 15:53:00 +02:00
iwl-modparams.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-nvm-parse.c iwlwifi: add 'Rx control frame to MBSSID' HE capability 2021-08-26 23:37:07 +03:00
iwl-nvm-parse.h iwlmvm: set properly NIC_NOT_ACK_ENABLED flag 2021-02-11 01:52:11 +02:00
iwl-op-mode.h iwlwifi: prepare for synchronous error dumps 2021-08-26 23:32:21 +03:00
iwl-phy-db.c iwlwifi: iwl-phy-db: Add missing struct member description for 'trans' 2020-12-11 20:24:25 +02:00
iwl-phy-db.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-prph.h iwlwifi: yoyo: support for new DBGI_SRAM region 2021-08-26 23:37:07 +03:00
iwl-scd.h iwlwifi: use SPDX tags 2020-12-10 00:15:31 +02:00
iwl-trans.c iwlwifi: trans/pcie: defer transport initialisation 2021-04-14 12:07:21 +03:00
iwl-trans.h iwlwifi: fix __percpu annotation 2021-08-26 23:37:06 +03:00
Kconfig
Makefile iwlwifi: move error dump to fw utils 2021-06-22 16:57:57 +03:00