Browse Source

qcacld-3.0: Update GFP flag in nl vendor event for CFR data

Host use GFP_KERNEL flag in cfg80211_vendor_event() to send CFR data
via NL event to userspace. Host gets CFR data from FW and processes
it in soft_irq context. To avoid host sleep in soft_irq context, call
cfg80211_vendor_event() with GFP_ATOMIC flag.

Change-Id: I9ab5451eb2650fe177638d0bb3974a9c933a1cf9
CRs-Fixed: 2978140
Abhishek Ambure 3 years ago
parent
commit
da63682687
1 changed files with 2 additions and 2 deletions
  1. 2 2
      core/hdd/src/wlan_hdd_cfg80211.c

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

@@ -6679,6 +6679,7 @@ void hdd_cfr_data_send_nl_event(uint8_t vdev_id, uint32_t pid,
 		return;
 	}
 
+	hdd_debug("vdev id %d pid %d data len %d", vdev_id, pid, data_len);
 	len = nla_total_size(data_len) + NLMSG_HDRLEN;
 	vendor_event = cfg80211_vendor_event_alloc(
 			hdd_ctx->wiphy, &adapter->wdev, len,
@@ -6708,8 +6709,7 @@ void hdd_cfr_data_send_nl_event(uint8_t vdev_id, uint32_t pid,
 			hdd_err_rl("nlhdr is null");
 	}
 
-	hdd_debug("vdev id %d pid %d", vdev_id, pid);
-	cfg80211_vendor_event(vendor_event, GFP_KERNEL);
+	cfg80211_vendor_event(vendor_event, GFP_ATOMIC);
 }
 #endif