[PATCH v3 5/8] staging: r8188eu: use sizeof instead of hardcoded firmware header size

From: Michael Straube
Date: Fri Apr 15 2022 - 08:11:03 EST


Use sizeof() instead of hardcoding the firmware header size and add
a compile time check to ensure struct rt_firmware_hdr has the correct
size.

Signed-off-by: Michael Straube <straube.linux@xxxxxxxxx>
---
v3:
- added the compile time size check from patch 8/8 of v2

v2:
- no changes

drivers/staging/r8188eu/core/rtw_fw.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/r8188eu/core/rtw_fw.c b/drivers/staging/r8188eu/core/rtw_fw.c
index 3da52a1ba23c..0279af37719a 100644
--- a/drivers/staging/r8188eu/core/rtw_fw.c
+++ b/drivers/staging/r8188eu/core/rtw_fw.c
@@ -34,6 +34,8 @@ struct rt_firmware_hdr {
__le32 rsvd5;
};

+static_assert(sizeof(struct rt_firmware_hdr) == 32);
+
static void fw_download_enable(struct adapter *padapter, bool enable)
{
u8 tmp;
@@ -263,9 +265,8 @@ int rtl8188e_firmware_download(struct adapter *padapter)
DRIVER_PREFIX, fw_version, fw_subversion, fw_signature);

if (IS_FW_HEADER_EXIST(fwhdr)) {
- /* Shift 32 bytes for FW header */
- fw_data = fw_data + 32;
- fw_size = fw_size - 32;
+ fw_data = fw_data + sizeof(struct rt_firmware_hdr);
+ fw_size = fw_size - sizeof(struct rt_firmware_hdr);
}

/* Suggested by Filen. If 8051 is running in RAM code, driver should inform Fw to reset by itself, */
--
2.35.1