On 2010-11-10 at 17:46:37 +0100, Sven Eckelmann sven.eckelmann@gmx.de wrote:
compare_ether_addr uses a two byte pointer to access 3x two bytes. This makes it necessary to have all those 3 bytes aligned to 2 byte boundaries.
[correction sent later: "6x two bytes aligned to 2 byte boundaries"]
Otherwise the compiler has to generate special instructions on architectures which don't support loads on non-aligned addresses. Usually he doesn't do it unless he has some indications that it is necessary (__attribute__ ((packed)) for example).
There is also documentation available on that topic in Documentation/unaligned-memory-access.txt
And maybe it is good to use is_broadcast_ether_addr, but leave compare_ether_addr part open (or prove that we always have those two operands correctly aligned).
[...]
None of that happened yet. And yes, this wasn't the last mail we sent to him to get some response - no answer till now.
I'll send an updated patch, leaving out the compare_ether_addr part.
Cheers Tobias