qcacld-3.0: Fix race condition between supplicant and driver
There is a race condition issue between supplicant and driver thread. 1. Suppliant disable F/W roaming. 2. Supplicant Invoked roaming. 3. Driver reported roam completed to supplicant before EV_ROAM_DONE. 4. Supplicant tried to enabled roaming, failed for vdev ROAMING state. 5. Roaming completed, but RSO kept disabled for supplicant disabled roaming flag not cleared. 6. F/W roaming kept disabled until next disconnect and reconnect. To fix it, driver don't report roam completed event to supplicant until vdev changed from ROAMING to CONNECTED. Change-Id: I8f0db74b5dce69ea355fde2c43edaf6419c87eb0 CRs-Fixed: 3280727
Esse commit está contido em:
@@ -885,7 +885,6 @@ cm_fw_roam_sync_propagation(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
||||
policy_mgr_move_vdev_from_disabled_to_connection_tbl(psoc,
|
||||
vdev_id);
|
||||
mlo_roam_copy_partner_info(connect_rsp, roam_synch_data);
|
||||
mlme_cm_osif_connect_complete(vdev, connect_rsp);
|
||||
|
||||
/**
|
||||
* Don't send roam_sync complete for MLO link vdevs.
|
||||
@@ -924,6 +923,7 @@ cm_fw_roam_sync_propagation(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
||||
CM_PREFIX_REF(vdev_id, cm_id));
|
||||
goto error;
|
||||
}
|
||||
mlme_cm_osif_connect_complete(vdev, connect_rsp);
|
||||
mlme_cm_osif_roam_complete(vdev);
|
||||
mlme_debug(CM_PREFIX_FMT, CM_PREFIX_REF(vdev_id, cm_id));
|
||||
if (!wlan_vdev_mlme_is_mlo_link_vdev(vdev))
|
||||
|
Referência em uma nova issue
Block a user