fddi: slight optimization of addr compare
Subsystems (2)
PATCH v2 3/6 fddi: slight optimization of addr compare
Joe Perches add ether_addr_equal_unaligned to test if possibly unaligned to u16 Ethernet addresses are equal.
If CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is set, this uses the slightly faster generic routine ether_addr_equal, otherwise this uses memcmp, and FDDI_K_ALEN is same with ETH_ALEN.
Signed-off-by Ding Tianhong <[email protected]>
--- net/802/fddi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
net/802/fddi.c +3 -2
@@ -41,6 +41,7 @@#include <linux/errno.h> #include <net/arp.h> #include <net/sock.h> +#include <linux/etherdevice.h> /* * Create the FDDI MAC header for an arbitrary protocol layer
@@ -147,7 +148,7 @@ __be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev)if (*fddi->daddr &0x01 ) { -if (memcmp (fddi->daddr, dev->broadcast,FDDI_K_ALEN ) ==0 ) +if (ether_addr_equal_unaligned (fddi->daddr, dev->broadcast)) skb->pkt_type =PACKET_BROADCAST ;else skb->pkt_type =PACKET_MULTICAST ;
@@ -155,7 +156,7 @@ __be16 fddi_type_trans(struct sk_buff *skb, struct net_device *dev)else if (dev->flags &IFF_PROMISC ) { -if (memcmp (fddi->daddr, dev->dev_addr,FDDI_K_ALEN )) +if (!ether_addr_equal_unaligned (fddi->daddr, dev->dev_addr)) skb->pkt_type =PACKET_OTHERHOST ; }
Signature · 1 line
1.8.0