From 69ccb5164f748abab33e7fd6045b5dfbb10279e1 Mon Sep 17 00:00:00 2001 From: Abhishek Singh Date: Tue, 25 Apr 2017 11:58:16 +0530 Subject: [PATCH] qcacld-3.0: Use common scan api to wait on scan to get completed Add changes to use common scan api to wait on scan to get completed Change-Id: I45181908a6a81de21e4ba906f54ae3190aa212d0 CRs-Fixed: 2038093 --- core/hdd/src/wlan_hdd_cfg80211.c | 5 ++--- core/hdd/src/wlan_hdd_hostapd.c | 21 ++++----------------- core/hdd/src/wlan_hdd_main.c | 20 ++++---------------- core/hdd/src/wlan_hdd_p2p.c | 5 ++--- core/hdd/src/wlan_hdd_power.c | 20 +++----------------- core/hdd/src/wlan_hdd_scan.c | 26 +++++++------------------- core/hdd/src/wlan_hdd_wext.c | 5 ++--- 7 files changed, 24 insertions(+), 78 deletions(-) diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 01293e2eda90..4fc9c9203cd5 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -14756,9 +14756,8 @@ static int __wlan_hdd_cfg80211_disconnect(struct wiphy *wiphy, pScanInfo = &pAdapter->scan_info; if (pScanInfo->mScanPending) { hdd_debug("Disconnect is in progress, Aborting Scan"); - hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId, - INVALID_SCAN_ID, - eCSR_SCAN_ABORT_DEFAULT); + wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, + pAdapter->sessionId, INVALID_SCAN_ID, false); } wlan_hdd_cleanup_remain_on_channel_ctx(pAdapter); #ifdef FEATURE_WLAN_TDLS diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c index 564d0f653464..d285d5ac977b 100644 --- a/core/hdd/src/wlan_hdd_hostapd.c +++ b/core/hdd/src/wlan_hdd_hostapd.c @@ -1675,9 +1675,8 @@ QDF_STATUS hdd_hostapd_sap_event_cb(tpSap_Event pSapEvent, pScanInfo = &pHostapdAdapter->scan_info; /* Lets abort scan to ensure smooth authentication for client */ if ((pScanInfo != NULL) && pScanInfo->mScanPending) { - hdd_abort_mac_scan(pHddCtx, pHostapdAdapter->sessionId, - INVALID_SCAN_ID, - eCSR_SCAN_ABORT_DEFAULT); + wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, + pHostapdAdapter->sessionId, INVALID_SCAN_ID, false); } if (pHostapdAdapter->device_mode == QDF_P2P_GO_MODE) { /* send peer status indication to oem app */ @@ -8042,7 +8041,6 @@ static int __wlan_hdd_cfg80211_stop_ap(struct wiphy *wiphy, tSirUpdateIE updateIE; beacon_data_t *old; int ret; - unsigned long rc; hdd_adapter_list_node_t *pAdapterNode = NULL; hdd_adapter_list_node_t *pNext = NULL; @@ -8101,19 +8099,8 @@ static int __wlan_hdd_cfg80211_stop_ap(struct wiphy *wiphy, if (pScanInfo && pScanInfo->mScanPending) { hdd_debug("Aborting pending scan for device mode:%d", staAdapter->device_mode); - INIT_COMPLETION(pScanInfo->abortscan_event_var); - hdd_abort_mac_scan(staAdapter->pHddCtx, - staAdapter->sessionId, - INVALID_SCAN_ID, - eCSR_SCAN_ABORT_DEFAULT); - rc = wait_for_completion_timeout( - &pScanInfo->abortscan_event_var, - msecs_to_jiffies( - WLAN_WAIT_TIME_ABORTSCAN)); - if (!rc) { - hdd_err("Timeout occurred while waiting for abortscan"); - QDF_ASSERT(pScanInfo->mScanPending); - } + wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, + staAdapter->sessionId, INVALID_SCAN_ID, true); } } diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index aee0657b5157..eeb6353e5e3f 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -438,19 +438,8 @@ static int __hdd_netdev_notifier_call(struct notifier_block *nb, case NETDEV_GOING_DOWN: if (adapter->scan_info.mScanPending != false) { - unsigned long rc; - - INIT_COMPLETION(adapter->scan_info. - abortscan_event_var); - hdd_abort_mac_scan(adapter->pHddCtx, - adapter->sessionId, - INVALID_SCAN_ID, - eCSR_SCAN_ABORT_DEFAULT); - rc = wait_for_completion_timeout( - &adapter->scan_info.abortscan_event_var, - msecs_to_jiffies(WLAN_WAIT_TIME_ABORTSCAN)); - if (!rc) - hdd_err("Timeout occurred while waiting for abortscan"); + wlan_abort_scan(hdd_ctx->hdd_pdev, INVAL_PDEV_ID, + adapter->sessionId, INVALID_SCAN_ID, true); } else { hdd_debug("Scan is not Pending from user"); } @@ -4898,9 +4887,8 @@ QDF_STATUS hdd_abort_mac_scan_all_adapters(hdd_context_t *hdd_ctx) (adapter->device_mode == QDF_P2P_DEVICE_MODE) || (adapter->device_mode == QDF_SAP_MODE) || (adapter->device_mode == QDF_P2P_GO_MODE)) { - hdd_abort_mac_scan(hdd_ctx, adapter->sessionId, - INVALID_SCAN_ID, - eCSR_SCAN_ABORT_DEFAULT); + wlan_abort_scan(hdd_ctx->hdd_pdev, INVAL_PDEV_ID, + adapter->sessionId, INVALID_SCAN_ID, false); } status = hdd_get_next_adapter(hdd_ctx, adapterNode, &pNext); adapterNode = pNext; diff --git a/core/hdd/src/wlan_hdd_p2p.c b/core/hdd/src/wlan_hdd_p2p.c index f0409441bee5..7526b82672cb 100644 --- a/core/hdd/src/wlan_hdd_p2p.c +++ b/core/hdd/src/wlan_hdd_p2p.c @@ -2289,9 +2289,8 @@ struct wireless_dev *__wlan_hdd_add_virtual_intf(struct wiphy *wiphy, !(wlan_hdd_validate_session_id(pAdapter->sessionId))) { scan_info = &pAdapter->scan_info; if (scan_info->mScanPending) { - hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId, - INVALID_SCAN_ID, - eCSR_SCAN_ABORT_DEFAULT); + wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, + pAdapter->sessionId, INVALID_SCAN_ID, false); hdd_debug("Abort Scan while adding virtual interface"); } } diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c index d7767d766992..1ede2a5bdf5a 100644 --- a/core/hdd/src/wlan_hdd_power.c +++ b/core/hdd/src/wlan_hdd_power.c @@ -1832,23 +1832,9 @@ next_adapter: return -EAGAIN; } - if (pScanInfo->mScanPending) { - INIT_COMPLETION(pScanInfo->abortscan_event_var); - hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId, - INVALID_SCAN_ID, - eCSR_SCAN_ABORT_DEFAULT); - - status = - wait_for_completion_timeout(&pScanInfo-> - abortscan_event_var, - msecs_to_jiffies(WLAN_WAIT_TIME_ABORTSCAN)); - if (!status) { - hdd_err("Timeout occurred while waiting for abort scan"); - wlan_hdd_inc_suspend_stats(pHddCtx, - SUSPEND_FAIL_SCAN); - return -ETIME; - } - } + if (pScanInfo->mScanPending) + wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, + pAdapter->sessionId, INVALID_SCAN_ID, true); status = hdd_get_next_adapter(pHddCtx, pAdapterNode, &pNext); pAdapterNode = pNext; } diff --git a/core/hdd/src/wlan_hdd_scan.c b/core/hdd/src/wlan_hdd_scan.c index 762a602f3cad..dfc4f0e5be78 100644 --- a/core/hdd/src/wlan_hdd_scan.c +++ b/core/hdd/src/wlan_hdd_scan.c @@ -1031,7 +1031,8 @@ void hdd_abort_mac_scan(hdd_context_t *pHddCtx, uint8_t sessionId, #ifndef NAPIER_SCAN sme_abort_mac_scan(pHddCtx->hHal, sessionId, scan_id, reason); #else - wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, sessionId, scan_id); + wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, + sessionId, scan_id, false); #endif } /** @@ -2430,10 +2431,8 @@ static int __wlan_hdd_vendor_abort_scan( cookie); if (ret != 0) return ret; - hdd_abort_mac_scan(hdd_ctx, - HDD_SESSION_ID_INVALID, - scan_id, - eCSR_SCAN_ABORT_DEFAULT); + wlan_abort_scan(hdd_ctx->hdd_pdev, INVAL_PDEV_ID, + HDD_SESSION_ID_INVALID, scan_id, false); } #else wlan_vendor_abort_scan(hdd_ctx->hdd_pdev, data, @@ -2480,23 +2479,12 @@ int wlan_hdd_scan_abort(hdd_adapter_t *pAdapter) { hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX(pAdapter); hdd_scaninfo_t *pScanInfo = NULL; - unsigned long rc; pScanInfo = &pAdapter->scan_info; - if (pScanInfo->mScanPending) { - INIT_COMPLETION(pScanInfo->abortscan_event_var); - hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId, - INVALID_SCAN_ID, eCSR_SCAN_ABORT_DEFAULT); - - rc = wait_for_completion_timeout( - &pScanInfo->abortscan_event_var, - msecs_to_jiffies(5000)); - if (!rc) { - hdd_err("Timeout occurred while waiting for abort scan"); - return -ETIME; - } - } + if (pScanInfo->mScanPending) + wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, + pAdapter->sessionId, INVALID_SCAN_ID, true); return 0; } diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index 336b15d18132..67d359f2a9c0 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -12374,9 +12374,8 @@ int hdd_set_band(struct net_device *dev, u8 ui_band) while (NULL != pAdapterNode && QDF_STATUS_SUCCESS == status) { pAdapter = pAdapterNode->pAdapter; hHal = WLAN_HDD_GET_HAL_CTX(pAdapter); - hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId, - INVALID_SCAN_ID, - eCSR_SCAN_ABORT_DUE_TO_BAND_CHANGE); + wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, + pAdapter->sessionId, INVALID_SCAN_ID, false); connectedBand = hdd_conn_get_connected_band (WLAN_HDD_GET_STATION_CTX_PTR(pAdapter));