Miscellaneous fixes:
- Improve bug reporting - Suppress W=1 format warning - Improve rseq scalability on Clang builds Signed-off-by: Ingo Molnar <mingo@kernel.org> -----BEGIN PGP SIGNATURE----- iQJFBAABCgAvFiEEBpT5eoXrXCwVQwEKEnMQ0APhK1gFAmk74D8RHG1pbmdvQGtl cm5lbC5vcmcACgkQEnMQ0APhK1jfHA/9EIt9FCi8B7HHxAnezyVLCQJI7FdY80YS fYB85o+4A5sPq8ypFOSaDD++nZc5X+aG+Jj5LkxgFPaQ81OhqlfMMuefgqXxJi9h M7U/BbtD2hfFYKIIGZq6H/XHNUiHbhdLVtruphEp4luYwLUGSjVzek/A11TvTzfX W0FZLoYdeZeg4lm4MjjADBjvX6NdUpCeZg38i+/N9x8nk5ICfR2FOGHSThXTg4nc /csH+Ymshk3crkXc+DcU/qXTsLYNAX30B47Sa33q0aoFucmcEdkNyYtV09NJWu9P hOSq2xFhRJxVtv8BFXVgJdcz5UCDxlDGksbM2dGOQDLs0FpBd8LvJaSXUFJaI1RD MPly5KvX5K8WI/V5r+S3YvbDRqA3hXZmmYxmHhcQjPrv+fMvXU0/AEkWjjFsaL4E 7Jq2RCpRY10yDISQMhw+7niS/8Y5wHrthLqNnKpBqH4/LnhZA+hzIZsOlVl2+rGn 1tJ1V34RhdU8TUd5qfY6o054xokkCeZpyQ6m7I4+Vg6uyU3a33gJcoeIe5XVyXUg mv/0ON990HfELvDbtpR3ns2SyybIoyr9Re2WQU+FT9xCRVfxI6BDn9MXXIIYReRJ 8fr8jcAxbU/Exhu2ryi6v2jqVHih9C6SJSKSEcBr7V/hlmZ3wdtI6zlTlVmLK/Qe r+Cs29OFW1I= =Ry1N -----END PGP SIGNATURE----- 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 bugaddrmaster
commit
edbe407235
|
|
@ -596,7 +596,7 @@ static __always_inline void rseq_exit_to_user_mode_legacy(void)
|
||||||
|
|
||||||
void __rseq_debug_syscall_return(struct pt_regs *regs);
|
void __rseq_debug_syscall_return(struct pt_regs *regs);
|
||||||
|
|
||||||
static inline void rseq_debug_syscall_return(struct pt_regs *regs)
|
static __always_inline void rseq_debug_syscall_return(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
if (static_branch_unlikely(&rseq_debug_enabled))
|
if (static_branch_unlikely(&rseq_debug_enabled))
|
||||||
__rseq_debug_syscall_return(regs);
|
__rseq_debug_syscall_return(regs);
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,9 @@ struct bug_entry *find_bug(unsigned long bugaddr)
|
||||||
return module_find_bug(bugaddr);
|
return module_find_bug(bugaddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__diag_push();
|
||||||
|
__diag_ignore(GCC, all, "-Wsuggest-attribute=format",
|
||||||
|
"Not a valid __printf() conversion candidate.");
|
||||||
static void __warn_printf(const char *fmt, struct pt_regs *regs)
|
static void __warn_printf(const char *fmt, struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
if (!fmt)
|
if (!fmt)
|
||||||
|
|
@ -192,6 +195,7 @@ static void __warn_printf(const char *fmt, struct pt_regs *regs)
|
||||||
|
|
||||||
printk("%s", fmt);
|
printk("%s", fmt);
|
||||||
}
|
}
|
||||||
|
__diag_pop();
|
||||||
|
|
||||||
static enum bug_trap_type __report_bug(struct bug_entry *bug, unsigned long bugaddr, struct pt_regs *regs)
|
static enum bug_trap_type __report_bug(struct bug_entry *bug, unsigned long bugaddr, struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
|
|
@ -262,7 +266,7 @@ enum bug_trap_type report_bug_entry(struct bug_entry *bug, struct pt_regs *regs)
|
||||||
bool rcu = false;
|
bool rcu = false;
|
||||||
|
|
||||||
rcu = warn_rcu_enter();
|
rcu = warn_rcu_enter();
|
||||||
ret = __report_bug(bug, 0, regs);
|
ret = __report_bug(bug, bug_addr(bug), regs);
|
||||||
warn_rcu_exit(rcu);
|
warn_rcu_exit(rcu);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue