mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-11-09 20:31:13 -05:00
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
This commit is contained in:
parent
53e7b0b4b5
commit
d747ecd5d9
1 changed files with 51 additions and 61 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue