From a845583f32e81c1bcffbd8e5d0dd1a26cb026a43 Mon Sep 17 00:00:00 2001 From: Naman Padhiar Date: Tue, 20 Dec 2022 17:25:30 +0530 Subject: [PATCH] cnss2: Validate maximum number of memory segments For WIN use case maximum number of memory segments requested by FW is increased to 52 in QMI layer. Since CNSS2 driver uses same QMI header files and message structures the same maximum number of segment is applicable for CNSS2. It means for memory allocation, FW can request 52 memory segments to CNSS2 via QMI indication but local CNSS2 variable which get segment info from indication supports maximum 32 segments. To fix it, change CNSS2 array variable size to same as number of maximum segment supported in QMI layer. Change-Id: I661b55b53cb31327da12f064d0a516884159eb5b Signed-off-by: Naman Padhiar --- drivers/net/wireless/cnss2/main.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/cnss2/main.h b/drivers/net/wireless/cnss2/main.h index 97115c84b1a8..7775eaa5a5e3 100644 --- a/drivers/net/wireless/cnss2/main.h +++ b/drivers/net/wireless/cnss2/main.h @@ -31,7 +31,6 @@ #define MAX_NO_OF_MAC_ADDR 4 #define QMI_WLFW_MAX_TIMESTAMP_LEN 32 -#define QMI_WLFW_MAX_NUM_MEM_SEG 32 #define QMI_WLFW_MAX_BUILD_ID_LEN 128 #define CNSS_RDDM_TIMEOUT_MS 20000 #define RECOVERY_TIMEOUT 60000 @@ -456,10 +455,10 @@ struct cnss_plat_data { char fw_build_id[QMI_WLFW_MAX_BUILD_ID_LEN + 1]; u32 otp_version; u32 fw_mem_seg_len; - struct cnss_fw_mem fw_mem[QMI_WLFW_MAX_NUM_MEM_SEG]; + struct cnss_fw_mem fw_mem[QMI_WLFW_MAX_NUM_MEM_SEG_V01]; struct cnss_fw_mem m3_mem; u32 qdss_mem_seg_len; - struct cnss_fw_mem qdss_mem[QMI_WLFW_MAX_NUM_MEM_SEG]; + struct cnss_fw_mem qdss_mem[QMI_WLFW_MAX_NUM_MEM_SEG_V01]; u32 *qdss_reg; struct cnss_pin_connect_result pin_result; struct dentry *root_dentry;