diff --git a/wmi_unified_tlv.c b/wmi_unified_tlv.c index 7800f5c284..fa3c8a4654 100644 --- a/wmi_unified_tlv.c +++ b/wmi_unified_tlv.c @@ -5885,8 +5885,21 @@ static QDF_STATUS send_roam_scan_filter_cmd_tlv(wmi_unified_t wmi_handle, wmi_roam_lca_disallow_config_tlv_param *blist_param; len = sizeof(wmi_roam_filter_fixed_param); + len += WMI_TLV_HDR_SIZE; - len += roam_req->len; + if (roam_req->num_bssid_black_list) + len += roam_req->num_bssid_black_list * sizeof(wmi_mac_addr); + len += WMI_TLV_HDR_SIZE; + if (roam_req->num_ssid_white_list) + len += roam_req->num_ssid_white_list * sizeof(wmi_ssid); + len += 2 * WMI_TLV_HDR_SIZE; + if (roam_req->num_bssid_preferred_list) { + len += roam_req->num_bssid_preferred_list * sizeof(wmi_mac_addr); + len += roam_req->num_bssid_preferred_list * sizeof(A_UINT32); + } + if (roam_req->lca_disallow_config_present) + len += WMI_TLV_HDR_SIZE + + sizeof(wmi_roam_lca_disallow_config_tlv_param); buf = wmi_buf_alloc(wmi_handle, len); if (!buf) {