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
committad av Madan Koyyalamudi
förälder 95857b39a8
incheckning 5b4c2d3d0c
2 ändrade filer med 9 tillägg och 5 borttagningar

Visa fil

@@ -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",