TLV_HDR_SIZE + (peer_ht_rates_align * sizeof(u8)) +
              sizeof(*mcs) + TLV_HDR_SIZE +
              (sizeof(*he_mcs) * arg->peer_he_mcs_count) +
-             TLV_HDR_SIZE + (sizeof(*eht_mcs) * arg->peer_eht_mcs_count);
+             TLV_HDR_SIZE + (sizeof(*eht_mcs) * arg->peer_eht_mcs_count) +
+             TLV_HDR_SIZE + TLV_HDR_SIZE;
 
        skb = ath12k_wmi_alloc_skb(wmi->wmi_ab, len);
        if (!skb)
                ptr += sizeof(*he_mcs);
        }
 
+       /* MLO header tag with 0 length */
+       len = 0;
+       tlv = ptr;
+       tlv->header = ath12k_wmi_tlv_hdr(WMI_TAG_ARRAY_STRUCT, len);
+       ptr += TLV_HDR_SIZE;
+
        /* Loop through the EHT rate set */
        len = arg->peer_eht_mcs_count * sizeof(*eht_mcs);
        tlv = ptr;
                ptr += sizeof(*eht_mcs);
        }
 
+       /* ML partner links tag with 0 length */
+       len = 0;
+       tlv = ptr;
+       tlv->header = ath12k_wmi_tlv_hdr(WMI_TAG_ARRAY_STRUCT, len);
+       ptr += TLV_HDR_SIZE;
+
        ath12k_dbg(ar->ab, ATH12K_DBG_WMI,
                   "wmi peer assoc vdev id %d assoc id %d peer mac %pM peer_flags %x rate_caps %x peer_caps %x listen_intval %d ht_caps %x max_mpdu %d nss %d phymode %d peer_mpdu_density %d vht_caps %x he cap_info %x he ops %x he cap_info_ext %x he phy %x %x %x peer_bw_rxnss_override %x peer_flags_ext %x eht mac_cap %x %x eht phy_cap %x %x %x\n",
                   cmd->vdev_id, cmd->peer_associd, arg->peer_mac,