|
@@ -1868,14 +1868,13 @@ de4x5_local_stats(struct net_device *dev, char *buf, int pkt_len)
|
|
|
i = DE4X5_PKT_STAT_SZ;
|
|
|
}
|
|
|
}
|
|
|
- if (buf[0] & 0x01) { /* Multicast/Broadcast */
|
|
|
- if ((*(s32 *)&buf[0] == -1) && (*(s16 *)&buf[4] == -1)) {
|
|
|
+ if (is_multicast_ether_addr(buf)) {
|
|
|
+ if (is_broadcast_ether_addr(buf)) {
|
|
|
lp->pktStats.broadcast++;
|
|
|
} else {
|
|
|
lp->pktStats.multicast++;
|
|
|
}
|
|
|
- } else if ((*(s32 *)&buf[0] == *(s32 *)&dev->dev_addr[0]) &&
|
|
|
- (*(s16 *)&buf[4] == *(s16 *)&dev->dev_addr[4])) {
|
|
|
+ } else if (compare_ether_addr(buf, dev->dev_addr) == 0) {
|
|
|
lp->pktStats.unicast++;
|
|
|
}
|
|
|
|