From cc165be13f16267ada4fed98dca0d8ccb60b83b8 Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Fri, 11 Feb 2022 15:47:42 +0100 Subject: [PATCH 490/562] Revert "rtw89: Fix crash by loading compressed firmware file" This reverts commit 0d125c8ff43d4a02b0561697576eded6a217dc76. --- drivers/net/wireless/realtek/rtw89/core.h | 3 +-- drivers/net/wireless/realtek/rtw89/fw.c | 15 +++++---------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h index 048855e05697..c2885e4dd882 100644 --- a/drivers/net/wireless/realtek/rtw89/core.h +++ b/drivers/net/wireless/realtek/rtw89/core.h @@ -2309,8 +2309,7 @@ struct rtw89_fw_suit { RTW89_FW_VER_CODE((s)->major_ver, (s)->minor_ver, (s)->sub_ver, (s)->sub_idex) struct rtw89_fw_info { - const void *firmware; - size_t firmware_size; + const struct firmware *firmware; struct rtw89_dev *rtwdev; struct completion completion; u8 h2c_seq; diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c index 6568e2f60529..65ef3dc9d061 100644 --- a/drivers/net/wireless/realtek/rtw89/fw.c +++ b/drivers/net/wireless/realtek/rtw89/fw.c @@ -123,8 +123,8 @@ int rtw89_mfw_recognize(struct rtw89_dev *rtwdev, enum rtw89_fw_type type, struct rtw89_fw_suit *fw_suit) { struct rtw89_fw_info *fw_info = &rtwdev->fw; - const u8 *mfw = fw_info->firmware; - u32 mfw_len = fw_info->firmware_size; + const u8 *mfw = fw_info->firmware->data; + u32 mfw_len = fw_info->firmware->size; const struct rtw89_mfw_hdr *mfw_hdr = (const struct rtw89_mfw_hdr *)mfw; const struct rtw89_mfw_info *mfw_info; int i; @@ -489,10 +489,7 @@ static void rtw89_load_firmware_cb(const struct firmware *firmware, void *contex return; } - fw->firmware = vmalloc(firmware->size); - if (fw->firmware) - memcpy((void *)fw->firmware, firmware->data, firmware->size); - release_firmware(firmware); + fw->firmware = firmware; complete_all(&fw->completion); } @@ -521,10 +518,8 @@ void rtw89_unload_firmware(struct rtw89_dev *rtwdev) rtw89_wait_firmware_completion(rtwdev); - if (fw->firmware) { - vfree(fw->firmware); - fw->firmware = NULL; - } + if (fw->firmware) + release_firmware(fw->firmware); } #define H2C_CAM_LEN 60 -- 2.34.1