Commit 60b22456 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by Jeff Garzik

Fix inappropriate use of set_bit in dl2k gige net driver

parent daaeddc2
...@@ -1108,7 +1108,6 @@ set_multicast (struct net_device *dev) ...@@ -1108,7 +1108,6 @@ set_multicast (struct net_device *dev)
u16 rx_mode = 0; u16 rx_mode = 0;
int i; int i;
int bit; int bit;
int index, crc;
struct dev_mc_list *mclist; struct dev_mc_list *mclist;
struct netdev_private *np = dev->priv; struct netdev_private *np = dev->priv;
...@@ -1130,13 +1129,14 @@ set_multicast (struct net_device *dev) ...@@ -1130,13 +1129,14 @@ set_multicast (struct net_device *dev)
for (i=0, mclist = dev->mc_list; mclist && i < dev->mc_count; for (i=0, mclist = dev->mc_list; mclist && i < dev->mc_count;
i++, mclist=mclist->next) { i++, mclist=mclist->next) {
crc = ether_crc_le (ETH_ALEN, mclist->dmi_addr); int index = 0;
int crc = ether_crc_le (ETH_ALEN, mclist->dmi_addr);
/* The inverted high significant 6 bits of CRC are /* The inverted high significant 6 bits of CRC are
used as an index to hashtable */ used as an index to hashtable */
for (index = 0, bit = 0; bit < 6; bit++) for (bit = 0; bit < 6; bit++)
if (test_bit(31 - bit, &crc)) if (crc & (1 << (31 - bit)))
set_bit(bit, &index); index |= (1 << bit);
hash_table[index / 32] |= (1 << (index % 32)); hash_table[index / 32] |= (1 << (index % 32));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment