armbian_build/patch/kernel/archive/sunxi-5.16/patches.megous/Revert-rtw89-Fix-crash-by-loading-compressed-firmware-file.patch
The-going 9b611efc21
Update a series of patches for sunxi-5.16 and fix on the tag=v5.16.11 for release (#3513)
* Add megous files for 5.16, tag orange-pi-5.16-20220216-2000

* Optimize the selection of a set of patches

* Remove unused patches

* Fix the state on the version tag=v5.16.11

Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>

Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
2022-02-26 15:04:00 +01:00

70 lines
2.3 KiB
Diff

From cc165be13f16267ada4fed98dca0d8ccb60b83b8 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
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