Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:

Pre-existing issues:
- [High] VBIOS structures are parsed using native endianness, yielding 
incorrect values and validation failures on Big Endian architectures.
--

commit dfd6016814a03a8ecf36ea1b92019e446ec39712
Author: Pedro Yudi Honda <[email protected]>

drm/nova: use zerocopy in vbios.rs

This commit replaces the transmute traits with their zerocopy equivalents
for parsing VBIOS structures. It updates the derive macros and changes the
initialization calls to use zerocopy's read_from_prefix().

> diff --git a/drivers/gpu/nova-core/vbios.rs b/drivers/gpu/nova-core/vbios.rs
> index e6d144587c4ee..a3c0c06f6818d 100644
> --- a/drivers/gpu/nova-core/vbios.rs
> +++ b/drivers/gpu/nova-core/vbios.rs

[ ... ]

> @@ -525,7 +513,7 @@ fn from_id(image: &PciAtBiosImage, token_id: u8) -> 
> Result<Self> {
>  ///
>  /// This header is at the beginning of every image in the set of images in 
> the ROM. It contains a
>  /// pointer to the PCI Data Structure which describes the image.
> -#[derive(Debug, Clone, Copy)]
> +#[derive(Debug, Clone, Copy, FromBytes)]
>  #[repr(C)]
>  struct PciRomHeader {
>      /// 00h: Signature (0xAA55)
>      signature: u16,

[Severity: High]
This is a pre-existing issue, but does mapping this byte stream directly into
native integer types break on Big Endian architectures?

Since VBIOS data is typically little-endian, parsing it into native integer
types (like the u16 signature here, or the u16 id in BitHeader) means the
bytes will be interpreted backwards on Big Endian systems. For example, the
signature 0xAA55 would be read as 0x55AA, causing validation to fail entirely.

Additionally, in VbiosIterator::read_more(), the data is read via try_read32()
and converted to a byte stream using .to_ne_bytes(), which scrambles the byte
order in 4-byte chunks on Big Endian platforms.

Should these structures be using explicit little-endian types (like __le16)
to ensure correct VBIOS parsing across all architectures?

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=2

Reply via email to