Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

rust: miscdevice: use `pin_init::zeroed()` for C type initialization

Replace manual zero-initialization using
`MaybeUninit::zeroed().assume_init()` with `pin_init::zeroed()`.
The `pin_init` helper provides a safer and clearer API for
zero-initializing C structs without requiring an `unsafe` block.

Link: https://github.com/Rust-for-Linux/linux/issues/1189
Signed-off-by: Atharv Dubey <atharvd440@gmail.com>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Link: https://patch.msgid.link/20251129121513.20738-1-atharvd440@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Atharv Dubey and committed by
Greg Kroah-Hartman
953deba7 e849ada7

+3 -5
+3 -5
rust/kernel/miscdevice.rs
··· 20 20 seq_file::SeqFile, 21 21 types::{ForeignOwnable, Opaque}, 22 22 }; 23 - use core::{marker::PhantomData, mem::MaybeUninit, pin::Pin}; 23 + use core::{marker::PhantomData, pin::Pin}; 24 24 25 25 /// Options for creating a misc device. 26 26 #[derive(Copy, Clone)] ··· 32 32 impl MiscDeviceOptions { 33 33 /// Create a raw `struct miscdev` ready for registration. 34 34 pub const fn into_raw<T: MiscDevice>(self) -> bindings::miscdevice { 35 - // SAFETY: All zeros is valid for this C type. 36 - let mut result: bindings::miscdevice = unsafe { MaybeUninit::zeroed().assume_init() }; 35 + let mut result: bindings::miscdevice = pin_init::zeroed(); 37 36 result.minor = bindings::MISC_DYNAMIC_MINOR as ffi::c_int; 38 37 result.name = crate::str::as_char_ptr_in_const_context(self.name); 39 38 result.fops = MiscdeviceVTable::<T>::build(); ··· 419 420 } else { 420 421 None 421 422 }, 422 - // SAFETY: All zeros is a valid value for `bindings::file_operations`. 423 - ..unsafe { MaybeUninit::zeroed().assume_init() } 423 + ..pin_init::zeroed() 424 424 }; 425 425 426 426 const fn build() -> &'static bindings::file_operations {