aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/etherdevice.h
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2005-11-01 16:52:11 -0800
committerArnaldo Carvalho de Melo <acme@mandriva.com>2005-11-02 21:54:07 -0200
commit2407534f8be8015d585104bcc4374870b6b70fe7 (patch)
treefba7cb22827991ccf447824a6b2d66a543b27e21 /include/linux/etherdevice.h
parent[TCP]: BIC max increment too large (diff)
downloadlinux-dev-2407534f8be8015d585104bcc4374870b6b70fe7.tar.xz
linux-dev-2407534f8be8015d585104bcc4374870b6b70fe7.zip
[ETHERNET]: Optimize is_broadcast_ether_addr
Optimize the match for broadcast address by using bit operations instead of comparison. This saves a number of conditional branches, and generates smaller code. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'include/linux/etherdevice.h')
-rw-r--r--include/linux/etherdevice.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h
index cc84934f9059..17460c85df7b 100644
--- a/include/linux/etherdevice.h
+++ b/include/linux/etherdevice.h
@@ -71,8 +71,7 @@ static inline int is_multicast_ether_addr(const u8 *addr)
static inline int is_broadcast_ether_addr(const u8 *addr)
{
- return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) &&
- (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff));
+ return (addr[0] & addr[1] & addr[2] & addr[3] & addr[4] & addr[5]) == 0xff;
}
/**