2023-12-05 18:17:13

by Christophe Leroy

[permalink] [raw]
Subject: [PATCH] i2c: cpm: Fix data type

sparse reports an error on some data that gets converted from be32.

That's because that data is typed u32 instead of __be32.

Fix it.

Reported-by: kernel test robot <[email protected]>
Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
Signed-off-by: Christophe Leroy <[email protected]>
---
drivers/i2c/busses/i2c-cpm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c
index 9a664abf734d..077be367b382 100644
--- a/drivers/i2c/busses/i2c-cpm.c
+++ b/drivers/i2c/busses/i2c-cpm.c
@@ -634,7 +634,7 @@ static int cpm_i2c_probe(struct platform_device *ofdev)
{
int result, len;
struct cpm_i2c *cpm;
- const u32 *data;
+ const __be32 *data;

cpm = kzalloc(sizeof(struct cpm_i2c), GFP_KERNEL);
if (!cpm)
--
2.41.0


2023-12-06 01:48:08

by Andi Shyti

[permalink] [raw]
Subject: Re: [PATCH] i2c: cpm: Fix data type

Hi Christophe,

On Tue, Dec 05, 2023 at 07:16:53PM +0100, Christophe Leroy wrote:
> sparse reports an error on some data that gets converted from be32.
>
> That's because that data is typed u32 instead of __be32.
>
> Fix it.

the reason for this sparse error is that the data variables is
then parsed with a be32_to_cpup() and I think that's not
necessary.

I think the real fix here is to not use be32_to_cpup().

Andi