alistair23-linux/drivers/net/wireless/iwlwifi
Emmanuel Grumbach aecdc63d87 iwlwifi: pcie: fix stuck queue detection for sleeping clients
The stuck queue detection mechanism allows to detect queues
that are stuck. For sleeping clients, a queue may rightfully
be stuck: if a poor client implementation stays asleep for
more than 10s, then we don't want to trigger recovery flows
because of that client.
In order to cope with this, I added a mechanism that
monitors the state of the client: when a client goes to
sleep, the timer of his queues is frozen. When he wakes up,
the timer is reset to the right value so that if a client
was awake for more than 10s and the queues are stuck, only
then, the recovery flow will kick in.
This is valid only on non-shared queues: A-MPDU queues.

There was a bug in case we Tx to a sleeping client that has
an empty A-MPDU queue: the timer was armed to now + 10s.
This is bad, but pretty harmless.
The problem is that when the client wakes up, the timer is
modified to be now + remainder. But remainder is 0 since the
queue was empty when that client went to sleep...

Fix this by checking the state of the client before playing
with the timer when we add a packet to an empty queue.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
2015-07-30 21:38:14 +03:00
..
dvm mac80211: convert HW flags to unsigned long bitmap 2015-06-10 16:05:36 +02:00
mvm iwlwifi: mvm: Fix regular scan priority 2015-07-28 11:36:02 +03:00
pcie iwlwifi: pcie: fix stuck queue detection for sleeping clients 2015-07-30 21:38:14 +03:00
iwl-1000.c
iwl-2000.c
iwl-5000.c
iwl-6000.c
iwl-7000.c iwlwifi: bump the iwlmvm API number to 15 2015-06-03 09:54:18 +03:00
iwl-8000.c iwlwifi: bump the iwlmvm API number to 15 2015-06-03 09:54:18 +03:00
iwl-agn-hw.h
iwl-config.h iwlwifi: pcie: Control access to the NIC's PM registers via iwl_cfg 2015-06-03 09:40:56 +03:00
iwl-csr.h
iwl-debug.c
iwl-debug.h
iwl-devtrace-data.h
iwl-devtrace-io.h
iwl-devtrace-iwlwifi.h iwlwifi: tracing: add rx cmd header fields 2015-05-28 13:35:24 +03:00
iwl-devtrace-msg.h
iwl-devtrace-ucode.h
iwl-devtrace.c
iwl-devtrace.h
iwl-drv.c iwlwifi: prepare for higher API/CAPA bits 2015-06-03 09:45:37 +03:00
iwl-drv.h
iwl-eeprom-parse.c iwlwifi: mvm: forbid MIMO on devices that don't support it 2015-05-10 11:44:42 +03:00
iwl-eeprom-parse.h iwlwifi: mvm: forbid MIMO on devices that don't support it 2015-05-10 11:44:42 +03:00
iwl-eeprom-read.c
iwl-eeprom-read.h
iwl-fh.h Revert "iwlwifi: pcie: New RBD allocation model" 2015-07-12 19:54:19 +03:00
iwl-fw-error-dump.h iwlwifi: mvm: implement the BlockAck related debug triggers 2015-05-28 13:36:54 +03:00
iwl-fw-file.h iwlwifi: mvm: Add DC2DC_CONFIG_CMD (0x83) cmd & TLV 2015-06-03 09:52:44 +03:00
iwl-fw.h iwlwifi: prepare for higher API/CAPA bits 2015-06-03 09:45:37 +03:00
iwl-io.c
iwl-io.h
iwl-modparams.h
iwl-notif-wait.c
iwl-notif-wait.h
iwl-nvm-parse.c iwlwifi: nvm: remove mac address byte swapping in 8000 family 2015-07-12 19:54:19 +03:00
iwl-nvm-parse.h
iwl-op-mode.h
iwl-phy-db.c
iwl-phy-db.h
iwl-prph.h
iwl-scd.h
iwl-trans.c iwlwifi: refactor common transport alloc/init code 2015-05-28 13:32:34 +03:00
iwl-trans.h iwlwifi: pcie: re-enable interrupts on resume 2015-06-03 09:41:42 +03:00
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-06-01 22:51:30 -07:00
Makefile iwlwifi: refactor common transport alloc/init code 2015-05-28 13:32:34 +03:00