summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/qca-wifi-host-cmn/qdf/linux/src/qdf_trace.c31
-rw-r--r--drivers/staging/qca-wifi-host-cmn/wmi/inc/wmi_unified_api.h6
-rw-r--r--drivers/staging/qca-wifi-host-cmn/wmi/src/wmi_unified.c8
-rw-r--r--drivers/staging/qca-wifi-host-cmn/wmi/src/wmi_unified_tlv.c10
4 files changed, 32 insertions, 23 deletions
diff --git a/drivers/staging/qca-wifi-host-cmn/qdf/linux/src/qdf_trace.c b/drivers/staging/qca-wifi-host-cmn/qdf/linux/src/qdf_trace.c
index 9ceaa5a16d74..6a99f02f03ee 100644
--- a/drivers/staging/qca-wifi-host-cmn/qdf/linux/src/qdf_trace.c
+++ b/drivers/staging/qca-wifi-host-cmn/qdf/linux/src/qdf_trace.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2018,2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -2431,26 +2431,27 @@ QDF_STATUS qdf_dpt_dump_stats_debugfs(qdf_debugfs_file_t file,
break;
case QDF_DP_TRACE_HDD_TX_TIMEOUT:
- qdf_debugfs_printf(file, "DPT: %04d: %s %s\n",
- i, p_record.time,
- qdf_dp_code_to_string(p_record.code));
- qdf_debugfs_printf(file, "%s: HDD TX Timeout\n");
+ qdf_debugfs_printf(
+ file, "DPT: %04d: %llu %s\n",
+ i, p_record.time,
+ qdf_dp_code_to_string(p_record.code));
+ qdf_debugfs_printf(file, "HDD TX Timeout\n");
break;
case QDF_DP_TRACE_HDD_SOFTAP_TX_TIMEOUT:
- qdf_debugfs_printf(file, "%04d: %llu %s\n",
- i, p_record.time,
- qdf_dp_code_to_string(p_record.code));
- qdf_debugfs_printf(file,
- "%s: HDD SoftAP TX Timeout\n");
+ qdf_debugfs_printf(
+ file, "DPT: %04d: %llu %s\n",
+ i, p_record.time,
+ qdf_dp_code_to_string(p_record.code));
+ qdf_debugfs_printf(file, "HDD SoftAP TX Timeout\n");
break;
case QDF_DP_TRACE_CE_FAST_PACKET_ERR_RECORD:
- qdf_debugfs_printf(file, "DPT: %llu: %s %s\n",
- i, p_record.time,
- qdf_dp_code_to_string(p_record.code));
- qdf_debugfs_printf(file,
- "%s: CE Fast Packet Error\n");
+ qdf_debugfs_printf(
+ file, "DPT: %04d: %llu %s\n",
+ i, p_record.time,
+ qdf_dp_code_to_string(p_record.code));
+ qdf_debugfs_printf(file, "CE Fast Packet Error\n");
break;
case QDF_DP_TRACE_MAX:
diff --git a/drivers/staging/qca-wifi-host-cmn/wmi/inc/wmi_unified_api.h b/drivers/staging/qca-wifi-host-cmn/wmi/inc/wmi_unified_api.h
index 14611e10ec5a..3c57cdc09cea 100644
--- a/drivers/staging/qca-wifi-host-cmn/wmi/inc/wmi_unified_api.h
+++ b/drivers/staging/qca-wifi-host-cmn/wmi/inc/wmi_unified_api.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -138,10 +138,10 @@ wmi_unified_remove_work(struct wmi_unified *wmi_handle);
#ifdef MEMORY_DEBUG
#define wmi_buf_alloc(h, l) wmi_buf_alloc_debug(h, l, __FILE__, __LINE__)
wmi_buf_t
-wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint16_t len,
+wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint32_t len,
uint8_t *file_name, uint32_t line_num);
#else
-wmi_buf_t wmi_buf_alloc(wmi_unified_t wmi_handle, uint16_t len);
+wmi_buf_t wmi_buf_alloc(wmi_unified_t wmi_handle, uint32_t len);
#endif
/**
diff --git a/drivers/staging/qca-wifi-host-cmn/wmi/src/wmi_unified.c b/drivers/staging/qca-wifi-host-cmn/wmi/src/wmi_unified.c
index 9aa0a8b0faad..2123435149e4 100644
--- a/drivers/staging/qca-wifi-host-cmn/wmi/src/wmi_unified.c
+++ b/drivers/staging/qca-wifi-host-cmn/wmi/src/wmi_unified.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2015-2018,2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -1201,8 +1201,8 @@ int wmi_get_host_credits(wmi_unified_t wmi_handle);
#ifdef MEMORY_DEBUG
wmi_buf_t
-wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint16_t len, uint8_t *file_name,
- uint32_t line_num)
+wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint32_t len, uint8_t *file_name,
+ uint32_t line_num)
{
wmi_buf_t wmi_buf;
@@ -1235,7 +1235,7 @@ void wmi_buf_free(wmi_buf_t net_buf)
qdf_nbuf_free(net_buf);
}
#else
-wmi_buf_t wmi_buf_alloc(wmi_unified_t wmi_handle, uint16_t len)
+wmi_buf_t wmi_buf_alloc(wmi_unified_t wmi_handle, uint32_t len)
{
wmi_buf_t wmi_buf;
diff --git a/drivers/staging/qca-wifi-host-cmn/wmi/src/wmi_unified_tlv.c b/drivers/staging/qca-wifi-host-cmn/wmi/src/wmi_unified_tlv.c
index a60645eacca7..c18b7e4165bc 100644
--- a/drivers/staging/qca-wifi-host-cmn/wmi/src/wmi_unified_tlv.c
+++ b/drivers/staging/qca-wifi-host-cmn/wmi/src/wmi_unified_tlv.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -9598,6 +9598,14 @@ QDF_STATUS send_stats_ext_req_cmd_tlv(wmi_unified_t wmi_handle,
wmi_buf_t buf;
size_t len;
uint8_t *buf_ptr;
+ uint16_t max_wmi_msg_size = wmi_get_max_msg_len(wmi_handle);
+
+ if (preq->request_data_len > (max_wmi_msg_size - WMI_TLV_HDR_SIZE -
+ sizeof(*cmd))) {
+ WMI_LOGE("%s: Data length=%d is greater than max wmi msg size",
+ __func__, preq->request_data_len);
+ return QDF_STATUS_E_FAILURE;
+ }
len = sizeof(*cmd) + WMI_TLV_HDR_SIZE + preq->request_data_len;