From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Antonio Quartulli Date: Tue, 10 Dec 2013 08:44:14 +0100 Message-Id: <1386661454-3036-1-git-send-email-antonio@meshcoding.com> Subject: [B.A.T.M.A.N.] [PATCH] batadv: Slight optimization of batadv_compare_eth Reply-To: The list for a Better Approach To Mobile Ad-hoc Networking List-Id: The list for a Better Approach To Mobile Ad-hoc Networking List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: b.a.t.m.a.n@lists.open-mesh.org Cc: Joe Perches , Antonio Quartulli Use the newly added generic routine ether_addr_equal_unaligned to test if possibly unaligned to u16 Ethernet addresses are equal. This slightly improves comparison time for systems with CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS. Signed-off-by: Joe Perches [antonio@meshcoding.com: added compat code for linux <3.14] Signed-off-by: Antonio Quartulli --- compat.h | 6 ++++++ main.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/compat.h b/compat.h index 8545b0a..a1c8396 100644 --- a/compat.h +++ b/compat.h @@ -382,4 +382,10 @@ static int __batadv_interface_kill_vid(struct net_device *dev, __be16 proto,\ }) #endif /* < KERNEL_VERSION(3, 11, 0) */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0) + +#define ether_addr_equal_unaligned(_a, _b) (memcmp(_a, _b, ETH_ALEN) == 0) + +#endif /* < KERNEL_VERSION(3, 14, 0) */ + #endif /* _NET_BATMAN_ADV_COMPAT_H_ */ diff --git a/main.h b/main.h index 2f3ac06..d636449 100644 --- a/main.h +++ b/main.h @@ -273,7 +273,7 @@ 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; + return ether_addr_equal_unaligned(data1, data2); } /** -- 1.8.5.1