Selaa lähdekoodia

qcacld-3.0: Update VDEV MAC address for non-ML adapter as well

Currently when 11BE feature is enabled, VDEV MAC address is being
updated for link adapters of the ML adapter. But in ML STA + legacy
STA concurrency case, VDEV MAC address is not being updated for
legacy STA adapter. This is because legacy STA doesn't have link
adapters.

To resolve this, Update VDEV MAC address for non-ML adapters as well.

Change-Id: I681f879f47bc0f9c50ee7fb51f2742544e116cf7
CRs-Fixed: 3138464
Bapiraju Alla 3 vuotta sitten
vanhempi
sitoutus
8c9f44fdec
1 muutettua tiedostoa jossa 15 lisäystä ja 10 poistoa
  1. 15 10
      core/hdd/src/wlan_hdd_mlo.c

+ 15 - 10
core/hdd/src/wlan_hdd_mlo.c

@@ -329,17 +329,22 @@ int hdd_update_vdev_mac_address(struct hdd_context *hdd_ctx,
 	struct hdd_mlo_adapter_info *mlo_adapter_info;
 	struct hdd_adapter *link_adapter;
 
-	mlo_adapter_info = &adapter->mlo_adapter_info;
-
-	for (i = 0; i < WLAN_MAX_MLD; i++) {
-		link_adapter = mlo_adapter_info->link_adapter[i];
-		if (!link_adapter)
-			continue;
-		ret = hdd_dynamic_mac_address_set(hdd_ctx, link_adapter,
-						  mac_addr);
-		if (ret)
-			return ret;
+	if (hdd_adapter_is_ml_adapter(adapter)) {
+		mlo_adapter_info = &adapter->mlo_adapter_info;
+
+		for (i = 0; i < WLAN_MAX_MLD; i++) {
+			link_adapter = mlo_adapter_info->link_adapter[i];
+			if (!link_adapter)
+				continue;
+			ret = hdd_dynamic_mac_address_set(hdd_ctx, link_adapter,
+							  mac_addr);
+			if (ret)
+				return ret;
+		}
+	} else {
+		ret = hdd_dynamic_mac_address_set(hdd_ctx, adapter, mac_addr);
 	}
+
 	return ret;
 }
 #endif