Skip to content

Commit edbe407

Browse files
committed
Merge tag 'core-urgent-2025-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull misc core fixes from Ingo Molnar: - Improve bug reporting - Suppress W=1 format warning - Improve rseq scalability on Clang builds * tag 'core-urgent-2025-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: rseq: Always inline rseq_debug_syscall_return() bug: Hush suggest-attribute=format for __warn_printf() bug: Let report_bug_entry() provide the correct bugaddr
2 parents 9d9c1cf + bdae29d commit edbe407

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

include/linux/rseq_entry.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,7 @@ static __always_inline void rseq_exit_to_user_mode_legacy(void)
596596

597597
void __rseq_debug_syscall_return(struct pt_regs *regs);
598598

599-
static inline void rseq_debug_syscall_return(struct pt_regs *regs)
599+
static __always_inline void rseq_debug_syscall_return(struct pt_regs *regs)
600600
{
601601
if (static_branch_unlikely(&rseq_debug_enabled))
602602
__rseq_debug_syscall_return(regs);

lib/bug.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@ struct bug_entry *find_bug(unsigned long bugaddr)
173173
return module_find_bug(bugaddr);
174174
}
175175

176+
__diag_push();
177+
__diag_ignore(GCC, all, "-Wsuggest-attribute=format",
178+
"Not a valid __printf() conversion candidate.");
176179
static void __warn_printf(const char *fmt, struct pt_regs *regs)
177180
{
178181
if (!fmt)
@@ -192,6 +195,7 @@ static void __warn_printf(const char *fmt, struct pt_regs *regs)
192195

193196
printk("%s", fmt);
194197
}
198+
__diag_pop();
195199

196200
static enum bug_trap_type __report_bug(struct bug_entry *bug, unsigned long bugaddr, struct pt_regs *regs)
197201
{
@@ -262,7 +266,7 @@ enum bug_trap_type report_bug_entry(struct bug_entry *bug, struct pt_regs *regs)
262266
bool rcu = false;
263267

264268
rcu = warn_rcu_enter();
265-
ret = __report_bug(bug, 0, regs);
269+
ret = __report_bug(bug, bug_addr(bug), regs);
266270
warn_rcu_exit(rcu);
267271

268272
return ret;

0 commit comments

Comments
 (0)