Skip to content

Commit

Permalink
rust: kernel: remove redundant imports
Browse files Browse the repository at this point in the history
Rust's `unused_imports` lint covers both unused and redundant imports.
In the upcoming 1.78.0, the lint detects more cases of redundant imports
[1], e.g.:

    error: the item `bindings` is imported redundantly
      --> rust/kernel/print.rs:38:9
       |
    38 |     use crate::bindings;
       |         ^^^^^^^^^^^^^^^ the item `bindings` is already defined by prelude

Most cases are `use crate::bindings`, plus a few other items like `Box`.
Thus clean them up.

Note that, in the `bindings` case, the message "defined by prelude"
above means the extern prelude, i.e. the `--extern` flags we pass.

Link: rust-lang/rust#117772 [1]
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/20240401212303.537355-3-ojeda@kernel.org
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
  • Loading branch information
ojeda committed May 5, 2024
1 parent 7c81aa8 commit 0028027
Show file tree
Hide file tree
Showing 15 changed files with 5 additions and 27 deletions.
1 change: 0 additions & 1 deletion rust/kernel/alloc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ impl core::ops::Not for Flags {
/// These are meant to be used in functions that can allocate memory.
pub mod flags {
use super::Flags;
use crate::bindings;

/// Zeroes out the allocated memory.
///
Expand Down
2 changes: 0 additions & 2 deletions rust/kernel/alloc/allocator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ use super::{flags::*, Flags};
use core::alloc::{GlobalAlloc, Layout};
use core::ptr;

use crate::bindings;

struct KernelAllocator;

/// Calls `krealloc` with a proper size to alloc a new object aligned to `new_layout`'s alignment.
Expand Down
1 change: 0 additions & 1 deletion rust/kernel/alloc/box_ext.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
use super::{AllocError, Flags};
use alloc::boxed::Box;
use core::mem::MaybeUninit;
use core::result::Result;

/// Extensions to [`Box`].
pub trait BoxExt<T>: Sized {
Expand Down
1 change: 0 additions & 1 deletion rust/kernel/alloc/vec_ext.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
use super::{AllocError, Flags};
use alloc::vec::Vec;
use core::result::Result;

/// Extensions to [`Vec`].
pub trait VecExt<T>: Sized {
Expand Down
1 change: 0 additions & 1 deletion rust/kernel/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ use crate::{alloc::AllocError, str::CStr};

use alloc::alloc::LayoutError;

use core::convert::From;
use core::fmt;
use core::num::TryFromIntError;
use core::str::Utf8Error;
Expand Down
2 changes: 1 addition & 1 deletion rust/kernel/net/phy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//!
//! C headers: [`include/linux/phy.h`](srctree/include/linux/phy.h).
use crate::{bindings, error::*, prelude::*, str::CStr, types::Opaque};
use crate::{error::*, prelude::*, types::Opaque};

use core::marker::PhantomData;

Expand Down
5 changes: 0 additions & 5 deletions rust/kernel/print.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,6 @@ use core::{

use crate::str::RawFormatter;

#[cfg(CONFIG_PRINTK)]
use crate::bindings;

// Called from `vsprintf` with format specifier `%pA`.
#[no_mangle]
unsafe extern "C" fn rust_fmt_argument(
Expand All @@ -35,8 +32,6 @@ unsafe extern "C" fn rust_fmt_argument(
/// Public but hidden since it should only be used from public macros.
#[doc(hidden)]
pub mod format_strings {
use crate::bindings;

/// The length we copy from the `KERN_*` kernel prefixes.
const LENGTH_PREFIX: usize = 2;

Expand Down
5 changes: 1 addition & 4 deletions rust/kernel/str.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@ use alloc::vec::Vec;
use core::fmt::{self, Write};
use core::ops::{self, Deref, DerefMut, Index};

use crate::{
bindings,
error::{code::*, Error},
};
use crate::error::{code::*, Error};

/// Byte string without UTF-8 validity guarantee.
#[repr(transparent)]
Expand Down
1 change: 0 additions & 1 deletion rust/kernel/sync/arc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
use crate::{
alloc::{box_ext::BoxExt, AllocError, Flags},
bindings,
error::{self, Error},
init::{self, InPlaceInit, Init, PinInit},
try_init,
Expand Down
1 change: 0 additions & 1 deletion rust/kernel/sync/condvar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
use super::{lock::Backend, lock::Guard, LockClassKey};
use crate::{
bindings,
init::PinInit,
pin_init,
str::CStr,
Expand Down
2 changes: 1 addition & 1 deletion rust/kernel/sync/lock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//! spinlocks, raw spinlocks) to be provided with minimal effort.
use super::LockClassKey;
use crate::{bindings, init::PinInit, pin_init, str::CStr, types::Opaque, types::ScopeGuard};
use crate::{init::PinInit, pin_init, str::CStr, types::Opaque, types::ScopeGuard};
use core::{cell::UnsafeCell, marker::PhantomData, marker::PhantomPinned};
use macros::pin_data;

Expand Down
2 changes: 0 additions & 2 deletions rust/kernel/sync/lock/mutex.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
//!
//! This module allows Rust code to use the kernel's `struct mutex`.
use crate::bindings;

/// Creates a [`Mutex`] initialiser with the given name and a newly-created lock class.
///
/// It uses the name if one is given, otherwise it generates one based on the file name and line
Expand Down
2 changes: 0 additions & 2 deletions rust/kernel/sync/lock/spinlock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
//!
//! This module allows Rust code to use the kernel's `spinlock_t`.
use crate::bindings;

/// Creates a [`SpinLock`] initialiser with the given name and a newly-created lock class.
///
/// It uses the name if one is given, otherwise it generates one based on the file name and line
Expand Down
2 changes: 1 addition & 1 deletion rust/kernel/task.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
//!
//! C header: [`include/linux/sched.h`](srctree/include/linux/sched.h).
use crate::{bindings, types::Opaque};
use crate::types::Opaque;
use core::{
ffi::{c_int, c_long, c_uint},
marker::PhantomData,
Expand Down
4 changes: 1 addition & 3 deletions rust/kernel/workqueue.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,8 @@
//! C header: [`include/linux/workqueue.h`](srctree/include/linux/workqueue.h)
use crate::alloc::{AllocError, Flags};
use crate::{bindings, prelude::*, sync::Arc, sync::LockClassKey, types::Opaque};
use alloc::boxed::Box;
use crate::{prelude::*, sync::Arc, sync::LockClassKey, types::Opaque};
use core::marker::PhantomData;
use core::pin::Pin;

/// Creates a [`Work`] initialiser with the given name and a newly-created lock class.
#[macro_export]
Expand Down

0 comments on commit 0028027

Please sign in to comment.