diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c index 194d7c2caa..fa7f33a3f3 100644 --- a/core/hdd/src/wlan_hdd_hostapd.c +++ b/core/hdd/src/wlan_hdd_hostapd.c @@ -2560,12 +2560,21 @@ QDF_STATUS hdd_hostapd_sap_event_cb(struct sap_event *sap_event, sta_id = event->staId; if (ucfg_ipa_is_enabled()) { + vdev = adapter->deflink->vdev; + + if (wlan_vdev_mlme_is_mlo_vdev(vdev) && + !qdf_is_macaddr_zero(&event->sta_mld)) + qdf_copy_macaddr(&sta_addr, &event->sta_mld); + else + qdf_copy_macaddr(&sta_addr, &event->staMac); + status = ucfg_ipa_wlan_evt(hdd_ctx->pdev, adapter->dev, adapter->device_mode, adapter->deflink->vdev_id, WLAN_IPA_CLIENT_CONNECT_EX, - event->staMac.bytes, + (const uint8_t *) + &sta_addr.bytes[0], false); if (status) hdd_err("WLAN_CLIENT_CONNECT_EX event failed"); diff --git a/core/hdd/src/wlan_hdd_softap_tx_rx.c b/core/hdd/src/wlan_hdd_softap_tx_rx.c index f3801265aa..0540818c0a 100644 --- a/core/hdd/src/wlan_hdd_softap_tx_rx.c +++ b/core/hdd/src/wlan_hdd_softap_tx_rx.c @@ -480,10 +480,15 @@ QDF_STATUS hdd_softap_deregister_sta(struct hdd_adapter *adapter, * If the address is a broadcast address then the CDP layers expects * the self mac address of the adapter. */ - if (QDF_IS_ADDR_BROADCAST(sta->sta_mac.bytes)) + if (QDF_IS_ADDR_BROADCAST(sta->sta_mac.bytes)) { mac_addr = &adapter->mac_addr; - else - mac_addr = &sta->sta_mac; + } else { + if (wlan_vdev_mlme_is_mlo_vdev(adapter->deflink->vdev) && + !qdf_is_macaddr_zero(&sta->mld_addr)) + mac_addr = &sta->mld_addr; + else + mac_addr = &sta->sta_mac; + } if (ucfg_ipa_is_enabled()) { if (ucfg_ipa_wlan_evt(hdd_ctx->pdev, adapter->dev,