wlan: check for device mode in cleanup_adapter().
Batch scan is valid only in case of STA, P2P Client and P2P
device. Added a check for the device mode while cleanup.
Change-Id: I5b336fad9eb15af82e0755c9968ebf41af6aa8e9
CRs-Fixed: 594164
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 3a6b667..a7dded4 100755
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -5489,23 +5489,36 @@
void hdd_cleanup_adapter( hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter, tANI_U8 rtnl_held )
{
- struct net_device *pWlanDev = pAdapter->dev;
+ struct net_device *pWlanDev;
+
+ ENTER();
+ if (NULL == pAdapter)
+ {
+ VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
+ "%s: HDD adapter is Null", __func__);
+ return;
+ }
+
+ pWlanDev = pAdapter->dev;
#ifdef FEATURE_WLAN_BATCH_SCAN
+ if ((pAdapter->device_mode == WLAN_HDD_INFRA_STATION)
+ || (pAdapter->device_mode == WLAN_HDD_P2P_CLIENT)
+ || (pAdapter->device_mode == WLAN_HDD_P2P_DEVICE)
+ )
+ {
tHddBatchScanRsp *pNode;
tHddBatchScanRsp *pPrev;
- if (pAdapter)
+ pNode = pAdapter->pBatchScanRsp;
+ while (pNode)
{
- pNode = pAdapter->pBatchScanRsp;
- while (pNode)
- {
- pPrev = pNode;
- pNode = pNode->pNext;
- vos_mem_free((v_VOID_t * )pPrev);
- pPrev = NULL;
- }
- pAdapter->pBatchScanRsp = NULL;
+ pPrev = pNode;
+ pNode = pNode->pNext;
+ vos_mem_free((v_VOID_t * )pPrev);
+ pPrev = NULL;
}
+ pAdapter->pBatchScanRsp = NULL;
+ }
#endif
if(test_bit(NET_DEVICE_REGISTERED, &pAdapter->event_flags)) {
@@ -5521,6 +5534,7 @@
// since the memory has been reclaimed
}
+ EXIT();
}
void hdd_set_pwrparams(hdd_context_t *pHddCtx)