qcacld-3.0: Reduce the command timeout for Start/Stop BSS command to 10s

Currently the command timeout value in serialization for start_bss
and stop_bss commands for SAP are set to 30 seconds which is too high.

Reduce the command timeout value for SAP start_bss and stop_bss
commands in serialization to 10 seconds.

Change-Id: I1bcfe13de92a703ec55445b344a502f7843bbed8
CRs-Fixed: 2331830
This commit is contained in:
Vignesh Viswanathan
2018-10-11 19:30:44 +05:30
committed by nshrivas
parent 4f797b83dd
commit 865daaaf85
5 changed files with 24 additions and 9 deletions

View File

@@ -5192,7 +5192,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
hdd_debug("Waiting for Scan to complete(auto mode) and BSS to start"); hdd_debug("Waiting for Scan to complete(auto mode) and BSS to start");
qdf_status = qdf_wait_for_event_completion(&hostapd_state->qdf_event, qdf_status = qdf_wait_for_event_completion(&hostapd_state->qdf_event,
SME_CMD_TIMEOUT_VALUE); SME_CMD_START_STOP_BSS_TIMEOUT);
wlansap_reset_sap_config_add_ie(pConfig, eUPDATE_IE_ALL); wlansap_reset_sap_config_add_ie(pConfig, eUPDATE_IE_ALL);
@@ -5397,7 +5397,7 @@ static int __wlan_hdd_cfg80211_stop_ap(struct wiphy *wiphy,
qdf_status = qdf_status =
qdf_wait_for_event_completion(&hostapd_state-> qdf_wait_for_event_completion(&hostapd_state->
qdf_stop_bss_event, qdf_stop_bss_event,
SME_CMD_TIMEOUT_VALUE); SME_CMD_START_STOP_BSS_TIMEOUT);
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
hdd_err("qdf wait for single_event failed!!"); hdd_err("qdf wait for single_event failed!!");

View File

@@ -2146,7 +2146,7 @@ __iw_softap_stopbss(struct net_device *dev,
status = status =
qdf_wait_for_event_completion(&hostapd_state-> qdf_wait_for_event_completion(&hostapd_state->
qdf_stop_bss_event, qdf_stop_bss_event,
SME_CMD_TIMEOUT_VALUE); SME_CMD_START_STOP_BSS_TIMEOUT);
if (!QDF_IS_STATUS_SUCCESS(status)) { if (!QDF_IS_STATUS_SUCCESS(status)) {
hdd_err("wait for single_event failed!!"); hdd_err("wait for single_event failed!!");

View File

@@ -5163,7 +5163,7 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx,
qdf_status = qdf_status =
qdf_wait_for_event_completion( qdf_wait_for_event_completion(
&hostapd_state->qdf_stop_bss_event, &hostapd_state->qdf_stop_bss_event,
SME_CMD_TIMEOUT_VALUE); SME_CMD_START_STOP_BSS_TIMEOUT);
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
hdd_err("failure waiting for wlansap_stop_bss %d", hdd_err("failure waiting for wlansap_stop_bss %d",
@@ -12212,7 +12212,7 @@ void wlan_hdd_stop_sap(struct hdd_adapter *ap_adapter)
sap_context)) { sap_context)) {
qdf_status = qdf_wait_for_event_completion(&hostapd_state-> qdf_status = qdf_wait_for_event_completion(&hostapd_state->
qdf_stop_bss_event, qdf_stop_bss_event,
SME_CMD_TIMEOUT_VALUE); SME_CMD_START_STOP_BSS_TIMEOUT);
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
mutex_unlock(&hdd_ctx->sap_lock); mutex_unlock(&hdd_ctx->sap_lock);
hdd_err("SAP Stop Failed"); hdd_err("SAP Stop Failed");
@@ -12284,7 +12284,7 @@ void wlan_hdd_start_sap(struct hdd_adapter *ap_adapter, bool reinit)
hdd_debug("Waiting for SAP to start"); hdd_debug("Waiting for SAP to start");
qdf_status = qdf_wait_for_event_completion(&hostapd_state->qdf_event, qdf_status = qdf_wait_for_event_completion(&hostapd_state->qdf_event,
SME_CMD_TIMEOUT_VALUE); SME_CMD_START_STOP_BSS_TIMEOUT);
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
hdd_err("SAP Start failed"); hdd_err("SAP Start failed");
goto end; goto end;
@@ -14198,7 +14198,7 @@ void hdd_restart_sap(struct hdd_adapter *ap_adapter)
qdf_status = qdf_status =
qdf_wait_for_event_completion(&hostapd_state-> qdf_wait_for_event_completion(&hostapd_state->
qdf_stop_bss_event, qdf_stop_bss_event,
SME_CMD_TIMEOUT_VALUE); SME_CMD_START_STOP_BSS_TIMEOUT);
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
hdd_err("SAP Stop Failed"); hdd_err("SAP Stop Failed");
@@ -14232,7 +14232,7 @@ void hdd_restart_sap(struct hdd_adapter *ap_adapter)
hdd_info("Waiting for SAP to start"); hdd_info("Waiting for SAP to start");
qdf_status = qdf_status =
qdf_wait_for_event_completion(&hostapd_state->qdf_event, qdf_wait_for_event_completion(&hostapd_state->qdf_event,
SME_CMD_TIMEOUT_VALUE); SME_CMD_START_STOP_BSS_TIMEOUT);
wlansap_reset_sap_config_add_ie(sap_config, wlansap_reset_sap_config_add_ie(sap_config,
eUPDATE_IE_ALL); eUPDATE_IE_ALL);
if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {

View File

@@ -101,6 +101,10 @@
#define SME_ACTIVE_LIST_CMD_TIMEOUT_VALUE (30*1000) #define SME_ACTIVE_LIST_CMD_TIMEOUT_VALUE (30*1000)
#define SME_CMD_TIMEOUT_VALUE (SME_ACTIVE_LIST_CMD_TIMEOUT_VALUE + 1000) #define SME_CMD_TIMEOUT_VALUE (SME_ACTIVE_LIST_CMD_TIMEOUT_VALUE + 1000)
/* SME timeout for Start/Stop BSS commands is set to 10 secs */
#define SME_START_STOP_BSS_CMD_TIMEOUT (10 * 1000)
#define SME_CMD_START_STOP_BSS_TIMEOUT (SME_START_STOP_BSS_CMD_TIMEOUT + 1000)
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
Type declarations Type declarations
------------------------------------------------------------------------*/ ------------------------------------------------------------------------*/

View File

@@ -20395,7 +20395,18 @@ QDF_STATUS csr_set_serialization_params_to_cmd(tpAniSirGlobal mac_ctx,
return status; return status;
} }
cmd->umac_cmd = sme_cmd; cmd->umac_cmd = sme_cmd;
cmd->cmd_timeout_duration = SME_DEFAULT_CMD_TIMEOUT;
/*
* For START BSS and STOP BSS commands for SAP, the command timeout
* is set to 10 seconds. For all other commands its 30 seconds
*/
if ((cmd->vdev->vdev_mlme.vdev_opmode == QDF_SAP_MODE) &&
((cmd->cmd_type == WLAN_SER_CMD_HDD_ISSUED) ||
(cmd->cmd_type == WLAN_SER_CMD_VDEV_STOP_BSS)))
cmd->cmd_timeout_duration = SME_START_STOP_BSS_CMD_TIMEOUT;
else
cmd->cmd_timeout_duration = SME_DEFAULT_CMD_TIMEOUT;
cmd->cmd_cb = sme_ser_cmd_callback; cmd->cmd_cb = sme_ser_cmd_callback;
cmd->is_high_priority = high_priority; cmd->is_high_priority = high_priority;
cmd->is_blocking = true; cmd->is_blocking = true;