qcacmn: Skip recovery if no rso stop rsp from FW

Current issue:
During disconnect host sends RSO STOP command to FW
and expects a response from FW before continuing disconnect.
If roaming is disabled (from supplicant or due to race condition)
before sending RSO STOP cmd then FW does not respond to the request
and host will assert.

Solution:
To handle this case after rso timer stop expiry continue with
disconnect and clean up the rso state.

Change-Id: Iac7b25d881702b87f946fe0ecfba02b1d806f06b
CRs-Fixed: 3301394
This commit is contained in:
Amruta Kulkarni
2022-09-28 13:37:18 -07:00
committed by Madan Koyyalamudi
parent 95857b39a8
commit 5b4c2d3d0c
2 changed files with 9 additions and 5 deletions

View File

@@ -175,10 +175,16 @@ void target_if_vdev_mgr_rsp_timer_cb(void *arg)
} else if (qdf_atomic_test_bit(RSO_STOP_RESPONSE_BIT,
&vdev_rsp->rsp_status)) {
rsp_pos = RSO_STOP_RESPONSE_BIT;
recovery_reason = QDF_RSO_STOP_RSP_TIMEOUT;
target_if_vdev_mgr_rsp_timer_stop(psoc, vdev_rsp, rsp_pos);
target_if_vdev_mgr_handle_recovery(psoc, vdev_id,
recovery_reason, rsp_pos);
/**
* FW did not respond to rso stop cmd, as roaming is
* disabled either due to race condition
* that happened during previous disconnect OR
* supplicant disabled roaming.
* To solve this issue, skip recovery and host will
* continue disconnect and cleanup rso state.
*/
mlme_debug("No rsp from FW received , continue with disconnect");
target_if_send_rso_stop_failure_rsp(psoc, vdev_id);
} else {
mlme_err("PSOC_%d VDEV_%d: Unknown error",