瀏覽代碼

qcacld-3.0: Use proper GFP flags for CFR vendor event allocation

GFP_KERNEL flag is used for vendor event allocation. But the
event is handled in IRQ context. So when kernel tries to
sleep while doing and event skb allocation, assert happens.

Pass the GFP flags based on the context in which allocation
is done.

Change-Id: Id58e417dc2ff203c512a14f06cd31b64e1834ef1
CRs-Fixed: 3812694
Pragaspathi Thilagaraj 1 年之前
父節點
當前提交
06894c9f62
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      core/hdd/src/wlan_hdd_cfg80211.c

+ 2 - 2
core/hdd/src/wlan_hdd_cfg80211.c

@@ -8384,7 +8384,7 @@ void hdd_cfr_data_send_nl_event(uint8_t vdev_id, uint32_t pid,
 	vendor_event = wlan_cfg80211_vendor_event_alloc(
 			hdd_ctx->wiphy, &link_info->adapter->wdev, len,
 			QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG_INDEX,
-			GFP_KERNEL);
+			qdf_mem_malloc_flags());
 
 	if (!vendor_event) {
 		hdd_err("wlan_cfg80211_vendor_event_alloc failed vdev id %d, data len %d",
@@ -8409,7 +8409,7 @@ void hdd_cfr_data_send_nl_event(uint8_t vdev_id, uint32_t pid,
 			hdd_err_rl("nlhdr is null");
 	}
 
-	wlan_cfg80211_vendor_event(vendor_event, GFP_ATOMIC);
+	wlan_cfg80211_vendor_event(vendor_event, qdf_mem_malloc_flags());
 }
 #endif