Commit 2c109285 authored by Wedson Almeida Filho's avatar Wedson Almeida Filho Committed by Miguel Ojeda

rust: kernel: remove usage of `allocator_api` unstable feature

With the adoption of `BoxExt` and `VecExt`, we don't need the functions
provided by this feature (namely the methods prefixed with `try_` and
different allocator per collection instance).

We do need `AllocError`, but we define our own as it is a trivial empty
struct.
Reviewed-by: default avatarBenno Lossin <benno.lossin@proton.me>
Signed-off-by: default avatarWedson Almeida Filho <walmeida@microsoft.com>
Link: https://lore.kernel.org/r/20240328013603.206764-11-wedsonaf@gmail.comSigned-off-by: default avatarMiguel Ojeda <ojeda@kernel.org>
parent c34aa00d
...@@ -8,6 +8,10 @@ ...@@ -8,6 +8,10 @@
pub mod box_ext; pub mod box_ext;
pub mod vec_ext; pub mod vec_ext;
/// Indicates an allocation error.
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
pub struct AllocError;
/// Flags to be used when allocating memory. /// Flags to be used when allocating memory.
/// ///
/// They can be combined with the operators `|`, `&`, and `!`. /// They can be combined with the operators `|`, `&`, and `!`.
......
...@@ -2,9 +2,8 @@ ...@@ -2,9 +2,8 @@
//! Extensions to [`Box`] for fallible allocations. //! Extensions to [`Box`] for fallible allocations.
use super::Flags; use super::{AllocError, Flags};
use alloc::boxed::Box; use alloc::boxed::Box;
use core::alloc::AllocError;
use core::mem::MaybeUninit; use core::mem::MaybeUninit;
use core::result::Result; use core::result::Result;
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
//! Extensions to [`Vec`] for fallible allocations. //! Extensions to [`Vec`] for fallible allocations.
use super::Flags; use super::{AllocError, Flags};
use alloc::{alloc::AllocError, vec::Vec}; use alloc::vec::Vec;
use core::result::Result; use core::result::Result;
/// Extensions to [`Vec`]. /// Extensions to [`Vec`].
......
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
//! //!
//! C header: [`include/uapi/asm-generic/errno-base.h`](srctree/include/uapi/asm-generic/errno-base.h) //! C header: [`include/uapi/asm-generic/errno-base.h`](srctree/include/uapi/asm-generic/errno-base.h)
use crate::str::CStr; use crate::{alloc::AllocError, str::CStr};
use alloc::alloc::{AllocError, LayoutError}; use alloc::alloc::LayoutError;
use core::convert::From; use core::convert::From;
use core::fmt; use core::fmt;
......
...@@ -211,14 +211,13 @@ ...@@ -211,14 +211,13 @@
//! [`pin_init!`]: crate::pin_init! //! [`pin_init!`]: crate::pin_init!
use crate::{ use crate::{
alloc::{box_ext::BoxExt, Flags}, alloc::{box_ext::BoxExt, AllocError, Flags},
error::{self, Error}, error::{self, Error},
sync::UniqueArc, sync::UniqueArc,
types::{Opaque, ScopeGuard}, types::{Opaque, ScopeGuard},
}; };
use alloc::boxed::Box; use alloc::boxed::Box;
use core::{ use core::{
alloc::AllocError,
cell::UnsafeCell, cell::UnsafeCell,
convert::Infallible, convert::Infallible,
marker::PhantomData, marker::PhantomData,
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
//! do so first instead of bypassing this crate. //! do so first instead of bypassing this crate.
#![no_std] #![no_std]
#![feature(allocator_api)]
#![feature(coerce_unsized)] #![feature(coerce_unsized)]
#![feature(dispatch_from_dyn)] #![feature(dispatch_from_dyn)]
#![feature(new_uninit)] #![feature(new_uninit)]
......
...@@ -2,8 +2,7 @@ ...@@ -2,8 +2,7 @@
//! String representations. //! String representations.
use crate::alloc::{flags::*, vec_ext::VecExt}; use crate::alloc::{flags::*, vec_ext::VecExt, AllocError};
use alloc::alloc::AllocError;
use alloc::vec::Vec; use alloc::vec::Vec;
use core::fmt::{self, Write}; use core::fmt::{self, Write};
use core::ops::{self, Deref, DerefMut, Index}; use core::ops::{self, Deref, DerefMut, Index};
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
//! [`Arc`]: https://doc.rust-lang.org/std/sync/struct.Arc.html //! [`Arc`]: https://doc.rust-lang.org/std/sync/struct.Arc.html
use crate::{ use crate::{
alloc::{box_ext::BoxExt, Flags}, alloc::{box_ext::BoxExt, AllocError, Flags},
bindings, bindings,
error::{self, Error}, error::{self, Error},
init::{self, InPlaceInit, Init, PinInit}, init::{self, InPlaceInit, Init, PinInit},
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
}; };
use alloc::boxed::Box; use alloc::boxed::Box;
use core::{ use core::{
alloc::{AllocError, Layout}, alloc::Layout,
fmt, fmt,
marker::{PhantomData, Unsize}, marker::{PhantomData, Unsize},
mem::{ManuallyDrop, MaybeUninit}, mem::{ManuallyDrop, MaybeUninit},
......
...@@ -132,9 +132,8 @@ ...@@ -132,9 +132,8 @@
//! //!
//! C header: [`include/linux/workqueue.h`](srctree/include/linux/workqueue.h) //! C header: [`include/linux/workqueue.h`](srctree/include/linux/workqueue.h)
use crate::alloc::Flags; use crate::alloc::{AllocError, Flags};
use crate::{bindings, prelude::*, sync::Arc, sync::LockClassKey, types::Opaque}; use crate::{bindings, prelude::*, sync::Arc, sync::LockClassKey, types::Opaque};
use alloc::alloc::AllocError;
use alloc::boxed::Box; use alloc::boxed::Box;
use core::marker::PhantomData; use core::marker::PhantomData;
use core::pin::Pin; use core::pin::Pin;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment