Re: [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values

From: INAGAKI Hiroshi
Date: Tue Jan 10 2023 - 08:04:58 EST


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@xxxxxxxxx>
---

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);