Messages in this thread | | | Subject | Re: [PATCH -next] batadv: Slight optimization of batadv_compare_eth | From | Joe Perches <> | Date | Fri, 06 Dec 2013 13:17:01 -0800 |
| |
On Fri, 2013-12-06 at 15:39 -0500, David Miller wrote: > From: Joe Perches <joe@perches.com> > Date: Fri, 06 Dec 2013 00:18:10 -0800 > > > @@ -266,7 +266,11 @@ static inline void batadv_dbg(int type __always_unused, > > */ > > static inline int batadv_compare_eth(const void *data1, const void *data2) > > { > > - return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0); > > +#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) > > + return ether_addr_equal(data1, data2); > > +#else > > + return memcmp(data1, data2, ETH_ALEN) == 0; > > +#endif > > } > > Let's not crap up implementations with these ifdefs. > > What's the specific situation here? Is it that 'data1' and/or > 'data2' my not be u16 aligned?
Yes.
> If so, make a function for that in linux/etherdevice.h and invoke it > in such places. You can name it something like > "ether_addr_equal_unaligned()" or similar.
I'll resubmit if/after you apply the ether_addr_equal/compare_ether_addr removal.
cheers, Joe
| |