Re: [PATCH v2 11/11] RFC: rust: driver: support map-like syntax for ID table
"Danilo Krummrich" <[email protected]> Thu, 30 Jul 2026 23:00:37 +0200
| Newsgroups | dev.linux.lists.nova-gpu,dev.linux.lists.driver-core,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-acpi,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci,org.kernel.vger.linux-pm,org.kernel.vger.linux-pwm,org.kernel.vger.linux-usb,org.kernel.vger.netdev,org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
On Mon Jun 29, 2026 at 2:39 PM CEST, Gary Guo wrote:
> diff --git a/rust/kernel/device_id.rs b/rust/kernel/device_id.rs
> index c81fca5b4986..5f4d191fce51 100644
> --- a/rust/kernel/device_id.rs
> +++ b/rust/kernel/device_id.rs
> @@ -183,6 +183,17 @@ macro_rules! module_device_table {
> $table_type: literal, $device_id_ty: ty,
> $table_name: ident, $id_info_type: ty,
> [$(($id: expr, $info:expr $(,)?)),* $(,)?]
> + ) =3D> {
> + $crate::module_device_table!(
> + $table_type, $device_id_ty, $table_name, $id_info_type,
> + {$($id=3D>$info,)*}
> + );
> + };
> +
> + (
> + $table_type: literal, $device_id_ty: ty,
> + $table_name: ident, $id_info_type: ty,
> + {$($id: expr =3D> $info:expr),* $(,)?}
> ) =3D> {
> #[export_name =3D
> concat!("__mod_device_table__", ::core::line!(),
> diff --git a/samples/rust/rust_driver_pci.rs b/samples/rust/rust_driver_p=
ci.rs
> index 2282191e6292..652819dff082 100644
> --- a/samples/rust/rust_driver_pci.rs
> +++ b/samples/rust/rust_driver_pci.rs
> @@ -75,10 +75,9 @@ struct SampleDriverData<'bound> {
> kernel::pci_device_table!(
> PCI_TABLE,
> <SampleDriver as pci::Driver>::IdInfo,
> - [(
> - pci::DeviceId::from_id(pci::Vendor::REDHAT, 0x5),
> - TestIndex::NO_EVENTFD
> - )]
> + {
> + pci::DeviceId::from_id(pci::Vendor::REDHAT, 0x5) =3D> TestIndex:=
:NO_EVENTFD,
> + }
> );
This LGTM, do you want to send a follow-up series?
Thanks,
Danilo