diff options
| author | Mahesh A Saptasagar <c_msapta@qti.qualcomm.com> | 2016-06-29 12:19:50 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-07-04 17:01:37 +0530 |
| commit | fc09b83aaedc8cacb5c9af01e2dacda3da57cde3 (patch) | |
| tree | a3ce70ba2be4a4e8d4f766a25e50740361369a9e | |
| parent | c074b79c8a010ead5b3fb682109333ac221010c9 (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-x | CORE/HDD/src/wlan_hdd_main.c | 3 |
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)) { |
