mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-05 19:31:57 -04:00
net: macb: avoid dealing with endianness in macb_set_hwaddr()
[ Upstream commit 70a5ce8bc94545ba0fb47b2498bfb12de2132f4d ]
bp->dev->dev_addr is of type `unsigned char *`. Casting it to a u32
pointer and dereferencing implies dealing manually with endianness,
which is error-prone.
Replace by calls to get_unaligned_le32|le16() helpers.
This was found using sparse:
⟩ make C=2 drivers/net/ethernet/cadence/macb_main.o
warning: incorrect type in assignment (different base types)
expected unsigned int [usertype] bottom
got restricted __le32 [usertype]
warning: incorrect type in assignment (different base types)
expected unsigned short [usertype] top
got restricted __le16 [usertype]
...
Reviewed-by: Sean Anderson <sean.anderson@linux.dev>
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250923-macb-fixes-v6-5-772d655cdeb6@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
6025f641a0
commit
0c5e86a184
1 changed files with 2 additions and 2 deletions
|
|
@ -277,9 +277,9 @@ static void macb_set_hwaddr(struct macb *bp)
|
|||
u32 bottom;
|
||||
u16 top;
|
||||
|
||||
bottom = cpu_to_le32(*((u32 *)bp->dev->dev_addr));
|
||||
bottom = get_unaligned_le32(bp->dev->dev_addr);
|
||||
macb_or_gem_writel(bp, SA1B, bottom);
|
||||
top = cpu_to_le16(*((u16 *)(bp->dev->dev_addr + 4)));
|
||||
top = get_unaligned_le16(bp->dev->dev_addr + 4);
|
||||
macb_or_gem_writel(bp, SA1T, top);
|
||||
|
||||
/* Clear unused address register sets */
|
||||
|
|
|
|||
Loading…
Reference in a new issue