diff options
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.patch | 2362 |
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, <pc_interrupt, 0, "ltpc", dev) >= 0) ++ if (irq && request_irq( irq, <pc_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 *)ð16i_interrupt, 0, dev->name, dev))) { ++ if ((retval = request_irq(dev->irq, (void *)ð16i_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, >96100_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(®s->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++) { |