diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2011-06-28 22:15:15 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-07-01 01:13:38 -0400 |
commit | 3170ff54c26004ea627022af695d0c8709d29b04 (patch) | |
tree | e4d3cc24adacebdf3e4c31de89d6805b2ee513d1 | |
parent | bda7ed47937bd9ba8c10631ca884f7fefb162f4d (diff) |
net: depca: Omit check for multicast bit in netdev_for_each_mc_addr
There is no need to check for the address being a multicast address in
the netdev_for_each_mc_addr loop, so remove it.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/depca.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/drivers/net/depca.c b/drivers/net/depca.c index d54a0e93ba93..a7ccaa67c7d4 100644 --- a/drivers/net/depca.c +++ b/drivers/net/depca.c | |||
@@ -1270,7 +1270,6 @@ static void SetMulticastFilter(struct net_device *dev) | |||
1270 | { | 1270 | { |
1271 | struct depca_private *lp = netdev_priv(dev); | 1271 | struct depca_private *lp = netdev_priv(dev); |
1272 | struct netdev_hw_addr *ha; | 1272 | struct netdev_hw_addr *ha; |
1273 | char *addrs; | ||
1274 | int i, j, bit, byte; | 1273 | int i, j, bit, byte; |
1275 | u16 hashcode; | 1274 | u16 hashcode; |
1276 | u32 crc; | 1275 | u32 crc; |
@@ -1285,19 +1284,15 @@ static void SetMulticastFilter(struct net_device *dev) | |||
1285 | } | 1284 | } |
1286 | /* Add multicast addresses */ | 1285 | /* Add multicast addresses */ |
1287 | netdev_for_each_mc_addr(ha, dev) { | 1286 | netdev_for_each_mc_addr(ha, dev) { |
1288 | addrs = ha->addr; | 1287 | crc = ether_crc(ETH_ALEN, ha->addr); |
1289 | if ((*addrs & 0x01) == 1) { /* multicast address? */ | 1288 | hashcode = (crc & 1); /* hashcode is 6 LSb of CRC ... */ |
1290 | crc = ether_crc(ETH_ALEN, addrs); | 1289 | for (j = 0; j < 5; j++) { /* ... in reverse order. */ |
1291 | hashcode = (crc & 1); /* hashcode is 6 LSb of CRC ... */ | 1290 | hashcode = (hashcode << 1) | ((crc >>= 1) & 1); |
1292 | for (j = 0; j < 5; j++) { /* ... in reverse order. */ | ||
1293 | hashcode = (hashcode << 1) | ((crc >>= 1) & 1); | ||
1294 | } | ||
1295 | |||
1296 | |||
1297 | byte = hashcode >> 3; /* bit[3-5] -> byte in filter */ | ||
1298 | bit = 1 << (hashcode & 0x07); /* bit[0-2] -> bit in byte */ | ||
1299 | lp->init_block.mcast_table[byte] |= bit; | ||
1300 | } | 1291 | } |
1292 | |||
1293 | byte = hashcode >> 3; /* bit[3-5] -> byte in filter */ | ||
1294 | bit = 1 << (hashcode & 0x07); /* bit[0-2] -> bit in byte */ | ||
1295 | lp->init_block.mcast_table[byte] |= bit; | ||
1301 | } | 1296 | } |
1302 | } | 1297 | } |
1303 | } | 1298 | } |