lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAJ-ks9m8+XnMpQtp1G3Fqx7fw-BGSu6oZZSEws_iTbO3Ze0KOw@mail.gmail.com>
Date: Sun, 4 Jan 2026 18:42:57 -0500
From: Tamir Duberstein <tamird@...il.com>
To: Gary Guo <gary@...yguo.net>
Cc: Miguel Ojeda <ojeda@...nel.org>, Boqun Feng <boqun.feng@...il.com>, 
	Björn Roy Baron <bjorn3_gh@...tonmail.com>, 
	Benno Lossin <lossin@...nel.org>, Andreas Hindborg <a.hindborg@...nel.org>, 
	Alice Ryhl <aliceryhl@...gle.com>, Trevor Gross <tmgross@...ch.edu>, 
	Danilo Krummrich <dakr@...nel.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, 
	Guilherme Giacomo Simoes <trintaeoitogc@...il.com>, rust-for-linux@...r.kernel.org, 
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 10/11] rust: macros: rearrange `#[doc(hidden)]` in
 `module!` macro

On Thu, Dec 11, 2025 at 2:30 PM Gary Guo <gary@...nel.org> wrote:
>
> From: Gary Guo <gary@...yguo.net>
>
> This `#[doc(hidden)]` can just be applied on a module to hide anything
> within.
>
> Signed-off-by: Gary Guo <gary@...yguo.net>

Reviewed-by: Tamir Duberstein <tamird@...il.com>

> ---
>  rust/macros/module.rs | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/rust/macros/module.rs b/rust/macros/module.rs
> index d6298d04c86f4..75a4eae5610cd 100644
> --- a/rust/macros/module.rs
> +++ b/rust/macros/module.rs
> @@ -71,7 +71,6 @@ fn emit_base(&mut self, field: &str, content: &str, builtin: bool) {
>          );
>          self.ts.extend(quote! {
>              #cfg
> -            #[doc(hidden)]
>              #[cfg_attr(not(target_os = "macos"), link_section = ".modinfo")]
>              #[used(compiler)]
>              pub static #counter: [u8; #length] = *#string;
> @@ -375,6 +374,7 @@ impl ::kernel::ModuleMetadata for #type_ {
>          }
>
>          // Double nested modules, since then nobody can access the public items inside.
> +        #[doc(hidden)]
>          mod __module_init {
>              mod __module_init {
>                  use pin_init::PinInit;
> @@ -384,7 +384,6 @@ mod __module_init {
>                  // This may be best done another way later on, e.g. as a new modinfo
>                  // key or a new section. For the moment, keep it simple.
>                  #[cfg(MODULE)]
> -                #[doc(hidden)]
>                  #[used(compiler)]
>                  static __IS_RUST_MODULE: () = ();
>
> @@ -397,7 +396,6 @@ mod __module_init {
>                  /// This function must not be called after module initialization, because it may be
>                  /// freed after that completes.
>                  #[cfg(MODULE)]
> -                #[doc(hidden)]
>                  #[no_mangle]
>                  #[link_section = ".init.text"]
>                  pub unsafe extern "C" fn init_module() -> ::kernel::ffi::c_int {
> @@ -408,14 +406,12 @@ mod __module_init {
>                  }
>
>                  #[cfg(MODULE)]
> -                #[doc(hidden)]
>                  #[used(compiler)]
>                  #[link_section = ".init.data"]
>                  static __UNIQUE_ID___addressable_init_module: unsafe extern "C" fn() -> i32 =
>                      init_module;
>
>                  #[cfg(MODULE)]
> -                #[doc(hidden)]
>                  #[no_mangle]
>                  #[link_section = ".exit.text"]
>                  pub extern "C" fn cleanup_module() {
> @@ -429,7 +425,6 @@ pub extern "C" fn cleanup_module() {
>                  }
>
>                  #[cfg(MODULE)]
> -                #[doc(hidden)]
>                  #[used(compiler)]
>                  #[link_section = ".exit.data"]
>                  static __UNIQUE_ID___addressable_cleanup_module: extern "C" fn() = cleanup_module;
> @@ -438,7 +433,6 @@ pub extern "C" fn cleanup_module() {
>                  // and the identifiers need to be unique.
>                  #[cfg(not(MODULE))]
>                  #[cfg(not(CONFIG_HAVE_ARCH_PREL32_RELOCATIONS))]
> -                #[doc(hidden)]
>                  #[link_section = #initcall_section]
>                  #[used(compiler)]
>                  pub static #ident_initcall: extern "C" fn() ->
> @@ -449,7 +443,6 @@ pub extern "C" fn cleanup_module() {
>                  ::core::arch::global_asm!(#global_asm);
>
>                  #[cfg(not(MODULE))]
> -                #[doc(hidden)]
>                  #[no_mangle]
>                  pub extern "C" fn #ident_init() -> ::kernel::ffi::c_int {
>                      // SAFETY: This function is inaccessible to the outside due to the double
> @@ -459,7 +452,6 @@ pub extern "C" fn #ident_init() -> ::kernel::ffi::c_int {
>                  }
>
>                  #[cfg(not(MODULE))]
> -                #[doc(hidden)]
>                  #[no_mangle]
>                  pub extern "C" fn #ident_exit() {
>                      // SAFETY:
> --
> 2.51.2
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ