2024-05-19 21:07:59

by Miguel Ojeda

[permalink] [raw]
Subject: [PATCH] rust: avoid unused import warning in `rusttest`

When compiling for the `rusttest` target, the `core::ptr` import is
unused since its only use happens in the `reserve()` method which is
not compiled in that target:

warning: unused import: `core::ptr`
--> rust/kernel/alloc/vec_ext.rs:7:5
|
7 | use core::ptr;
| ^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default

Thus clean it.

Fixes: 97ab3e8eec0c ("rust: alloc: fix dangling pointer in VecExt<T>::reserve()")
Signed-off-by: Miguel Ojeda <[email protected]>
---
rust/kernel/alloc/vec_ext.rs | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/rust/kernel/alloc/vec_ext.rs b/rust/kernel/alloc/vec_ext.rs
index e9a81052728a..1297a4be32e8 100644
--- a/rust/kernel/alloc/vec_ext.rs
+++ b/rust/kernel/alloc/vec_ext.rs
@@ -4,7 +4,6 @@

use super::{AllocError, Flags};
use alloc::vec::Vec;
-use core::ptr;

/// Extensions to [`Vec`].
pub trait VecExt<T>: Sized {
@@ -141,7 +140,11 @@ fn reserve(&mut self, additional: usize, flags: Flags) -> Result<(), AllocError>
// `krealloc_aligned`. A `Vec<T>`'s `ptr` value is not guaranteed to be NULL and might be
// dangling after being created with `Vec::new`. Instead, we can rely on `Vec<T>`'s capacity
// to be zero if no memory has been allocated yet.
- let ptr = if cap == 0 { ptr::null_mut() } else { old_ptr };
+ let ptr = if cap == 0 {
+ core::ptr::null_mut()
+ } else {
+ old_ptr
+ };

// SAFETY: `ptr` is valid because it's either NULL or comes from a previous call to
// `krealloc_aligned`. We also verified that the type is not a ZST.

base-commit: 97ab3e8eec0ce79d9e265e6c9e4c480492180409
--
2.45.1



2024-05-20 09:40:42

by Alice Ryhl

[permalink] [raw]
Subject: Re: [PATCH] rust: avoid unused import warning in `rusttest`

On Sun, May 19, 2024 at 11:07 PM Miguel Ojeda <[email protected]> wrote:
>
> When compiling for the `rusttest` target, the `core::ptr` import is
> unused since its only use happens in the `reserve()` method which is
> not compiled in that target:
>
> warning: unused import: `core::ptr`
> --> rust/kernel/alloc/vec_ext.rs:7:5
> |
> 7 | use core::ptr;
> | ^^^^^^^^^
> |
> = note: `#[warn(unused_imports)]` on by default
>
> Thus clean it.
>
> Fixes: 97ab3e8eec0c ("rust: alloc: fix dangling pointer in VecExt<T>::reserve()")
> Signed-off-by: Miguel Ojeda <[email protected]>

Reviewed-by: Alice Ryhl <[email protected]>

2024-05-20 15:24:46

by Danilo Krummrich

[permalink] [raw]
Subject: Re: [PATCH] rust: avoid unused import warning in `rusttest`

On Sun, May 19, 2024 at 11:07:35PM +0200, Miguel Ojeda wrote:
> When compiling for the `rusttest` target, the `core::ptr` import is
> unused since its only use happens in the `reserve()` method which is
> not compiled in that target:
>
> warning: unused import: `core::ptr`
> --> rust/kernel/alloc/vec_ext.rs:7:5
> |
> 7 | use core::ptr;
> | ^^^^^^^^^
> |
> = note: `#[warn(unused_imports)]` on by default
>
> Thus clean it.
>
> Fixes: 97ab3e8eec0c ("rust: alloc: fix dangling pointer in VecExt<T>::reserve()")
> Signed-off-by: Miguel Ojeda <[email protected]>

Reviewed-by: Danilo Krummrich <[email protected]>

> ---
> rust/kernel/alloc/vec_ext.rs | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/rust/kernel/alloc/vec_ext.rs b/rust/kernel/alloc/vec_ext.rs
> index e9a81052728a..1297a4be32e8 100644
> --- a/rust/kernel/alloc/vec_ext.rs
> +++ b/rust/kernel/alloc/vec_ext.rs
> @@ -4,7 +4,6 @@
>
> use super::{AllocError, Flags};
> use alloc::vec::Vec;
> -use core::ptr;
>
> /// Extensions to [`Vec`].
> pub trait VecExt<T>: Sized {
> @@ -141,7 +140,11 @@ fn reserve(&mut self, additional: usize, flags: Flags) -> Result<(), AllocError>
> // `krealloc_aligned`. A `Vec<T>`'s `ptr` value is not guaranteed to be NULL and might be
> // dangling after being created with `Vec::new`. Instead, we can rely on `Vec<T>`'s capacity
> // to be zero if no memory has been allocated yet.
> - let ptr = if cap == 0 { ptr::null_mut() } else { old_ptr };
> + let ptr = if cap == 0 {
> + core::ptr::null_mut()
> + } else {
> + old_ptr
> + };
>
> // SAFETY: `ptr` is valid because it's either NULL or comes from a previous call to
> // `krealloc_aligned`. We also verified that the type is not a ZST.
>
> base-commit: 97ab3e8eec0ce79d9e265e6c9e4c480492180409
> --
> 2.45.1
>


2024-06-11 22:14:51

by Miguel Ojeda

[permalink] [raw]
Subject: Re: [PATCH] rust: avoid unused import warning in `rusttest`

On Sun, May 19, 2024 at 11:07 PM Miguel Ojeda <[email protected]> wrote:
>
> When compiling for the `rusttest` target, the `core::ptr` import is
> unused since its only use happens in the `reserve()` method which is
> not compiled in that target:
>
> warning: unused import: `core::ptr`
> --> rust/kernel/alloc/vec_ext.rs:7:5
> |
> 7 | use core::ptr;
> | ^^^^^^^^^
> |
> = note: `#[warn(unused_imports)]` on by default
>
> Thus clean it.
>
> Fixes: 97ab3e8eec0c ("rust: alloc: fix dangling pointer in VecExt<T>::reserve()")
> Signed-off-by: Miguel Ojeda <[email protected]>

Applied to `rust-fixes` -- thanks everyone!

Cheers,
Miguel