qcacmn: Abort STA connecting if NDI stop bss pending

When NDI stop bss is pending in serialization queue and
STA connect is in progress with multiple candidate trying,
NDI stop bss will be timeout and vdev clean up will not happen
if STA connect takes too much time.

Fix by stop next candidate trying if NDI stop bss in
queue.

Change-Id: I29ca38f420586862f294d10041fc1754f8b485ce
CRs-Fixed: 3402121
This commit is contained in:
Liangwei Dong
2023-02-13 16:37:38 +08:00
committed by Madan Koyyalamudi
parent de5b0b9a2f
commit 1ac458ec54

View File

@@ -793,7 +793,8 @@ static void cm_get_vdev_id_with_active_vdev_op(struct wlan_objmgr_pdev *pdev,
return; return;
} }
if (opmode == QDF_SAP_MODE || opmode == QDF_P2P_GO_MODE) { if (opmode == QDF_SAP_MODE || opmode == QDF_P2P_GO_MODE ||
opmode == QDF_NDI_MODE) {
/* Check if START/STOP AP OP is in progress */ /* Check if START/STOP AP OP is in progress */
if (wlan_ser_is_non_scan_cmd_type_in_vdev_queue(vdev, if (wlan_ser_is_non_scan_cmd_type_in_vdev_queue(vdev,
WLAN_SER_CMD_VDEV_START_BSS) || WLAN_SER_CMD_VDEV_START_BSS) ||
@@ -853,7 +854,7 @@ cm_is_any_other_vdev_connecting_disconnecting(struct cnx_mgr *cm_ctx,
*/ */
if (cm_req->connect_req.cur_candidate && if (cm_req->connect_req.cur_candidate &&
vdev_arg.sap_go_vdev_id != WLAN_INVALID_VDEV_ID) { vdev_arg.sap_go_vdev_id != WLAN_INVALID_VDEV_ID) {
mlme_info(CM_PREFIX_FMT "Avoid next candidate as SAP/GO vdev %d has pending vdev op", mlme_info(CM_PREFIX_FMT "Avoid next candidate as SAP/GO/NDI vdev %d has pending vdev op",
CM_PREFIX_REF(cur_vdev_id, cm_req->cm_id), CM_PREFIX_REF(cur_vdev_id, cm_req->cm_id),
vdev_arg.sap_go_vdev_id); vdev_arg.sap_go_vdev_id);
return true; return true;