diff options
author | Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> | 2014-08-11 06:29:57 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-08-26 05:15:58 -0400 |
commit | 970fdfa89babb5a6f1a3d345e8cb54d92c1e3a8f (patch) | |
tree | 05baa20b3aede4591303a27b6581a9fbd79037d8 /drivers/net/wireless/ath/ath6kl/wmi.c | |
parent | 649b2a4da5d8a39c4d7be2fd228cf797819656f9 (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.c | 5 |
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 | } |