[PATCH v10 03/10] rust: doctest: add LocalModule fallback for #[vtable] ThisModule

0 views
Skip to first unread message

Alvin Sun

unread,
Aug 11, 2026, 2:41:10 AM (5 days ago) Aug 11
to Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross, Danilo Krummrich, Luis Chamberlain, Petr Pavlu, Daniel Gomez, Sami Tolvanen, Aaron Tomlin, Greg Kroah-Hartman, Rafael J. Wysocki, David Airlie, Simona Vetter, Daniel Almeida, Arnd Bergmann, Brendan Higgins, David Gow, Rae Moar, Breno Leitao, Jens Axboe, Dave Ertman, Leon Romanovsky, Igor Korotin, FUJITA Tomonori, Bjorn Helgaas, Krzysztof Wilczyński, Arve Hjønnevåg, Todd Kjos, Christian Brauner, Carlos Llamas, rust-fo...@vger.kernel.org, linux-...@vger.kernel.org, drive...@lists.linux.dev, dri-...@lists.freedesktop.org, nova...@lists.linux.dev, linux-k...@vger.kernel.org, kuni...@googlegroups.com, linux...@vger.kernel.org, linux-...@vger.kernel.org, net...@vger.kernel.org, linu...@vger.kernel.org, Alvin Sun
Add a `LocalModule` struct with a null-pointer `ModuleMetadata` impl
in the doctest harness, so that `crate::LocalModule` (auto-inserted
by `#[vtable]`) resolves correctly when there is no `module!` macro.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hin...@kernel.org>
Reviewed-by: Gary Guo <ga...@garyguo.net>
Acked-by: Danilo Krummrich <da...@kernel.org>
Reviewed-by: Alice Ryhl <alic...@google.com>
Signed-off-by: Alvin Sun <alvi...@linux.dev>
---
scripts/rustdoc_test_gen.rs | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

diff --git a/scripts/rustdoc_test_gen.rs b/scripts/rustdoc_test_gen.rs
index d61a77219a8c2..9913f78650365 100644
--- a/scripts/rustdoc_test_gen.rs
+++ b/scripts/rustdoc_test_gen.rs
@@ -232,6 +232,22 @@ macro_rules! assert_eq {{

const __LOG_PREFIX: &[u8] = b"rust_doctests_kernel\0";

+/// Dummy module type for doctest context.
+struct LocalModule;
+
+use kernel::{{
+ str::CStr,
+ ModuleMetadata,
+ ThisModule, //
+}};
+use core::ptr::null_mut;
+
+impl ModuleMetadata for LocalModule {{
+ const NAME: &'static CStr = c"rust_doctests_kernel";
+ // SAFETY: `try_module_get`/`module_put` handle null module pointers gracefully.
+ const THIS_MODULE: ThisModule = unsafe {{ ThisModule::from_ptr(null_mut()) }};
+}}
+
{rust_tests}
"#
)

--
2.43.0


Reply all
Reply to author
Forward
0 new messages