ath10k: fix kernel panic while shutting down AP
authorRajkumar Manoharan <rmanohar@qti.qualcomm.com>
Fri, 10 Oct 2014 12:08:27 +0000 (17:38 +0530)
committerKalle Valo <kvalo@qca.qualcomm.com>
Sun, 12 Oct 2014 17:43:05 +0000 (20:43 +0300)
Based on GFP flag given to DMA coherent allocation, the behaviour of
dma_free_coherent is changed. This behavioural diffrence is noticeable
in ARM platform. If DMA memory is allocated with GFP_KERNEL, free
coherent can not be called inside spin lock. This is causing kernel
crash in ARM platforms. Fix this by changing GFP flag to atomic.

This is most likely a regression from commit 64badcb6d645 ("ath10k: workaround
fw beaconing bug").

Cc: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/mac.c

index 11918575decca280b05517c7742b0c7c9f803ac7..b2bd80c4f72c6a9672518b0f9bd0cd35712b07a2 100644 (file)
@@ -2839,7 +2839,7 @@ static int ath10k_add_interface(struct ieee80211_hw *hw,
                arvif->beacon_buf = dma_zalloc_coherent(ar->dev,
                                                        IEEE80211_MAX_FRAME_LEN,
                                                        &arvif->beacon_paddr,
-                                                       GFP_KERNEL);
+                                                       GFP_ATOMIC);
                if (!arvif->beacon_buf) {
                        ret = -ENOMEM;
                        ath10k_warn(ar, "failed to allocate beacon buffer: %d\n",