linux/drivers/net/wireless/intel/iwlwifi
Johannes Berg 6e46496302 iwlwifi: mvm: remove DQA non-STA client mode special case
When we get a non-STA frame to transmit in client mode, we try to use
the IWL_MVM_DQA_BSS_CLIENT_QUEUE queue (queue #4). However, at this
point, the queue might not be allocated at all, causing warnings. The
scenario on which this happened was a race condition between mac80211
and our queue allocation work:
 * mac80211 sends auth
 * we stop mac80211 queues to allocate a hw queue
 * authentication is aborted
 * we allocate HW queue and start mac80211 queues
 * mac80211 removes station
 * mac80211 hands us the auth frame from the pending queue

At this point, since mac80211 has already removed the station, we try
to transmit the frame through this special non-station case on queue
4 anyway.

In order to really use it properly, we'd have to again go through the
hw queue allocation work, and attach it to a station, etc. In this
case that isn't possible (there's no station anymore), but if this
special case were needed, then we'd have to do it this way.

However, the special case is documented to exist for TDLS, but can't
trigger there because the TDLS setup frames etc. are normal to-DS
frames going to the peer through the AP. Testing also confirms that
this code path isn't triggered in TDLS.

Therefore, remove the code path to avoid using an unused queue. The
erroneous frame described above will still be transmitted on the AUX
queue, but arguably that's a mac80211 problem, which will eventually
be fixed by moving everything there to TXQs.

Fixes: e3118ad74d ("iwlwifi: mvm: support tdls in dqa mode")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2017-06-29 20:42:18 +03:00
..
cfg iwlwifi: move configuration into sub-directory 2017-06-29 13:26:27 +03:00
dvm iwlwifi: move notification wait into fw/ 2017-06-29 13:26:27 +03:00
fw iwlwifi: move notification wait into fw/ 2017-06-29 13:26:27 +03:00
mvm iwlwifi: mvm: remove DQA non-STA client mode special case 2017-06-29 20:42:18 +03:00
pcie iwlwifi: pcie: reconfigure MSI-X HW on resume 2017-06-29 20:40:05 +03:00
iwl-agn-hw.h
iwl-config.h iwlwifi: add the new a000_2ax series 2017-06-29 13:26:24 +03:00
iwl-context-info.h iwlwifi: pcie: add context information support 2017-04-11 15:19:34 +03:00
iwl-csr.h iwlwifi: pcie: fix 9000-series RF-kill interrupt propagation 2017-06-29 13:26:24 +03:00
iwl-debug.c
iwl-debug.h iwlwifi: add missing type declaration 2016-07-12 14:51:57 +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 iwlwifi: don't export trace points that are used in iwlwifi only 2016-09-19 10:09:41 +03:00
iwl-devtrace.h iwlwifi: tracing: decouple from mac80211 2016-07-06 10:08:56 +03:00
iwl-drv.c iwlwifi: create new subdirectory for FW interaction 2017-06-29 13:26:27 +03: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 iwlwifi: advertise maximal MPDU length when Rx MQ is supported 2016-07-01 16:51:22 +03:00
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: add 9000 and A000 device families 2017-06-05 23:29:37 +03:00
iwl-io.h iwlwifi: centralize 64 bit HW registers write 2016-07-06 10:22:08 +03:00
iwl-modparams.h iwlwifi: unify external & internal modparam names 2017-06-29 13:26:25 +03:00
iwl-nvm-parse.c iwlwifi: mvm: print base HW address during init 2017-06-23 12:20:16 +03:00
iwl-nvm-parse.h iwlwifi: adjust NVM parsing APIs for new a000 method 2017-04-25 23:08: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 iwlwifi: mvm: remove redundant alloc_ctx parameter 2016-05-10 22:34:03 +03:00
iwl-prph.h iwlwifi: use bitfield.h for some registers 2017-06-23 00:13:00 +03:00
iwl-scd.h
iwl-trans.c iwlwifi: pcie: don't report RF-kill enabled while shutting down 2017-06-23 00:13:01 +03:00
iwl-trans.h iwlwifi: create new subdirectory for FW interaction 2017-06-29 13:26:27 +03:00
Kconfig iwlwifi: make RTPM depend on EXPERT 2017-02-08 17:54:20 +02:00
Makefile iwlwifi: move configuration into sub-directory 2017-06-29 13:26:27 +03:00