Matthew Wilcox wrote:
> 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));
> }
patch applied
> @@ -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);
patch already applied, dropping hunk
Jeff
-
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/
This archive was generated by hypermail 2b29 : Wed Aug 07 2002 - 22:00:25 EST