aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath/ath9k
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2013-04-16 10:51:28 +0300
committerJohn W. Linville <linville@tuxdriver.com>2013-04-22 15:20:14 -0400
commit703a4e5521dcd6624a8740c5be597c4fc8e4b9bb (patch)
tree727c0e019543dc1ad7a2117d22c0fdad1831b883 /drivers/net/wireless/ath/ath9k
parentca21cfde84e2cb0d64222cbb2ee2cf3163c5f068 (diff)
ath9k: use GFP_ATOMIC under spinlock
This is called with spinlocks held so we have to use GFP_ATOMIC. It's the sc_pcu_lock in ath9k_stop() that's the issue. The call tree looks like this: ath9k_stop() ath_prepare_reset() ath_stoprecv() ath_flushrecv() ath_rx_tasklet() ath9k_dfs_process_phyerr() pd->add_pulse() => dpd_add_pulse() channel_detector_get() channel_detector_create() pri_detector_init() channel_detector_create() uses GFP_ATOMIC as well. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Tested-by: Zefir Kurtisi <zefir.kurtisi@neratec.com> Acked-by: Zefir Kurtisi <zefir.kurtisi@neratec.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k')
-rw-r--r--drivers/net/wireless/ath/ath9k/dfs_pri_detector.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/dfs_pri_detector.c b/drivers/net/wireless/ath/ath9k/dfs_pri_detector.c
index b3e7cf2da22..344b5d5d369 100644
--- a/drivers/net/wireless/ath/ath9k/dfs_pri_detector.c
+++ b/drivers/net/wireless/ath/ath9k/dfs_pri_detector.c
@@ -406,7 +406,8 @@ static struct pri_sequence *pri_detector_add_pulse(struct pri_detector *de,
struct pri_detector *pri_detector_init(const struct radar_detector_specs *rs)
{
struct pri_detector *de;
- de = kzalloc(sizeof(*de), GFP_KERNEL);
+
+ de = kzalloc(sizeof(*de), GFP_ATOMIC);
if (de == NULL)
return NULL;
de->exit = pri_detector_exit;