wifi: wlcore: correctness fix fwlog reading
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Tue, 28 May 2024 09:17:42 +0000 (10:17 +0100)
committerKalle Valo <kvalo@kernel.org>
Tue, 18 Jun 2024 10:22:10 +0000 (13:22 +0300)
Fix the calculation of clear_offset, which may overflow the end of
the buffer. However, this is harmless if it does because in that case
it will be recalculated when we copy the chunk of messages at the
start of the buffer.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/E1sBsxi-00E8vQ-5r@rmk-PC.armlinux.org.uk
drivers/net/wireless/ti/wlcore/event.c

index 2499dc90830511bdeb0806dfca3c8ef6fdf3d197..6c3a8ea9613e97d00d80b00b9563be9b544aed96 100644 (file)
@@ -83,7 +83,7 @@ int wlcore_event_fw_logger(struct wl1271 *wl)
        /* Copy initial part up to the end of ring buffer */
        len = min(actual_len, available_len);
        wl12xx_copy_fwlog(wl, &buffer[start_loc], len);
-       clear_ptr = addr_ptr + start_loc + actual_len;
+       clear_ptr = addr_ptr + start_loc + len;
        if (clear_ptr == buff_end_ptr)
                clear_ptr = buff_start_ptr;