Re: [PATCH] rust: io: macro_export io_define_read!() and io_define_write!()

From: Alexandre Courbot

Date: Mon Feb 16 2026 - 08:42:06 EST


On Mon Feb 16, 2026 at 10:14 PM JST, Danilo Krummrich wrote:
> Currently, the define_read!() and define_write!() I/O macros are crate
> public. The only user outside of the I/O module is PCI (for the
> configurations space I/O backend). Consequently, when CONFIG_PCI=n this
> causes a compile time warning [1].
>
> In order to fix this, rename the macros to io_define_read!() and
> io_define_write!() and use #[macro_export] to export them.
>
> This is better than making the crate public visibility conditional, as
> eventually subsystems will have their own crate.
>
> Also, I/O backends are valid to be implemented by drivers as well. For
> instance, there are devices (such as GPUs) that run firmware which
> allows to program other devices only accessible through the primary
> device through indirect I/O.
>
> Since the macros are now public, also add the corresponding
> documentation.

The fix is relevant for stable kernels, but if we merge [1] these macros
will disappear anyway, so is the extra documentation worth the trouble?

[1] https://lore.kernel.org/all/20260206-io-v2-0-71dea20a06e6@xxxxxxxxxx/