On Wed, 2016-08-31 at 09:32 -0700, Greg Rose wrote:
> I'm not sure why this hasn't been done before because it seems obvious,
> so maybe there is some reason that memcpy is used instead of
> ether_addr_copy in this code. But let's try this anyway.
>
> Change memcpy to ether_addr_copy.
...
>
> @@ -211,7 +211,7 @@ EXPORT_SYMBOL(eth_type_trans);
> int eth_header_parse(const struct sk_buff *skb, unsigned char *haddr)
> {
> const struct ethhdr *eth = eth_hdr(skb);
> - memcpy(haddr, eth->h_source, ETH_ALEN);
> + ether_addr_copy(haddr, eth->h_source);
Please carefully read ether_addr_copy() comments.
Not all arches are like x86