lkml.org 
[lkml]   [2023]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values
From
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);

\
 
 \ /
  Last update: 2023-03-26 23:34    [W:0.050 / U:1.908 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site