Messages in this thread | | | Date | Tue, 10 Jan 2023 22:04:28 +0900 | Subject | Re: [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values | From | INAGAKI Hiroshi <> |
| |
Hi Rafał,
thank you for letting me know.
And for all, sorry for my incomplete patch.
On 2023/01/09 18:52, Rafał Miłecki wrote: > On 2023-01-09 10:48, Srinivas Kandagatla wrote: >> On 06/01/2023 19:15, Rafał Miłecki wrote: >>> On 2022-11-11 18:41, Srinivas Kandagatla wrote: >>>> On 12/10/2022 16:51, INAGAKI Hiroshi wrote: >>>>> This patch fixes crc32 error on Big-Endianness system by >>>>> conversion of >>>>> calculated crc32 value. >>>>> >>>>> Little-Endianness system: >>>>> >>>>> obtained crc32: Little >>>>> calculated crc32: Little >>>>> >>>>> Big-Endianness system: >>>>> >>>>> obtained crc32: Little >>>>> calculated crc32: Big >>>>> >>>>> log (APRESIA ApresiaLightGS120GT-SS, RTL8382M, Big-Endianness): >>>>> >>>>> [ 8.570000] u_boot_env >>>>> 18001200.spi:flash@0:partitions:partition@c0000: Invalid >>>>> calculated CRC32: 0x88cd6f09 (expected: 0x096fcd88) >>>>> [ 8.580000] u_boot_env: probe of >>>>> 18001200.spi:flash@0:partitions:partition@c0000 failed with error -22 >>>>> >>>>> Fixes: f955dc1445069 ("nvmem: add driver handling U-Boot >>>>> environment variables") >>>>> >>>>> Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com> >>>>> --- >>>> >>>> Applied thanks, >>> >>> has this patch been lost somewhere in the process? >>> >>> I'm quite sure I saw it in linux-next.git and probably in nvmem.git. >>> Now >>> it seems to be gone. >> Yes, I had to revert this one as next reported sparse warnings [1] >> with this patch which were not addressed. > > I missed that, thank you. > > INAGAKI: could you take a look at this, please?
To be honest, I'm a newbie in Linux & driver development and don't fully understand the essence of the warning by "kernel test robot", sorry. As far as I have seen some similar cases in the past, does it mean that the type of calculated crc variable("calc") should be changed to __le32? (Maybe I'm saying something off the mark...)
what I assumed:
__le32 calc; calc = crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L; calc = le32_to_cpu(calc);
| |