Asahi Lina <lina@xxxxxxxxxxxxx> writes: > On 27/02/2023 22.09, Andreas Hindborg wrote: >> >> Asahi Lina <lina@xxxxxxxxxxxxx> writes: >> >>> The unstable new_uninit feature enables various library APIs to create >>> uninitialized containers, such as `Box::assume_init()`. This is >>> necessary to build abstractions that directly initialize memory at the >>> target location, instead of doing copies through the stack. >>> >>> Will be used by the DRM scheduler abstraction in the kernel crate, and >>> by field-wise initialization (e.g. using `place!()` or a future >>> replacement macro which may itself live in `kernel`) in driver crates. >>> >>> See [1] [2] [3] for background information. >>> >>> [1] https://github.com/Rust-for-Linux/linux/issues/879 >>> [2] https://github.com/Rust-for-Linux/linux/issues/2 >>> [3] https://github.com/rust-lang/rust/issues/63291 >>> >>> Signed-off-by: Asahi Lina <lina@xxxxxxxxxxxxx> >>> --- >>> rust/kernel/lib.rs | 1 + >>> scripts/Makefile.build | 2 +- >>> 2 files changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs >>> index 223564f9f0cc..1118cd3e0b5f 100644 >>> --- a/rust/kernel/lib.rs >>> +++ b/rust/kernel/lib.rs >>> @@ -17,6 +17,7 @@ >>> #![feature(core_ffi_c)] >>> #![feature(dispatch_from_dyn)] >>> #![feature(generic_associated_types)] >>> +#![feature(new_uninit)] >>> #![feature(receiver_trait)] >>> #![feature(unsize)] >>> >>> diff --git a/scripts/Makefile.build b/scripts/Makefile.build >>> index a0d5c6cca76d..0f637e1ca8dc 100644 >>> --- a/scripts/Makefile.build >>> +++ b/scripts/Makefile.build >>> @@ -277,7 +277,7 @@ $(obj)/%.lst: $(src)/%.c FORCE >>> # Compile Rust sources (.rs) >>> # --------------------------------------------------------------------------- >>> >>> -rust_allowed_features := core_ffi_c >>> +rust_allowed_features := core_ffi_c,new_uninit >> >> What is the purpose of adding the feature here? The kernel crate seems >> to compile fine without this. > > It's for the upcoming DRM abstractions, as I mentioned in the commit > message. There's so many dependencies that I'm trying to get as much as > I can early to avoid having to review very big patchsets down the line ^^ I got confused on the different makefile rules used to build kernel crate vs module crates. Looks good 👍 Reviewed-by: Andreas Hindborg <a.hindborg@xxxxxxxxxxx>