aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath6kl/wmi.c
diff options
context:
space:
mode:
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>2014-08-11 06:29:57 -0400
committerJohannes Berg <johannes.berg@intel.com>2014-08-26 05:15:58 -0400
commit970fdfa89babb5a6f1a3d345e8cb54d92c1e3a8f (patch)
tree05baa20b3aede4591303a27b6581a9fbd79037d8 /drivers/net/wireless/ath/ath6kl/wmi.c
parent649b2a4da5d8a39c4d7be2fd228cf797819656f9 (diff)
cfg80211: remove @gfp parameter from cfg80211_rx_mgmt()
In the cfg80211_rx_mgmt(), parameter @gfp was used for the memory allocation. But, memory get allocated under spin_lock_bh(), this implies atomic context. So, one can't use GFP_KERNEL, only variants with no __GFP_WAIT. Actually, in all occurrences GFP_ATOMIC is used (wil6210 use GFP_KERNEL by mistake), and it should be this way or warning triggered in the memory allocation code. Remove @gfp parameter as no actual choice exist, and use hard coded GFP_ATOMIC for memory allocation. Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/wmi.c')
-rw-r--r--drivers/net/wireless/ath/ath6kl/wmi.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.c b/drivers/net/wireless/ath/ath6kl/wmi.c
index 94df345d08c2..77fcca1f5bd6 100644
--- a/drivers/net/wireless/ath/ath6kl/wmi.c
+++ b/drivers/net/wireless/ath/ath6kl/wmi.c
@@ -619,8 +619,7 @@ static int ath6kl_wmi_rx_probe_req_event_rx(struct wmi *wmi, u8 *datap, int len,
619 dlen, freq, vif->probe_req_report); 619 dlen, freq, vif->probe_req_report);
620 620
621 if (vif->probe_req_report || vif->nw_type == AP_NETWORK) 621 if (vif->probe_req_report || vif->nw_type == AP_NETWORK)
622 cfg80211_rx_mgmt(&vif->wdev, freq, 0, ev->data, dlen, 0, 622 cfg80211_rx_mgmt(&vif->wdev, freq, 0, ev->data, dlen, 0);
623 GFP_ATOMIC);
624 623
625 return 0; 624 return 0;
626} 625}
@@ -659,7 +658,7 @@ static int ath6kl_wmi_rx_action_event_rx(struct wmi *wmi, u8 *datap, int len,
659 return -EINVAL; 658 return -EINVAL;
660 } 659 }
661 ath6kl_dbg(ATH6KL_DBG_WMI, "rx_action: len=%u freq=%u\n", dlen, freq); 660 ath6kl_dbg(ATH6KL_DBG_WMI, "rx_action: len=%u freq=%u\n", dlen, freq);
662 cfg80211_rx_mgmt(&vif->wdev, freq, 0, ev->data, dlen, 0, GFP_ATOMIC); 661 cfg80211_rx_mgmt(&vif->wdev, freq, 0, ev->data, dlen, 0);
663 662
664 return 0; 663 return 0;
665} 664}