Prechádzať zdrojové kódy

qcacld-3.0: Fix lim update EMLSR caps API

The lim_objmgr_update_emlsr_caps API updates EMLSR
caps based on the support bit from assoc response
on both links currently. But assoc response present
bit check should be for assoc link only. Add a check
to enable this logic.

Change-Id: I714fbb84a84bb3173e37eba1cc20c5ccdc5c5464
CRs-Fixed: 3254996
Gururaj Pandurangi 2 rokov pred
rodič
commit
617edf3f7b
1 zmenil súbory, kde vykonal 19 pridanie a 14 odobranie
  1. 19 14
      core/mac/src/pe/lim/lim_prop_exts_utils.c

+ 19 - 14
core/mac/src/pe/lim/lim_prop_exts_utils.c

@@ -420,21 +420,26 @@ void lim_objmgr_update_emlsr_caps(struct wlan_objmgr_psoc *psoc,
 		return;
 	}
 
-	ap_emlsr_cap =
-		assoc_rsp->mlo_ie.mlo_ie.eml_capabilities_info.emlsr_support;
-
-	if (!(wlan_vdev_mlme_cap_get(vdev, WLAN_VDEV_C_EMLSR_CAP) &&
-	    ap_emlsr_cap)) {
-		if (!wlan_vdev_mlme_cap_get(vdev, WLAN_VDEV_C_EMLSR_CAP) &&
-		    ap_emlsr_cap)
-			pe_debug("No eMLSR STA supp but recvd EML caps in assc rsp");
-		else
-			pe_debug("EML caps not present in assoc rsp");
-		wlan_vdev_obj_lock(vdev);
-		wlan_vdev_mlme_cap_clear(vdev, WLAN_VDEV_C_EMLSR_CAP);
-		wlan_vdev_obj_unlock(vdev);
+	/* Check for assoc link vdev to extract emlsr cap from assoc rsp */
+	if (!wlan_vdev_mlme_is_mlo_link_vdev(vdev)) {
+		ap_emlsr_cap =
+			assoc_rsp->mlo_ie.mlo_ie.eml_capabilities_info.emlsr_support;
+
+		if (!(wlan_vdev_mlme_cap_get(vdev, WLAN_VDEV_C_EMLSR_CAP) &&
+		      ap_emlsr_cap)) {
+			if (!wlan_vdev_mlme_cap_get(vdev, WLAN_VDEV_C_EMLSR_CAP)
+			    && ap_emlsr_cap)
+				pe_debug("No eMLSR STA supp but recvd EML caps in assc rsp");
+			else
+				pe_debug("EML caps not present in assoc rsp");
+			wlan_vdev_obj_lock(vdev);
+			wlan_vdev_mlme_cap_clear(vdev, WLAN_VDEV_C_EMLSR_CAP);
+			wlan_vdev_obj_unlock(vdev);
+		} else {
+			pe_debug("EML caps present in assoc rsp");
+		}
 	} else {
-		pe_debug("EML caps present in assoc rsp");
+		pe_debug("no change required for link vdev");
 	}
 
 	wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_MAC_ID);