From e3e12f52b214121840b44c91de5b3e5af5d3eb84 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 06 Nov 2023 03:04:41 +0000
Subject: [PATCH] rk3568 rt init

---
 kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/wl_escan.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/wl_escan.c b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/wl_escan.c
index 01a9e02..6b6b389 100644
--- a/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/wl_escan.c
+++ b/kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/wl_escan.c
@@ -886,8 +886,7 @@
 	u8 *scan_params = NULL, *params = NULL;
 	s32 params_size;
 	u32 n_channels = 0;
-	wl_uint32_list_t *list;
-	u8 valid_chan_list[sizeof(u32)*(MAX_CTRL_CHANSPECS + 1)];
+	wl_uint32_list_t *list = NULL;
 
 	mutex_lock(&escan->usr_sync);
 	if (escan->escan_state == ESCAN_STATE_DOWN) {
@@ -920,8 +919,12 @@
 	}
 
 	/* if scan request is not empty parse scan request paramters */
-	memset(valid_chan_list, 0, sizeof(valid_chan_list));
-	list = (wl_uint32_list_t *)(void *) valid_chan_list;
+	list = kzalloc(sizeof(u32)*(MAX_CTRL_CHANSPECS + 1), GFP_KERNEL);
+	if (list == NULL) {
+		ESCAN_ERROR(dev->name, "kzalloc failed\n");
+		err = -ENOMEM;
+		goto exit;
+	}
 
 	if (scan_info->channels.count) {
 		memcpy(list, &scan_info->channels, sizeof(wl_channel_list_t));
@@ -984,6 +987,8 @@
 	}
 	kfree(params);
 exit:
+	if (list)
+		kfree(list);
 	if (unlikely(err)) {
 		wl_escan_reset(escan);
 	}

--
Gitblit v1.6.2