Re: [PATCH] rust: io: macro_export io_define_read!() and io_define_write!()
From: Danilo Krummrich
Date: Mon Feb 16 2026 - 08:48:16 EST
On Mon Feb 16, 2026 at 2:39 PM CET, Alexandre Courbot wrote:
> 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,
Not for stable, but for v7.0.
> but if we merge [1] these macros will disappear anyway, so is the extra
> documentation worth the trouble?
We are not removing it within the same release, v7.0 will remain as is, so
proper documentation doesn't hurt.
> [1] https://lore.kernel.org/all/20260206-io-v2-0-71dea20a06e6@xxxxxxxxxx/