ソースを参照

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 年 前
コミット
8c9f44fdec
1 ファイル変更15 行追加10 行削除
  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