On Sun, 12 Jan 2025 15:39:51 +0100 Miguel Ojeda <ojeda@xxxxxxxxxx> wrote: > Starting with Rust 1.85.0 (currently in beta, to be released 2025-02-20), > under some kernel configurations with `CONFIG_RUST_DEBUG_ASSERTIONS=y`, > one may trigger a new `objtool` warning: > > rust/kernel.o: warning: objtool: _R...securityNtB2_11SecurityCtx8as_bytes() > falls through to next function _R...core3ops4drop4Drop4drop() > > due to a call to the `noreturn` symbol: > > core::panicking::assert_failed::<usize, usize> > > Thus add it to the list so that `objtool` knows it is actually `noreturn`. > Do so matching with `strstr` since it is a generic. > > See commit 56d680dd23c3 ("objtool/rust: list `noreturn` Rust functions") > for more details. > > Cc: <stable@xxxxxxxxxxxxxxx> # Needed in 6.12.y only (Rust is pinned in older LTSs). > Signed-off-by: Miguel Ojeda <ojeda@xxxxxxxxxx> Reviewed-by: Gary Guo <gary@xxxxxxxxxxx> > --- > tools/objtool/check.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tools/objtool/check.c b/tools/objtool/check.c > index 76060da755b5..e7ec29dfdff2 100644 > --- a/tools/objtool/check.c > +++ b/tools/objtool/check.c > @@ -218,6 +218,7 @@ static bool is_rust_noreturn(const struct symbol *func) > str_ends_with(func->name, "_4core9panicking18panic_bounds_check") || > str_ends_with(func->name, "_4core9panicking19assert_failed_inner") || > str_ends_with(func->name, "_4core9panicking36panic_misaligned_pointer_dereference") || > + strstr(func->name, "_4core9panicking13assert_failed") || > strstr(func->name, "_4core9panicking11panic_const24panic_const_") || > (strstr(func->name, "_4core5slice5index24slice_") && > str_ends_with(func->name, "_fail")); > > base-commit: 9d89551994a430b50c4fffcb1e617a057fa76e20