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> --- v4: - no changes 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 a80cc7fa3a53..42b36505cf8b 100644 --- a/drivers/staging/r8188eu/core/rtw_fw.c +++ b/drivers/staging/r8188eu/core/rtw_fw.c @@ -39,6 +39,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; @@ -268,9 +270,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