Wrap the generated code in a `const _: ()` block to avoid symbol conflict. This removes the need of creating a new identifier.
Signed-off-by: Gary Guo <[email protected]> --- drivers/cpufreq/rcpufreq_dt.rs | 1 - drivers/gpu/drm/nova/driver.rs | 1 - drivers/gpu/drm/tyr/driver.rs | 1 - drivers/gpu/nova-core/driver.rs | 1 - drivers/pwm/pwm_th1520.rs | 1 - rust/kernel/device_id.rs | 30 ++++++++++++++++-------------- rust/kernel/i2c.rs | 3 --- rust/kernel/net/phy.rs | 2 +- rust/kernel/pci.rs | 1 - rust/kernel/platform.rs | 2 -- rust/kernel/usb.rs | 1 - samples/rust/rust_debugfs.rs | 1 - samples/rust/rust_dma.rs | 1 - samples/rust/rust_driver_auxiliary.rs | 2 -- samples/rust/rust_driver_i2c.rs | 3 --- samples/rust/rust_driver_pci.rs | 1 - samples/rust/rust_driver_platform.rs | 2 -- samples/rust/rust_driver_usb.rs | 1 - samples/rust/rust_i2c_client.rs | 2 -- samples/rust/rust_soc.rs | 2 -- 20 files changed, 17 insertions(+), 42 deletions(-) diff --git a/drivers/cpufreq/rcpufreq_dt.rs b/drivers/cpufreq/rcpufreq_dt.rs index 10106fa13095..145daa12072f 100644 --- a/drivers/cpufreq/rcpufreq_dt.rs +++ b/drivers/cpufreq/rcpufreq_dt.rs @@ -194,7 +194,6 @@ fn register_em(policy: &mut cpufreq::Policy) { kernel::of_device_table!( OF_TABLE, - MODULE_OF_TABLE, <CPUFreqDTDriver as platform::Driver>::IdInfo, [(of::DeviceId::new(c"operating-points-v2"), ())] ); diff --git a/drivers/gpu/drm/nova/driver.rs b/drivers/gpu/drm/nova/driver.rs index 48933d86ddda..43f15cdfeb09 100644 --- a/drivers/gpu/drm/nova/driver.rs +++ b/drivers/gpu/drm/nova/driver.rs @@ -43,7 +43,6 @@ pub(crate) struct NovaData { kernel::auxiliary_device_table!( AUX_TABLE, - MODULE_AUX_TABLE, <NovaDriver as auxiliary::Driver>::IdInfo, [( auxiliary::DeviceId::new(NOVA_CORE_MODULE_NAME, AUXILIARY_NAME), diff --git a/drivers/gpu/drm/tyr/driver.rs b/drivers/gpu/drm/tyr/driver.rs index d063bc664cc1..218e9af899c7 100644 --- a/drivers/gpu/drm/tyr/driver.rs +++ b/drivers/gpu/drm/tyr/driver.rs @@ -87,7 +87,6 @@ fn issue_soft_reset(dev: &Device, iomem: &IoMem<'_>) -> Result { kernel::of_device_table!( OF_TABLE, - MODULE_OF_TABLE, <TyrPlatformDriver as platform::Driver>::IdInfo, [ (of::DeviceId::new(c"rockchip,rk3588-mali"), ()), diff --git a/drivers/gpu/nova-core/driver.rs b/drivers/gpu/nova-core/driver.rs index 5a5f0b63e0f3..0c53b7239ac9 100644 --- a/drivers/gpu/nova-core/driver.rs +++ b/drivers/gpu/nova-core/driver.rs @@ -40,7 +40,6 @@ pub(crate) struct NovaCore<'bound> { kernel::pci_device_table!( PCI_TABLE, - MODULE_PCI_TABLE, <NovaCoreDriver as pci::Driver>::IdInfo, [ // Modern NVIDIA GPUs will show up as either VGA or 3D controllers. diff --git a/drivers/pwm/pwm_th1520.rs b/drivers/pwm/pwm_th1520.rs index 3e3fa51ccef9..1df752330e8f 100644 --- a/drivers/pwm/pwm_th1520.rs +++ b/drivers/pwm/pwm_th1520.rs @@ -303,7 +303,6 @@ fn drop(self: Pin<&mut Self>) { kernel::of_device_table!( OF_TABLE, - MODULE_OF_TABLE, <Th1520PwmPlatformDriver as platform::Driver>::IdInfo, [(of::DeviceId::new(c"thead,th1520-pwm"), ())] ); diff --git a/rust/kernel/device_id.rs b/rust/kernel/device_id.rs index 0239f89d5f69..84852a2d9ad7 100644 --- a/rust/kernel/device_id.rs +++ b/rust/kernel/device_id.rs @@ -177,7 +177,7 @@ fn info(&self, index: usize) -> &U { macro_rules! module_device_table { ( $table_type: literal, $device_id_ty: ty, - $table_name: ident, $module_table_name: ident, $id_info_type: ty, + $table_name: ident, $id_info_type: ty, [$(($id: expr, $info:expr $(,)?)),* $(,)?] ) => { const $table_name: $crate::device_id::IdArray< @@ -186,13 +186,13 @@ macro_rules! module_device_table { { <[$device_id_ty]>::len(&[$($id,)*]) }, > = $crate::device_id::IdArray::new([$(($id, $info),)*]); - $crate::module_device_table!($table_type, $module_table_name, $table_name); + $crate::module_device_table!($table_type, $table_name); }; // Case for no ID info. ( $table_type: literal, $device_id_ty: ty, - $table_name: ident, $module_table_name: ident, @none, + $table_name: ident, @none, [$($id: expr),* $(,)?] ) => { const $table_name: $crate::device_id::IdArray< @@ -201,18 +201,20 @@ macro_rules! module_device_table { { <[$device_id_ty]>::len(&[$($id,)*]) }, > = $crate::device_id::IdArray::new_without_index([$($id),*]); - $crate::module_device_table!($table_type, $module_table_name, $table_name); + $crate::module_device_table!($table_type, $table_name); }; - ($table_type: literal, $module_table_name: ident, $table_name:ident) => { - #[rustfmt::skip] - #[export_name = - concat!("__mod_device_table__", line!(), - "__kmod_", module_path!(), - "__", $table_type, - "__", stringify!($table_name)) - ] - static $module_table_name: [::core::mem::MaybeUninit<u8>; $table_name.raw_ids().size()] = - unsafe { ::core::mem::transmute_copy($table_name.raw_ids()) }; + ($table_type: literal, $table_name:ident) => { + const _: () = { + #[rustfmt::skip] + #[export_name = + concat!("__mod_device_table__", line!(), + "__kmod_", module_path!(), + "__", $table_type, + "__", stringify!($table_name)) + ] + static TABLE: [::core::mem::MaybeUninit<u8>; $table_name.raw_ids().size()] = + unsafe { ::core::mem::transmute_copy($table_name.raw_ids()) }; + }; }; } diff --git a/rust/kernel/i2c.rs b/rust/kernel/i2c.rs index a7d9b88ae616..55c89ba3a82a 100644 --- a/rust/kernel/i2c.rs +++ b/rust/kernel/i2c.rs @@ -261,7 +261,6 @@ macro_rules! module_i2c_driver { /// /// kernel::acpi_device_table!( /// ACPI_TABLE, -/// MODULE_ACPI_TABLE, /// <MyDriver as i2c::Driver>::IdInfo, /// [ /// (acpi::DeviceId::new(c"LNUXBEEF"), ()) @@ -270,7 +269,6 @@ macro_rules! module_i2c_driver { /// /// kernel::i2c_device_table!( /// I2C_TABLE, -/// MODULE_I2C_TABLE, /// <MyDriver as i2c::Driver>::IdInfo, /// [ /// (i2c::DeviceId::new(c"rust_driver_i2c"), ()) @@ -279,7 +277,6 @@ macro_rules! module_i2c_driver { /// /// kernel::of_device_table!( /// OF_TABLE, -/// MODULE_OF_TABLE, /// <MyDriver as i2c::Driver>::IdInfo, /// [ /// (of::DeviceId::new(c"test,device"), ()) diff --git a/rust/kernel/net/phy.rs b/rust/kernel/net/phy.rs index 166572861e61..1e86b901c391 100644 --- a/rust/kernel/net/phy.rs +++ b/rust/kernel/net/phy.rs @@ -811,7 +811,7 @@ macro_rules! module_phy_driver { (@device_table [$($dev:expr),+]) => { $crate::module_device_table!( "mdio", $crate::net::phy::DeviceId, - phydev, TABLE, @none, [$($dev),+] + TABLE, @none, [$($dev),+] ); }; diff --git a/rust/kernel/pci.rs b/rust/kernel/pci.rs index 34e07a53244d..a3dd48f76353 100644 --- a/rust/kernel/pci.rs +++ b/rust/kernel/pci.rs @@ -261,7 +261,6 @@ macro_rules! pci_device_table { /// /// kernel::pci_device_table!( /// PCI_TABLE, -/// MODULE_PCI_TABLE, /// <MyDriver as pci::Driver>::IdInfo, /// [ /// ( diff --git a/rust/kernel/platform.rs b/rust/kernel/platform.rs index 9b362e0495d3..210a815925ce 100644 --- a/rust/kernel/platform.rs +++ b/rust/kernel/platform.rs @@ -176,7 +176,6 @@ macro_rules! module_platform_driver { /// /// kernel::of_device_table!( /// OF_TABLE, -/// MODULE_OF_TABLE, /// <MyDriver as platform::Driver>::IdInfo, /// [ /// (of::DeviceId::new(c"test,device"), ()) @@ -185,7 +184,6 @@ macro_rules! module_platform_driver { /// /// kernel::acpi_device_table!( /// ACPI_TABLE, -/// MODULE_ACPI_TABLE, /// <MyDriver as platform::Driver>::IdInfo, /// [ /// (acpi::DeviceId::new(c"LNUXBEEF"), ()) diff --git a/rust/kernel/usb.rs b/rust/kernel/usb.rs index 154919ee1e19..500b5e0ba4ea 100644 --- a/rust/kernel/usb.rs +++ b/rust/kernel/usb.rs @@ -271,7 +271,6 @@ macro_rules! usb_device_table { /// /// kernel::usb_device_table!( /// USB_TABLE, -/// MODULE_USB_TABLE, /// <MyDriver as usb::Driver>::IdInfo, /// [ /// (usb::DeviceId::from_id(0x1234, 0x5678), ()), diff --git a/samples/rust/rust_debugfs.rs b/samples/rust/rust_debugfs.rs index 1f59e08aaa4b..181fd98ae5b6 100644 --- a/samples/rust/rust_debugfs.rs +++ b/samples/rust/rust_debugfs.rs @@ -110,7 +110,6 @@ fn from_str(s: &str) -> Result<Self> { kernel::acpi_device_table!( ACPI_TABLE, - MODULE_ACPI_TABLE, <RustDebugFs as platform::Driver>::IdInfo, [(acpi::DeviceId::new(c"LNUXBEEF"), ())] ); diff --git a/samples/rust/rust_dma.rs b/samples/rust/rust_dma.rs index 9beb37275e0d..80c309ce07e9 100644 --- a/samples/rust/rust_dma.rs +++ b/samples/rust/rust_dma.rs @@ -51,7 +51,6 @@ unsafe impl kernel::transmute::FromBytes for MyStruct {} kernel::pci_device_table!( PCI_TABLE, - MODULE_PCI_TABLE, <DmaSampleDriver as pci::Driver>::IdInfo, [(pci::DeviceId::from_id(pci::Vendor::REDHAT, 0x5), ())] ); diff --git a/samples/rust/rust_driver_auxiliary.rs b/samples/rust/rust_driver_auxiliary.rs index 73c63afc046a..704567a072ba 100644 --- a/samples/rust/rust_driver_auxiliary.rs +++ b/samples/rust/rust_driver_auxiliary.rs @@ -24,7 +24,6 @@ kernel::auxiliary_device_table!( AUX_TABLE, - MODULE_AUX_TABLE, <AuxiliaryDriver as auxiliary::Driver>::IdInfo, [(auxiliary::DeviceId::new(MODULE_NAME, AUXILIARY_NAME), ())] ); @@ -66,7 +65,6 @@ struct ParentData<'bound> { kernel::pci_device_table!( PCI_TABLE, - MODULE_PCI_TABLE, <ParentDriver as pci::Driver>::IdInfo, [(pci::DeviceId::from_id(pci::Vendor::REDHAT, 0x5), ())] ); diff --git a/samples/rust/rust_driver_i2c.rs b/samples/rust/rust_driver_i2c.rs index ead8263a7d48..a0df0c6097c4 100644 --- a/samples/rust/rust_driver_i2c.rs +++ b/samples/rust/rust_driver_i2c.rs @@ -14,21 +14,18 @@ kernel::acpi_device_table! { ACPI_TABLE, - MODULE_ACPI_TABLE, <SampleDriver as i2c::Driver>::IdInfo, [(acpi::DeviceId::new(c"LNUXBEEF"), 0)] } kernel::i2c_device_table! { I2C_TABLE, - MODULE_I2C_TABLE, <SampleDriver as i2c::Driver>::IdInfo, [(i2c::DeviceId::new(c"rust_driver_i2c"), 0)] } kernel::of_device_table! { OF_TABLE, - MODULE_OF_TABLE, <SampleDriver as i2c::Driver>::IdInfo, [(of::DeviceId::new(c"test,rust_driver_i2c"), 0)] } diff --git a/samples/rust/rust_driver_pci.rs b/samples/rust/rust_driver_pci.rs index 5547dd704a1b..2282191e6292 100644 --- a/samples/rust/rust_driver_pci.rs +++ b/samples/rust/rust_driver_pci.rs @@ -74,7 +74,6 @@ struct SampleDriverData<'bound> { kernel::pci_device_table!( PCI_TABLE, - MODULE_PCI_TABLE, <SampleDriver as pci::Driver>::IdInfo, [( pci::DeviceId::from_id(pci::Vendor::REDHAT, 0x5), diff --git a/samples/rust/rust_driver_platform.rs b/samples/rust/rust_driver_platform.rs index ec0d6cac4f57..710145b3605a 100644 --- a/samples/rust/rust_driver_platform.rs +++ b/samples/rust/rust_driver_platform.rs @@ -87,14 +87,12 @@ struct SampleDriver { kernel::of_device_table!( OF_TABLE, - MODULE_OF_TABLE, <SampleDriver as platform::Driver>::IdInfo, [(of::DeviceId::new(c"test,rust-device"), Info(42))] ); kernel::acpi_device_table!( ACPI_TABLE, - MODULE_ACPI_TABLE, <SampleDriver as platform::Driver>::IdInfo, [(acpi::DeviceId::new(c"LNUXBEEF"), Info(0))] ); diff --git a/samples/rust/rust_driver_usb.rs b/samples/rust/rust_driver_usb.rs index 02bd5085f9bc..284042c5969b 100644 --- a/samples/rust/rust_driver_usb.rs +++ b/samples/rust/rust_driver_usb.rs @@ -19,7 +19,6 @@ struct SampleDriver { kernel::usb_device_table!( USB_TABLE, - MODULE_USB_TABLE, <SampleDriver as usb::Driver>::IdInfo, [(usb::DeviceId::from_id(0x1234, 0x5678), ()),] ); diff --git a/samples/rust/rust_i2c_client.rs b/samples/rust/rust_i2c_client.rs index 2d876f4e3ee0..c8a23875ef5b 100644 --- a/samples/rust/rust_i2c_client.rs +++ b/samples/rust/rust_i2c_client.rs @@ -87,14 +87,12 @@ struct SampleDriver { kernel::of_device_table!( OF_TABLE, - MODULE_OF_TABLE, <SampleDriver as platform::Driver>::IdInfo, [(of::DeviceId::new(c"test,rust-device"), ())] ); kernel::acpi_device_table!( ACPI_TABLE, - MODULE_ACPI_TABLE, <SampleDriver as platform::Driver>::IdInfo, [(acpi::DeviceId::new(c"LNUXBEEF"), ())] ); diff --git a/samples/rust/rust_soc.rs b/samples/rust/rust_soc.rs index 808d58200eb6..f5e5f2f9adf7 100644 --- a/samples/rust/rust_soc.rs +++ b/samples/rust/rust_soc.rs @@ -23,14 +23,12 @@ struct SampleSocDriver { kernel::of_device_table!( OF_TABLE, - MODULE_OF_TABLE, <SampleSocDriver as platform::Driver>::IdInfo, [(of::DeviceId::new(c"test,rust-device"), ())] ); kernel::acpi_device_table!( ACPI_TABLE, - MODULE_ACPI_TABLE, <SampleSocDriver as platform::Driver>::IdInfo, [(acpi::DeviceId::new(c"LNUXBEEF"), ())] ); -- 2.54.0
