[PATCH] compile fix for dl2k

Matthew Wilcox (willy@debian.org)
Sun, 4 Aug 2002 17:07:47 +0100


synchronise_irq now takes an argument.
it was using set_bit / test_bit inappropriately.

diff -urpNX dontdiff linux-2.5.30/drivers/net/dl2k.c linux-2.5.30-willy/drivers/net/dl2k.c
--- linux-2.5.30/drivers/net/dl2k.c 2002-06-20 16:53:51.000000000 -0600
+++ linux-2.5.30-willy/drivers/net/dl2k.c 2002-08-04 08:23:47.000000000 -0600
@@ -1108,7 +1108,6 @@ set_multicast (struct net_device *dev)
u16 rx_mode = 0;
int i;
int bit;
- int index, crc;
struct dev_mc_list *mclist;
struct netdev_private *np = dev->priv;

@@ -1130,13 +1129,14 @@ set_multicast (struct net_device *dev)
for (i=0, mclist = dev->mc_list; mclist && i < dev->mc_count;
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
used as an index to hashtable */
- for (index = 0, bit = 0; bit < 6; bit++)
- if (test_bit(31 - bit, &crc))
- set_bit(bit, &index);
+ for (bit = 0; bit < 6; bit++)
+ if (crc & (1 << (31 - bit)))
+ index |= (1 << bit);

hash_table[index / 32] |= (1 << (index % 32));
}
@@ -1635,7 +1635,7 @@ rio_close (struct net_device *dev)

/* Stop Tx and Rx logics */
writel (TxDisable | RxDisable | StatsDisable, ioaddr + MACCtrl);
- synchronize_irq ();
+ synchronize_irq (dev->irq);
free_irq (dev->irq, dev);
del_timer_sync (&np->timer);

-- 
Revolutions do not require corporate support.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/