summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNakul Kachhwaha <nkachh@codeaurora.org>2017-09-22 12:28:57 +0530
committersnandini <snandini@codeaurora.org>2017-10-06 04:26:25 -0700
commit479ae5259bdc01e8c1809755ce2bf9cd9f8df931 (patch)
treead9eecfb3121f95d1dfbdbb2ec058346d5aa6b6f
parent59aae97a43e381237c78ffa6c42d6d7469981747 (diff)
qcacld-2.0: Fixing assertion in kernel during module unload
scan_done notification is not sent to the cfg80211 layer from SME Scan callback while module unloading is in progress (CR 1059683). This causing assertion in kernel. To avoid assertion set scan_req->notified to true. Change-Id: Id41a3d50871b2f4585297e57b9bbe7f5ea4640d6 CRs-Fixed: 2112296
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 2ed1feb78c63..58743c86bbb3 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -20830,6 +20830,15 @@ static inline bool wlan_hdd_cfg80211_validate_scan_req(struct
return false;
}
if (vos_is_load_unload_in_progress(VOS_MODULE_ID_HDD, NULL)) {
+ /* As per CR1059683, not invoking cfg80211_scan_done when module
+ load/unload is in progress, but this is causing assertion in
+ cfg80211 in kernel. Hence setting scan_req->notified to avoid
+ assertion. Kernel will take care of memory cleanup.
+ */
+ scan_req->notified = true;
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0))
+ scan_req->info.aborted = true;
+#endif
hddLog(VOS_TRACE_LEVEL_ERROR, "Load/Unload in progress");
return false;
}