]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
rust: io: macro_export io_define_read!() and io_define_write!()
authorDanilo Krummrich <dakr@kernel.org>
Mon, 16 Feb 2026 13:14:33 +0000 (14:14 +0100)
committerDanilo Krummrich <dakr@kernel.org>
Sun, 22 Feb 2026 23:54:02 +0000 (00:54 +0100)
commitbfcaf4e8ae9b4f52b97fb04ce03be3a01d41cdd0
tree5e87223df23c1fe103e78ab145865c61c3f0d1a5
parent2692c614f8f05929d692b3dbfd3faef1f00fbaf0
rust: io: macro_export io_define_read!() and io_define_write!()

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.

Fixes: 121d87b28e1d ("rust: io: separate generic I/O helpers from MMIO implementation")
Reported-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Closes: https://lore.kernel.org/driver-core/CANiq72khOYkt6t5zwMvSiyZvWWHMZuNCMERXu=7K=_5tT-8Pgg@mail.gmail.com/ [1]
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Link: https://patch.msgid.link/20260216131534.65008-1-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
rust/kernel/io.rs
rust/kernel/pci/io.rs