summaryrefslogtreecommitdiffstats
path: root/net/ethernet/eth.c
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@redhat.com>2015-04-30 23:53:54 +0200
committerDavid S. Miller <davem@davemloft.net>2015-05-04 04:30:36 +0200
commitd54385ce68cd18ab002b46f61246ad197cec92de (patch)
tree402dda30a5d94d0519d62ac25c03b3c32d08a188 /net/ethernet/eth.c
parentetherdev: Avoid unnecessary byte swap in check for Ethertype (diff)
downloadlinux-d54385ce68cd18ab002b46f61246ad197cec92de.tar.xz
linux-d54385ce68cd18ab002b46f61246ad197cec92de.zip
etherdev: Process is_multicast_ether_addr at same size as other operations
This change makes it so that we process the address in is_multicast_ether_addr at the same size as the other calls. This allows us to avoid duplicate reads when used with other calls such as is_zero_ether_addr or eth_addr_copy. In addition I have added a 64 bit version of the function so in eth_type_trans we can process the destination address as a 64 bit value throughout. Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--net/ethernet/eth.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c
index 60069318d5d1..21c211e9fd5a 100644
--- a/net/ethernet/eth.c
+++ b/net/ethernet/eth.c
@@ -159,7 +159,7 @@ __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev)
skb_pull_inline(skb, ETH_HLEN);
eth = eth_hdr(skb);
- if (unlikely(is_multicast_ether_addr(eth->h_dest))) {
+ if (unlikely(is_multicast_ether_addr_64bits(eth->h_dest))) {
if (ether_addr_equal_64bits(eth->h_dest, dev->broadcast))
skb->pkt_type = PACKET_BROADCAST;
else