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_failedfrom 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