Commit 5e305505 authored by Tamir Duberstein's avatar Tamir Duberstein Committed by Miguel Ojeda
Browse files

rust: enable `clippy::as_underscore` lint

In Rust 1.63.0, Clippy introduced the `as_underscore` lint [1]:

> The conversion might include lossy conversion or a dangerous cast that
> might go undetected due to the type being inferred.
>
> The lint is allowed by default as using `_` is less wordy than always
> specifying the type.

Always specifying the type is especially helpful in function call
contexts where the inferred type may change at a distance. Specifying
the type also allows Clippy to spot more cases of `useless_conversion`.

The primary downside is the need to specify the type in trivial getters.
There are 4 such functions: 3 have become slightly less ergonomic, 1 was
revealed to be a `useless_conversion`.

While this doesn't eliminate unchecked `as` conversions, it makes such
conversions easier to scrutinize.  It also has the slight benefit of
removing a degree of freedom on which to bikeshed. Thus apply the
changes and enable the lint -- no functional change intended.

Link: https://rust-lang.github.io/rust-clippy/master/index.html#as_underscore

 [1]
Reviewed-by: default avatarBenno Lossin <benno.lossin@proton.me>
Reviewed-by: default avatarBoqun Feng <boqun.feng@gmail.com>
Signed-off-by: default avatarTamir Duberstein <tamird@gmail.com>
Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: default avatarDanilo Krummrich <dakr@kernel.org>
Link: https://lore.kernel.org/r/20250615-ptr-as-ptr-v12-4-f43b024581e8@gmail.com


[ Changed `isize` to `c_long`. - Miguel ]
Signed-off-by: default avatarMiguel Ojeda <ojeda@kernel.org>
parent 23773bd8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -480,6 +480,7 @@ export rust_common_flags := --edition=2021 \
			    -Wunreachable_pub \
			    -Wclippy::all \
			    -Wclippy::as_ptr_cast_mut \
			    -Wclippy::as_underscore \
			    -Wclippy::ignored_unit_patterns \
			    -Wclippy::mut_mut \
			    -Wclippy::needless_bitwise_bool \
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ pub(crate) struct NovaCore {
    MODULE_PCI_TABLE,
    <NovaCore as pci::Driver>::IdInfo,
    [(
        pci::DeviceId::from_id(bindings::PCI_VENDOR_ID_NVIDIA, bindings::PCI_ANY_ID as _),
        pci::DeviceId::from_id(bindings::PCI_VENDOR_ID_NVIDIA, bindings::PCI_ANY_ID as u32),
        ()
    )]
);
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ impl<T: Operations> OperationsVTable<T> {
        if let Err(e) = ret {
            e.to_blk_status()
        } else {
            bindings::BLK_STS_OK as _
            bindings::BLK_STS_OK as bindings::blk_status_t
        }
    }

+6 −1
Original line number Diff line number Diff line
@@ -125,7 +125,12 @@ pub fn end_ok(this: ARef<Self>) -> Result<(), ARef<Self>> {
        // success of the call to `try_set_end` guarantees that there are no
        // `ARef`s pointing to this request. Therefore it is safe to hand it
        // back to the block layer.
        unsafe { bindings::blk_mq_end_request(request_ptr, bindings::BLK_STS_OK as _) };
        unsafe {
            bindings::blk_mq_end_request(
                request_ptr,
                bindings::BLK_STS_OK as bindings::blk_status_t,
            )
        };

        Ok(())
    }
+1 −1
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ impl<T: RawDeviceId, U, const N: usize> IdArray<T, U, N> {
            unsafe {
                raw_ids[i]
                    .as_mut_ptr()
                    .byte_offset(T::DRIVER_DATA_OFFSET as _)
                    .byte_add(T::DRIVER_DATA_OFFSET)
                    .cast::<usize>()
                    .write(i);
            }
Loading