Ver código fonte

qcacld-3.0: Fix MLO adapter to DP interface mapping

In MLO case two link adapters will be present, only one link adapter
shares vdev with MLD adapter other link adapter has its own vdev.
But currently for both link adapters vdevs same MLD adapter mac is
provided fix this by checking shared vdev link adapter.

Change-Id: I54c9c270052bfa1b6884d742a20e01a08a4df39c
CRs-Fixed: 3200644
Karthik Kantamneni 2 anos atrás
pai
commit
7d1e47bb27
2 arquivos alterados com 6 adições e 1 exclusões
  1. 2 1
      core/hdd/src/wlan_hdd_main.c
  2. 4 0
      core/hdd/src/wlan_hdd_mlo.c

+ 2 - 1
core/hdd/src/wlan_hdd_main.c

@@ -4853,7 +4853,8 @@ hdd_get_nw_adapter_mac_by_vdev_mac(struct qdf_mac_addr *mac_addr,
 		return QDF_STATUS_E_INVAL;
 	}
 
-	if (adapter->mlo_adapter_info.is_link_adapter) {
+	if (adapter->mlo_adapter_info.is_link_adapter &&
+	    adapter->mlo_adapter_info.associate_with_ml_adapter) {
 		ml_adapter = adapter->mlo_adapter_info.ml_adapter;
 		qdf_copy_macaddr(adapter_mac, &ml_adapter->mac_addr);
 	} else {

+ 4 - 0
core/hdd/src/wlan_hdd_mlo.c

@@ -26,6 +26,7 @@
 #include "wlan_hdd_mlo.h"
 #include "osif_vdev_sync.h"
 #include "wlan_osif_features.h"
+#include "wlan_dp_ucfg_api.h"
 
 #if defined(CFG80211_11BE_BASIC)
 void hdd_update_mld_mac_addr(struct hdd_context *hdd_ctx,
@@ -154,10 +155,13 @@ QDF_STATUS hdd_wlan_unregister_mlo_interfaces(struct hdd_adapter *adapter,
 	int i;
 	struct hdd_mlo_adapter_info *mlo_adapter_info;
 	struct hdd_adapter *link_adapter;
+	struct qdf_mac_addr adapter_mac;
 
 	mlo_adapter_info = &adapter->mlo_adapter_info;
 
 	if (mlo_adapter_info->is_link_adapter) {
+		qdf_copy_macaddr(&adapter_mac, &adapter->mac_addr);
+		ucfg_dp_destroy_intf(adapter->hdd_ctx->psoc, &adapter_mac);
 		hdd_remove_front_adapter(adapter->hdd_ctx, &adapter);
 		return QDF_STATUS_E_AGAIN;
 	}