mirror_ubuntu-kernels/drivers/net/wireless/ath
Raja Mani c8ecfc1c33 ath10k: fix memory alloc failure in qca99x0 during wmi svc rdy event
Host memory required for firmware is allocated while handling
wmi service ready event. Right now, wmi service ready is handled
in tasklet context and it calls dma_alloc_coherent() with atomic
flag (GFP_ATOMIC) to allocate memory in host needed for firmware.
The problem is, dma_alloc_coherent() with GFP_ATOMIC fails in
the platform (at least in AP platform) where it has less atomic
pool memory (< 2mb). QCA99X0 requires around 2 MB of host memory
for one card, having additional QCA99X0 card in the same platform
will require similarly amount of memory. So, it's not guaranteed that
all the platform will have enough atomic memory pool.

Fix this issue, by handling wmi service ready event in workqueue
context and calling dma_alloc_coherent() with GFP_KERNEL. mac80211 work
queue will not be ready at the time of handling wmi service ready.
So, it can't be used to handle wmi service ready. Also, register work
gets scheduled during insmod in existing ath10k_wq and waits for
wmi service ready to completed. Both workqueue can't be used for
this purpose. New auxiliary workqueue is added to handle wmi service
ready.

Signed-off-by: Raja Mani <rmani@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2015-07-30 16:54:28 +03:00
..
ar5523 mac80211: convert HW flags to unsigned long bitmap 2015-06-10 16:05:36 +02:00
ath5k mac80211: convert HW flags to unsigned long bitmap 2015-06-10 16:05:36 +02:00
ath6kl ath6kl: spell "distribution" correctly in a comment. 2015-07-29 11:14:04 +03:00
ath9k ath9k: DFS - add pulse chirp detection for FCC 2015-07-11 19:51:53 +03:00
ath10k ath10k: fix memory alloc failure in qca99x0 during wmi svc rdy event 2015-07-30 16:54:28 +03:00
carl9170 mac80211: convert HW flags to unsigned long bitmap 2015-06-10 16:05:36 +02:00
wcn36xx mac80211: convert HW flags to unsigned long bitmap 2015-06-10 16:05:36 +02:00
wil6210 Merge ath-next from ath.git. 2015-07-21 11:36:56 +03:00
ath.h ath9k: Add a new debug flag for FFT spectral scan 2015-05-09 16:46:08 +03:00
debug.c
dfs_pattern_detector.c Merge ath-next from ath.git 2015-04-28 14:44:19 +03:00
dfs_pattern_detector.h ath: introduce chirp parameter used by DFS 2015-03-05 15:55:16 +02:00
dfs_pri_detector.c ath: DFS - limit number of potential PRI sequences 2015-06-30 15:33:32 +03:00
dfs_pri_detector.h
hw.c
Kconfig ath: Add support for tracing 2014-10-02 14:23:14 -04:00
key.c
main.c ath: Fix smatch warning 2014-10-07 14:48:37 -04:00
Makefile ath: Add support for tracing 2014-10-02 14:23:14 -04:00
reg.h
regd_common.h
regd.c ath: use CTL region from cfg80211 if unset in EEPROM 2014-10-23 14:02:06 -04:00
regd.h
spectral_common.h ath10k: add spectral scan feature 2014-08-04 09:07:54 +03:00
trace.c ath: Add support for tracing 2014-10-02 14:23:14 -04:00
trace.h ath: Add support for tracing 2014-10-02 14:23:14 -04:00