2021-04-12 11:36:51

by Bence Csókás

[permalink] [raw]
Subject: [PATCH] Fix 'assignment to __be16' warning

While the preamble field _is_ technically big-endian, its value is always 0x2A2A,
which is the same in either endianness, therefore it should be u16 instead.

Signed-off-by: Bence Csókás <[email protected]>

---
drivers/i2c/busses/i2c-cp2615.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-cp2615.c b/drivers/i2c/busses/i2c-cp2615.c
index 78cfecd1ea76..2824f4ba7131 100644
--- a/drivers/i2c/busses/i2c-cp2615.c
+++ b/drivers/i2c/busses/i2c-cp2615.c
@@ -38,7 +38,9 @@ enum cp2615_iop_msg_type {
};

struct __packed cp2615_iop_msg {
- __be16 preamble, length, msg;
+ /* always 0x2A2A, which is the same in either endianness */
+ u16 preamble;
+ __be16 length, msg;
u8 data[MAX_IOP_PAYLOAD_SIZE];
};

--
2.31.0


2021-04-15 20:44:55

by Al Viro

[permalink] [raw]
Subject: Re: [PATCH] Fix 'assignment to __be16' warning

On Mon, Apr 12, 2021 at 11:53:02AM +0000, Bence Cs?k?s wrote:
> While the preamble field _is_ technically big-endian, its value is always 0x2A2A,
> which is the same in either endianness, therefore it should be u16 instead.

Just replace the assignment with htons(0x2A2A) and be done with that - it's
a constant expression and compiler will yield the same assembler.

2021-04-15 22:15:59

by Wolfram Sang

[permalink] [raw]
Subject: Re: [PATCH] Fix 'assignment to __be16' warning

Hi Bence,

On Mon, Apr 12, 2021 at 11:53:02AM +0000, Bence Csókás wrote:
> While the preamble field _is_ technically big-endian, its value is always 0x2A2A,
> which is the same in either endianness, therefore it should be u16 instead.

Why should it be u16? I don't see it.

I thought the fix would be to add the suffix 'U' to 0x2A2A when it is
assigned to preamble?

Also, please use "i2c: cp2615: <patch header>" in the $subject

Happy hacking,

Wolfram


Attachments:
(No filename) (479.00 B)
signature.asc (849.00 B)
Download all attachments