mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 00:00:00 -04:00
qcacld-3.0: Check if vdev is up before sending vdev down to FW
When auth timeout failure happens, as part of clean up process vdev down is sent to FW but the vdev up happens only after the assoc response is received. Sending the vdev down to without vdev up leads to negative vdev up count value in the FW. Check if vdev is up before sending the vdev down. Change-Id: Ia5394390d376c638b3976d446a6ecc98d0584159 CRs-Fixed: 1051760
This commit is contained in:
parent
cd60427e60
commit
5ea22bcb56
1 changed files with 25 additions and 16 deletions
|
|
@ -1400,17 +1400,21 @@ int wma_vdev_stop_resp_handler(void *handle, uint8_t *cmd_param_info,
|
|||
peer, false);
|
||||
}
|
||||
|
||||
if (wmi_unified_vdev_down_send(wma->wmi_handle,
|
||||
if (wma->interfaces[resp_event->vdev_id].vdev_up) {
|
||||
if (wmi_unified_vdev_down_send(wma->wmi_handle,
|
||||
resp_event->vdev_id) !=
|
||||
QDF_STATUS_SUCCESS) {
|
||||
WMA_LOGE("Failed to send vdev down cmd: vdev %d",
|
||||
resp_event->vdev_id);
|
||||
} else {
|
||||
wma->interfaces[resp_event->vdev_id].vdev_up = false;
|
||||
QDF_STATUS_SUCCESS) {
|
||||
WMA_LOGE("Failed to send vdev down: vdev %d",
|
||||
resp_event->vdev_id);
|
||||
} else {
|
||||
wma->interfaces[resp_event->vdev_id].vdev_up =
|
||||
false;
|
||||
#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
|
||||
if (mac_ctx->sap.sap_channel_avoidance)
|
||||
wma_find_mcc_ap(wma, resp_event->vdev_id, false);
|
||||
if (mac_ctx->sap.sap_channel_avoidance)
|
||||
wma_find_mcc_ap(wma,
|
||||
resp_event->vdev_id, false);
|
||||
#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
|
||||
}
|
||||
}
|
||||
ol_txrx_vdev_flush(iface->handle);
|
||||
WMA_LOGD("%s, vdev_id: %d, un-pausing tx_ll_queue for VDEV_STOP rsp",
|
||||
|
|
@ -2400,16 +2404,21 @@ void wma_vdev_resp_timer(void *data)
|
|||
peer, false);
|
||||
}
|
||||
|
||||
if (wmi_unified_vdev_down_send(wma->wmi_handle,
|
||||
tgt_req->vdev_id) != QDF_STATUS_SUCCESS) {
|
||||
WMA_LOGE("Failed to send vdev down cmd: vdev %d",
|
||||
tgt_req->vdev_id);
|
||||
} else {
|
||||
wma->interfaces[tgt_req->vdev_id].vdev_up = false;
|
||||
if (wma->interfaces[tgt_req->vdev_id].vdev_up) {
|
||||
if (wmi_unified_vdev_down_send(wma->wmi_handle,
|
||||
tgt_req->vdev_id) !=
|
||||
QDF_STATUS_SUCCESS) {
|
||||
WMA_LOGE("Failed to send vdev down: vdev %d",
|
||||
tgt_req->vdev_id);
|
||||
} else {
|
||||
wma->interfaces[tgt_req->vdev_id].vdev_up =
|
||||
false;
|
||||
#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
|
||||
if (mac_ctx->sap.sap_channel_avoidance)
|
||||
wma_find_mcc_ap(wma, tgt_req->vdev_id, false);
|
||||
if (mac_ctx->sap.sap_channel_avoidance)
|
||||
wma_find_mcc_ap(wma, tgt_req->vdev_id,
|
||||
false);
|
||||
#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
|
||||
}
|
||||
}
|
||||
ol_txrx_vdev_flush(iface->handle);
|
||||
WMA_LOGD("%s, vdev_id: %d, un-pausing tx_ll_queue for WDA_DELETE_BSS_REQ timeout",
|
||||
|
|
|
|||
Loading…
Reference in a new issue