Hello Alex,

On 10/27/2025 8:54 AM, Alexandre Courbot wrote:
> These variables were read from the u8 array `data` and converted to a
> `usize`, before being converted back to a `u8`. Just re-read them from
> the source to avoid using `as`.
> 
> Acked-by: Danilo Krummrich <[email protected]>
> Signed-off-by: Alexandre Courbot <[email protected]>
> ---
>  drivers/gpu/nova-core/vbios.rs | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/nova-core/vbios.rs b/drivers/gpu/nova-core/vbios.rs
> index 943b0dac31df..dbe0d6e4a015 100644
> --- a/drivers/gpu/nova-core/vbios.rs
> +++ b/drivers/gpu/nova-core/vbios.rs
> @@ -911,9 +911,9 @@ fn new(dev: &device::Device, data: &[u8]) -> Result<Self> 
> {
>  
>          Ok(PmuLookupTable {
>              version: data[0],
> -            header_len: header_len as u8,
> -            entry_len: entry_len as u8,
> -            entry_count: entry_count as u8,
> +            header_len: data[1],
> +            entry_len: data[2],
> +            entry_count: data[3],
>              table_data,

Why not just change PmuLookupTable to:

struct PmuLookupTable {
    version: u8,
    header_len: usize,
    entry_len: usize,
    entry_count: usize,
    table_data: KVec<u8>,
}

That is cleaner and removes the issue while allowing to use the local variables
(and also makes sense to be usize as these 3 fields are size-like fields).

thanks,

 - Joel

Reply via email to