qcacmn: Enhancements for link switch connect
Introduce following for link switch disconnect: 1) Connect request source. 2) Connect request reason. If the set MAC address response for new link is successful, post connection on new link and transition the link switch state to connecting. If the status of connection is successful, update the state to link switch complete or else directly go for deserializing link switch command and posting response to FW. Based on the final state of link switch at the time of sending FW response, send the appropirate status of link switch and reset the state of link switch to idle post FW notify. Don't unlink BSS incase of failure in connection. Don't indicate connect results to userspace. As we are already in serialization due to link switch, don't serialize/deserialize connection command if it is due to link switch. Incase of race condition between link switch connect and userspace connect/disconnect always abort link switch connect. Change-Id: Ie350b52021c36802b82d6cb5f6f441fe1bd10458 CRs-Fixed: 3556529
This commit is contained in:

committed by
Rahul Choudhary

parent
a147f231ea
commit
35ea97c560
@@ -1047,7 +1047,8 @@ static void osif_indcate_connect_results(struct wlan_objmgr_vdev *vdev,
|
||||
static inline
|
||||
bool osif_cm_is_unlink_bss_required(struct wlan_cm_connect_resp *rsp)
|
||||
{
|
||||
if (QDF_IS_STATUS_SUCCESS(rsp->connect_status))
|
||||
if (QDF_IS_STATUS_SUCCESS(rsp->connect_status) ||
|
||||
rsp->cm_id & CM_ID_LSWITCH_BIT)
|
||||
return false;
|
||||
|
||||
if (rsp->reason == CM_NO_CANDIDATE_FOUND ||
|
||||
@@ -1107,7 +1108,7 @@ QDF_STATUS osif_connect_handler(struct wlan_objmgr_vdev *vdev,
|
||||
osif_check_and_unlink_bss(vdev, rsp);
|
||||
|
||||
status = osif_validate_connect_and_reset_src_id(osif_priv, rsp);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
if (QDF_IS_STATUS_ERROR(status) || rsp->cm_id & CM_ID_LSWITCH_BIT) {
|
||||
osif_cm_connect_comp_ind(vdev, rsp, OSIF_NOT_HANDLED);
|
||||
return status;
|
||||
}
|
||||
|
Reference in New Issue
Block a user