Skip to contentSkip to conversation

rust: acpi: replace manual zero-initialization with `pin_init::zeroed()`

PATCH In review Atharv Dubey 5 participants 5 messages Dec 1, 2025 – Jan 8

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 rust: acpi: replace manual zero-initialization with `pin_init::zeroed()`

Use pin_init::zeroed() instead of core::mem::zeroed() for initializing acpi_device_id. This removes an explicit unsafe block and aligns ACPI initialization with the pin-init conversion used across the Rust tree.

---
 rust/kernel/acpi.rs | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
rust/kernel/acpi.rs +1 -2
index 37e1161c1298..cc98b36b90a0 100644
@@ -40,8 +40,7 @@ pub const fn new(id: &'static CStr) -> Self {
         let src = id.to_bytes_with_nul();
         build_assert!(src.len() <= Self::ACPI_ID_LEN, "ID exceeds 16 bytes");
         // Replace with `bindings::acpi_device_id::default()` once stabilized for `const`.
-        // SAFETY: FFI type is valid to be zero-initialized.
-        let mut acpi: bindings::acpi_device_id = unsafe { core::mem::zeroed() };
+        let mut acpi: bindings::acpi_device_id = pin_init::zeroed();
         let mut i = 0;
         while i < src.len() {
             acpi.id[i] = src[i];
Signature · 1 line
2.43.0
#1 lore raw
Quoted 7 lines · Atharv Dubey

Use pin_init::zeroed() instead of core::mem::zeroed() for initializing acpi_device_id. This removes an explicit unsafe block and aligns ACPI initialization with the pin-init conversion used across the Rust tree.

A Rust-side ACK or equivalent would be welcome.

Quoted 21 lines
---
 rust/kernel/acpi.rs | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
rust/kernel/acpi.rs +1 -3
index 37e1161c1298..cc98b36b90a0 100644
@@ -40,8 +40,7 @@ pub const fn new(id: &'static CStr) -> Self {
         let src = id.to_bytes_with_nul();
         build_assert!(src.len() <= Self::ACPI_ID_LEN, "ID exceeds 16 bytes");
         // Replace with `bindings::acpi_device_id::default()` once stabilized for `const`.
-        // SAFETY: FFI type is valid to be zero-initialized.
-        let mut acpi: bindings::acpi_device_id = unsafe { core::mem::zeroed() };
+        let mut acpi: bindings::acpi_device_id = pin_init::zeroed();
         let mut i = 0;
         while i < src.len() {
             acpi.id[i] = src[i];
--

2.43.0

reviewer Reviewed-by
#2 lore raw
Quoted 10 lines · Rafael J. Wysocki
Quoted 7 lines · Atharv Dubey

Use pin_init::zeroed() instead of core::mem::zeroed() for initializing acpi_device_id. This removes an explicit unsafe block and aligns ACPI initialization with the pin-init conversion used across the Rust tree.

A Rust-side ACK or equivalent would be welcome.

reviewer Reviewed-by
#3 lore raw
In reply to Rafael J. Wysocki
Quoted 11 lines · Rafael J. Wysocki
Quoted 7 lines · Atharv Dubey

Use pin_init::zeroed() instead of core::mem::zeroed() for initializing acpi_device_id. This removes an explicit unsafe block and aligns ACPI initialization with the pin-init conversion used across the Rust tree.

A Rust-side ACK or equivalent would be welcome.