isdn: slight optimization of addr compare
Subsystems (2)
PATCH v2 4/6 isdn: 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.
Signed-off-by Ding Tianhong <[email protected]>
--- drivers/isdn/i4l/isdn_net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/isdn/i4l/isdn_net.c +2 -2
@@ -1371,7 +1371,7 @@ isdn_net_type_trans(struct sk_buff *skb, struct net_device *dev) eth =eth_hdr (skb);if (*eth->h_dest &1 ) { -if (memcmp (eth->h_dest, dev->broadcast,ETH_ALEN ) ==0 ) +if (ether_addr_equal_unaligned (eth->h_dest, dev->broadcast)) skb->pkt_type =PACKET_BROADCAST ;else skb->pkt_type =PACKET_MULTICAST ;
@@ -1382,7 +1382,7 @@ isdn_net_type_trans(struct sk_buff *skb, struct net_device *dev)*/ else if (dev->flags & (IFF_PROMISC /*| IFF_ALLMULTI*/)) { -if (memcmp (eth->h_dest, dev->dev_addr,ETH_ALEN )) +if (!ether_addr_equal_unaligned (eth->h_dest, dev->dev_addr)) skb->pkt_type =PACKET_OTHERHOST ; }if (ntohs (eth->h_proto) >=ETH_P_802_3_MIN )
Signature · 1 line
1.8.0