diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ewrk3.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c index b5f6173130f4..d1e229f9e540 100644 --- a/drivers/net/ewrk3.c +++ b/drivers/net/ewrk3.c | |||
@@ -1008,15 +1008,13 @@ static int ewrk3_rx(struct net_device *dev) | |||
1008 | } | 1008 | } |
1009 | } | 1009 | } |
1010 | p = skb->data; /* Look at the dest addr */ | 1010 | p = skb->data; /* Look at the dest addr */ |
1011 | if (p[0] & 0x01) { /* Multicast/Broadcast */ | 1011 | if (is_multicast_ether_addr(p)) { |
1012 | if ((*(s16 *) & p[0] == -1) && (*(s16 *) & p[2] == -1) && (*(s16 *) & p[4] == -1)) { | 1012 | if (is_broadcast_ether_addr(p)) { |
1013 | lp->pktStats.broadcast++; | 1013 | lp->pktStats.broadcast++; |
1014 | } else { | 1014 | } else { |
1015 | lp->pktStats.multicast++; | 1015 | lp->pktStats.multicast++; |
1016 | } | 1016 | } |
1017 | } else if ((*(s16 *) & p[0] == *(s16 *) & dev->dev_addr[0]) && | 1017 | } else if (compare_ether_addr(p, dev->dev_addr) == 0) { |
1018 | (*(s16 *) & p[2] == *(s16 *) & dev->dev_addr[2]) && | ||
1019 | (*(s16 *) & p[4] == *(s16 *) & dev->dev_addr[4])) { | ||
1020 | lp->pktStats.unicast++; | 1018 | lp->pktStats.unicast++; |
1021 | } | 1019 | } |
1022 | lp->pktStats.bins[0]++; /* Duplicates stats.rx_packets */ | 1020 | lp->pktStats.bins[0]++; /* Duplicates stats.rx_packets */ |