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] [thread-next>] [day] [month] [year] [list]
Message-Id: <DG7WO1ZQZXUL.1BBSOAP7U2CHG@kernel.org>
Date: Fri, 06 Feb 2026 14:16:05 +0100
From: "Danilo Krummrich" <dakr@...nel.org>
To: "Greg KH" <gregkh@...uxfoundation.org>
Cc: "Alice Ryhl" <aliceryhl@...gle.com>, <rafael@...nel.org>,
 <ojeda@...nel.org>, <boqun.feng@...il.com>, <gary@...yguo.net>,
 <bjorn3_gh@...tonmail.com>, <lossin@...nel.org>, <a.hindborg@...nel.org>,
 <tmgross@...ch.edu>, <driver-core@...ts.linux.dev>,
 <rust-for-linux@...r.kernel.org>, <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 2/5] devres: export devres_node_init() and
 devres_node_add()

On Fri Feb 6, 2026 at 1:34 PM CET, Greg KH wrote:
> That's fine, because the rust driver core code should also be built into
> the kernel, not as a module, right?

Yes, but the Rust compiler may still choose to put some of the core code into
the module.

Especially with generic types and functions the Rust compiler may move some the
generated code for a certain type instance into the module that instanciates the
type.

For instance, even though rust/kernel/devres.rs is *always* built-in, we get the
following error when devres_node_init() is not exported when the users of this
built-in code are built as module.

	ERROR: modpost: "devres_node_init" [drivers/pwm/pwm_th1520.ko] undefined!
	ERROR: modpost: "devres_node_init" [drivers/gpu/drm/tyr/tyr.ko] undefined!
	ERROR: modpost: "devres_node_init" [drivers/gpu/nova-core/nova_core.ko] undefined!
	ERROR: modpost: "devres_node_init" [samples/rust/rust_dma.ko] undefined!
	ERROR: modpost: "devres_node_init" [samples/rust/rust_driver_pci.ko] undefined!
	ERROR: modpost: "devres_node_init" [samples/rust/rust_driver_auxiliary.ko] undefined!
	make[2]: *** [scripts/Makefile.modpost:147: Module.symvers] Error 1

However, sprinkling "raw" EXPORT_SYMBOL_GPL() due to that is not great at all.
Hence, we could do something like in [1] instead. I don't know if there are
other options that may be better though.

[1] https://lore.kernel.org/all/DG7UR3WWZB4V.2MYMJJH1VDHH@kernel.org/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ