linux/drivers/net/wireless/intel/iwlwifi
Johannes Berg 37e474acc9 iwlwifi: mvm: fix mac80211 queue tracking
In the driver, we track which hardware queue is associated with
which mac80211 "hw_queue", in order to be able to stop and wake
it. When moving these bitmaps out of the queue_info structures,
the type of the bitmap was erroneously changed from u32 to u8,
presumably in order to save memory.

Turns out that u32 isn't needed, because the highest queue we
can ever tell mac80211 is always < 16, but a u16 definitely is
needed, queues >=8 do happen.

While at it, throw a BUILD_BUG_ON() into the place where we set
the limit (mvm->first_agg_queue) and a warning when it actually
gets put into the bitmap.

The consequence of this bug is that full HW queues associated
with such a too-high mac80211 number never stop higher layer
queues when full, and thus would simply drop all packets that
couldn't be enqueued to the hardware queue.

Fixes: 34e10860ae ("iwlwifi: mvm: remove references to queue_info in new TX path")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2017-06-29 20:37:43 +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: fix mac80211 queue tracking 2017-06-29 20:37:43 +03:00
pcie iwlwifi: pcie: add MSI-X interrupt tracing 2017-06-29 20:27:48 +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