* [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values
@ 2022-10-12 15:51 INAGAKI Hiroshi
2022-10-17 8:43 ` Rafał Miłecki
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: INAGAKI Hiroshi @ 2022-10-12 15:51 UTC (permalink / raw)
To: rafal, srinivas.kandagatla; +Cc: linux-kernel, INAGAKI Hiroshi
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>
---
v1 -> v2
- add missing cast to __le32 for calculated crc32
(reported by kernel test robot <lkp@intel.com>)
- add missing "Fixes:" tag
drivers/nvmem/u-boot-env.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/nvmem/u-boot-env.c b/drivers/nvmem/u-boot-env.c
index 8e72d1bbd649..b5aacf805fc6 100644
--- a/drivers/nvmem/u-boot-env.c
+++ b/drivers/nvmem/u-boot-env.c
@@ -143,7 +143,7 @@ static int u_boot_env_parse(struct u_boot_env *priv)
crc32_data_len = priv->mtd->size - crc32_data_offset;
data_len = priv->mtd->size - data_offset;
- calc = crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L;
+ calc = le32_to_cpu((__le32)crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L);
if (calc != crc32) {
dev_err(dev, "Invalid calculated CRC32: 0x%08x (expected: 0x%08x)\n", calc, crc32);
err = -EINVAL;
base-commit: 60bbaad38109684b156e21112322e0a922f92cde
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values
2022-10-12 15:51 [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values INAGAKI Hiroshi
@ 2022-10-17 8:43 ` Rafał Miłecki
2022-11-04 16:43 ` Christian Lamparter
2022-11-11 17:41 ` Srinivas Kandagatla
2 siblings, 0 replies; 8+ messages in thread
From: Rafał Miłecki @ 2022-10-17 8:43 UTC (permalink / raw)
To: INAGAKI Hiroshi, srinivas.kandagatla; +Cc: linux-kernel
On 12.10.2022 17: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>
Acked-by: Rafał Miłecki <rafal@milecki.pl>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values
2022-10-12 15:51 [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values INAGAKI Hiroshi
2022-10-17 8:43 ` Rafał Miłecki
@ 2022-11-04 16:43 ` Christian Lamparter
2022-11-11 17:41 ` Srinivas Kandagatla
2 siblings, 0 replies; 8+ messages in thread
From: Christian Lamparter @ 2022-11-04 16:43 UTC (permalink / raw)
To: INAGAKI Hiroshi, rafal, srinivas.kandagatla; +Cc: linux-kernel
On 10/12/22 17: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>
Tested-by: Christian Lamparter <chunkeey@gmail.com> # PowerPC/MyBookLive
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values
2022-10-12 15:51 [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values INAGAKI Hiroshi
2022-10-17 8:43 ` Rafał Miłecki
2022-11-04 16:43 ` Christian Lamparter
@ 2022-11-11 17:41 ` Srinivas Kandagatla
2023-01-06 19:15 ` Rafał Miłecki
2 siblings, 1 reply; 8+ messages in thread
From: Srinivas Kandagatla @ 2022-11-11 17:41 UTC (permalink / raw)
To: INAGAKI Hiroshi, rafal; +Cc: linux-kernel
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,
--srini
> v1 -> v2
>
> - add missing cast to __le32 for calculated crc32
> (reported by kernel test robot <lkp@intel.com>)
>
> - add missing "Fixes:" tag
>
> drivers/nvmem/u-boot-env.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/nvmem/u-boot-env.c b/drivers/nvmem/u-boot-env.c
> index 8e72d1bbd649..b5aacf805fc6 100644
> --- a/drivers/nvmem/u-boot-env.c
> +++ b/drivers/nvmem/u-boot-env.c
> @@ -143,7 +143,7 @@ static int u_boot_env_parse(struct u_boot_env *priv)
> crc32_data_len = priv->mtd->size - crc32_data_offset;
> data_len = priv->mtd->size - data_offset;
>
> - calc = crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L;
> + calc = le32_to_cpu((__le32)crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L);
> if (calc != crc32) {
> dev_err(dev, "Invalid calculated CRC32: 0x%08x (expected: 0x%08x)\n", calc, crc32);
> err = -EINVAL;
>
> base-commit: 60bbaad38109684b156e21112322e0a922f92cde
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values
2022-11-11 17:41 ` Srinivas Kandagatla
@ 2023-01-06 19:15 ` Rafał Miłecki
2023-01-09 9:48 ` Srinivas Kandagatla
0 siblings, 1 reply; 8+ messages in thread
From: Rafał Miłecki @ 2023-01-06 19:15 UTC (permalink / raw)
To: Srinivas Kandagatla; +Cc: INAGAKI Hiroshi, linux-kernel
Hi Srinivas,
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.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values
2023-01-06 19:15 ` Rafał Miłecki
@ 2023-01-09 9:48 ` Srinivas Kandagatla
2023-01-09 9:52 ` Rafał Miłecki
0 siblings, 1 reply; 8+ messages in thread
From: Srinivas Kandagatla @ 2023-01-09 9:48 UTC (permalink / raw)
To: Rafał Miłecki; +Cc: INAGAKI Hiroshi, linux-kernel
Hi Rafal,
On 06/01/2023 19:15, Rafał Miłecki wrote:
> Hi Srinivas,
>
> 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.
--srini
[1] https://lore.kernel.org/linux-mm/202212040713.rVney9e8-lkp@intel.com/T/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values
2023-01-09 9:48 ` Srinivas Kandagatla
@ 2023-01-09 9:52 ` Rafał Miłecki
2023-01-10 13:04 ` INAGAKI Hiroshi
0 siblings, 1 reply; 8+ messages in thread
From: Rafał Miłecki @ 2023-01-09 9:52 UTC (permalink / raw)
To: Srinivas Kandagatla; +Cc: INAGAKI Hiroshi, linux-kernel
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?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values
2023-01-09 9:52 ` Rafał Miłecki
@ 2023-01-10 13:04 ` INAGAKI Hiroshi
0 siblings, 0 replies; 8+ messages in thread
From: INAGAKI Hiroshi @ 2023-01-10 13:04 UTC (permalink / raw)
To: Rafał Miłecki, Srinivas Kandagatla; +Cc: linux-kernel
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);
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-01-10 13:04 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-12 15:51 [PATCH v2] nvmem: u-boot-env: align endianness of crc32 values INAGAKI Hiroshi
2022-10-17 8:43 ` Rafał Miłecki
2022-11-04 16:43 ` Christian Lamparter
2022-11-11 17:41 ` Srinivas Kandagatla
2023-01-06 19:15 ` Rafał Miłecki
2023-01-09 9:48 ` Srinivas Kandagatla
2023-01-09 9:52 ` Rafał Miłecki
2023-01-10 13:04 ` INAGAKI Hiroshi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).