summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/hardened-patches/hardened-patches-2.6-7.1/3005_netdev-random-drivers-2.6.7.patch')
-rw-r--r--src/kernel/hardened-patches/hardened-patches-2.6-7.1/3005_netdev-random-drivers-2.6.7.patch2362
1 files changed, 2362 insertions, 0 deletions
diff --git a/src/kernel/hardened-patches/hardened-patches-2.6-7.1/3005_netdev-random-drivers-2.6.7.patch b/src/kernel/hardened-patches/hardened-patches-2.6-7.1/3005_netdev-random-drivers-2.6.7.patch
new file mode 100644
index 0000000000..c462150bd3
--- /dev/null
+++ b/src/kernel/hardened-patches/hardened-patches-2.6-7.1/3005_netdev-random-drivers-2.6.7.patch
@@ -0,0 +1,2362 @@
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/3c501.c linux-2.6.7-netdev_random/drivers/net/3c501.c
+--- linux-2.6.7/drivers/net/3c501.c 2004-06-16 07:18:45.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/3c501.c 2004-06-24 10:16:08.089264664 +0200
+@@ -347,7 +347,7 @@ static int el_open(struct net_device *de
+ if (el_debug > 2)
+ printk(KERN_DEBUG "%s: Doing el_open()...", dev->name);
+
+- if ((retval = request_irq(dev->irq, &el_interrupt, 0, dev->name, dev)))
++ if ((retval = request_irq(dev->irq, &el_interrupt, SA_NET_RANDOM, dev->name, dev)))
+ return retval;
+
+ spin_lock_irqsave(&lp->lock, flags);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/3c503.c linux-2.6.7-netdev_random/drivers/net/3c503.c
+--- linux-2.6.7/drivers/net/3c503.c 2004-06-16 07:19:43.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/3c503.c 2004-06-24 10:16:08.094263904 +0200
+@@ -380,7 +380,7 @@ el2_open(struct net_device *dev)
+ outb_p(0x00, E33G_IDCFR);
+ if (*irqp == probe_irq_off(cookie) /* It's a good IRQ line! */
+ && ((retval = request_irq(dev->irq = *irqp,
+- ei_interrupt, 0, dev->name, dev)) == 0))
++ ei_interrupt, SA_NET_RANDOM, dev->name, dev)) == 0))
+ break;
+ }
+ } while (*++irqp);
+@@ -389,7 +389,7 @@ el2_open(struct net_device *dev)
+ return retval;
+ }
+ } else {
+- if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) {
++ if ((retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev))) {
+ return retval;
+ }
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/3c505.c linux-2.6.7-netdev_random/drivers/net/3c505.c
+--- linux-2.6.7/drivers/net/3c505.c 2004-06-16 07:20:26.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/3c505.c 2004-06-24 10:16:08.097263448 +0200
+@@ -905,7 +905,7 @@ static int elp_open(struct net_device *d
+ /*
+ * install our interrupt service routine
+ */
+- if ((retval = request_irq(dev->irq, &elp_interrupt, 0, dev->name, dev))) {
++ if ((retval = request_irq(dev->irq, &elp_interrupt, SA_NET_RANDOM, dev->name, dev))) {
+ printk(KERN_ERR "%s: could not allocate IRQ%d\n", dev->name, dev->irq);
+ return retval;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/3c507.c linux-2.6.7-netdev_random/drivers/net/3c507.c
+--- linux-2.6.7/drivers/net/3c507.c 2004-06-16 07:19:44.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/3c507.c 2004-06-24 10:16:08.102262688 +0200
+@@ -392,7 +392,7 @@ static int __init el16_probe1(struct net
+
+ irq = inb(ioaddr + IRQ_CONFIG) & 0x0f;
+
+- irqval = request_irq(irq, &el16_interrupt, 0, dev->name, dev);
++ irqval = request_irq(irq, &el16_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (irqval) {
+ printk ("unable to get IRQ %d (irqval=%d).\n", irq, irqval);
+ retval = -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/3c509.c linux-2.6.7-netdev_random/drivers/net/3c509.c
+--- linux-2.6.7/drivers/net/3c509.c 2004-06-16 07:18:55.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/3c509.c 2004-06-24 10:16:08.105262232 +0200
+@@ -809,7 +809,7 @@ el3_open(struct net_device *dev)
+ outw(RxReset, ioaddr + EL3_CMD);
+ outw(SetStatusEnb | 0x00, ioaddr + EL3_CMD);
+
+- i = request_irq(dev->irq, &el3_interrupt, 0, dev->name, dev);
++ i = request_irq(dev->irq, &el3_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (i)
+ return i;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/3c515.c linux-2.6.7-netdev_random/drivers/net/3c515.c
+--- linux-2.6.7/drivers/net/3c515.c 2004-06-16 07:18:59.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/3c515.c 2004-06-24 10:16:08.176251440 +0200
+@@ -756,11 +756,11 @@ static int corkscrew_open(struct net_dev
+ /* Corkscrew: Cannot share ISA resources. */
+ if (dev->irq == 0
+ || dev->dma == 0
+- || request_irq(dev->irq, &corkscrew_interrupt, 0,
++ || request_irq(dev->irq, &corkscrew_interrupt, SA_NET_RANDOM,
+ vp->product_name, dev)) return -EAGAIN;
+ enable_dma(dev->dma);
+ set_dma_mode(dev->dma, DMA_MODE_CASCADE);
+- } else if (request_irq(dev->irq, &corkscrew_interrupt, SA_SHIRQ,
++ } else if (request_irq(dev->irq, &corkscrew_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ vp->product_name, dev)) {
+ return -EAGAIN;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/3c523.c linux-2.6.7-netdev_random/drivers/net/3c523.c
+--- linux-2.6.7/drivers/net/3c523.c 2004-06-16 07:19:23.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/3c523.c 2004-06-24 10:16:08.182250528 +0200
+@@ -288,7 +288,7 @@ static int elmc_open(struct net_device *
+
+ elmc_id_attn586(); /* disable interrupts */
+
+- ret = request_irq(dev->irq, &elmc_interrupt, SA_SHIRQ | SA_SAMPLE_RANDOM,
++ ret = request_irq(dev->irq, &elmc_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ dev->name, dev);
+ if (ret) {
+ printk(KERN_ERR "%s: couldn't get irq %d\n", dev->name, dev->irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/3c527.c linux-2.6.7-netdev_random/drivers/net/3c527.c
+--- linux-2.6.7/drivers/net/3c527.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/3c527.c 2004-06-24 10:16:08.195248552 +0200
+@@ -435,7 +435,7 @@ static int __init mc32_probe1(struct net
+ * Grab the IRQ
+ */
+
+- err = request_irq(dev->irq, &mc32_interrupt, SA_SHIRQ | SA_SAMPLE_RANDOM, dev->name, dev);
++ err = request_irq(dev->irq, &mc32_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (err) {
+ release_region(dev->base_addr, MC32_IO_EXTENT);
+ printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/3c59x.c linux-2.6.7-netdev_random/drivers/net/3c59x.c
+--- linux-2.6.7/drivers/net/3c59x.c 2004-06-16 07:18:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/3c59x.c 2004-06-24 10:16:08.209246424 +0200
+@@ -1735,7 +1735,7 @@ vortex_open(struct net_device *dev)
+
+ /* Use the now-standard shared IRQ implementation. */
+ if ((retval = request_irq(dev->irq, vp->full_bus_master_rx ?
+- &boomerang_interrupt : &vortex_interrupt, SA_SHIRQ, dev->name, dev))) {
++ &boomerang_interrupt : &vortex_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev))) {
+ printk(KERN_ERR "%s: Could not reserve IRQ %d\n", dev->name, dev->irq);
+ goto out;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/7990.c linux-2.6.7-netdev_random/drivers/net/7990.c
+--- linux-2.6.7/drivers/net/7990.c 2004-06-16 07:19:43.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/7990.c 2004-06-24 10:16:08.215245512 +0200
+@@ -462,7 +462,7 @@ int lance_open (struct net_device *dev)
+ DECLARE_LL;
+
+ /* Install the Interrupt handler. Or we could shunt this out to specific drivers? */
+- if (request_irq(lp->irq, lance_interrupt, 0, lp->name, dev))
++ if (request_irq(lp->irq, lance_interrupt, SA_NET_RANDOM, lp->name, dev))
+ return -EAGAIN;
+
+ res = lance_reset(dev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/8139cp.c linux-2.6.7-netdev_random/drivers/net/8139cp.c
+--- linux-2.6.7/drivers/net/8139cp.c 2004-06-16 07:19:22.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/8139cp.c 2004-06-24 10:16:08.230243232 +0200
+@@ -1172,7 +1172,7 @@ static int cp_open (struct net_device *d
+
+ cp_init_hw(cp);
+
+- rc = request_irq(dev->irq, cp_interrupt, SA_SHIRQ, dev->name, dev);
++ rc = request_irq(dev->irq, cp_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (rc)
+ goto err_out_hw;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/8139too.c linux-2.6.7-netdev_random/drivers/net/8139too.c
+--- linux-2.6.7/drivers/net/8139too.c 2004-06-16 07:18:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/8139too.c 2004-06-24 10:16:08.244241104 +0200
+@@ -1325,7 +1325,7 @@ static int rtl8139_open (struct net_devi
+ int retval;
+ void *ioaddr = tp->mmio_addr;
+
+- retval = request_irq (dev->irq, rtl8139_interrupt, SA_SHIRQ, dev->name, dev);
++ retval = request_irq (dev->irq, rtl8139_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (retval)
+ return retval;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/82596.c linux-2.6.7-netdev_random/drivers/net/82596.c
+--- linux-2.6.7/drivers/net/82596.c 2004-06-16 07:19:43.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/82596.c 2004-06-24 10:16:08.252239888 +0200
+@@ -1005,7 +1005,7 @@ static int i596_open(struct net_device *
+
+ DEB(DEB_OPEN,printk(KERN_DEBUG "%s: i596_open() irq %d.\n", dev->name, dev->irq));
+
+- if (request_irq(dev->irq, i596_interrupt, 0, "i82596", dev)) {
++ if (request_irq(dev->irq, i596_interrupt, SA_NET_RANDOM, "i82596", dev)) {
+ printk(KERN_ERR "%s: IRQ %d not free\n", dev->name, dev->irq);
+ return -EAGAIN;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/a2065.c linux-2.6.7-netdev_random/drivers/net/a2065.c
+--- linux-2.6.7/drivers/net/a2065.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/a2065.c 2004-06-24 10:16:08.267237608 +0200
+@@ -496,7 +496,7 @@ static int lance_open (struct net_device
+ ll->rdp = LE_C0_STOP;
+
+ /* Install the Interrupt handler */
+- ret = request_irq(IRQ_AMIGA_PORTS, lance_interrupt, SA_SHIRQ,
++ ret = request_irq(IRQ_AMIGA_PORTS, lance_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ dev->name, dev);
+ if (ret) return ret;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ac3200.c linux-2.6.7-netdev_random/drivers/net/ac3200.c
+--- linux-2.6.7/drivers/net/ac3200.c 2004-06-16 07:19:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ac3200.c 2004-06-24 10:16:08.274236544 +0200
+@@ -203,7 +203,7 @@ static int __init ac_probe1(int ioaddr,
+ printk(", assigning");
+ }
+
+- retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
++ retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (retval) {
+ printk (" nothing! Unable to get IRQ %d.\n", dev->irq);
+ goto out1;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/acenic.c linux-2.6.7-netdev_random/drivers/net/acenic.c
+--- linux-2.6.7/drivers/net/acenic.c 2004-06-16 07:19:22.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/acenic.c 2004-06-24 10:16:08.291233960 +0200
+@@ -1194,7 +1194,7 @@ static int __init ace_init(struct net_de
+ goto init_error;
+ }
+
+- ecode = request_irq(pdev->irq, ace_interrupt, SA_SHIRQ,
++ ecode = request_irq(pdev->irq, ace_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ dev->name, dev);
+ if (ecode) {
+ printk(KERN_WARNING "%s: Requested IRQ %d is busy\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/amd8111e.c linux-2.6.7-netdev_random/drivers/net/amd8111e.c
+--- linux-2.6.7/drivers/net/amd8111e.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/amd8111e.c 2004-06-24 10:46:11.580092384 +0200
+@@ -1372,7 +1372,7 @@ static int amd8111e_open(struct net_devi
+ {
+ struct amd8111e_priv *lp = netdev_priv(dev);
+
+- if(dev->irq ==0 || request_irq(dev->irq, amd8111e_interrupt, SA_SHIRQ,
++ if(dev->irq ==0 || request_irq(dev->irq, amd8111e_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ dev->name, dev))
+ return -EAGAIN;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/apne.c linux-2.6.7-netdev_random/drivers/net/apne.c
+--- linux-2.6.7/drivers/net/apne.c 2004-06-16 07:20:26.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/apne.c 2004-06-24 10:16:08.301232440 +0200
+@@ -310,7 +310,7 @@ static int __init apne_probe1(struct net
+ dev->base_addr = ioaddr;
+
+ /* Install the Interrupt handler */
+- i = request_irq(IRQ_AMIGA_PORTS, apne_interrupt, SA_SHIRQ, dev->name, dev);
++ i = request_irq(IRQ_AMIGA_PORTS, apne_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (i) return i;
+
+ for(i = 0; i < ETHER_ADDR_LEN; i++) {
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/appletalk/cops.c linux-2.6.7-netdev_random/drivers/net/appletalk/cops.c
+--- linux-2.6.7/drivers/net/appletalk/cops.c 2004-06-16 07:19:23.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/appletalk/cops.c 2004-06-24 10:16:08.325228792 +0200
+@@ -326,7 +326,7 @@ static int __init cops_probe1(struct net
+
+ /* Reserve any actual interrupt. */
+ if (dev->irq) {
+- retval = request_irq(dev->irq, &cops_interrupt, 0, dev->name, dev);
++ retval = request_irq(dev->irq, &cops_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (retval)
+ goto err_out;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/appletalk/ltpc.c linux-2.6.7-netdev_random/drivers/net/appletalk/ltpc.c
+--- linux-2.6.7/drivers/net/appletalk/ltpc.c 2004-06-16 07:19:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/appletalk/ltpc.c 2004-06-24 10:16:08.333227576 +0200
+@@ -1182,7 +1182,7 @@ struct net_device * __init ltpc_probe(vo
+ }
+
+ /* grab it and don't let go :-) */
+- if (irq && request_irq( irq, &ltpc_interrupt, 0, "ltpc", dev) >= 0)
++ if (irq && request_irq( irq, &ltpc_interrupt, SA_NET_RANDOM, "ltpc", dev) >= 0)
+ {
+ (void) inb_p(io+7); /* enable interrupts from board */
+ (void) inb_p(io+7); /* and reset irq line */
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/arcnet/arc-rimi.c linux-2.6.7-netdev_random/drivers/net/arcnet/arc-rimi.c
+--- linux-2.6.7/drivers/net/arcnet/arc-rimi.c 2004-06-16 07:18:56.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/arcnet/arc-rimi.c 2004-06-24 10:16:08.341226360 +0200
+@@ -129,7 +129,7 @@ static int __init arcrimi_found(struct n
+ int err;
+
+ /* reserve the irq */
+- if (request_irq(dev->irq, &arcnet_interrupt, 0, "arcnet (RIM I)", dev)) {
++ if (request_irq(dev->irq, &arcnet_interrupt, SA_NET_RANDOM, "arcnet (RIM I)", dev)) {
+ release_mem_region(dev->mem_start, BUFFER_SIZE);
+ BUGMSG(D_NORMAL, "Can't get IRQ %d!\n", dev->irq);
+ return -ENODEV;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/arcnet/com20020.c linux-2.6.7-netdev_random/drivers/net/arcnet/com20020.c
+--- linux-2.6.7/drivers/net/arcnet/com20020.c 2004-06-16 07:19:09.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/arcnet/com20020.c 2004-06-24 10:16:08.351224840 +0200
+@@ -195,7 +195,7 @@ int com20020_found(struct net_device *de
+ outb(dev->dev_addr[0], _XREG);
+
+ /* reserve the irq */
+- if (request_irq(dev->irq, &arcnet_interrupt, shared,
++ if (request_irq(dev->irq, &arcnet_interrupt, shared | SA_NET_RANDOM,
+ "arcnet (COM20020)", dev)) {
+ BUGMSG(D_NORMAL, "Can't get IRQ %d!\n", dev->irq);
+ return -ENODEV;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/arcnet/com90io.c linux-2.6.7-netdev_random/drivers/net/arcnet/com90io.c
+--- linux-2.6.7/drivers/net/arcnet/com90io.c 2004-06-16 07:19:10.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/arcnet/com90io.c 2004-06-24 10:16:08.358223776 +0200
+@@ -238,7 +238,7 @@ static int __init com90io_found(struct n
+ int err;
+
+ /* Reserve the irq */
+- if (request_irq(dev->irq, &arcnet_interrupt, 0, "arcnet (COM90xx-IO)", dev)) {
++ if (request_irq(dev->irq, &arcnet_interrupt, SA_NET_RANDOM, "arcnet (COM90xx-IO)", dev)) {
+ BUGMSG(D_NORMAL, "Can't get IRQ %d!\n", dev->irq);
+ return -ENODEV;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/arcnet/com90xx.c linux-2.6.7-netdev_random/drivers/net/arcnet/com90xx.c
+--- linux-2.6.7/drivers/net/arcnet/com90xx.c 2004-06-16 07:19:43.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/arcnet/com90xx.c 2004-06-24 10:16:08.366222560 +0200
+@@ -445,7 +445,7 @@ static int __init com90xx_found(int ioad
+ goto err_free_dev;
+
+ /* reserve the irq */
+- if (request_irq(airq, &arcnet_interrupt, 0, "arcnet (90xx)", dev)) {
++ if (request_irq(airq, &arcnet_interrupt, SA_NET_RANDOM, "arcnet (90xx)", dev)) {
+ BUGMSG(D_NORMAL, "Can't get IRQ %d!\n", airq);
+ goto err_release_mem;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ariadne.c linux-2.6.7-netdev_random/drivers/net/ariadne.c
+--- linux-2.6.7/drivers/net/ariadne.c 2004-06-16 07:19:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ariadne.c 2004-06-24 10:16:08.384219824 +0200
+@@ -320,7 +320,7 @@ static int ariadne_open(struct net_devic
+
+ netif_start_queue(dev);
+
+- i = request_irq(IRQ_AMIGA_PORTS, ariadne_interrupt, SA_SHIRQ,
++ i = request_irq(IRQ_AMIGA_PORTS, ariadne_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ dev->name, dev);
+ if (i) return i;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/arm/am79c961a.c linux-2.6.7-netdev_random/drivers/net/arm/am79c961a.c
+--- linux-2.6.7/drivers/net/arm/am79c961a.c 2004-06-16 07:19:44.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/arm/am79c961a.c 2004-06-24 10:16:08.398217696 +0200
+@@ -302,7 +302,7 @@ am79c961_open(struct net_device *dev)
+
+ memset (&priv->stats, 0, sizeof (priv->stats));
+
+- ret = request_irq(dev->irq, am79c961_interrupt, 0, dev->name, dev);
++ ret = request_irq(dev->irq, am79c961_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (ret)
+ return ret;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/arm/ether00.c linux-2.6.7-netdev_random/drivers/net/arm/ether00.c
+--- linux-2.6.7/drivers/net/arm/ether00.c 2004-06-16 07:20:26.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/arm/ether00.c 2004-06-24 10:16:08.414215264 +0200
+@@ -706,11 +706,11 @@ static int ether00_open(struct net_devic
+ return -EINVAL;
+
+ /* Install interrupt handlers */
+- result=request_irq(dev->irq,ether00_int,0,"ether00",dev);
++ result=request_irq(dev->irq,ether00_int,SA_NET_RANDOM,"ether00",dev);
+ if(result)
+ goto open_err1;
+
+- result=request_irq(2,ether00_phy_int,0,"ether00_phy",dev);
++ result=request_irq(2,ether00_phy_int,SA_NET_RANDOM,"ether00_phy",dev);
+ if(result)
+ goto open_err2;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/arm/ether1.c linux-2.6.7-netdev_random/drivers/net/arm/ether1.c
+--- linux-2.6.7/drivers/net/arm/ether1.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/arm/ether1.c 2004-06-24 10:16:08.423213896 +0200
+@@ -650,7 +650,7 @@ ether1_open (struct net_device *dev)
+ return -EINVAL;
+ }
+
+- if (request_irq(dev->irq, ether1_interrupt, 0, "ether1", dev))
++ if (request_irq(dev->irq, ether1_interrupt, SA_NET_RANDOM, "ether1", dev))
+ return -EAGAIN;
+
+ memset (&priv->stats, 0, sizeof (struct net_device_stats));
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/arm/ether3.c linux-2.6.7-netdev_random/drivers/net/arm/ether3.c
+--- linux-2.6.7/drivers/net/arm/ether3.c 2004-06-16 07:20:19.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/arm/ether3.c 2004-06-24 10:16:08.432212528 +0200
+@@ -418,7 +418,7 @@ ether3_open(struct net_device *dev)
+ return -EINVAL;
+ }
+
+- if (request_irq(dev->irq, ether3_interrupt, 0, "ether3", dev))
++ if (request_irq(dev->irq, ether3_interrupt, SA_NET_RANDOM, "ether3", dev))
+ return -EAGAIN;
+
+ ether3_init_for_open(dev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/arm/etherh.c linux-2.6.7-netdev_random/drivers/net/arm/etherh.c
+--- linux-2.6.7/drivers/net/arm/etherh.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/arm/etherh.c 2004-06-24 10:16:08.450209792 +0200
+@@ -459,7 +459,7 @@ etherh_open(struct net_device *dev)
+ return -EINVAL;
+ }
+
+- if (request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))
++ if (request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev))
+ return -EAGAIN;
+
+ /*
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/at1700.c linux-2.6.7-netdev_random/drivers/net/at1700.c
+--- linux-2.6.7/drivers/net/at1700.c 2004-06-16 07:19:13.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/at1700.c 2004-06-24 10:16:08.460208272 +0200
+@@ -542,7 +542,7 @@ found:
+ lp->jumpered = is_fmv18x;
+ lp->mca_slot = slot;
+ /* Snarf the interrupt vector now. */
+- ret = request_irq(irq, &net_interrupt, 0, dev->name, dev);
++ ret = request_irq(irq, &net_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (ret) {
+ printk (" AT1700 at %#3x is unusable due to a conflict on"
+ "IRQ %d.\n", ioaddr, irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/atarilance.c linux-2.6.7-netdev_random/drivers/net/atarilance.c
+--- linux-2.6.7/drivers/net/atarilance.c 2004-06-16 07:19:01.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/atarilance.c 2004-06-24 10:48:56.429031536 +0200
+@@ -548,7 +548,7 @@ static unsigned long __init lance_probe1
+ if (lp->cardtype == PAM_CARD ||
+ memaddr == (unsigned short *)0xffe00000) {
+ /* PAMs card and Riebl on ST use level 5 autovector */
+- if (request_irq(IRQ_AUTO_5, lance_interrupt, IRQ_TYPE_PRIO,
++ if (request_irq(IRQ_AUTO_5, lance_interrupt, IRQ_TYPE_PRIO | SA_NET_RANDOM,
+ "PAM/Riebl-ST Ethernet", dev)) {
+ printk( "Lance: request for irq %d failed\n", IRQ_AUTO_5 );
+ return( 0 );
+@@ -565,7 +565,7 @@ static unsigned long __init lance_probe1
+ printk( "Lance: request for VME interrupt failed\n" );
+ return( 0 );
+ }
+- if (request_irq(irq, lance_interrupt, IRQ_TYPE_PRIO,
++ if (request_irq(irq, lance_interrupt, IRQ_TYPE_PRIO | SA_NET_RANDOM,
+ "Riebl-VME Ethernet", dev)) {
+ printk( "Lance: request for irq %ld failed\n", irq );
+ return( 0 );
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/atp.c linux-2.6.7-netdev_random/drivers/net/atp.c
+--- linux-2.6.7/drivers/net/atp.c 2004-06-16 07:20:26.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/atp.c 2004-06-24 10:16:08.471206600 +0200
+@@ -438,7 +438,7 @@ static int net_open(struct net_device *d
+ /* The interrupt line is turned off (tri-stated) when the device isn't in
+ use. That's especially important for "attached" interfaces where the
+ port or interrupt may be shared. */
+- ret = request_irq(dev->irq, &atp_interrupt, 0, dev->name, dev);
++ ret = request_irq(dev->irq, &atp_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (ret)
+ return ret;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/au1000_eth.c linux-2.6.7-netdev_random/drivers/net/au1000_eth.c
+--- linux-2.6.7/drivers/net/au1000_eth.c 2004-06-16 07:19:29.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/au1000_eth.c 2004-06-24 10:16:08.482204928 +0200
+@@ -942,7 +942,7 @@ static int au1000_open(struct net_device
+ }
+ netif_start_queue(dev);
+
+- if ((retval = request_irq(dev->irq, &au1000_interrupt, 0,
++ if ((retval = request_irq(dev->irq, &au1000_interrupt, SA_NET_RANDOM,
+ dev->name, dev))) {
+ printk(KERN_ERR "%s: unable to get IRQ %d\n",
+ dev->name, dev->irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/b44.c linux-2.6.7-netdev_random/drivers/net/b44.c
+--- linux-2.6.7/drivers/net/b44.c 2004-06-16 07:19:22.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/b44.c 2004-06-24 10:16:08.499202344 +0200
+@@ -1247,7 +1247,7 @@ static int b44_open(struct net_device *d
+ if (err)
+ return err;
+
+- err = request_irq(dev->irq, b44_interrupt, SA_SHIRQ, dev->name, dev);
++ err = request_irq(dev->irq, b44_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (err)
+ goto err_out_free;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/bagetlance.c linux-2.6.7-netdev_random/drivers/net/bagetlance.c
+--- linux-2.6.7/drivers/net/bagetlance.c 2004-06-16 07:18:54.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/bagetlance.c 2004-06-24 10:49:20.606356024 +0200
+@@ -625,7 +625,7 @@ static int __init lance_probe1( struct n
+ if (lp->cardtype == PAM_CARD ||
+ memaddr == (unsigned short *)0xffe00000) {
+ /* PAMs card and Riebl on ST use level 5 autovector */
+- if (request_irq(BAGET_LANCE_IRQ, lance_interrupt, IRQ_TYPE_PRIO,
++ if (request_irq(BAGET_LANCE_IRQ, lance_interrupt, IRQ_TYPE_PRIO | SA_NET_RANDOM,
+ "PAM/Riebl-ST Ethernet", dev))
+ goto probe_fail;
+ dev->irq = (unsigned short)BAGET_LANCE_IRQ;
+@@ -640,7 +640,7 @@ static int __init lance_probe1( struct n
+ printk( "Lance: request for VME interrupt failed\n" );
+ goto probe_fail;
+ }
+- if (request_irq(irq, lance_interrupt, IRQ_TYPE_PRIO,
++ if (request_irq(irq, lance_interrupt, IRQ_TYPE_PRIO | SA_NET_RANDOM,
+ "Riebl-VME Ethernet", dev))
+ goto probe_fail;
+ dev->irq = irq;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/bmac.c linux-2.6.7-netdev_random/drivers/net/bmac.c
+--- linux-2.6.7/drivers/net/bmac.c 2004-06-16 07:18:55.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/bmac.c 2004-06-24 10:16:08.517199608 +0200
+@@ -1350,7 +1350,7 @@ static int __devinit bmac_probe(struct m
+
+ init_timer(&bp->tx_timeout);
+
+- ret = request_irq(dev->irq, bmac_misc_intr, 0, "BMAC-misc", dev);
++ ret = request_irq(dev->irq, bmac_misc_intr, SA_NET_RANDOM, "BMAC-misc", dev);
+ if (ret) {
+ printk(KERN_ERR "BMAC: can't get irq %d\n", dev->irq);
+ goto err_out_iounmap_rx;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/cs89x0.c linux-2.6.7-netdev_random/drivers/net/cs89x0.c
+--- linux-2.6.7/drivers/net/cs89x0.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/cs89x0.c 2004-06-24 10:16:08.527198088 +0200
+@@ -1134,7 +1134,7 @@ net_open(struct net_device *dev)
+
+ for (i = 2; i < CS8920_NO_INTS; i++) {
+ if ((1 << i) & lp->irq_map) {
+- if (request_irq(i, net_interrupt, 0, dev->name, dev) == 0) {
++ if (request_irq(i, net_interrupt, SA_NET_RANDOM, dev->name, dev) == 0) {
+ dev->irq = i;
+ write_irq(dev, lp->chip_type, i);
+ /* writereg(dev, PP_BufCFG, GENERATE_SW_INTERRUPT); */
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/de600.c linux-2.6.7-netdev_random/drivers/net/de600.c
+--- linux-2.6.7/drivers/net/de600.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/de600.c 2004-06-24 10:16:08.535196872 +0200
+@@ -134,7 +134,7 @@ static inline u8 de600_read_byte(unsigne
+ static int de600_open(struct net_device *dev)
+ {
+ unsigned long flags;
+- int ret = request_irq(DE600_IRQ, de600_interrupt, 0, dev->name, dev);
++ int ret = request_irq(DE600_IRQ, de600_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (ret) {
+ printk(KERN_ERR "%s: unable to get IRQ %d\n", dev->name, DE600_IRQ);
+ return ret;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/de620.c linux-2.6.7-netdev_random/drivers/net/de620.c
+--- linux-2.6.7/drivers/net/de620.c 2004-06-16 07:19:23.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/de620.c 2004-06-24 10:16:08.545195352 +0200
+@@ -444,7 +444,7 @@ de620_get_register(struct net_device *de
+ */
+ static int de620_open(struct net_device *dev)
+ {
+- int ret = request_irq(dev->irq, de620_interrupt, 0, dev->name, dev);
++ int ret = request_irq(dev->irq, de620_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (ret) {
+ printk (KERN_ERR "%s: unable to get IRQ %d\n", dev->name, dev->irq);
+ return ret;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/declance.c linux-2.6.7-netdev_random/drivers/net/declance.c
+--- linux-2.6.7/drivers/net/declance.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/declance.c 2004-06-24 10:18:39.248285000 +0200
+@@ -785,14 +785,14 @@ static int lance_open(struct net_device
+ netif_start_queue(dev);
+
+ /* Associate IRQ with lance_interrupt */
+- if (request_irq(dev->irq, &lance_interrupt, 0, "lance", dev)) {
++ if (request_irq(dev->irq, &lance_interrupt, SA_NET_RANDOM, "lance", dev)) {
+ printk("%s: Can't get IRQ %d\n", dev->name, dev->irq);
+ return -EAGAIN;
+ }
+ if (lp->dma_irq >= 0) {
+ unsigned long flags;
+
+- if (request_irq(lp->dma_irq, &lance_dma_merr_int, 0,
++ if (request_irq(lp->dma_irq, &lance_dma_merr_int, SA_NET_RANDOM,
+ "lance error", dev)) {
+ free_irq(dev->irq, dev);
+ printk("%s: Can't get DMA IRQ %d\n", dev->name,
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/defxx.c linux-2.6.7-netdev_random/drivers/net/defxx.c
+--- linux-2.6.7/drivers/net/defxx.c 2004-06-16 07:18:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/defxx.c 2004-06-24 10:16:08.583189576 +0200
+@@ -1221,7 +1221,7 @@ static int dfx_open(struct net_device *d
+
+ /* Register IRQ - support shared interrupts by passing device ptr */
+
+- ret = request_irq(dev->irq, (void *)dfx_interrupt, SA_SHIRQ, dev->name, dev);
++ ret = request_irq(dev->irq, (void *)dfx_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (ret) {
+ printk(KERN_ERR "%s: Requested IRQ %d is busy\n", dev->name, dev->irq);
+ return ret;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/depca.c linux-2.6.7-netdev_random/drivers/net/depca.c
+--- linux-2.6.7/drivers/net/depca.c 2004-06-16 07:19:23.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/depca.c 2004-06-24 10:16:08.593188056 +0200
+@@ -840,7 +840,7 @@ static int depca_open(struct net_device
+
+ depca_dbg_open(dev);
+
+- if (request_irq(dev->irq, &depca_interrupt, 0, lp->adapter_name, dev)) {
++ if (request_irq(dev->irq, &depca_interrupt, SA_NET_RANDOM, lp->adapter_name, dev)) {
+ printk("depca_open(): Requested IRQ%d is busy\n", dev->irq);
+ status = -EAGAIN;
+ } else {
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/dgrs.c linux-2.6.7-netdev_random/drivers/net/dgrs.c
+--- linux-2.6.7/drivers/net/dgrs.c 2004-06-16 07:18:56.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/dgrs.c 2004-06-24 10:16:08.612185168 +0200
+@@ -1191,7 +1191,7 @@ dgrs_probe1(struct net_device *dev)
+ if (priv->plxreg)
+ OUTL(dev->base_addr + PLX_LCL2PCI_DOORBELL, 1);
+
+- rc = request_irq(dev->irq, &dgrs_intr, SA_SHIRQ, "RightSwitch", dev);
++ rc = request_irq(dev->irq, &dgrs_intr, SA_SHIRQ | SA_NET_RANDOM, "RightSwitch", dev);
+ if (rc)
+ goto err_out;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/dl2k.c linux-2.6.7-netdev_random/drivers/net/dl2k.c
+--- linux-2.6.7/drivers/net/dl2k.c 2004-06-16 07:19:17.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/dl2k.c 2004-06-24 10:16:08.622183648 +0200
+@@ -437,7 +437,7 @@ rio_open (struct net_device *dev)
+ int i;
+ u16 macctrl;
+
+- i = request_irq (dev->irq, &rio_interrupt, SA_SHIRQ, dev->name, dev);
++ i = request_irq (dev->irq, &rio_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (i)
+ return i;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/e1000/e1000_main.c linux-2.6.7-netdev_random/drivers/net/e1000/e1000_main.c
+--- linux-2.6.7/drivers/net/e1000/e1000_main.c 2004-06-16 07:19:13.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/e1000/e1000_main.c 2004-06-24 10:16:08.691173160 +0200
+@@ -266,7 +266,7 @@ e1000_up(struct e1000_adapter *adapter)
+ e1000_alloc_rx_buffers(adapter);
+
+ if((err = request_irq(adapter->pdev->irq, &e1000_intr,
+- SA_SHIRQ | SA_SAMPLE_RANDOM,
++ SA_SHIRQ | SA_NET_RANDOM,
+ netdev->name, netdev)))
+ return err;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/e100.c linux-2.6.7-netdev_random/drivers/net/e100.c
+--- linux-2.6.7/drivers/net/e100.c 2004-06-16 07:20:26.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/e100.c 2004-06-24 10:16:08.642180608 +0200
+@@ -1660,7 +1660,7 @@ static int e100_up(struct nic *nic)
+ e100_set_multicast_list(nic->netdev);
+ e100_start_receiver(nic);
+ mod_timer(&nic->watchdog, jiffies);
+- if((err = request_irq(nic->pdev->irq, e100_intr, SA_SHIRQ,
++ if((err = request_irq(nic->pdev->irq, e100_intr, SA_SHIRQ | SA_NET_RANDOM,
+ nic->netdev->name, nic->netdev)))
+ goto err_no_irq;
+ e100_enable_irq(nic);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/e2100.c linux-2.6.7-netdev_random/drivers/net/e2100.c
+--- linux-2.6.7/drivers/net/e2100.c 2004-06-16 07:20:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/e2100.c 2004-06-24 10:16:08.707170728 +0200
+@@ -286,7 +286,7 @@ e21_open(struct net_device *dev)
+ short ioaddr = dev->base_addr;
+ int retval;
+
+- if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev)))
++ if ((retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev)))
+ return retval;
+
+ /* Set the interrupt line and memory base on the hardware. */
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/eepro100.c linux-2.6.7-netdev_random/drivers/net/eepro100.c
+--- linux-2.6.7/drivers/net/eepro100.c 2004-06-16 07:19:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/eepro100.c 2004-06-24 10:16:08.738166016 +0200
+@@ -1032,7 +1032,7 @@ speedo_open(struct net_device *dev)
+ sp->in_interrupt = 0;
+
+ /* .. we can safely take handler calls during init. */
+- retval = request_irq(dev->irq, &speedo_interrupt, SA_SHIRQ, dev->name, dev);
++ retval = request_irq(dev->irq, &speedo_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (retval) {
+ return retval;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/eepro.c linux-2.6.7-netdev_random/drivers/net/eepro.c
+--- linux-2.6.7/drivers/net/eepro.c 2004-06-16 07:19:43.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/eepro.c 2004-06-24 10:16:08.719168904 +0200
+@@ -964,7 +964,7 @@ static int eepro_open(struct net_device
+ return -EAGAIN;
+ }
+
+- if (request_irq(dev->irq , &eepro_interrupt, 0, dev->name, dev)) {
++ if (request_irq(dev->irq , &eepro_interrupt, SA_NET_RANDOM, dev->name, dev)) {
+ printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq);
+ return -EAGAIN;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/eexpress.c linux-2.6.7-netdev_random/drivers/net/eexpress.c
+--- linux-2.6.7/drivers/net/eexpress.c 2004-06-16 07:18:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/eexpress.c 2004-06-24 10:16:08.748164496 +0200
+@@ -461,7 +461,7 @@ static int eexp_open(struct net_device *
+ if (!dev->irq || !irqrmap[dev->irq])
+ return -ENXIO;
+
+- ret = request_irq(dev->irq,&eexp_irq,0,dev->name,dev);
++ ret = request_irq(dev->irq,&eexp_irq,SA_NET_RANDOM,dev->name,dev);
+ if (ret) return ret;
+
+ if (!request_region(ioaddr, EEXP_IO_EXTENT, "EtherExpress")) {
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/epic100.c linux-2.6.7-netdev_random/drivers/net/epic100.c
+--- linux-2.6.7/drivers/net/epic100.c 2004-06-16 07:19:22.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/epic100.c 2004-06-24 10:16:08.767161608 +0200
+@@ -680,7 +680,7 @@ static int epic_open(struct net_device *
+ /* Soft reset the chip. */
+ outl(0x4001, ioaddr + GENCTL);
+
+- if ((retval = request_irq(dev->irq, &epic_interrupt, SA_SHIRQ, dev->name, dev)))
++ if ((retval = request_irq(dev->irq, &epic_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev)))
+ return retval;
+
+ epic_init_ring(dev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/es3210.c linux-2.6.7-netdev_random/drivers/net/es3210.c
+--- linux-2.6.7/drivers/net/es3210.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/es3210.c 2004-06-24 10:16:08.775160392 +0200
+@@ -248,7 +248,7 @@ static int __init es_probe1(struct net_d
+ printk(" assigning IRQ %d", dev->irq);
+ }
+
+- if (request_irq(dev->irq, ei_interrupt, 0, "es3210", dev)) {
++ if (request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, "es3210", dev)) {
+ printk (" unable to get IRQ %d.\n", dev->irq);
+ retval = -EAGAIN;
+ goto out;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/eth16i.c linux-2.6.7-netdev_random/drivers/net/eth16i.c
+--- linux-2.6.7/drivers/net/eth16i.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/eth16i.c 2004-06-24 10:16:08.787158568 +0200
+@@ -538,7 +538,7 @@ static int __init eth16i_probe1(struct n
+
+ /* Try to obtain interrupt vector */
+
+- if ((retval = request_irq(dev->irq, (void *)&eth16i_interrupt, 0, dev->name, dev))) {
++ if ((retval = request_irq(dev->irq, (void *)&eth16i_interrupt, SA_NET_RANDOM, dev->name, dev))) {
+ printk(KERN_WARNING "%s: %s at %#3x, but is unusable due conflicting IRQ %d.\n",
+ dev->name, cardname, ioaddr, dev->irq);
+ goto out;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ewrk3.c linux-2.6.7-netdev_random/drivers/net/ewrk3.c
+--- linux-2.6.7/drivers/net/ewrk3.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ewrk3.c 2004-06-24 10:16:08.797157048 +0200
+@@ -630,7 +630,7 @@ static int ewrk3_open(struct net_device
+ STOP_EWRK3;
+
+ if (!lp->hard_strapped) {
+- if (request_irq(dev->irq, (void *) ewrk3_interrupt, 0, "ewrk3", dev)) {
++ if (request_irq(dev->irq, (void *) ewrk3_interrupt, SA_NET_RANDOM, "ewrk3", dev)) {
+ printk("ewrk3_open(): Requested IRQ%d is busy\n", dev->irq);
+ status = -EAGAIN;
+ } else {
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/fc/iph5526.c linux-2.6.7-netdev_random/drivers/net/fc/iph5526.c
+--- linux-2.6.7/drivers/net/fc/iph5526.c 2004-06-16 07:19:01.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/fc/iph5526.c 2004-06-24 10:16:08.814154464 +0200
+@@ -3786,7 +3786,7 @@ int iph5526_detect(Scsi_Host_Template *t
+ int irqval = 0;
+ /* Found it, get IRQ.
+ */
+- irqval = request_irq(pci_irq_line, &tachyon_interrupt, pci_irq_line ? SA_SHIRQ : 0, fi->name, host);
++ irqval = request_irq(pci_irq_line, &tachyon_interrupt, pci_irq_line ? SA_SHIRQ | SA_NET_RANDOM : 0, fi->name, host);
+ if (irqval) {
+ printk("iph5526.c : Unable to get IRQ %d (irqval = %d).\n", pci_irq_line, irqval);
+ scsi_unregister(host);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/fealnx.c linux-2.6.7-netdev_random/drivers/net/fealnx.c
+--- linux-2.6.7/drivers/net/fealnx.c 2004-06-16 07:19:42.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/fealnx.c 2004-06-24 10:16:08.832151728 +0200
+@@ -861,7 +861,7 @@ static int netdev_open(struct net_device
+
+ writel(0x00000001, ioaddr + BCR); /* Reset */
+
+- if (request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev))
++ if (request_irq(dev->irq, &intr_handler, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev))
+ return -EAGAIN;
+
+ init_ring(dev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/fec.c linux-2.6.7-netdev_random/drivers/net/fec.c
+--- linux-2.6.7/drivers/net/fec.c 2004-06-16 07:18:57.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/fec.c 2004-06-24 10:16:08.842150208 +0200
+@@ -1057,13 +1057,13 @@ static void __inline__ fec_request_intrs
+ volatile unsigned long *icrp;
+
+ /* Setup interrupt handlers. */
+- if (request_irq(86, fec_enet_interrupt, 0, "fec(RX)", dev) != 0)
++ if (request_irq(86, fec_enet_interrupt, SA_NET_RANDOM, "fec(RX)", dev) != 0)
+ printk("FEC: Could not allocate FEC(RC) IRQ(86)!\n");
+- if (request_irq(87, fec_enet_interrupt, 0, "fec(TX)", dev) != 0)
++ if (request_irq(87, fec_enet_interrupt, SA_NET_RANDOM, "fec(TX)", dev) != 0)
+ printk("FEC: Could not allocate FEC(RC) IRQ(87)!\n");
+- if (request_irq(88, fec_enet_interrupt, 0, "fec(OTHER)", dev) != 0)
++ if (request_irq(88, fec_enet_interrupt, SA_NET_RANDOM, "fec(OTHER)", dev) != 0)
+ printk("FEC: Could not allocate FEC(OTHER) IRQ(88)!\n");
+- if (request_irq(66, mii_link_interrupt, 0, "fec(MII)", dev) != 0)
++ if (request_irq(66, mii_link_interrupt, SA_NET_RANDOM, "fec(MII)", dev) != 0)
+ printk("FEC: Could not allocate MII IRQ(66)!\n");
+
+ /* Unmask interrupt at ColdFire 5272 SIM */
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/fmv18x.c linux-2.6.7-netdev_random/drivers/net/fmv18x.c
+--- linux-2.6.7/drivers/net/fmv18x.c 2004-06-16 07:18:57.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/fmv18x.c 2004-06-24 10:16:08.853148536 +0200
+@@ -224,7 +224,7 @@ static int __init fmv18x_probe1(struct n
+ }
+
+ /* Snarf the interrupt vector now. */
+- retval = request_irq(dev->irq, &net_interrupt, 0, dev->name, dev);
++ retval = request_irq(dev->irq, &net_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (retval) {
+ printk ("FMV-18x found at %#3x, but it's unusable due to a conflict on"
+ "IRQ %d.\n", ioaddr, dev->irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/forcedeth.c linux-2.6.7-netdev_random/drivers/net/forcedeth.c
+--- linux-2.6.7/drivers/net/forcedeth.c 2004-06-16 07:18:55.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/forcedeth.c 2004-06-24 10:16:08.863147016 +0200
+@@ -1319,7 +1319,7 @@ static int nv_open(struct net_device *de
+ writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus);
+ pci_push(base);
+
+- ret = request_irq(dev->irq, &nv_nic_irq, SA_SHIRQ, dev->name, dev);
++ ret = request_irq(dev->irq, &nv_nic_irq, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (ret)
+ goto out_drain;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/gt96100eth.c linux-2.6.7-netdev_random/drivers/net/gt96100eth.c
+--- linux-2.6.7/drivers/net/gt96100eth.c 2004-06-16 07:19:44.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/gt96100eth.c 2004-06-24 10:16:08.884143824 +0200
+@@ -1080,7 +1080,7 @@ gt96100_open(struct net_device *dev)
+ }
+
+ if ((retval = request_irq(dev->irq, &gt96100_interrupt,
+- SA_SHIRQ, dev->name, dev))) {
++ SA_SHIRQ | SA_NET_RANDOM, dev->name, dev))) {
+ err("unable to get IRQ %d\n", dev->irq);
+ return retval;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/hamachi.c linux-2.6.7-netdev_random/drivers/net/hamachi.c
+--- linux-2.6.7/drivers/net/hamachi.c 2004-06-16 07:20:26.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/hamachi.c 2004-06-24 10:16:08.895142152 +0200
+@@ -859,7 +859,7 @@ static int hamachi_open(struct net_devic
+ u32 rx_int_var, tx_int_var;
+ u16 fifo_info;
+
+- i = request_irq(dev->irq, &hamachi_interrupt, SA_SHIRQ, dev->name, dev);
++ i = request_irq(dev->irq, &hamachi_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (i)
+ return i;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/hamradio/baycom_ser_fdx.c linux-2.6.7-netdev_random/drivers/net/hamradio/baycom_ser_fdx.c
+--- linux-2.6.7/drivers/net/hamradio/baycom_ser_fdx.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/hamradio/baycom_ser_fdx.c 2004-06-24 10:16:08.924137744 +0200
+@@ -433,7 +433,7 @@ static int ser12_open(struct net_device
+ outb(0, FCR(dev->base_addr)); /* disable FIFOs */
+ outb(0x0d, MCR(dev->base_addr));
+ outb(0, IER(dev->base_addr));
+- if (request_irq(dev->irq, ser12_interrupt, SA_INTERRUPT | SA_SHIRQ,
++ if (request_irq(dev->irq, ser12_interrupt, SA_INTERRUPT | SA_SHIRQ | SA_NET_RANDOM,
+ "baycom_ser_fdx", dev)) {
+ release_region(dev->base_addr, SER12_EXTENT);
+ return -EBUSY;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/hamradio/baycom_ser_hdx.c linux-2.6.7-netdev_random/drivers/net/hamradio/baycom_ser_hdx.c
+--- linux-2.6.7/drivers/net/hamradio/baycom_ser_hdx.c 2004-06-16 07:18:55.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/hamradio/baycom_ser_hdx.c 2004-06-24 10:16:08.933136376 +0200
+@@ -487,7 +487,7 @@ static int ser12_open(struct net_device
+ outb(0, FCR(dev->base_addr)); /* disable FIFOs */
+ outb(0x0d, MCR(dev->base_addr));
+ outb(0, IER(dev->base_addr));
+- if (request_irq(dev->irq, ser12_interrupt, SA_INTERRUPT | SA_SHIRQ,
++ if (request_irq(dev->irq, ser12_interrupt, SA_INTERRUPT | SA_SHIRQ | SA_NET_RANDOM,
+ "baycom_ser12", dev)) {
+ release_region(dev->base_addr, SER12_EXTENT);
+ return -EBUSY;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/hamradio/dmascc.c linux-2.6.7-netdev_random/drivers/net/hamradio/dmascc.c
+--- linux-2.6.7/drivers/net/hamradio/dmascc.c 2004-06-16 07:19:22.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/hamradio/dmascc.c 2004-06-24 10:16:08.965131512 +0200
+@@ -712,7 +712,7 @@ static int scc_open(struct net_device *d
+
+ /* Request IRQ if not already used by other channel */
+ if (!info->irq_used) {
+- if (request_irq(dev->irq, scc_isr, 0, "dmascc", info)) {
++ if (request_irq(dev->irq, scc_isr, SA_NET_RANDOM, "dmascc", info)) {
+ return -EAGAIN;
+ }
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/hamradio/scc.c linux-2.6.7-netdev_random/drivers/net/hamradio/scc.c
+--- linux-2.6.7/drivers/net/hamradio/scc.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/hamradio/scc.c 2004-06-24 10:16:08.982128928 +0200
+@@ -1742,7 +1742,7 @@ static int scc_net_ioctl(struct net_devi
+
+ if (!Ivec[hwcfg.irq].used && hwcfg.irq)
+ {
+- if (request_irq(hwcfg.irq, scc_isr, SA_INTERRUPT, "AX.25 SCC", NULL))
++ if (request_irq(hwcfg.irq, scc_isr, SA_INTERRUPT | SA_NET_RANDOM, "AX.25 SCC", NULL))
+ printk(KERN_WARNING "z8530drv: warning, cannot get IRQ %d\n", hwcfg.irq);
+ else
+ Ivec[hwcfg.irq].used = 1;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/hamradio/yam.c linux-2.6.7-netdev_random/drivers/net/hamradio/yam.c
+--- linux-2.6.7/drivers/net/hamradio/yam.c 2004-06-16 07:19:43.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/hamradio/yam.c 2004-06-24 10:16:08.992127408 +0200
+@@ -885,7 +885,7 @@ static int yam_open(struct net_device *d
+ goto out_release_base;
+ }
+ outb(0, IER(dev->base_addr));
+- if (request_irq(dev->irq, yam_interrupt, SA_INTERRUPT | SA_SHIRQ, dev->name, dev)) {
++ if (request_irq(dev->irq, yam_interrupt, SA_INTERRUPT | SA_SHIRQ | SA_NET_RANDOM, dev->name, dev)) {
+ printk(KERN_ERR "%s: irq %d busy\n", dev->name, dev->irq);
+ ret = -EBUSY;
+ goto out_release_base;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/hp100.c linux-2.6.7-netdev_random/drivers/net/hp100.c
+--- linux-2.6.7/drivers/net/hp100.c 2004-06-16 07:19:13.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/hp100.c 2004-06-24 10:16:09.035120872 +0200
+@@ -1064,7 +1064,7 @@ static int hp100_open(struct net_device
+ /* New: if bus is PCI or EISA, interrupts might be shared interrupts */
+ if (request_irq(dev->irq, hp100_interrupt,
+ lp->bus == HP100_BUS_PCI || lp->bus ==
+- HP100_BUS_EISA ? SA_SHIRQ : SA_INTERRUPT,
++ HP100_BUS_EISA ? SA_SHIRQ | SA_NET_RANDOM : SA_INTERRUPT,
+ "hp100", dev)) {
+ printk("hp100: %s: unable to get IRQ %d\n", dev->name, dev->irq);
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/hp.c linux-2.6.7-netdev_random/drivers/net/hp.c
+--- linux-2.6.7/drivers/net/hp.c 2004-06-16 07:19:01.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/hp.c 2004-06-24 10:16:09.020123152 +0200
+@@ -176,13 +176,13 @@ static int __init hp_probe1(struct net_d
+ int *irqp = wordmode ? irq_16list : irq_8list;
+ do {
+ int irq = *irqp;
+- if (request_irq (irq, NULL, 0, "bogus", NULL) != -EBUSY) {
++ if (request_irq (irq, NULL, SA_NET_RANDOM, "bogus", NULL) != -EBUSY) {
+ unsigned long cookie = probe_irq_on();
+ /* Twinkle the interrupt, and check if it's seen. */
+ outb_p(irqmap[irq] | HP_RUN, ioaddr + HP_CONFIGURE);
+ outb_p( 0x00 | HP_RUN, ioaddr + HP_CONFIGURE);
+ if (irq == probe_irq_off(cookie) /* It's a good IRQ line! */
+- && request_irq (irq, ei_interrupt, 0, dev->name, dev) == 0) {
++ && request_irq (irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev) == 0) {
+ printk(" selecting IRQ %d.\n", irq);
+ dev->irq = *irqp;
+ break;
+@@ -197,7 +197,7 @@ static int __init hp_probe1(struct net_d
+ } else {
+ if (dev->irq == 2)
+ dev->irq = 9;
+- if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) {
++ if ((retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev))) {
+ printk (" unable to get IRQ %d.\n", dev->irq);
+ goto out;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/hp-plus.c linux-2.6.7-netdev_random/drivers/net/hp-plus.c
+--- linux-2.6.7/drivers/net/hp-plus.c 2004-06-16 07:18:57.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/hp-plus.c 2004-06-24 10:16:09.011124520 +0200
+@@ -280,7 +280,7 @@ hpp_open(struct net_device *dev)
+ int option_reg;
+ int retval;
+
+- if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) {
++ if ((retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev))) {
+ return retval;
+ }
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/hydra.c linux-2.6.7-netdev_random/drivers/net/hydra.c
+--- linux-2.6.7/drivers/net/hydra.c 2004-06-16 07:19:22.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/hydra.c 2004-06-24 10:16:09.046119200 +0200
+@@ -117,7 +117,7 @@ static int __devinit hydra_init(struct z
+ dev->irq = IRQ_AMIGA_PORTS;
+
+ /* Install the Interrupt handler */
+- if (request_irq(IRQ_AMIGA_PORTS, ei_interrupt, SA_SHIRQ, "Hydra Ethernet",
++ if (request_irq(IRQ_AMIGA_PORTS, ei_interrupt, SA_SHIRQ | SA_NET_RANDOM, "Hydra Ethernet",
+ dev)) {
+ free_netdev(dev);
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ibmlana.c linux-2.6.7-netdev_random/drivers/net/ibmlana.c
+--- linux-2.6.7/drivers/net/ibmlana.c 2004-06-16 07:19:01.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ibmlana.c 2004-06-24 10:16:09.062116768 +0200
+@@ -780,7 +780,7 @@ static int ibmlana_open(struct net_devic
+
+ /* register resources - only necessary for IRQ */
+
+- result = request_irq(priv->realirq, irq_handler, SA_SHIRQ | SA_SAMPLE_RANDOM, dev->name, dev);
++ result = request_irq(priv->realirq, irq_handler, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (result != 0) {
+ printk(KERN_ERR "%s: failed to register irq %d\n", dev->name, dev->irq);
+ return result;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ibmveth.c linux-2.6.7-netdev_random/drivers/net/ibmveth.c
+--- linux-2.6.7/drivers/net/ibmveth.c 2004-06-16 07:18:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ibmveth.c 2004-06-24 10:51:53.501112488 +0200
+@@ -524,7 +524,7 @@ static int ibmveth_open(struct net_devic
+ }
+
+ ibmveth_debug_printk("registering irq 0x%x\n", netdev->irq);
+- if((rc = request_irq(netdev->irq, &ibmveth_interrupt, 0, netdev->name, netdev)) != 0) {
++ if((rc = request_irq(netdev->irq, &ibmveth_interrupt, SA_NET_RANDOM, netdev->name, netdev)) != 0) {
+ ibmveth_error_printk("unable to request irq 0x%x, rc %d\n", netdev->irq, rc);
+ do {
+ rc = h_free_logical_lan(adapter->vdev->unit_address);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ioc3-eth.c linux-2.6.7-netdev_random/drivers/net/ioc3-eth.c
+--- linux-2.6.7/drivers/net/ioc3-eth.c 2004-06-16 07:18:57.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ioc3-eth.c 2004-06-24 10:16:09.081113880 +0200
+@@ -1045,7 +1045,7 @@ static int ioc3_open(struct net_device *
+ {
+ struct ioc3_private *ip = netdev_priv(dev);
+
+- if (request_irq(dev->irq, ioc3_interrupt, SA_SHIRQ, ioc3_str, dev)) {
++ if (request_irq(dev->irq, ioc3_interrupt, SA_SHIRQ | SA_NET_RANDOM, ioc3_str, dev)) {
+ printk(KERN_ERR "%s: Can't get irq %d\n", dev->name, dev->irq);
+
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/irda/ali-ircc.c linux-2.6.7-netdev_random/drivers/net/irda/ali-ircc.c
+--- linux-2.6.7/drivers/net/irda/ali-ircc.c 2004-06-16 07:19:13.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/irda/ali-ircc.c 2004-06-24 10:16:09.094111904 +0200
+@@ -1317,7 +1317,7 @@ static int ali_ircc_net_open(struct net_
+ iobase = self->io.fir_base;
+
+ /* Request IRQ and install Interrupt Handler */
+- if (request_irq(self->io.irq, ali_ircc_interrupt, 0, dev->name, dev))
++ if (request_irq(self->io.irq, ali_ircc_interrupt, SA_NET_RANDOM, dev->name, dev))
+ {
+ WARNING("%s, unable to allocate irq=%d\n", driver_name,
+ self->io.irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/irda/au1k_ir.c linux-2.6.7-netdev_random/drivers/net/irda/au1k_ir.c
+--- linux-2.6.7/drivers/net/irda/au1k_ir.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/irda/au1k_ir.c 2004-06-24 10:19:15.515771504 +0200
+@@ -353,13 +353,13 @@ static int au1k_irda_start(struct net_de
+ }
+
+ if ((retval = request_irq(AU1000_IRDA_TX_INT, &au1k_irda_interrupt,
+- 0, dev->name, dev))) {
++ SA_NET_RANDOM, dev->name, dev))) {
+ printk(KERN_ERR "%s: unable to get IRQ %d\n",
+ dev->name, dev->irq);
+ return retval;
+ }
+ if ((retval = request_irq(AU1000_IRDA_RX_INT, &au1k_irda_interrupt,
+- 0, dev->name, dev))) {
++ SA_NET_RANDOM, dev->name, dev))) {
+ free_irq(AU1000_IRDA_TX_INT, dev);
+ printk(KERN_ERR "%s: unable to get IRQ %d\n",
+ dev->name, dev->irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/irda/donauboe.c linux-2.6.7-netdev_random/drivers/net/irda/donauboe.c
+--- linux-2.6.7/drivers/net/irda/donauboe.c 2004-06-16 07:19:22.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/irda/donauboe.c 2004-06-24 10:16:09.139105064 +0200
+@@ -1372,7 +1372,7 @@ toshoboe_net_open (struct net_device *de
+ return 0;
+
+ if (request_irq (self->io.irq, toshoboe_interrupt,
+- SA_SHIRQ | SA_INTERRUPT, dev->name, (void *) self))
++ SA_SHIRQ | SA_INTERRUPT | SA_NET_RANDOM, dev->name, (void *) self))
+ {
+ return -EAGAIN;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/irda/irport.c linux-2.6.7-netdev_random/drivers/net/irda/irport.c
+--- linux-2.6.7/drivers/net/irda/irport.c 2004-06-16 07:19:42.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/irda/irport.c 2004-06-24 10:16:09.151103240 +0200
+@@ -902,7 +902,7 @@ int irport_net_open(struct net_device *d
+
+ iobase = self->io.sir_base;
+
+- if (request_irq(self->io.irq, self->interrupt, 0, dev->name,
++ if (request_irq(self->io.irq, self->interrupt, SA_NET_RANDOM, dev->name,
+ (void *) dev)) {
+ IRDA_DEBUG(0, "%s(), unable to allocate irq=%d\n",
+ __FUNCTION__, self->io.irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/irda/nsc-ircc.c linux-2.6.7-netdev_random/drivers/net/irda/nsc-ircc.c
+--- linux-2.6.7/drivers/net/irda/nsc-ircc.c 2004-06-16 07:18:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/irda/nsc-ircc.c 2004-06-24 10:16:09.163101416 +0200
+@@ -2008,7 +2008,7 @@ static int nsc_ircc_net_open(struct net_
+
+ iobase = self->io.fir_base;
+
+- if (request_irq(self->io.irq, nsc_ircc_interrupt, 0, dev->name, dev)) {
++ if (request_irq(self->io.irq, nsc_ircc_interrupt, SA_NET_RANDOM, dev->name, dev)) {
+ WARNING("%s, unable to allocate irq=%d\n", driver_name,
+ self->io.irq);
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/irda/sa1100_ir.c linux-2.6.7-netdev_random/drivers/net/irda/sa1100_ir.c
+--- linux-2.6.7/drivers/net/irda/sa1100_ir.c 2004-06-16 07:19:13.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/irda/sa1100_ir.c 2004-06-24 10:16:09.173099896 +0200
+@@ -844,7 +844,7 @@ static int sa1100_irda_start(struct net_
+
+ si->speed = 9600;
+
+- err = request_irq(dev->irq, sa1100_irda_irq, 0, dev->name, dev);
++ err = request_irq(dev->irq, sa1100_irda_irq, SA_NET_RANDOM, dev->name, dev);
+ if (err)
+ goto err_irq;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/irda/smsc-ircc2.c linux-2.6.7-netdev_random/drivers/net/irda/smsc-ircc2.c
+--- linux-2.6.7/drivers/net/irda/smsc-ircc2.c 2004-06-16 07:19:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/irda/smsc-ircc2.c 2004-06-24 10:16:09.186097920 +0200
+@@ -1547,7 +1547,7 @@ static int smsc_ircc_net_open(struct net
+
+ iobase = self->io.fir_base;
+
+- if (request_irq(self->io.irq, smsc_ircc_interrupt, 0, dev->name,
++ if (request_irq(self->io.irq, smsc_ircc_interrupt, SA_NET_RANDOM, dev->name,
+ (void *) dev)) {
+ IRDA_DEBUG(0, "%s(), unable to allocate irq=%d\n",
+ __FUNCTION__, self->io.irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/irda/via-ircc.c linux-2.6.7-netdev_random/drivers/net/irda/via-ircc.c
+--- linux-2.6.7/drivers/net/irda/via-ircc.c 2004-06-16 07:18:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/irda/via-ircc.c 2004-06-24 10:16:09.197096248 +0200
+@@ -1467,7 +1467,7 @@ static int via_ircc_net_open(struct net_
+ ASSERT(self != NULL, return 0;);
+ iobase = self->io.fir_base;
+ if (request_irq
+- (self->io.irq, via_ircc_interrupt, 0, dev->name, dev)) {
++ (self->io.irq, via_ircc_interrupt, SA_NET_RANDOM, dev->name, dev)) {
+ WARNING("%s, unable to allocate irq=%d\n", driver_name,
+ self->io.irq);
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/irda/vlsi_ir.c linux-2.6.7-netdev_random/drivers/net/irda/vlsi_ir.c
+--- linux-2.6.7/drivers/net/irda/vlsi_ir.c 2004-06-16 07:18:55.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/irda/vlsi_ir.c 2004-06-24 10:16:09.215093512 +0200
+@@ -1515,7 +1515,7 @@ static int vlsi_open(struct net_device *
+
+ outb(IRINTR_INT_MASK, ndev->base_addr+VLSI_PIO_IRINTR);
+
+- if (request_irq(ndev->irq, vlsi_interrupt, SA_SHIRQ,
++ if (request_irq(ndev->irq, vlsi_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ drivername, ndev)) {
+ WARNING("%s: couldn't get IRQ: %d\n", __FUNCTION__, ndev->irq);
+ goto errout_io;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/irda/w83977af_ir.c linux-2.6.7-netdev_random/drivers/net/irda/w83977af_ir.c
+--- linux-2.6.7/drivers/net/irda/w83977af_ir.c 2004-06-16 07:19:13.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/irda/w83977af_ir.c 2004-06-24 10:16:09.227091688 +0200
+@@ -1197,7 +1197,7 @@ static int w83977af_net_open(struct net_
+
+ iobase = self->io.fir_base;
+
+- if (request_irq(self->io.irq, w83977af_interrupt, 0, dev->name,
++ if (request_irq(self->io.irq, w83977af_interrupt, SA_NET_RANDOM, dev->name,
+ (void *) dev)) {
+ return -EAGAIN;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/isa-skeleton.c linux-2.6.7-netdev_random/drivers/net/isa-skeleton.c
+--- linux-2.6.7/drivers/net/isa-skeleton.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/isa-skeleton.c 2004-06-24 10:16:09.236090320 +0200
+@@ -251,7 +251,7 @@ static int __init netcard_probe1(struct
+ dev->irq = 9;
+
+ {
+- int irqval = request_irq(dev->irq, &net_interrupt, 0, cardname, dev);
++ int irqval = request_irq(dev->irq, &net_interrupt, SA_NET_RANDOM, cardname, dev);
+ if (irqval) {
+ printk("%s: unable to get IRQ %d (irqval=%d).\n",
+ dev->name, dev->irq, irqval);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ixgb/ixgb_main.c linux-2.6.7-netdev_random/drivers/net/ixgb/ixgb_main.c
+--- linux-2.6.7/drivers/net/ixgb/ixgb_main.c 2004-06-16 07:19:01.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ixgb/ixgb_main.c 2004-06-24 10:19:36.823532232 +0200
+@@ -204,7 +204,7 @@ int ixgb_up(struct ixgb_adapter *adapter
+ ixgb_alloc_rx_buffers(adapter);
+
+ if ((err = request_irq(adapter->pdev->irq, &ixgb_intr,
+- SA_SHIRQ | SA_SAMPLE_RANDOM,
++ SA_SHIRQ | SA_NET_RANDOM,
+ netdev->name, netdev)))
+ return err;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/lance.c linux-2.6.7-netdev_random/drivers/net/lance.c
+--- linux-2.6.7/drivers/net/lance.c 2004-06-16 07:18:57.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/lance.c 2004-06-24 10:16:09.303080136 +0200
+@@ -743,7 +743,7 @@ lance_open(struct net_device *dev)
+ int i;
+
+ if (dev->irq == 0 ||
+- request_irq(dev->irq, &lance_interrupt, 0, lp->name, dev)) {
++ request_irq(dev->irq, &lance_interrupt, SA_NET_RANDOM, lp->name, dev)) {
+ return -EAGAIN;
+ }
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/lasi_82596.c linux-2.6.7-netdev_random/drivers/net/lasi_82596.c
+--- linux-2.6.7/drivers/net/lasi_82596.c 2004-06-16 07:18:58.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/lasi_82596.c 2004-06-24 10:16:09.322077248 +0200
+@@ -1017,7 +1017,7 @@ static int i596_open(struct net_device *
+ {
+ DEB(DEB_OPEN,printk("%s: i596_open() irq %d.\n", dev->name, dev->irq));
+
+- if (request_irq(dev->irq, &i596_interrupt, 0, "i82596", dev)) {
++ if (request_irq(dev->irq, &i596_interrupt, SA_NET_RANDOM, "i82596", dev)) {
+ printk("%s: IRQ %d not free\n", dev->name, dev->irq);
+ goto out;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/lne390.c linux-2.6.7-netdev_random/drivers/net/lne390.c
+--- linux-2.6.7/drivers/net/lne390.c 2004-06-16 07:20:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/lne390.c 2004-06-24 10:16:09.339074664 +0200
+@@ -228,7 +228,7 @@ static int __init lne390_probe1(struct n
+ }
+ printk(" IRQ %d,", dev->irq);
+
+- if ((ret = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) {
++ if ((ret = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev))) {
+ printk (" unable to get IRQ %d.\n", dev->irq);
+ return ret;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/lp486e.c linux-2.6.7-netdev_random/drivers/net/lp486e.c
+--- linux-2.6.7/drivers/net/lp486e.c 2004-06-16 07:19:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/lp486e.c 2004-06-24 10:16:09.350072992 +0200
+@@ -849,7 +849,7 @@ static int i596_open(struct net_device *
+ {
+ int i;
+
+- i = request_irq(dev->irq, &i596_interrupt, SA_SHIRQ, dev->name, dev);
++ i = request_irq(dev->irq, &i596_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (i) {
+ printk(KERN_ERR "%s: IRQ %d not free\n", dev->name, dev->irq);
+ return i;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/mac8390.c linux-2.6.7-netdev_random/drivers/net/mac8390.c
+--- linux-2.6.7/drivers/net/mac8390.c 2004-06-16 07:19:35.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/mac8390.c 2004-06-24 10:16:09.370069952 +0200
+@@ -538,7 +538,7 @@ static int __init mac8390_initdev(struct
+ static int mac8390_open(struct net_device *dev)
+ {
+ ei_open(dev);
+- if (request_irq(dev->irq, ei_interrupt, 0, "8390 Ethernet", dev)) {
++ if (request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, "8390 Ethernet", dev)) {
+ printk ("%s: unable to get IRQ %d.\n", dev->name, dev->irq);
+ return -EAGAIN;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/mac89x0.c linux-2.6.7-netdev_random/drivers/net/mac89x0.c
+--- linux-2.6.7/drivers/net/mac89x0.c 2004-06-16 07:19:23.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/mac89x0.c 2004-06-24 10:16:09.382068128 +0200
+@@ -335,7 +335,7 @@ net_open(struct net_device *dev)
+ writereg(dev, PP_BusCTL, readreg(dev, PP_BusCTL) & ~ENABLE_IRQ);
+
+ /* Grab the interrupt */
+- if (request_irq(dev->irq, &net_interrupt, 0, "cs89x0", dev))
++ if (request_irq(dev->irq, &net_interrupt, SA_NET_RANDOM, "cs89x0", dev))
+ return -EAGAIN;
+
+ /* Set up the IRQ - Apparently magic */
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/mace.c linux-2.6.7-netdev_random/drivers/net/mace.c
+--- linux-2.6.7/drivers/net/mace.c 2004-06-16 07:19:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/mace.c 2004-06-24 10:16:09.401065240 +0200
+@@ -238,7 +238,7 @@ static int __devinit mace_probe(struct m
+ */
+ mace_reset(dev);
+
+- rc = request_irq(dev->irq, mace_interrupt, 0, "MACE", dev);
++ rc = request_irq(dev->irq, mace_interrupt, SA_NET_RANDOM, "MACE", dev);
+ if (rc) {
+ printk(KERN_ERR "MACE: can't get irq %d\n", dev->irq);
+ goto err_unmap_rx_dma;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/macmace.c linux-2.6.7-netdev_random/drivers/net/macmace.c
+--- linux-2.6.7/drivers/net/macmace.c 2004-06-16 07:19:13.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/macmace.c 2004-06-24 10:16:09.413063416 +0200
+@@ -319,11 +319,11 @@ static int mace_open(struct net_device *
+ mb->plscc = PORTSEL_AUI;
+ /* mb->utr = RTRD; */
+
+- if (request_irq(dev->irq, mace_interrupt, 0, dev->name, dev)) {
++ if (request_irq(dev->irq, mace_interrupt, SA_NET_RANDOM, dev->name, dev)) {
+ printk(KERN_ERR "%s: can't get irq %d\n", dev->name, dev->irq);
+ return -EAGAIN;
+ }
+- if (request_irq(mp->dma_intr, mace_dma_intr, 0, dev->name, dev)) {
++ if (request_irq(mp->dma_intr, mace_dma_intr, SA_NET_RANDOM, dev->name, dev)) {
+ printk(KERN_ERR "%s: can't get irq %d\n", dev->name, mp->dma_intr);
+ free_irq(dev->irq, dev);
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/meth.c linux-2.6.7-netdev_random/drivers/net/meth.c
+--- linux-2.6.7/drivers/net/meth.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/meth.c 2004-06-24 10:20:05.957103256 +0200
+@@ -326,7 +326,7 @@ static int meth_open(struct net_device *
+ if (ret < 0)
+ goto out_free_tx_ring;
+
+- ret = request_irq(dev->irq, meth_interrupt, 0, meth_str, dev);
++ ret = request_irq(dev->irq, meth_interrupt, SA_NET_RANDOM, meth_str, dev);
+ if (ret) {
+ printk(KERN_ERR "%s: Can't get irq %d\n", dev->name, dev->irq);
+ goto out_free_rx_ring;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/myri_sbus.c linux-2.6.7-netdev_random/drivers/net/myri_sbus.c
+--- linux-2.6.7/drivers/net/myri_sbus.c 2004-06-16 07:18:57.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/myri_sbus.c 2004-06-24 10:16:09.482052928 +0200
+@@ -1071,7 +1071,7 @@ static int __init myri_ether_init(struct
+ /* Register interrupt handler now. */
+ DET(("Requesting MYRIcom IRQ line.\n"));
+ if (request_irq(dev->irq, &myri_interrupt,
+- SA_SHIRQ, "MyriCOM Ethernet", (void *) dev)) {
++ SA_SHIRQ | SA_NET_RANDOM, "MyriCOM Ethernet", (void *) dev)) {
+ printk("MyriCOM: Cannot register interrupt handler.\n");
+ goto err;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/natsemi.c linux-2.6.7-netdev_random/drivers/net/natsemi.c
+--- linux-2.6.7/drivers/net/natsemi.c 2004-06-16 07:18:56.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/natsemi.c 2004-06-24 10:16:09.504049584 +0200
+@@ -1088,7 +1088,7 @@ static int netdev_open(struct net_device
+ /* Reset the chip, just in case. */
+ natsemi_reset(dev);
+
+- i = request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev);
++ i = request_irq(dev->irq, &intr_handler, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (i) return i;
+
+ if (netif_msg_ifup(np))
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ne2.c linux-2.6.7-netdev_random/drivers/net/ne2.c
+--- linux-2.6.7/drivers/net/ne2.c 2004-06-16 07:20:26.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ne2.c 2004-06-24 10:16:09.527046088 +0200
+@@ -470,7 +470,7 @@ static int __init ne2_probe1(struct net_
+
+ /* Snarf the interrupt now. There's no point in waiting since we cannot
+ share and the board will usually be enabled. */
+- retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
++ retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (retval) {
+ printk (" unable to get IRQ %d (irqval=%d).\n",
+ dev->irq, retval);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ne2k_cbus.c linux-2.6.7-netdev_random/drivers/net/ne2k_cbus.c
+--- linux-2.6.7/drivers/net/ne2k_cbus.c 2004-06-16 07:19:09.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ne2k_cbus.c 2004-06-24 10:16:09.561040920 +0200
+@@ -500,7 +500,7 @@ static int __init ne_probe1(struct net_d
+
+ /* Snarf the interrupt now. There's no point in waiting since we cannot
+ share and the board will usually be enabled. */
+- ret = request_irq(dev->irq, ei_interrupt, 0, name, dev);
++ ret = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, name, dev);
+ if (ret) {
+ printk (" unable to get IRQ %d (errno=%d).\n", dev->irq, ret);
+ goto err_out_kfree;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ne2k-pci.c linux-2.6.7-netdev_random/drivers/net/ne2k-pci.c
+--- linux-2.6.7/drivers/net/ne2k-pci.c 2004-06-16 07:19:01.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ne2k-pci.c 2004-06-24 10:16:09.548042896 +0200
+@@ -419,7 +419,7 @@ static int ne2k_pci_set_fdx(struct net_d
+
+ static int ne2k_pci_open(struct net_device *dev)
+ {
+- int ret = request_irq(dev->irq, ei_interrupt, SA_SHIRQ, dev->name, dev);
++ int ret = request_irq(dev->irq, ei_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (ret)
+ return ret;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ne3210.c linux-2.6.7-netdev_random/drivers/net/ne3210.c
+--- linux-2.6.7/drivers/net/ne3210.c 2004-06-16 07:19:17.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ne3210.c 2004-06-24 10:16:09.571039400 +0200
+@@ -140,7 +140,7 @@ static int __init ne3210_eisa_probe (str
+ dev->irq = irq_map[(inb(ioaddr + NE3210_CFG2) >> 3) & 0x07];
+ printk(".\nne3210.c: using IRQ %d, ", dev->irq);
+
+- retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
++ retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (retval) {
+ printk (" unable to get IRQ %d.\n", dev->irq);
+ goto out2;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ne.c linux-2.6.7-netdev_random/drivers/net/ne.c
+--- linux-2.6.7/drivers/net/ne.c 2004-06-16 07:19:22.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ne.c 2004-06-24 10:16:09.517047608 +0200
+@@ -464,7 +464,7 @@ static int __init ne_probe1(struct net_d
+
+ /* Snarf the interrupt now. There's no point in waiting since we cannot
+ share and the board will usually be enabled. */
+- ret = request_irq(dev->irq, ei_interrupt, 0, name, dev);
++ ret = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, name, dev);
+ if (ret) {
+ printk (" unable to get IRQ %d (errno=%d).\n", dev->irq, ret);
+ goto err_out;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ne-h8300.c linux-2.6.7-netdev_random/drivers/net/ne-h8300.c
+--- linux-2.6.7/drivers/net/ne-h8300.c 2004-06-16 07:19:10.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ne-h8300.c 2004-06-24 10:52:56.320562480 +0200
+@@ -283,7 +283,7 @@ static int __init ne_probe1(struct net_d
+
+ /* Snarf the interrupt now. There's no point in waiting since we cannot
+ share and the board will usually be enabled. */
+- ret = request_irq(dev->irq, ei_interrupt, 0, name, dev);
++ ret = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, name, dev);
+ if (ret) {
+ printk (" unable to get IRQ %d (errno=%d).\n", dev->irq, ret);
+ goto err_out;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ni5010.c linux-2.6.7-netdev_random/drivers/net/ni5010.c
+--- linux-2.6.7/drivers/net/ni5010.c 2004-06-16 07:19:22.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ni5010.c 2004-06-24 10:16:09.583037576 +0200
+@@ -381,7 +381,7 @@ static int ni5010_open(struct net_device
+
+ PRINTK2((KERN_DEBUG "%s: entering ni5010_open()\n", dev->name));
+
+- if (request_irq(dev->irq, &ni5010_interrupt, 0, boardname, dev)) {
++ if (request_irq(dev->irq, &ni5010_interrupt, SA_NET_RANDOM, boardname, dev)) {
+ printk(KERN_WARNING "%s: Cannot get irq %#2x\n", dev->name, dev->irq);
+ return -EAGAIN;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ni52.c linux-2.6.7-netdev_random/drivers/net/ni52.c
+--- linux-2.6.7/drivers/net/ni52.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ni52.c 2004-06-24 10:16:09.594035904 +0200
+@@ -265,7 +265,7 @@ static int ni52_open(struct net_device *
+ startrecv586(dev);
+ ni_enaint();
+
+- ret = request_irq(dev->irq, &ni52_interrupt,0,dev->name,dev);
++ ret = request_irq(dev->irq, &ni52_interrupt,SA_NET_RANDOM,dev->name,dev);
+ if (ret)
+ {
+ ni_reset586();
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ni65.c linux-2.6.7-netdev_random/drivers/net/ni65.c
+--- linux-2.6.7/drivers/net/ni65.c 2004-06-16 07:19:02.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ni65.c 2004-06-24 10:16:09.607033928 +0200
+@@ -296,7 +296,7 @@ static void ni65_set_performance(struct
+ static int ni65_open(struct net_device *dev)
+ {
+ struct priv *p = (struct priv *) dev->priv;
+- int irqval = request_irq(dev->irq, &ni65_interrupt,0,
++ int irqval = request_irq(dev->irq, &ni65_interrupt,SA_NET_RANDOM,
+ cards[p->cardno].cardname,dev);
+ if (irqval) {
+ printk(KERN_ERR "%s: unable to get IRQ %d (irqval=%d).\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/ns83820.c linux-2.6.7-netdev_random/drivers/net/ns83820.c
+--- linux-2.6.7/drivers/net/ns83820.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/ns83820.c 2004-06-24 10:16:09.619032104 +0200
+@@ -1850,7 +1850,7 @@ static int __devinit ns83820_init_one(st
+ setup_ee_mem_bitbanger(&dev->ee, (long)dev->base + MEAR, 3, 2, 1, 0,
+ 0);
+
+- err = request_irq(pci_dev->irq, ns83820_irq, SA_SHIRQ,
++ err = request_irq(pci_dev->irq, ns83820_irq, SA_SHIRQ | SA_NET_RANDOM,
+ ndev->name, ndev);
+ if (err) {
+ printk(KERN_INFO "ns83820: unable to register irq %d\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/oaknet.c linux-2.6.7-netdev_random/drivers/net/oaknet.c
+--- linux-2.6.7/drivers/net/oaknet.c 2004-06-16 07:19:44.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/oaknet.c 2004-06-24 10:16:09.630030432 +0200
+@@ -162,7 +162,7 @@ static int __init oaknet_init(void)
+ /* Attempt to get the interrupt line */
+
+ ret = -EAGAIN;
+- if (request_irq(dev->irq, ei_interrupt, 0, name, dev)) {
++ if (request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, name, dev)) {
+ printk("%s: unable to request interrupt %d.\n",
+ dev->name, dev->irq);
+ goto out_region;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/pci-skeleton.c linux-2.6.7-netdev_random/drivers/net/pci-skeleton.c
+--- linux-2.6.7/drivers/net/pci-skeleton.c 2004-06-16 07:18:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/pci-skeleton.c 2004-06-24 10:16:09.644028304 +0200
+@@ -1080,7 +1080,7 @@ static int netdrv_open (struct net_devic
+
+ DPRINTK ("ENTER\n");
+
+- retval = request_irq (dev->irq, netdrv_interrupt, SA_SHIRQ, dev->name, dev);
++ retval = request_irq (dev->irq, netdrv_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (retval) {
+ DPRINTK ("EXIT, returning %d\n", retval);
+ return retval;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/pcnet32.c linux-2.6.7-netdev_random/drivers/net/pcnet32.c
+--- linux-2.6.7/drivers/net/pcnet32.c 2004-06-16 07:19:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/pcnet32.c 2004-06-24 10:20:35.382629896 +0200
+@@ -1364,7 +1364,7 @@ pcnet32_open(struct net_device *dev)
+
+ if (dev->irq == 0 ||
+ request_irq(dev->irq, &pcnet32_interrupt,
+- lp->shared_irq ? SA_SHIRQ : 0, dev->name, (void *)dev)) {
++ lp->shared_irq ? SA_SHIRQ | SA_NET_RANDOM : SA_NET_RANDOM, dev->name, (void *)dev)) {
+ return -EAGAIN;
+ }
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/r8169.c linux-2.6.7-netdev_random/drivers/net/r8169.c
+--- linux-2.6.7/drivers/net/r8169.c 2004-06-16 07:19:23.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/r8169.c 2004-06-24 10:20:52.459033888 +0200
+@@ -1047,7 +1047,7 @@ rtl8169_open(struct net_device *dev)
+ int retval;
+
+ retval =
+- request_irq(dev->irq, rtl8169_interrupt, SA_SHIRQ, dev->name, dev);
++ request_irq(dev->irq, rtl8169_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (retval < 0)
+ goto out;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/rrunner.c linux-2.6.7-netdev_random/drivers/net/rrunner.c
+--- linux-2.6.7/drivers/net/rrunner.c 2004-06-16 07:19:02.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/rrunner.c 2004-06-24 10:16:09.812002768 +0200
+@@ -1209,7 +1209,7 @@ static int rr_open(struct net_device *de
+ readl(&regs->HostCtrl);
+ spin_unlock_irqrestore(&rrpriv->lock, flags);
+
+- if (request_irq(dev->irq, rr_interrupt, SA_SHIRQ, dev->name, dev)) {
++ if (request_irq(dev->irq, rr_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev)) {
+ printk(KERN_WARNING "%s: Requested IRQ %d is busy\n",
+ dev->name, dev->irq);
+ ecode = -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/s2io.c linux-2.6.7-netdev_random/drivers/net/s2io.c
+--- linux-2.6.7/drivers/net/s2io.c 2004-06-16 07:19:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/s2io.c 2004-06-24 10:54:39.712844464 +0200
+@@ -2073,7 +2073,7 @@ int s2io_open(struct net_device *dev)
+
+ /* After proper initialization of H/W, register ISR */
+ err =
+- request_irq((int) sp->irq, s2io_isr, SA_SHIRQ, sp->name, dev);
++ request_irq((int) sp->irq, s2io_isr, SA_SHIRQ | SA_NET_RANDOM, sp->name, dev);
+ if (err) {
+ s2io_reset(sp);
+ DBG_PRINT(ERR_DBG, "%s: ISR registration failed\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/saa9730.c linux-2.6.7-netdev_random/drivers/net/saa9730.c
+--- linux-2.6.7/drivers/net/saa9730.c 2004-06-16 07:19:35.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/saa9730.c 2004-06-24 10:16:09.823001096 +0200
+@@ -805,7 +805,7 @@ static int lan_saa9730_open(struct net_d
+ (struct lan_saa9730_private *) dev->priv;
+
+ /* Associate IRQ with lan_saa9730_interrupt */
+- if (request_irq(dev->irq, &lan_saa9730_interrupt, 0, "SAA9730 Eth",
++ if (request_irq(dev->irq, &lan_saa9730_interrupt, SA_NET_RANDOM, "SAA9730 Eth",
+ dev)) {
+ printk("lan_saa9730_open: Can't get irq %d\n", dev->irq);
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sb1000.c linux-2.6.7-netdev_random/drivers/net/sb1000.c
+--- linux-2.6.7/drivers/net/sb1000.c 2004-06-16 07:18:57.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sb1000.c 2004-06-24 10:16:09.845997600 +0200
+@@ -968,7 +968,7 @@ sb1000_open(struct net_device *dev)
+ lp->rx_frame_id[1] = 0;
+ lp->rx_frame_id[2] = 0;
+ lp->rx_frame_id[3] = 0;
+- if (request_irq(dev->irq, &sb1000_interrupt, 0, "sb1000", dev)) {
++ if (request_irq(dev->irq, &sb1000_interrupt, SA_NET_RANDOM, "sb1000", dev)) {
+ return -EAGAIN;
+ }
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sb1250-mac.c linux-2.6.7-netdev_random/drivers/net/sb1250-mac.c
+--- linux-2.6.7/drivers/net/sb1250-mac.c 2004-06-16 07:20:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sb1250-mac.c 2004-06-24 10:21:24.934096928 +0200
+@@ -2458,7 +2458,7 @@ static int sbmac_open(struct net_device
+ */
+
+ SBMAC_READCSR(sc->sbm_isr);
+- if (request_irq(dev->irq, &sbmac_intr, SA_SHIRQ, dev->name, dev))
++ if (request_irq(dev->irq, &sbmac_intr, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev))
+ return -EBUSY;
+
+ /*
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/seeq8005.c linux-2.6.7-netdev_random/drivers/net/seeq8005.c
+--- linux-2.6.7/drivers/net/seeq8005.c 2004-06-16 07:19:44.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/seeq8005.c 2004-06-24 10:16:09.894990152 +0200
+@@ -323,7 +323,7 @@ static int __init seeq8005_probe1(struct
+
+ #if 0
+ {
+- int irqval = request_irq(dev->irq, &seeq8005_interrupt, 0, "seeq8005", dev);
++ int irqval = request_irq(dev->irq, &seeq8005_interrupt, SA_NET_RANDOM, "seeq8005", dev);
+ if (irqval) {
+ printk ("%s: unable to get IRQ %d (irqval=%d).\n", dev->name,
+ dev->irq, irqval);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sgiseeq.c linux-2.6.7-netdev_random/drivers/net/sgiseeq.c
+--- linux-2.6.7/drivers/net/sgiseeq.c 2004-06-16 07:20:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sgiseeq.c 2004-06-24 10:21:41.854524632 +0200
+@@ -621,7 +621,7 @@ int sgiseeq_init(struct hpc3_regs* regs,
+ goto err_out_free_dev;
+ }
+
+- if (request_irq(irq, sgiseeq_interrupt, 0, sgiseeqstr, dev)) {
++ if (request_irq(irq, sgiseeq_interrupt, SA_NET_RANDOM, sgiseeqstr, dev)) {
+ printk(KERN_ERR "Seeq8003: Can't get irq %d\n", dev->irq);
+ err = -EAGAIN;
+ goto err_out_free_page;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sis900.c linux-2.6.7-netdev_random/drivers/net/sis900.c
+--- linux-2.6.7/drivers/net/sis900.c 2004-06-16 07:19:22.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sis900.c 2004-06-24 10:16:10.055965680 +0200
+@@ -932,7 +932,7 @@ sis900_open(struct net_device *net_dev)
+ pci_read_config_byte(sis_priv->pci_dev, PCI_CLASS_REVISION, &revision);
+ sis630_set_eq(net_dev, revision);
+
+- ret = request_irq(net_dev->irq, &sis900_interrupt, SA_SHIRQ, net_dev->name, net_dev);
++ ret = request_irq(net_dev->irq, &sis900_interrupt, SA_SHIRQ | SA_NET_RANDOM, net_dev->name, net_dev);
+ if (ret)
+ return ret;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sk98lin/skge.c linux-2.6.7-netdev_random/drivers/net/sk98lin/skge.c
+--- linux-2.6.7/drivers/net/sk98lin/skge.c 2004-06-16 07:18:59.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sk98lin/skge.c 2004-06-24 10:16:10.088960664 +0200
+@@ -964,9 +964,9 @@ SK_BOOL DualNet;
+ spin_unlock_irqrestore(&pAC->SlowPathLock, Flags);
+
+ if (pAC->GIni.GIMacsFound == 2) {
+- Ret = request_irq(dev->irq, SkGeIsr, SA_SHIRQ, pAC->Name, dev);
++ Ret = request_irq(dev->irq, SkGeIsr, SA_SHIRQ | SA_NET_RANDOM, pAC->Name, dev);
+ } else if (pAC->GIni.GIMacsFound == 1) {
+- Ret = request_irq(dev->irq, SkGeIsrOnePort, SA_SHIRQ,
++ Ret = request_irq(dev->irq, SkGeIsrOnePort, SA_SHIRQ | SA_NET_RANDOM,
+ pAC->Name, dev);
+ } else {
+ printk(KERN_WARNING "sk98lin: Illegal number of ports: %d\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/skfp/skfddi.c linux-2.6.7-netdev_random/drivers/net/skfp/skfddi.c
+--- linux-2.6.7/drivers/net/skfp/skfddi.c 2004-06-16 07:18:57.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/skfp/skfddi.c 2004-06-24 10:16:10.160949720 +0200
+@@ -523,7 +523,7 @@ static int skfp_open(struct net_device *
+
+ PRINTK(KERN_INFO "entering skfp_open\n");
+ /* Register IRQ - support shared interrupts by passing device ptr */
+- err = request_irq(dev->irq, (void *) skfp_interrupt, SA_SHIRQ,
++ err = request_irq(dev->irq, (void *) skfp_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ dev->name, dev);
+ if (err)
+ return err;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sk_g16.c linux-2.6.7-netdev_random/drivers/net/sk_g16.c
+--- linux-2.6.7/drivers/net/sk_g16.c 2004-06-16 07:20:26.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sk_g16.c 2004-06-24 10:16:10.103958384 +0200
+@@ -889,7 +889,7 @@ static int SK_open(struct net_device *de
+
+ do
+ {
+- irqval = request_irq(irqtab[i], &SK_interrupt, 0, "sk_g16", dev);
++ irqval = request_irq(irqtab[i], &SK_interrupt, SA_NET_RANDOM, "sk_g16", dev);
+ i++;
+ } while (irqval && irqtab[i]);
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sk_mca.c linux-2.6.7-netdev_random/drivers/net/sk_mca.c
+--- linux-2.6.7/drivers/net/sk_mca.c 2004-06-16 07:19:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sk_mca.c 2004-06-24 10:16:10.131954128 +0200
+@@ -830,7 +830,7 @@ static int skmca_open(struct net_device
+ /* register resources - only necessary for IRQ */
+ result =
+ request_irq(priv->realirq, irq_handler,
+- SA_SHIRQ | SA_SAMPLE_RANDOM, "sk_mca", dev);
++ SA_SHIRQ | SA_NET_RANDOM, "sk_mca", dev);
+ if (result != 0) {
+ printk("%s: failed to register irq %d\n", dev->name,
+ dev->irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/smc9194.c linux-2.6.7-netdev_random/drivers/net/smc9194.c
+--- linux-2.6.7/drivers/net/smc9194.c 2004-06-16 07:19:44.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/smc9194.c 2004-06-24 10:16:10.254935432 +0200
+@@ -1001,7 +1001,7 @@ static int __init smc_probe(struct net_d
+ memset(dev->priv, 0, sizeof(struct smc_local));
+
+ /* Grab the IRQ */
+- retval = request_irq(dev->irq, &smc_interrupt, 0, dev->name, dev);
++ retval = request_irq(dev->irq, &smc_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (retval) {
+ printk("%s: unable to get IRQ %d (irqval=%d).\n", dev->name,
+ dev->irq, retval);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/smc-mca.c linux-2.6.7-netdev_random/drivers/net/smc-mca.c
+--- linux-2.6.7/drivers/net/smc-mca.c 2004-06-16 07:18:58.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/smc-mca.c 2004-06-24 10:16:10.187945616 +0200
+@@ -349,7 +349,7 @@ static int ultramca_open(struct net_devi
+ int ioaddr = dev->base_addr - ULTRA_NIC_OFFSET; /* ASIC addr */
+ int retval;
+
+- if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev)))
++ if ((retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev)))
+ return retval;
+
+ outb(ULTRA_MEMENB, ioaddr); /* Enable memory */
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/smc-ultra32.c linux-2.6.7-netdev_random/drivers/net/smc-ultra32.c
+--- linux-2.6.7/drivers/net/smc-ultra32.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/smc-ultra32.c 2004-06-24 10:16:10.239937712 +0200
+@@ -282,7 +282,7 @@ out:
+ static int ultra32_open(struct net_device *dev)
+ {
+ int ioaddr = dev->base_addr - ULTRA32_NIC_OFFSET; /* ASIC addr */
+- int irq_flags = (inb(ioaddr + ULTRA32_CFG5) & 0x08) ? 0 : SA_SHIRQ;
++ int irq_flags = (inb(ioaddr + ULTRA32_CFG5) & 0x08) ? 0 : SA_SHIRQ | SA_NET_RANDOM;
+ int retval;
+
+ retval = request_irq(dev->irq, ei_interrupt, irq_flags, dev->name, dev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/smc-ultra.c linux-2.6.7-netdev_random/drivers/net/smc-ultra.c
+--- linux-2.6.7/drivers/net/smc-ultra.c 2004-06-16 07:18:59.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/smc-ultra.c 2004-06-24 10:16:10.212941816 +0200
+@@ -377,7 +377,7 @@ ultra_open(struct net_device *dev)
+ unsigned char irq2reg[] = {0, 0, 0x04, 0x08, 0, 0x0C, 0, 0x40,
+ 0, 0x04, 0x44, 0x48, 0, 0, 0, 0x4C, };
+
+- retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
++ retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (retval)
+ return retval;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sonic.c linux-2.6.7-netdev_random/drivers/net/sonic.c
+--- linux-2.6.7/drivers/net/sonic.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sonic.c 2004-06-24 10:16:10.269933152 +0200
+@@ -41,8 +41,8 @@ static int sonic_open(struct net_device
+ * covering another bug otherwise corrupting data. This doesn't mean
+ * this glue works ok under all situations.
+ */
+-// if (sonic_request_irq(dev->irq, &sonic_interrupt, 0, "sonic", dev)) {
+- if (sonic_request_irq(dev->irq, &sonic_interrupt, SA_INTERRUPT,
++// if (sonic_request_irq(dev->irq, &sonic_interrupt, SA_NET_RANDOM, "sonic", dev)) {
++ if (sonic_request_irq(dev->irq, &sonic_interrupt, SA_INTERRUPT | SA_NET_RANDOM,
+ "sonic", dev)) {
+ printk("\n%s: unable to get IRQ %d .\n", dev->name, dev->irq);
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/starfire.c linux-2.6.7-netdev_random/drivers/net/starfire.c
+--- linux-2.6.7/drivers/net/starfire.c 2004-06-16 07:20:27.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/starfire.c 2004-06-24 10:16:10.284930872 +0200
+@@ -1111,7 +1111,7 @@ static int netdev_open(struct net_device
+
+ COMPAT_MOD_INC_USE_COUNT;
+
+- retval = request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev);
++ retval = request_irq(dev->irq, &intr_handler, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (retval) {
+ COMPAT_MOD_DEC_USE_COUNT;
+ return retval;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/stnic.c linux-2.6.7-netdev_random/drivers/net/stnic.c
+--- linux-2.6.7/drivers/net/stnic.c 2004-06-16 07:19:42.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/stnic.c 2004-06-24 10:16:10.309927072 +0200
+@@ -130,7 +130,7 @@ static int __init stnic_probe(void)
+
+ /* Snarf the interrupt now. There's no point in waiting since we cannot
+ share and the board will usually be enabled. */
+- err = request_irq (dev->irq, ei_interrupt, 0, dev->name, dev);
++ err = request_irq (dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (err) {
+ printk (KERN_EMERG " unable to get IRQ %d.\n", dev->irq);
+ free_netdev(dev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sun3_82586.c linux-2.6.7-netdev_random/drivers/net/sun3_82586.c
+--- linux-2.6.7/drivers/net/sun3_82586.c 2004-06-16 07:19:29.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sun3_82586.c 2004-06-24 10:16:10.324924792 +0200
+@@ -191,7 +191,7 @@ static int sun3_82586_open(struct net_de
+ startrecv586(dev);
+ sun3_enaint();
+
+- ret = request_irq(dev->irq, &sun3_82586_interrupt,0,dev->name,dev);
++ ret = request_irq(dev->irq, &sun3_82586_interrupt,SA_NET_RANDOM,dev->name,dev);
+ if (ret)
+ {
+ sun3_reset586();
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sun3lance.c linux-2.6.7-netdev_random/drivers/net/sun3lance.c
+--- linux-2.6.7/drivers/net/sun3lance.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sun3lance.c 2004-06-24 10:16:10.336922968 +0200
+@@ -342,7 +342,7 @@ static int __init lance_probe( struct ne
+
+ REGA(CSR0) = CSR0_STOP;
+
+- request_irq(LANCE_IRQ, lance_interrupt, SA_INTERRUPT, "SUN3 Lance", dev);
++ request_irq(LANCE_IRQ, lance_interrupt, SA_INTERRUPT | SA_NET_RANDOM, "SUN3 Lance", dev);
+ dev->irq = (unsigned short)LANCE_IRQ;
+
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sunbmac.c linux-2.6.7-netdev_random/drivers/net/sunbmac.c
+--- linux-2.6.7/drivers/net/sunbmac.c 2004-06-16 07:19:29.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sunbmac.c 2004-06-24 10:16:10.361919168 +0200
+@@ -909,7 +909,7 @@ static int bigmac_open(struct net_device
+ struct bigmac *bp = (struct bigmac *) dev->priv;
+ int ret;
+
+- ret = request_irq(dev->irq, &bigmac_interrupt, SA_SHIRQ, dev->name, bp);
++ ret = request_irq(dev->irq, &bigmac_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, bp);
+ if (ret) {
+ printk(KERN_ERR "BIGMAC: Can't order irq %d to go.\n", dev->irq);
+ return ret;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sundance.c linux-2.6.7-netdev_random/drivers/net/sundance.c
+--- linux-2.6.7/drivers/net/sundance.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sundance.c 2004-06-24 10:16:10.374917192 +0200
+@@ -861,7 +861,7 @@ static int netdev_open(struct net_device
+
+ /* Do we need to reset the chip??? */
+
+- i = request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev);
++ i = request_irq(dev->irq, &intr_handler, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (i)
+ return i;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sungem.c linux-2.6.7-netdev_random/drivers/net/sungem.c
+--- linux-2.6.7/drivers/net/sungem.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sungem.c 2004-06-24 10:16:10.400913240 +0200
+@@ -2171,7 +2171,7 @@ static int gem_open(struct net_device *d
+ * on the controller
+ */
+ if (request_irq(gp->pdev->irq, gem_interrupt,
+- SA_SHIRQ, dev->name, (void *)dev)) {
++ SA_SHIRQ | SA_NET_RANDOM, dev->name, (void *)dev)) {
+ printk(KERN_ERR "%s: failed to request irq !\n", gp->dev->name);
+
+ spin_lock_irq(&gp->lock);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sunhme.c linux-2.6.7-netdev_random/drivers/net/sunhme.c
+--- linux-2.6.7/drivers/net/sunhme.c 2004-06-16 07:19:11.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sunhme.c 2004-06-24 10:16:10.425909440 +0200
+@@ -2209,7 +2209,7 @@ static int happy_meal_open(struct net_de
+ */
+ if ((hp->happy_flags & (HFLAG_QUATTRO|HFLAG_PCI)) != HFLAG_QUATTRO) {
+ if (request_irq(dev->irq, &happy_meal_interrupt,
+- SA_SHIRQ, dev->name, (void *)dev)) {
++ SA_SHIRQ | SA_NET_RANDOM, dev->name, (void *)dev)) {
+ HMD(("EAGAIN\n"));
+ #ifdef __sparc__
+ printk(KERN_ERR "happy_meal(SBUS): Can't order irq %s to go.\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sunlance.c linux-2.6.7-netdev_random/drivers/net/sunlance.c
+--- linux-2.6.7/drivers/net/sunlance.c 2004-06-16 07:19:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sunlance.c 2004-06-24 10:16:10.440907160 +0200
+@@ -923,7 +923,7 @@ static int lance_open(struct net_device
+
+ STOP_LANCE(lp);
+
+- if (request_irq(dev->irq, &lance_interrupt, SA_SHIRQ,
++ if (request_irq(dev->irq, &lance_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ lancestr, (void *) dev)) {
+ printk(KERN_ERR "Lance: Can't get irq %s\n", __irq_itoa(dev->irq));
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/sunqe.c linux-2.6.7-netdev_random/drivers/net/sunqe.c
+--- linux-2.6.7/drivers/net/sunqe.c 2004-06-16 07:19:13.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/sunqe.c 2004-06-24 10:16:10.454905032 +0200
+@@ -889,7 +889,7 @@ static int __init qec_ether_init(struct
+ * for it now.
+ */
+ if (request_irq(sdev->irqs[0], &qec_interrupt,
+- SA_SHIRQ, "QuadEther", (void *) qecp)) {
++ SA_SHIRQ | SA_NET_RANDOM, "QuadEther", (void *) qecp)) {
+ printk(KERN_ERR "QuadEther: Can't register QEC master irq handler.\n");
+ res = -EAGAIN;
+ goto out4;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tc35815.c linux-2.6.7-netdev_random/drivers/net/tc35815.c
+--- linux-2.6.7/drivers/net/tc35815.c 2004-06-16 07:18:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tc35815.c 2004-06-24 10:16:10.477901536 +0200
+@@ -880,7 +880,7 @@ tc35815_open(struct net_device *dev)
+ */
+
+ if (dev->irq == 0 ||
+- request_irq(dev->irq, &tc35815_interrupt, SA_SHIRQ, cardname, dev)) {
++ request_irq(dev->irq, &tc35815_interrupt, SA_SHIRQ | SA_NET_RANDOM, cardname, dev)) {
+ return -EAGAIN;
+ }
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tg3.c linux-2.6.7-netdev_random/drivers/net/tg3.c
+--- linux-2.6.7/drivers/net/tg3.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tg3.c 2004-06-24 10:16:10.515895760 +0200
+@@ -5620,7 +5620,7 @@ static int tg3_open(struct net_device *d
+ return err;
+
+ err = request_irq(dev->irq, tg3_interrupt,
+- SA_SHIRQ, dev->name, dev);
++ SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+
+ if (err) {
+ tg3_free_consistent(tp);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tlan.c linux-2.6.7-netdev_random/drivers/net/tlan.c
+--- linux-2.6.7/drivers/net/tlan.c 2004-06-16 07:18:58.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tlan.c 2004-06-24 10:16:10.541891808 +0200
+@@ -941,7 +941,7 @@ static int TLan_Open( struct net_device
+ int err;
+
+ priv->tlanRev = TLan_DioRead8( dev->base_addr, TLAN_DEF_REVISION );
+- err = request_irq( dev->irq, TLan_HandleInterrupt, SA_SHIRQ, TLanSignature, dev );
++ err = request_irq( dev->irq, TLan_HandleInterrupt, SA_SHIRQ | SA_NET_RANDOM, TLanSignature, dev );
+
+ if ( err ) {
+ printk(KERN_ERR "TLAN: Cannot open %s because IRQ %d is already in use.\n", dev->name, dev->irq );
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tokenring/3c359.c linux-2.6.7-netdev_random/drivers/net/tokenring/3c359.c
+--- linux-2.6.7/drivers/net/tokenring/3c359.c 2004-06-16 07:20:25.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tokenring/3c359.c 2004-06-24 10:16:10.563888464 +0200
+@@ -576,7 +576,7 @@ static int xl_open(struct net_device *de
+
+ u16 switchsettings, switchsettings_eeprom ;
+
+- if(request_irq(dev->irq, &xl_interrupt, SA_SHIRQ , "3c359", dev)) {
++ if(request_irq(dev->irq, &xl_interrupt, SA_SHIRQ | SA_NET_RANDOM, "3c359", dev)) {
+ return -EAGAIN;
+ }
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tokenring/abyss.c linux-2.6.7-netdev_random/drivers/net/tokenring/abyss.c
+--- linux-2.6.7/drivers/net/tokenring/abyss.c 2004-06-16 07:19:02.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tokenring/abyss.c 2004-06-24 10:16:10.574886792 +0200
+@@ -123,7 +123,7 @@ static int __devinit abyss_attach(struct
+ goto err_out_trdev;
+ }
+
+- ret = request_irq(pdev->irq, tms380tr_interrupt, SA_SHIRQ,
++ ret = request_irq(pdev->irq, tms380tr_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ dev->name, dev);
+ if (ret)
+ goto err_out_region;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tokenring/ibmtr.c linux-2.6.7-netdev_random/drivers/net/tokenring/ibmtr.c
+--- linux-2.6.7/drivers/net/tokenring/ibmtr.c 2004-06-16 07:19:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tokenring/ibmtr.c 2004-06-24 10:16:10.586884968 +0200
+@@ -684,7 +684,7 @@ static int __devinit ibmtr_probe1(struct
+
+ /* The PCMCIA has already got the interrupt line and the io port,
+ so no chance of anybody else getting it - MLP */
+- if (request_irq(dev->irq = irq, &tok_interrupt, 0, "ibmtr", dev) != 0) {
++ if (request_irq(dev->irq = irq, &tok_interrupt, SA_NET_RANDOM, "ibmtr", dev) != 0) {
+ DPRINTK("Could not grab irq %d. Halting Token Ring driver.\n",
+ irq);
+ iounmap(t_mmio);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tokenring/lanstreamer.c linux-2.6.7-netdev_random/drivers/net/tokenring/lanstreamer.c
+--- linux-2.6.7/drivers/net/tokenring/lanstreamer.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tokenring/lanstreamer.c 2004-06-24 10:16:10.607881776 +0200
+@@ -598,7 +598,7 @@ static int streamer_open(struct net_devi
+ rc=streamer_reset(dev);
+ }
+
+- if (request_irq(dev->irq, &streamer_interrupt, SA_SHIRQ, "lanstreamer", dev)) {
++ if (request_irq(dev->irq, &streamer_interrupt, SA_SHIRQ | SA_NET_RANDOM, "lanstreamer", dev)) {
+ return -EAGAIN;
+ }
+ #if STREAMER_DEBUG
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tokenring/madgemc.c linux-2.6.7-netdev_random/drivers/net/tokenring/madgemc.c
+--- linux-2.6.7/drivers/net/tokenring/madgemc.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tokenring/madgemc.c 2004-06-24 10:16:10.619879952 +0200
+@@ -333,7 +333,7 @@ static int __init madgemc_probe(void)
+ */
+ outb(0, dev->base_addr + MC_CONTROL_REG0); /* sanity */
+ madgemc_setsifsel(dev, 1);
+- if (request_irq(dev->irq, madgemc_interrupt, SA_SHIRQ,
++ if (request_irq(dev->irq, madgemc_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ "madgemc", dev))
+ goto getout;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tokenring/olympic.c linux-2.6.7-netdev_random/drivers/net/tokenring/olympic.c
+--- linux-2.6.7/drivers/net/tokenring/olympic.c 2004-06-16 07:19:44.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tokenring/olympic.c 2004-06-24 10:16:10.639876912 +0200
+@@ -442,7 +442,7 @@ static int olympic_open(struct net_devic
+
+ DECLARE_WAITQUEUE(wait,current) ;
+
+- if(request_irq(dev->irq, &olympic_interrupt, SA_SHIRQ , "olympic", dev)) {
++ if(request_irq(dev->irq, &olympic_interrupt, SA_SHIRQ | SA_NET_RANDOM, "olympic", dev)) {
+ return -EAGAIN;
+ }
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tokenring/proteon.c linux-2.6.7-netdev_random/drivers/net/tokenring/proteon.c
+--- linux-2.6.7/drivers/net/tokenring/proteon.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tokenring/proteon.c 2004-06-24 10:16:10.648875544 +0200
+@@ -178,7 +178,7 @@ static int __init setup_card(struct net_
+ for(j = 0; irqlist[j] != 0; j++)
+ {
+ dev->irq = irqlist[j];
+- if (!request_irq(dev->irq, tms380tr_interrupt, 0,
++ if (!request_irq(dev->irq, tms380tr_interrupt, SA_NET_RANDOM,
+ cardname, dev))
+ break;
+ }
+@@ -200,7 +200,7 @@ static int __init setup_card(struct net_
+ dev->name, dev->irq);
+ goto out3;
+ }
+- if (request_irq(dev->irq, tms380tr_interrupt, 0,
++ if (request_irq(dev->irq, tms380tr_interrupt, SA_NET_RANDOM,
+ cardname, dev))
+ {
+ printk(KERN_INFO "%s: Selected IRQ %d not available\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tokenring/skisa.c linux-2.6.7-netdev_random/drivers/net/tokenring/skisa.c
+--- linux-2.6.7/drivers/net/tokenring/skisa.c 2004-06-16 07:18:57.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tokenring/skisa.c 2004-06-24 10:16:10.658874024 +0200
+@@ -195,7 +195,7 @@ static int __init setup_card(struct net_
+ for(j = 0; irqlist[j] != 0; j++)
+ {
+ dev->irq = irqlist[j];
+- if (!request_irq(dev->irq, tms380tr_interrupt, 0,
++ if (!request_irq(dev->irq, tms380tr_interrupt, SA_NET_RANDOM,
+ isa_cardname, dev))
+ break;
+ }
+@@ -217,7 +217,7 @@ static int __init setup_card(struct net_
+ dev->name, dev->irq);
+ goto out3;
+ }
+- if (request_irq(dev->irq, tms380tr_interrupt, 0,
++ if (request_irq(dev->irq, tms380tr_interrupt, SA_NET_RANDOM,
+ isa_cardname, dev))
+ {
+ printk(KERN_INFO "%s: Selected IRQ %d not available\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tokenring/smctr.c linux-2.6.7-netdev_random/drivers/net/tokenring/smctr.c
+--- linux-2.6.7/drivers/net/tokenring/smctr.c 2004-06-16 07:19:23.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tokenring/smctr.c 2004-06-24 10:16:10.678870984 +0200
+@@ -532,7 +532,7 @@ static int __init smctr_chk_mca(struct n
+ dev->irq = 15;
+ break;
+ }
+- if (request_irq(dev->irq, smctr_interrupt, SA_SHIRQ, smctr_name, dev)) {
++ if (request_irq(dev->irq, smctr_interrupt, SA_SHIRQ | SA_NET_RANDOM, smctr_name, dev)) {
+ release_region(dev->base_addr, SMCTR_IO_EXTENT);
+ return -ENODEV;
+ }
+@@ -1062,7 +1062,7 @@ static int __init smctr_chk_isa(struct n
+ goto out2;
+ }
+
+- if (request_irq(dev->irq, smctr_interrupt, SA_SHIRQ, smctr_name, dev))
++ if (request_irq(dev->irq, smctr_interrupt, SA_SHIRQ | SA_NET_RANDOM, smctr_name, dev))
+ goto out2;
+
+ /* Get 58x Rom Base */
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tokenring/tmspci.c linux-2.6.7-netdev_random/drivers/net/tokenring/tmspci.c
+--- linux-2.6.7/drivers/net/tokenring/tmspci.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tokenring/tmspci.c 2004-06-24 10:16:10.687869616 +0200
+@@ -122,7 +122,7 @@ static int __devinit tms_pci_attach(stru
+ goto err_out_trdev;
+ }
+
+- ret = request_irq(pdev->irq, tms380tr_interrupt, SA_SHIRQ,
++ ret = request_irq(pdev->irq, tms380tr_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ dev->name, dev);
+ if (ret)
+ goto err_out_region;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tulip/de2104x.c linux-2.6.7-netdev_random/drivers/net/tulip/de2104x.c
+--- linux-2.6.7/drivers/net/tulip/de2104x.c 2004-06-16 07:19:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tulip/de2104x.c 2004-06-24 10:16:10.705866880 +0200
+@@ -1383,7 +1383,7 @@ static int de_open (struct net_device *d
+ goto err_out_free;
+ }
+
+- rc = request_irq(dev->irq, de_interrupt, SA_SHIRQ, dev->name, dev);
++ rc = request_irq(dev->irq, de_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (rc) {
+ printk(KERN_ERR "%s: IRQ %d request failure, err=%d\n",
+ dev->name, dev->irq, rc);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tulip/de4x5.c linux-2.6.7-netdev_random/drivers/net/tulip/de4x5.c
+--- linux-2.6.7/drivers/net/tulip/de4x5.c 2004-06-16 07:18:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tulip/de4x5.c 2004-06-24 10:16:10.724863992 +0200
+@@ -1320,10 +1320,10 @@ de4x5_open(struct net_device *dev)
+ lp->state = OPEN;
+ de4x5_dbg_open(dev);
+
+- if (request_irq(dev->irq, (void *)de4x5_interrupt, SA_SHIRQ,
++ if (request_irq(dev->irq, (void *)de4x5_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ lp->adapter_name, dev)) {
+ printk("de4x5_open(): Requested IRQ%d is busy - attemping FAST/SHARE...", dev->irq);
+- if (request_irq(dev->irq, de4x5_interrupt, SA_INTERRUPT | SA_SHIRQ,
++ if (request_irq(dev->irq, de4x5_interrupt, SA_INTERRUPT | SA_SHIRQ | SA_NET_RANDOM,
+ lp->adapter_name, dev)) {
+ printk("\n Cannot get IRQ- reconfigure your hardware.\n");
+ disable_ast(dev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tulip/dmfe.c linux-2.6.7-netdev_random/drivers/net/tulip/dmfe.c
+--- linux-2.6.7/drivers/net/tulip/dmfe.c 2004-06-16 07:19:53.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tulip/dmfe.c 2004-06-24 10:16:10.742861256 +0200
+@@ -504,7 +504,7 @@ static int dmfe_open(struct DEVICE *dev)
+
+ DMFE_DBUG(0, "dmfe_open", 0);
+
+- ret = request_irq(dev->irq, &dmfe_interrupt, SA_SHIRQ, dev->name, dev);
++ ret = request_irq(dev->irq, &dmfe_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (ret)
+ return ret;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tulip/tulip_core.c linux-2.6.7-netdev_random/drivers/net/tulip/tulip_core.c
+--- linux-2.6.7/drivers/net/tulip/tulip_core.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tulip/tulip_core.c 2004-06-24 10:16:10.763858064 +0200
+@@ -486,7 +486,7 @@ tulip_open(struct net_device *dev)
+ {
+ int retval;
+
+- if ((retval = request_irq(dev->irq, &tulip_interrupt, SA_SHIRQ, dev->name, dev)))
++ if ((retval = request_irq(dev->irq, &tulip_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev)))
+ return retval;
+
+ tulip_init_ring (dev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tulip/winbond-840.c linux-2.6.7-netdev_random/drivers/net/tulip/winbond-840.c
+--- linux-2.6.7/drivers/net/tulip/winbond-840.c 2004-06-16 07:19:01.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tulip/winbond-840.c 2004-06-24 10:16:10.773856544 +0200
+@@ -693,7 +693,7 @@ static int netdev_open(struct net_device
+ writel(0x00000001, ioaddr + PCIBusCfg); /* Reset */
+
+ netif_device_detach(dev);
+- i = request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev);
++ i = request_irq(dev->irq, &intr_handler, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (i)
+ goto out_err;
+
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tulip/xircom_cb.c linux-2.6.7-netdev_random/drivers/net/tulip/xircom_cb.c
+--- linux-2.6.7/drivers/net/tulip/xircom_cb.c 2004-06-16 07:19:44.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tulip/xircom_cb.c 2004-06-24 10:16:10.783855024 +0200
+@@ -448,7 +448,7 @@ static int xircom_open(struct net_device
+ int retval;
+ enter("xircom_open");
+ printk(KERN_INFO "xircom cardbus adaptor found, registering as %s, using irq %i \n",dev->name,dev->irq);
+- retval = request_irq(dev->irq, &xircom_interrupt, SA_SHIRQ, dev->name, dev);
++ retval = request_irq(dev->irq, &xircom_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (retval) {
+ leave("xircom_open - No IRQ");
+ return retval;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/tulip/xircom_tulip_cb.c linux-2.6.7-netdev_random/drivers/net/tulip/xircom_tulip_cb.c
+--- linux-2.6.7/drivers/net/tulip/xircom_tulip_cb.c 2004-06-16 07:18:59.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/tulip/xircom_tulip_cb.c 2004-06-24 10:16:10.796853048 +0200
+@@ -806,7 +806,7 @@ xircom_open(struct net_device *dev)
+ {
+ struct xircom_private *tp = dev->priv;
+
+- if (request_irq(dev->irq, &xircom_interrupt, SA_SHIRQ, dev->name, dev))
++ if (request_irq(dev->irq, &xircom_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev))
+ return -EAGAIN;
+
+ xircom_up(dev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/typhoon.c linux-2.6.7-netdev_random/drivers/net/typhoon.c
+--- linux-2.6.7/drivers/net/typhoon.c 2004-06-16 07:19:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/typhoon.c 2004-06-24 10:16:10.815850160 +0200
+@@ -2113,7 +2113,7 @@ typhoon_open(struct net_device *dev)
+ goto out_sleep;
+ }
+
+- err = request_irq(dev->irq, &typhoon_interrupt, SA_SHIRQ,
++ err = request_irq(dev->irq, &typhoon_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ dev->name, dev);
+ if(err < 0)
+ goto out_sleep;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/via-rhine.c linux-2.6.7-netdev_random/drivers/net/via-rhine.c
+--- linux-2.6.7/drivers/net/via-rhine.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/via-rhine.c 2004-06-24 10:22:33.447681280 +0200
+@@ -1152,7 +1152,7 @@ static int rhine_open(struct net_device
+ /* Reset the chip. */
+ writew(CmdReset, ioaddr + ChipCmd);
+
+- i = request_irq(rp->pdev->irq, &rhine_interrupt, SA_SHIRQ, dev->name,
++ i = request_irq(rp->pdev->irq, &rhine_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name,
+ dev);
+ if (i)
+ return i;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/c101.c linux-2.6.7-netdev_random/drivers/net/wan/c101.c
+--- linux-2.6.7/drivers/net/wan/c101.c 2004-06-16 07:19:44.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/c101.c 2004-06-24 10:16:10.854844232 +0200
+@@ -325,7 +325,7 @@ static int __init c101_run(unsigned long
+ return -ENOBUFS;
+ }
+
+- if (request_irq(irq, sca_intr, 0, devname, card)) {
++ if (request_irq(irq, sca_intr, SA_NET_RANDOM, devname, card)) {
+ printk(KERN_ERR "c101: could not allocate IRQ\n");
+ c101_destroy_card(card);
+ return(-EBUSY);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/cosa.c linux-2.6.7-netdev_random/drivers/net/wan/cosa.c
+--- linux-2.6.7/drivers/net/wan/cosa.c 2004-06-16 07:18:52.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/cosa.c 2004-06-24 10:16:11.401761088 +0200
+@@ -570,7 +570,7 @@ static int cosa_probe(int base, int irq,
+ cosa->usage = 0;
+ cosa->nchannels = 2; /* FIXME: how to determine this? */
+
+- if (request_irq(cosa->irq, cosa_interrupt, 0, cosa->type, cosa)) {
++ if (request_irq(cosa->irq, cosa_interrupt, SA_NET_RANDOM, cosa->type, cosa)) {
+ err = -1;
+ goto err_out;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/cycx_main.c linux-2.6.7-netdev_random/drivers/net/wan/cycx_main.c
+--- linux-2.6.7/drivers/net/wan/cycx_main.c 2004-06-16 07:19:23.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/cycx_main.c 2004-06-24 10:16:11.420758200 +0200
+@@ -214,7 +214,7 @@ static int cycx_wan_setup(struct wan_dev
+ /* Allocate IRQ */
+ irq = conf->irq == 2 ? 9 : conf->irq; /* IRQ2 -> IRQ9 */
+
+- if (request_irq(irq, cycx_isr, 0, wandev->name, card)) {
++ if (request_irq(irq, cycx_isr, SA_NET_RANDOM, wandev->name, card)) {
+ printk(KERN_ERR "%s: can't reserve IRQ %d!\n",
+ wandev->name, irq);
+ goto out;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/dscc4.c linux-2.6.7-netdev_random/drivers/net/wan/dscc4.c
+--- linux-2.6.7/drivers/net/wan/dscc4.c 2004-06-16 07:20:27.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/dscc4.c 2004-06-24 10:16:11.453753184 +0200
+@@ -749,7 +749,7 @@ static int __devinit dscc4_init_one(stru
+
+ priv = (struct dscc4_pci_priv *)pci_get_drvdata(pdev);
+
+- if (request_irq(pdev->irq, &dscc4_irq, SA_SHIRQ, DRV_NAME, priv->root)){
++ if (request_irq(pdev->irq, &dscc4_irq, SA_SHIRQ | SA_NET_RANDOM, DRV_NAME, priv->root)){
+ printk(KERN_WARNING "%s: IRQ %d busy\n", DRV_NAME, pdev->irq);
+ goto err_out_free1;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/farsync.c linux-2.6.7-netdev_random/drivers/net/wan/farsync.c
+--- linux-2.6.7/drivers/net/wan/farsync.c 2004-06-16 07:19:42.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/farsync.c 2004-06-24 10:23:43.843979416 +0200
+@@ -2521,7 +2521,7 @@ fst_add_one(struct pci_dev *pdev, const
+ dbg(DBG_PCI, "kernel mem %p, ctlmem %p\n", card->mem, card->ctlmem);
+
+ /* Register the interrupt handler */
+- if (request_irq(pdev->irq, fst_intr, SA_SHIRQ, FST_DEV_NAME, card)) {
++ if (request_irq(pdev->irq, fst_intr, SA_SHIRQ | SA_NET_RANDOM, FST_DEV_NAME, card)) {
+ printk_err("Unable to register interrupt %d\n", card->irq);
+ pci_release_regions(pdev);
+ pci_disable_device(pdev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/hostess_sv11.c linux-2.6.7-netdev_random/drivers/net/wan/hostess_sv11.c
+--- linux-2.6.7/drivers/net/wan/hostess_sv11.c 2004-06-16 07:19:43.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/hostess_sv11.c 2004-06-24 10:16:11.518743304 +0200
+@@ -263,7 +263,7 @@ static struct sv11_device *sv11_init(int
+ /* We want a fast IRQ for this device. Actually we'd like an even faster
+ IRQ ;) - This is one driver RtLinux is made for */
+
+- if(request_irq(irq, &z8530_interrupt, SA_INTERRUPT, "Hostess SV/11", dev)<0)
++ if(request_irq(irq, &z8530_interrupt, SA_INTERRUPT | SA_NET_RANDOM, "Hostess SV/11", dev)<0)
+ {
+ printk(KERN_WARNING "hostess: IRQ %d already in use.\n", irq);
+ goto fail1;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/lmc/lmc_main.c linux-2.6.7-netdev_random/drivers/net/wan/lmc/lmc_main.c
+--- linux-2.6.7/drivers/net/wan/lmc/lmc_main.c 2004-06-16 07:19:10.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/lmc/lmc_main.c 2004-06-24 10:16:11.557737376 +0200
+@@ -1060,7 +1060,7 @@ static int lmc_open (struct net_device *
+ lmc_softreset (sc);
+
+ /* Since we have to use PCI bus, this should work on x86,alpha,ppc */
+- if (request_irq (dev->irq, &lmc_interrupt, SA_SHIRQ, dev->name, dev)){
++ if (request_irq (dev->irq, &lmc_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev)){
+ printk(KERN_WARNING "%s: could not get irq: %d\n", dev->name, dev->irq);
+ lmc_trace(dev, "lmc_open irq failed out");
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/n2.c linux-2.6.7-netdev_random/drivers/net/wan/n2.c
+--- linux-2.6.7/drivers/net/wan/n2.c 2004-06-16 07:19:01.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/n2.c 2004-06-24 10:16:11.573734944 +0200
+@@ -377,7 +377,7 @@ static int __init n2_run(unsigned long i
+ }
+ card->io = io;
+
+- if (request_irq(irq, &sca_intr, 0, devname, card)) {
++ if (request_irq(irq, &sca_intr, SA_NET_RANDOM, devname, card)) {
+ printk(KERN_ERR "n2: could not allocate IRQ\n");
+ n2_destroy_card(card);
+ return(-EBUSY);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/pc300_drv.c linux-2.6.7-netdev_random/drivers/net/wan/pc300_drv.c
+--- linux-2.6.7/drivers/net/wan/pc300_drv.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/pc300_drv.c 2004-06-24 10:16:11.592732056 +0200
+@@ -3603,7 +3603,7 @@ cpc_init_one(struct pci_dev *pdev, const
+ }
+
+ /* Allocate IRQ */
+- if (request_irq(card->hw.irq, cpc_intr, SA_SHIRQ, "Cyclades-PC300", card)) {
++ if (request_irq(card->hw.irq, cpc_intr, SA_SHIRQ | SA_NET_RANDOM, "Cyclades-PC300", card)) {
+ printk ("PC300 found at RAM 0x%08lx, but could not allocate IRQ%d.\n",
+ card->hw.ramphys, card->hw.irq);
+ goto err_io_unmap;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/pci200syn.c linux-2.6.7-netdev_random/drivers/net/wan/pci200syn.c
+--- linux-2.6.7/drivers/net/wan/pci200syn.c 2004-06-16 07:19:01.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/pci200syn.c 2004-06-24 10:16:11.609729472 +0200
+@@ -395,7 +395,7 @@ static int __devinit pci200_pci_init_one
+ writew(readw(p) | 0x0040, p);
+
+ /* Allocate IRQ */
+- if(request_irq(pdev->irq, sca_intr, SA_SHIRQ, devname, card)) {
++ if(request_irq(pdev->irq, sca_intr, SA_SHIRQ | SA_NET_RANDOM, devname, card)) {
+ printk(KERN_WARNING "pci200syn: could not allocate IRQ%d.\n",
+ pdev->irq);
+ pci200_pci_remove_one(pdev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/sbni.c linux-2.6.7-netdev_random/drivers/net/wan/sbni.c
+--- linux-2.6.7/drivers/net/wan/sbni.c 2004-06-16 07:19:13.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/sbni.c 2004-06-24 10:16:11.637725216 +0200
+@@ -1189,7 +1189,7 @@ sbni_open( struct net_device *dev )
+ }
+ }
+
+- if( request_irq(dev->irq, sbni_interrupt, SA_SHIRQ, dev->name, dev) ) {
++ if( request_irq(dev->irq, sbni_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev) ) {
+ printk( KERN_ERR "%s: unable to get IRQ %d.\n",
+ dev->name, dev->irq );
+ return -EAGAIN;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/sdla.c linux-2.6.7-netdev_random/drivers/net/wan/sdla.c
+--- linux-2.6.7/drivers/net/wan/sdla.c 2004-06-16 07:20:26.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/sdla.c 2004-06-24 10:16:11.666720808 +0200
+@@ -1461,7 +1461,7 @@ got_type:
+ }
+
+ err = -EAGAIN;
+- if (request_irq(dev->irq, &sdla_isr, 0, dev->name, dev))
++ if (request_irq(dev->irq, &sdla_isr, SA_NET_RANDOM, dev->name, dev))
+ goto fail;
+
+ if (flp->type == SDLA_S507) {
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/sdlamain.c linux-2.6.7-netdev_random/drivers/net/wan/sdlamain.c
+--- linux-2.6.7/drivers/net/wan/sdlamain.c 2004-06-16 07:19:43.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/sdlamain.c 2004-06-24 10:16:11.681718528 +0200
+@@ -458,7 +458,7 @@ static int setup(struct wan_device* wand
+ /* when using the S514 PCI adapter */
+
+ if(request_irq(irq, sdla_isr,
+- (card->hw.type == SDLA_S514) ? SA_SHIRQ : 0,
++ (card->hw.type == SDLA_S514) ? SA_SHIRQ | SA_NET_RANDOM : 0,
+ wandev->name, card)){
+
+ printk(KERN_INFO "%s: Can't reserve IRQ %d!\n", wandev->name, irq);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/sealevel.c linux-2.6.7-netdev_random/drivers/net/wan/sealevel.c
+--- linux-2.6.7/drivers/net/wan/sealevel.c 2004-06-16 07:19:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/sealevel.c 2004-06-24 10:16:11.709714272 +0200
+@@ -321,7 +321,7 @@ static __init struct slvl_board *slvl_in
+ /* We want a fast IRQ for this device. Actually we'd like an even faster
+ IRQ ;) - This is one driver RtLinux is made for */
+
+- if(request_irq(irq, &z8530_interrupt, SA_INTERRUPT, "SeaLevel", dev)<0)
++ if(request_irq(irq, &z8530_interrupt, SA_INTERRUPT | SA_NET_RANDOM, "SeaLevel", dev)<0)
+ {
+ printk(KERN_WARNING "sealevel: IRQ %d already in use.\n", irq);
+ goto fail1_1;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wan/wanxl.c linux-2.6.7-netdev_random/drivers/net/wan/wanxl.c
+--- linux-2.6.7/drivers/net/wan/wanxl.c 2004-06-16 07:20:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wan/wanxl.c 2004-06-24 10:16:11.735710320 +0200
+@@ -750,7 +750,7 @@ static int __devinit wanxl_pci_init_one(
+ card_name(pdev), plx_phy, ramsize / 1024, mem_phy, pdev->irq);
+
+ /* Allocate IRQ */
+- if (request_irq(pdev->irq, wanxl_intr, SA_SHIRQ, "wanXL", card)) {
++ if (request_irq(pdev->irq, wanxl_intr, SA_SHIRQ | SA_NET_RANDOM, "wanXL", card)) {
+ printk(KERN_WARNING "wanXL %s: could not allocate IRQ%i.\n",
+ card_name(pdev), pdev->irq);
+ wanxl_pci_remove_one(pdev);
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wd.c linux-2.6.7-netdev_random/drivers/net/wd.c
+--- linux-2.6.7/drivers/net/wd.c 2004-06-16 07:18:57.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wd.c 2004-06-24 10:16:11.748708344 +0200
+@@ -300,7 +300,7 @@ static int __init wd_probe1(struct net_d
+
+ /* Snarf the interrupt now. There's no point in waiting since we cannot
+ share and the board will usually be enabled. */
+- i = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
++ i = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (i) {
+ printk (" unable to get IRQ %d.\n", dev->irq);
+ return i;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wireless/airo.c linux-2.6.7-netdev_random/drivers/net/wireless/airo.c
+--- linux-2.6.7/drivers/net/wireless/airo.c 2004-06-16 07:18:58.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wireless/airo.c 2004-06-24 10:16:11.791701808 +0200
+@@ -2745,7 +2745,7 @@ struct net_device *_init_airo_card( unsi
+ SET_NETDEV_DEV(dev, &pci->dev);
+ }
+
+- rc = request_irq( dev->irq, airo_interrupt, SA_SHIRQ, dev->name, dev );
++ rc = request_irq( dev->irq, airo_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev );
+ if (rc) {
+ printk(KERN_ERR "airo: register interrupt %d failed, rc %d\n", irq, rc );
+ goto err_out_unlink;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wireless/airport.c linux-2.6.7-netdev_random/drivers/net/wireless/airport.c
+--- linux-2.6.7/drivers/net/wireless/airport.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wireless/airport.c 2004-06-24 10:16:11.804699832 +0200
+@@ -243,7 +243,7 @@ airport_attach(struct macio_dev *mdev, c
+ /* Reset it before we get the interrupt */
+ hermes_init(hw);
+
+- if (request_irq(dev->irq, orinoco_interrupt, 0, "Airport", dev)) {
++ if (request_irq(dev->irq, orinoco_interrupt, SA_NET_RANDOM, "Airport", dev)) {
+ printk(KERN_ERR "airport: Couldn't get IRQ %d\n", dev->irq);
+ goto failed;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wireless/arlan-main.c linux-2.6.7-netdev_random/drivers/net/wireless/arlan-main.c
+--- linux-2.6.7/drivers/net/wireless/arlan-main.c 2004-06-16 07:19:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wireless/arlan-main.c 2004-06-24 10:16:11.819697552 +0200
+@@ -1116,7 +1116,7 @@ static int arlan_open(struct net_device
+
+ ARLAN_DEBUG_ENTRY("arlan_open");
+
+- ret = request_irq(dev->irq, &arlan_interrupt, 0, dev->name, dev);
++ ret = request_irq(dev->irq, &arlan_interrupt, SA_NET_RANDOM, dev->name, dev);
+ if (ret)
+ {
+ printk(KERN_ERR "%s: unable to get IRQ %d .\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wireless/atmel.c linux-2.6.7-netdev_random/drivers/net/wireless/atmel.c
+--- linux-2.6.7/drivers/net/wireless/atmel.c 2004-06-16 07:19:02.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wireless/atmel.c 2004-06-24 10:16:11.848693144 +0200
+@@ -1579,7 +1579,7 @@ struct net_device *init_atmel_card( unsi
+ dev->irq = irq;
+ dev->base_addr = port;
+
+- if ((rc = request_irq(dev->irq, service_interrupt, SA_SHIRQ, dev->name, dev))) {
++ if ((rc = request_irq(dev->irq, service_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev))) {
+ printk(KERN_ERR "%s: register interrupt %d failed, rc %d\n", dev->name, irq, rc );
+ goto err_out_free;
+ }
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wireless/orinoco_pci.c linux-2.6.7-netdev_random/drivers/net/wireless/orinoco_pci.c
+--- linux-2.6.7/drivers/net/wireless/orinoco_pci.c 2004-06-16 07:19:42.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wireless/orinoco_pci.c 2004-06-24 10:16:11.872689496 +0200
+@@ -229,7 +229,7 @@ static int orinoco_pci_init_one(struct p
+ HERMES_MEM, HERMES_32BIT_REGSPACING);
+ pci_set_drvdata(pdev, dev);
+
+- err = request_irq(pdev->irq, orinoco_interrupt, SA_SHIRQ,
++ err = request_irq(pdev->irq, orinoco_interrupt, SA_SHIRQ | SA_NET_RANDOM,
+ dev->name, dev);
+ if (err) {
+ printk(KERN_ERR "orinoco_pci: Error allocating IRQ %d.\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wireless/orinoco_plx.c linux-2.6.7-netdev_random/drivers/net/wireless/orinoco_plx.c
+--- linux-2.6.7/drivers/net/wireless/orinoco_plx.c 2004-06-16 07:20:04.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wireless/orinoco_plx.c 2004-06-24 10:16:11.884687672 +0200
+@@ -242,7 +242,7 @@ static int orinoco_plx_init_one(struct p
+ HERMES_IO, HERMES_16BIT_REGSPACING);
+ pci_set_drvdata(pdev, dev);
+
+- err = request_irq(pdev->irq, orinoco_interrupt, SA_SHIRQ, dev->name, dev);
++ err = request_irq(pdev->irq, orinoco_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (err) {
+ printk(KERN_ERR "orinoco_plx: Error allocating IRQ %d.\n", pdev->irq);
+ err = -EBUSY;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wireless/orinoco_tmd.c linux-2.6.7-netdev_random/drivers/net/wireless/orinoco_tmd.c
+--- linux-2.6.7/drivers/net/wireless/orinoco_tmd.c 2004-06-16 07:18:59.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wireless/orinoco_tmd.c 2004-06-24 10:16:11.895686000 +0200
+@@ -134,7 +134,7 @@ static int orinoco_tmd_init_one(struct p
+ HERMES_IO, HERMES_16BIT_REGSPACING);
+ pci_set_drvdata(pdev, dev);
+
+- err = request_irq(pdev->irq, orinoco_interrupt, SA_SHIRQ, dev->name,
++ err = request_irq(pdev->irq, orinoco_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name,
+ dev);
+ if (err) {
+ printk(KERN_ERR "orinoco_tmd: Error allocating IRQ %d.\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/wireless/wavelan.c linux-2.6.7-netdev_random/drivers/net/wireless/wavelan.c
+--- linux-2.6.7/drivers/net/wireless/wavelan.c 2004-06-16 07:20:03.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/wireless/wavelan.c 2004-06-24 10:16:11.929680832 +0200
+@@ -4022,7 +4022,7 @@ static int wavelan_open(struct net_devic
+ return -ENXIO;
+ }
+
+- if (request_irq(dev->irq, &wavelan_interrupt, 0, "WaveLAN", dev) != 0)
++ if (request_irq(dev->irq, &wavelan_interrupt, SA_NET_RANDOM, "WaveLAN", dev) != 0)
+ {
+ #ifdef DEBUG_CONFIG_ERROR
+ printk(KERN_WARNING "%s: wavelan_open(): invalid IRQ\n",
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/yellowfin.c linux-2.6.7-netdev_random/drivers/net/yellowfin.c
+--- linux-2.6.7/drivers/net/yellowfin.c 2004-06-16 07:19:13.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/yellowfin.c 2004-06-24 10:16:11.942678856 +0200
+@@ -632,7 +632,7 @@ static int yellowfin_open(struct net_dev
+ /* Reset the chip. */
+ outl(0x80000000, ioaddr + DMACtrl);
+
+- i = request_irq(dev->irq, &yellowfin_interrupt, SA_SHIRQ, dev->name, dev);
++ i = request_irq(dev->irq, &yellowfin_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (i) return i;
+
+ if (yellowfin_debug > 1)
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/znet.c linux-2.6.7-netdev_random/drivers/net/znet.c
+--- linux-2.6.7/drivers/net/znet.c 2004-06-16 07:18:37.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/znet.c 2004-06-24 10:16:11.955676880 +0200
+@@ -173,7 +173,7 @@ static int znet_request_resources (struc
+ struct znet_private *znet = dev->priv;
+ unsigned long flags;
+
+- if (request_irq (dev->irq, &znet_interrupt, 0, "ZNet", dev))
++ if (request_irq (dev->irq, &znet_interrupt, SA_NET_RANDOM, "ZNet", dev))
+ goto failed;
+ if (request_dma (znet->rx_dma, "ZNet rx"))
+ goto free_irq;
+diff -uprN -X dontdiff linux-2.6.7/drivers/net/zorro8390.c linux-2.6.7-netdev_random/drivers/net/zorro8390.c
+--- linux-2.6.7/drivers/net/zorro8390.c 2004-06-16 07:19:36.000000000 +0200
++++ linux-2.6.7-netdev_random/drivers/net/zorro8390.c 2004-06-24 10:16:11.968674904 +0200
+@@ -198,7 +198,7 @@ static int __devinit zorro8390_init(stru
+ dev->irq = IRQ_AMIGA_PORTS;
+
+ /* Install the Interrupt handler */
+- i = request_irq(IRQ_AMIGA_PORTS, ei_interrupt, SA_SHIRQ, dev->name, dev);
++ i = request_irq(IRQ_AMIGA_PORTS, ei_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
+ if (i) return i;
+
+ for(i = 0; i < ETHER_ADDR_LEN; i++) {