qcacld-3.0: Fix RSO state change in disconnected state
When roaming has started and connect request from userspace is received, disconnect is initiated as part of the connect request and RSO stop->RSO Deinit is sent to firmware. But before receiving the RSO stop, firmware posted the Roam Synch indication to the host driver. While droping the roam synch indication, the driver does abort roaming and as part of that RSO state is changed to RSO enabled in connecting state. Change the RSO state to RSO enabled only if roaming or roam synch indication processing is in progress. Change-Id: I7869d1a559884480708b9d1a493296a443364f0b CRs-Fixed: 3089165
This commit is contained in:

committed by
Madan Koyyalamudi

orang tua
faee1a2e61
melakukan
a700e95c62
@@ -326,8 +326,19 @@ QDF_STATUS cm_fw_roam_abort_req(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
||||
cm_id = roam_req->cm_id;
|
||||
|
||||
/* continue even if no roam command is found */
|
||||
status = wlan_cm_roam_state_change(pdev, vdev_id, WLAN_ROAM_RSO_ENABLED,
|
||||
REASON_ROAM_ABORT);
|
||||
|
||||
/*
|
||||
* Switch to RSO enabled state only if the current state is
|
||||
* WLAN_ROAMING_IN_PROG or WLAN_ROAM_SYNCH_IN_PROG.
|
||||
* This API can be called in internal roam aborts also when
|
||||
* RSO state is deinit and cause RSO start to be sent in
|
||||
* disconnected state.
|
||||
*/
|
||||
if (MLME_IS_ROAMING_IN_PROG(psoc, vdev_id) ||
|
||||
MLME_IS_ROAM_SYNCH_IN_PROGRESS(psoc, vdev_id))
|
||||
status = wlan_cm_roam_state_change(pdev, vdev_id,
|
||||
WLAN_ROAM_RSO_ENABLED,
|
||||
REASON_ROAM_ABORT);
|
||||
|
||||
cm_abort_fw_roam(cm_ctx, cm_id);
|
||||
rel_ref:
|
||||
|
Reference in New Issue
Block a user