diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/tulip/de4x5.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/tulip/de4x5.c b/drivers/net/tulip/de4x5.c index efaa1d69b720..d8db2b664ac2 100644 --- a/drivers/net/tulip/de4x5.c +++ b/drivers/net/tulip/de4x5.c | |||
@@ -1964,9 +1964,7 @@ SetMulticastFilter(struct net_device *dev) | |||
1964 | omr |= OMR_PM; /* Pass all multicasts */ | 1964 | omr |= OMR_PM; /* Pass all multicasts */ |
1965 | } else if (lp->setup_f == HASH_PERF) { /* Hash Filtering */ | 1965 | } else if (lp->setup_f == HASH_PERF) { /* Hash Filtering */ |
1966 | netdev_for_each_mc_addr(ha, dev) { | 1966 | netdev_for_each_mc_addr(ha, dev) { |
1967 | addrs = ha->addr; | 1967 | crc = ether_crc_le(ETH_ALEN, ha->addr); |
1968 | if ((*addrs & 0x01) == 1) { /* multicast address? */ | ||
1969 | crc = ether_crc_le(ETH_ALEN, addrs); | ||
1970 | hashcode = crc & HASH_BITS; /* hashcode is 9 LSb of CRC */ | 1968 | hashcode = crc & HASH_BITS; /* hashcode is 9 LSb of CRC */ |
1971 | 1969 | ||
1972 | byte = hashcode >> 3; /* bit[3-8] -> byte in filter */ | 1970 | byte = hashcode >> 3; /* bit[3-8] -> byte in filter */ |
@@ -1977,7 +1975,6 @@ SetMulticastFilter(struct net_device *dev) | |||
1977 | byte -= 1; | 1975 | byte -= 1; |
1978 | } | 1976 | } |
1979 | lp->setup_frame[byte] |= bit; | 1977 | lp->setup_frame[byte] |= bit; |
1980 | } | ||
1981 | } | 1978 | } |
1982 | } else { /* Perfect filtering */ | 1979 | } else { /* Perfect filtering */ |
1983 | netdev_for_each_mc_addr(ha, dev) { | 1980 | netdev_for_each_mc_addr(ha, dev) { |