Re: [PATCH] objtool/rust: add one more `noreturn` Rust function

Alice Ryhl
2025-10-20T08:17:17Z

On Mon, Oct 20, 2025 at 04:07:14AM +0200, Miguel Ojeda wrote:
> Between Rust 1.79 and 1.86, under `CONFIG_RUST_KERNEL_DOCTESTS=y`,
> `objtool` may report:
>
> rust/doctests_kernel_generated.o: warning: objtool:
> rust_doctest_kernel_alloc_kbox_rs_13() falls through to next
> function rust_doctest_kernel_alloc_kvec_rs_0()
>
> (as well as in rust_doctest_kernel_alloc_kvec_rs_0) due to calls to the
> `noreturn` symbol:
>
> core::option::expect_failed
>
> from code added in commits 779db37373a3 ("rust: alloc: kvec: implement
> AsPageIter for VVec") and 671618432f46 ("rust: alloc: kbox: implement
> AsPageIter for VBox").
>
> Thus add the mangled one to the list so that `objtool` knows it is
> actually `noreturn`.
>
> This can be reproduced as well in other versions by tweaking the code,
> such as the latest stable Rust (1.90.0).
>
> Stable does not have code that triggers this, but it could have it in
> the future. Downstream forks could too. Thus tag it for backport.
>
> See commit 56d680dd23c3 ("objtool/rust: list `noreturn` Rust functions")
> for more details.
>
> Cc: stable@vger.kernel.org # Needed in 6.12.y and later.
> Cc: Josh Poimboeuf <jpoimboe@kernel.org>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Signed-off-by: Miguel Ojeda <ojeda@kernel.org>

Reviewed-by: Alice Ryhl <aliceryhl@google.com>