Jelajahi Sumber

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 tahun lalu
induk
melakukan
8c9f44fdec
1 mengubah file dengan 15 tambahan dan 10 penghapusan
  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