Răsfoiți Sursa

qcacld-3.0: Add lock to Set/clear WLAN_VDEV_FEXT2_MLO_STA_LINK flag

Currently, this MLO flag is being set/clear without regard for
concurrency. We need to lock the vdev when updating these values to
prevent race condition.

Change-Id: I7b1e6424d6fcedc6934a9f6aa1d01068a2b43277
CRs-Fixed: 3305564
David Oladunjoye 2 ani în urmă
părinte
comite
b31db9db49
1 a modificat fișierele cu 3 adăugiri și 6 ștergeri
  1. 3 6
      components/umac/mlme/mlo_mgr/src/wlan_mlo_mgr_roam.c

+ 3 - 6
components/umac/mlme/mlo_mgr/src/wlan_mlo_mgr_roam.c

@@ -75,8 +75,7 @@ mlo_update_for_multi_link_roam(struct wlan_objmgr_psoc *psoc,
 	}
 
 	wlan_vdev_mlme_set_mlo_vdev(vdev);
-	wlan_vdev_mlme_feat_ext2_cap_set(vdev,
-					 WLAN_VDEV_FEXT2_MLO_STA_LINK);
+	wlan_vdev_mlme_set_mlo_link_vdev(vdev);
 
 	mlo_update_connect_req_links(vdev, true);
 
@@ -92,8 +91,7 @@ mlo_cleanup_link(struct wlan_objmgr_vdev *vdev, bool is_legacy)
 
 	if (wlan_vdev_mlme_is_mlo_link_vdev(vdev)) {
 		cm_cleanup_mlo_link(vdev);
-		wlan_vdev_mlme_feat_ext2_cap_clear(vdev,
-						   WLAN_VDEV_FEXT2_MLO_STA_LINK);
+		wlan_vdev_mlme_clear_mlo_link_vdev(vdev);
 	}
 }
 
@@ -145,8 +143,7 @@ mlo_clear_link_bmap(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
 	mlo_clear_connect_req_links_bmap(vdev);
 	wlan_vdev_mlme_clear_mlo_vdev(vdev);
 	if (wlan_vdev_mlme_is_mlo_link_vdev(vdev))
-		wlan_vdev_mlme_feat_ext2_cap_clear(vdev,
-				WLAN_VDEV_FEXT2_MLO_STA_LINK);
+		wlan_vdev_mlme_clear_mlo_link_vdev(vdev);
 
 	wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_SB_ID);
 }