linux/drivers/net/wireless
Shaul Triebitz 868a1e863f iwlwifi: pcie: avoid empty free RB queue
If all free RB queues are empty, the driver will never restock the
free RB queue.  That's because the restocking happens in the Rx flow,
and if the free queue is empty there will be no Rx.

Although there's a background worker (a.k.a. allocator) allocating
memory for RBs so that the Rx handler can restock them, the worker may
run only after the free queue has become empty (and then it is too
late for restocking as explained above).

There is a solution for that called 'emergency': If the number of used
RB's reaches half the amount of all RB's, the Rx handler will not wait
for the allocator but immediately allocate memory for the used RB's
and restock the free queue.

But, since the used RB's is per queue, it may happen that the used
RB's are spread between the queues such that the emergency check will
fail for each of the queues
(and still run out of RBs, causing the above symptom).

To fix it, move to emergency mode if the sum of *all* used RBs (for
all Rx queues) reaches half the amount of all RB's

Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2018-10-06 10:25:49 +03:00
..
admtek
ath Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 2018-10-04 08:33:42 +03:00
atmel atmel: Replace mdelay() with msleep() in probe_atmel_card() 2018-07-31 10:25:33 +03:00
broadcom b43: remove set but not used variable 'wl' 2018-10-05 11:38:06 +03:00
cisco airo: remove unused variables len and dev and clean up formatting 2018-07-31 10:17:19 +03:00
intel iwlwifi: pcie: avoid empty free RB queue 2018-10-06 10:25:49 +03:00
intersil wireless-drivers-next patches for 4.20 2018-10-02 11:46:29 -07:00
marvell mwifex: free rx_cmd skb in suspended state 2018-08-31 18:46:53 +03:00
mediatek mt76: mt76x2: fix multi-interface beacon configuration 2018-10-01 13:26:21 +02:00
quantenna qtnfmac: implement dump_station support for STA mode 2018-10-05 14:01:44 +03:00
ralink rt2800: flush and txstatus rework for rt2800mmio 2018-10-01 18:37:35 +03:00
realtek rtlwifi: Removed unused define and code efuse_re_pg* from wifi.h 2018-10-05 11:31:52 +03:00
rsi rsi: Remove unnecessary boolean condition 2018-10-01 18:31:10 +03:00
st cw1200: Remove extra parentheses 2018-08-31 18:42:25 +03:00
ti wlcore: Add support for optional wakeirq 2018-10-05 11:33:31 +03:00
zydas zd1211rw: Replace spin_is_locked() with lockdep 2018-10-05 11:35:05 +03:00
Kconfig
mac80211_hwsim.c wireless: align to draft 11ax D3.0 2018-09-05 10:09:50 +02:00
mac80211_hwsim.h
Makefile
ray_cs.c ray_cs: remove redundant pointer 'p' 2018-07-31 10:19:50 +03:00
ray_cs.h
rayctl.h
rndis_wlan.c
wl3501_cs.c
wl3501.h