summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMahesh A Saptasagar <c_msapta@qti.qualcomm.com>2016-06-29 12:19:50 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-07-04 17:01:37 +0530
commitfc09b83aaedc8cacb5c9af01e2dacda3da57cde3 (patch)
treea3ce70ba2be4a4e8d4f766a25e50740361369a9e
parentc074b79c8a010ead5b3fb682109333ac221010c9 (diff)
qcacld-2.0: Block interface down until pending scan request is aborted
prima to qcacld-2.0 propagation From Kernel-3.18 onwards pending scan request is handled as part of NETDEV_DOWN event, by invoking the cfg80211_scan_done callback which frees the scan request structure. To support this, driver will not invoke scan_done_callback if interface is down. In case, if interface down and up are called back to back there is a chance that kernel frees scan request as part of NETDEV_DOWN and after which before driver triggers scan_done_callback if interface is made up, driver scan_done_callback is through its execution and accesses the freed scan request results in kernel panic. To mitigate this, don't return from hdd_stop until scan request is aborted. Though this fix is to avoid kernel panic due to 3.18 kernel specific changes, it is acceptable across all the kernel versions. Change-Id: Iba8bd7a32fac33e8a0c3eea293aad682a1105397 CRs-Fixed: 977264
-rwxr-xr-xCORE/HDD/src/wlan_hdd_main.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 474b410d2a04..d30ed2fbd7a0 100755
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -11477,8 +11477,7 @@ VOS_STATUS hdd_stop_adapter( hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter,
}
else
{
- hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId,
- eCSR_SCAN_ABORT_DEFAULT);
+ wlan_hdd_scan_abort(pAdapter);
}
if ((pAdapter->device_mode == WLAN_HDD_P2P_CLIENT) ||
(pAdapter->device_mode == WLAN_HDD_P2P_DEVICE)) {