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