On Mon, Oct 04, 2021 at 09:05:21AM -0700, Jakub Kicinski wrote:
Convert all Ethernet drivers from memcpy(... dev->addr_len)
to eth_hw_addr_set():
@@
expression dev, np;
@@
- memcpy(dev->dev_addr, np, dev->addr_len)
+ eth_hw_addr_set(dev, np)
eth_hw_addr_set() uses ether_addr_copy(), which says:
Please note: dst & src must both be aligned to u16.
memcpy() does not have this restriction. If the source is something
funky, like an EEPROM, it could be oddly aligned.
If you are going to do this, i think the assumption needs removing, a
test added for unaligned addresses and fall back to memcpy().
Andrew