From d747ecd5d9a1ceeb4b1f0b9b3d1d6e7c86ca0da3 Mon Sep 17 00:00:00 2001 From: Dustin Brown Date: Fri, 26 Oct 2018 16:32:22 -0700 Subject: [PATCH] qcacld-3.0: Address style issues in stop adapter To help reduce the complexity of future refactorings in hdd_stop_adapter_ext(), address some simple style issues. Change-Id: Iae67f1d828c1ffcb102a78617c40db1babf5b009 CRs-Fixed: 2342133 --- core/hdd/src/wlan_hdd_main.c | 112 ++++++++++++++++------------------- 1 file changed, 51 insertions(+), 61 deletions(-) diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 5a9caa67b664..e333410e38f7 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -4990,7 +4990,8 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, struct hdd_adapter *adapter, enum hdd_adapter_stop_flag_t flag) { - QDF_STATUS qdf_ret_status = QDF_STATUS_SUCCESS; + QDF_STATUS status = QDF_STATUS_SUCCESS; + struct hdd_station_ctx *sta_ctx; struct csr_roam_profile *roam_profile; union iwreq_data wrqu; tSirUpdateIE updateIE; @@ -5015,11 +5016,11 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, * if this is the last active connection check & stop the * opportunistic timer first */ - if (((policy_mgr_get_connection_count(hdd_ctx->psoc) == 1) && - (policy_mgr_mode_specific_connection_count(hdd_ctx->psoc, - policy_mgr_convert_device_mode_to_qdf_type( - adapter->device_mode), NULL) == 1)) || - !policy_mgr_get_connection_count(hdd_ctx->psoc)) + if ((policy_mgr_get_connection_count(hdd_ctx->psoc) == 1 && + policy_mgr_mode_specific_connection_count(hdd_ctx->psoc, + policy_mgr_convert_device_mode_to_qdf_type( + adapter->device_mode), NULL) == 1) || + !policy_mgr_get_connection_count(hdd_ctx->psoc)) policy_mgr_check_and_stop_opportunistic_timer( hdd_ctx->psoc, adapter->session_id); @@ -5031,22 +5032,23 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, case QDF_IBSS_MODE: case QDF_P2P_DEVICE_MODE: case QDF_NDI_MODE: - if ((QDF_NDI_MODE == adapter->device_mode) || - hdd_conn_is_connected( - WLAN_HDD_GET_STATION_CTX_PTR(adapter)) || - hdd_is_connecting( - WLAN_HDD_GET_STATION_CTX_PTR(adapter))) { + sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter); + + if (adapter->device_mode == QDF_NDI_MODE || + hdd_conn_is_connected(sta_ctx) || + hdd_is_connecting(sta_ctx)) { INIT_COMPLETION(adapter->disconnect_comp_var); + roam_profile = hdd_roam_profile(adapter); /* For NDI do not use roam_profile */ - if (QDF_NDI_MODE == adapter->device_mode) - qdf_ret_status = sme_roam_disconnect( + if (adapter->device_mode == QDF_NDI_MODE) + status = sme_roam_disconnect( mac_handle, adapter->session_id, eCSR_DISCONNECT_REASON_NDI_DELETE); else if (roam_profile->BSSType == eCSR_BSS_TYPE_START_IBSS) - qdf_ret_status = sme_roam_disconnect( + status = sme_roam_disconnect( mac_handle, adapter->session_id, eCSR_DISCONNECT_REASON_IBSS_LEAVE); @@ -5054,15 +5056,13 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, wlan_hdd_disconnect(adapter, eCSR_DISCONNECT_REASON_DEAUTH); else - qdf_ret_status = sme_roam_disconnect( + status = sme_roam_disconnect( mac_handle, adapter->session_id, eCSR_DISCONNECT_REASON_UNSPECIFIED); - /* success implies disconnect command got - * queued up successfully - */ - if (qdf_ret_status == QDF_STATUS_SUCCESS && - QDF_STA_MODE != adapter->device_mode) { + /* success implies disconnect is queued */ + if (QDF_IS_STATUS_SUCCESS(status) && + adapter->device_mode != QDF_STA_MODE) { rc = wait_for_completion_timeout( &adapter->disconnect_comp_var, msecs_to_jiffies @@ -5070,28 +5070,25 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, if (!rc) hdd_warn("disconn_comp_var wait fail"); } - if (qdf_ret_status != QDF_STATUS_SUCCESS) + if (QDF_IS_STATUS_ERROR(status)) hdd_warn("failed to post disconnect"); + memset(&wrqu, '\0', sizeof(wrqu)); wrqu.ap_addr.sa_family = ARPHRD_ETHER; memset(wrqu.ap_addr.sa_data, '\0', ETH_ALEN); wireless_send_event(adapter->dev, SIOCGIWAP, &wrqu, NULL); } - wlan_hdd_scan_abort(adapter); + wlan_hdd_scan_abort(adapter); wlan_hdd_cleanup_actionframe(adapter); wlan_hdd_cleanup_remain_on_channel_ctx(adapter); hdd_clear_fils_connection_info(adapter); + hdd_deregister_tx_flow_control(adapter); #ifdef WLAN_OPEN_SOURCE cancel_work_sync(&adapter->ipv4_notifier_work); -#endif - - hdd_deregister_tx_flow_control(adapter); - #ifdef WLAN_NS_OFFLOAD -#ifdef WLAN_OPEN_SOURCE cancel_work_sync(&adapter->ipv6_notifier_work); #endif #endif @@ -5101,7 +5098,7 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, adapter->dev); if (wlan_hdd_try_disconnect(adapter)) { - hdd_err("Error: Can't disconnect adapter"); + hdd_err("Can't disconnect adapter"); return QDF_STATUS_E_FAILURE; } @@ -5119,35 +5116,31 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, cds_flush_delayed_work(&adapter->acs_pending_work); clear_bit(ACS_PENDING, &adapter->event_flags); } + wlan_hdd_scan_abort(adapter); - /* Flush IPA exception path packets */ + sap_config = &adapter->session.ap.sap_config; - if (sap_config) - wlansap_reset_sap_config_add_ie(sap_config, - eUPDATE_IE_ALL); + wlansap_reset_sap_config_add_ie(sap_config, eUPDATE_IE_ALL); + ucfg_ipa_flush(hdd_ctx->pdev); + if (!(flag & HDD_IN_CAC_WORK_TH_CONTEXT)) cds_flush_work(&hdd_ctx->sap_pre_cac_work); /* fallthrough */ case QDF_P2P_GO_MODE: cds_flush_work(&adapter->sap_stop_bss_work); - - /* Any softap specific cleanup here... */ qdf_atomic_set(&adapter->session.ap.acs_in_progress, 0); wlan_hdd_undo_acs(adapter); + if (adapter->device_mode == QDF_P2P_GO_MODE) wlan_hdd_cleanup_remain_on_channel_ctx(adapter); hdd_deregister_tx_flow_control(adapter); - hdd_destroy_acs_timer(adapter); + mutex_lock(&hdd_ctx->sap_lock); if (test_bit(SOFTAP_BSS_STARTED, &adapter->event_flags)) { - QDF_STATUS status; - QDF_STATUS qdf_status; - - /* Stop Bss. */ status = wlansap_stop_bss( WLAN_HDD_GET_SAP_CTX_PTR(adapter)); @@ -5156,18 +5149,16 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, WLAN_HDD_GET_HOSTAP_STATE_PTR(adapter); qdf_event_reset(&hostapd_state-> qdf_stop_bss_event); - qdf_status = - qdf_wait_for_event_completion( + status = qdf_wait_for_event_completion( &hostapd_state->qdf_stop_bss_event, SME_CMD_START_STOP_BSS_TIMEOUT); - - if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { + if (QDF_IS_STATUS_ERROR(status)) hdd_err("failure waiting for wlansap_stop_bss %d", - qdf_status); - } + status); } else { hdd_err("failure in wlansap_stop_bss"); } + clear_bit(SOFTAP_BSS_STARTED, &adapter->event_flags); policy_mgr_decr_session_set_pcl(hdd_ctx->psoc, adapter->device_mode, @@ -5183,19 +5174,19 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, updateIE.pAdditionIEBuffer = NULL; updateIE.append = false; updateIE.notify = false; + /* Probe bcn reset */ - if (sme_update_add_ie(mac_handle, - &updateIE, eUPDATE_IE_PROBE_BCN) - == QDF_STATUS_E_FAILURE) { - hdd_err("Could not pass on PROBE_RSP_BCN data to PE"); - } + status = sme_update_add_ie(mac_handle, &updateIE, + eUPDATE_IE_PROBE_BCN); + if (status == QDF_STATUS_E_FAILURE) + hdd_err("Could not pass PROBE_RSP_BCN to PE"); + /* Assoc resp reset */ - if (sme_update_add_ie(mac_handle, - &updateIE, - eUPDATE_IE_ASSOC_RESP) == - QDF_STATUS_E_FAILURE) { - hdd_err("Could not pass on ASSOC_RSP data to PE"); - } + status = sme_update_add_ie(mac_handle, &updateIE, + eUPDATE_IE_ASSOC_RESP); + if (status == QDF_STATUS_E_FAILURE) + hdd_err("Could not pass ASSOC_RSP to PE"); + /* Reset WNI_CFG_PROBE_RSP Flags */ wlan_hdd_reset_prob_rspies(adapter); } @@ -5211,10 +5202,7 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, #ifdef WLAN_OPEN_SOURCE cancel_work_sync(&adapter->ipv4_notifier_work); -#endif - #ifdef WLAN_NS_OFFLOAD -#ifdef WLAN_OPEN_SOURCE cancel_work_sync(&adapter->ipv6_notifier_work); #endif #endif @@ -5224,9 +5212,10 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, mutex_unlock(&hdd_ctx->sap_lock); break; case QDF_OCB_MODE: + sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter); cdp_clear_peer(cds_get_context(QDF_MODULE_ID_SOC), - (struct cdp_pdev *)cds_get_context(QDF_MODULE_ID_TXRX), - WLAN_HDD_GET_STATION_CTX_PTR(adapter)->conn_info.staId[0]); + cds_get_context(QDF_MODULE_ID_TXRX), + sta_ctx->conn_info.staId[0]); hdd_deregister_tx_flow_control(adapter); hdd_vdev_destroy(adapter); break; @@ -5242,6 +5231,7 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, } hdd_exit(); + return QDF_STATUS_SUCCESS; }