Browse Source

qcacld-3.0: Process disconnect even if peer is not present

When DUT roams from one set of links(e.g. 2 GHz + 5 GHz) to
another set of links(e.g. 5 GHz + 6 GHz) in the same AP, there
might be a common link/peer(e.g. 5 GHz link). Current MLO roaming
design doesn't allow the common link peer creation as it's
already present on another link in previous connection.
Added changes to cleanup all peers as part of roam sync
processing on first vdev if it's a self ML roaming.
So, peers get deleted at the beginning itself and if roam sync
fails due to any reason, no new peer gets created.
Next HO_FAIL/disconnection should go through though peer
is not present.
Add changes for the same.

Change-Id: Idcec54c795dd494243c9a8d8152499f2ca1f5ed0
CRs-Fixed: 3426642
Srinivas Dasari 2 years ago
parent
commit
e8a87efa45
1 changed files with 2 additions and 2 deletions
  1. 2 2
      core/wma/src/wma_dev_if.c

+ 2 - 2
core/wma/src/wma_dev_if.c

@@ -2643,8 +2643,8 @@ __wma_handle_vdev_stop_rsp(struct vdev_stop_response *resp_event)
 	if (mode == QDF_STA_MODE || mode == QDF_P2P_CLIENT_MODE) {
 		status = wlan_vdev_get_bss_peer_mac(iface->vdev, &bssid);
 		if (QDF_IS_STATUS_ERROR(status)) {
-			wma_err("Failed to get bssid");
-			return QDF_STATUS_E_INVAL;
+			wma_debug("Failed to get bssid, peer might have got deleted already");
+			return wlan_cm_bss_peer_delete_rsp(iface->vdev, status);
 		}
 		/* initiate CM to delete bss peer */
 		return wlan_cm_bss_peer_delete_ind(iface->vdev,  &bssid);