[ Sasha's backport helper bot ] Hi, Summary of potential issues: ❌ Build failures detected The upstream commit SHA1 provided is correct: 3d6f83df8ff2d5de84b50377e4f0d45e25311c7a WARNING: Author mismatch between patch and upstream commit: Backport author: Abdelkareem Abdelsaamad<kareemem@xxxxxxxxxx> Commit author: Kuan-Wei Chiu<visitorckw@xxxxxxxxx> Status in newer kernel trees: 6.13.y | Present (different SHA1: 4a2c4e7265b8) 6.12.y | Present (different SHA1: 404e5fd918a0) 6.6.y | Present (different SHA1: 4acf6bab775d) 6.1.y | Present (different SHA1: 9a6d43844de2) 5.15.y | Present (different SHA1: 131e6c9d16e2) Note: The patch differs from the upstream commit: --- 1: 3d6f83df8ff2d ! 1: eb76eb68e0427 printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX @@ Metadata ## Commit message ## printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX + [ Upstream commit 3d6f83df8ff2d5de84b50377e4f0d45e25311c7a ] + Shifting 1 << 31 on a 32-bit int causes signed integer overflow, which leads to undefined behavior. To prevent this, cast 1 to u32 before performing the shift, ensuring well-defined behavior. @@ Commit message Acked-by: Petr Mladek <pmladek@xxxxxxxx> Link: https://lore.kernel.org/r/20240928113608.1438087-1-visitorckw@xxxxxxxxx Signed-off-by: Petr Mladek <pmladek@xxxxxxxx> + Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> + (cherry picked from commit 9a6d43844de2479a3ff8d674c3e2a16172e01598) + Signed-off-by: Abdelkareem Abdelsaamad <kareemem@xxxxxxxxxx> ## kernel/printk/printk.c ## -@@ kernel/printk/printk.c: static struct latched_seq clear_seq = { +@@ kernel/printk/printk.c: static u64 clear_seq; /* record buffer */ #define LOG_ALIGN __alignof__(unsigned long) #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT) --- Results of testing on various branches: | Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.10.y | Success | Success | | stable/linux-5.15.y | Failed | N/A | Build Errors: Patch failed to apply on stable/linux-5.15.y. Reject: diff a/kernel/printk/printk.c b/kernel/printk/printk.c (rejected hunks) @@ -420,7 +420,7 @@ static u64 clear_seq; /* record buffer */ #define LOG_ALIGN __alignof__(unsigned long) #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT) -#define LOG_BUF_LEN_MAX (u32)(1 << 31) +#define LOG_BUF_LEN_MAX ((u32)1 << 31) static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN); static char *log_buf = __log_buf; static u32 log_buf_len = __LOG_BUF_LEN;