]> git.pld-linux.org Git - packages/kernel.git/blob - netdev-random-drivers-rml-2.4.18-1.patch
- [2.4.2x, 2.6.x] don't recursively crash in die() on CHRP/PReP machines
[packages/kernel.git] / netdev-random-drivers-rml-2.4.18-1.patch
1 diff -urN linux-2.4.18/drivers/net/3c501.c linux/drivers/net/3c501.c
2 --- linux-2.4.18/drivers/net/3c501.c    Mon Feb 25 17:10:41 2002
3 +++ linux/drivers/net/3c501.c   Mon Feb 25 17:42:30 2002
4 @@ -419,7 +419,8 @@
5         if (el_debug > 2)
6                 printk("%s: Doing el_open()...", dev->name);
7  
8 -       if ((retval = request_irq(dev->irq, &el_interrupt, 0, dev->name, dev)))
9 +       if ((retval = request_irq(dev->irq, &el_interrupt,
10 +                               SA_NET_RANDOM, dev->name, dev)))
11                 return retval;
12  
13         spin_lock_irqsave(&lp->lock, flags);
14 diff -urN linux-2.4.18/drivers/net/3c503.c linux/drivers/net/3c503.c
15 --- linux-2.4.18/drivers/net/3c503.c    Mon Feb 25 17:10:41 2002
16 +++ linux/drivers/net/3c503.c   Mon Feb 25 17:42:30 2002
17 @@ -348,7 +348,7 @@
18                 outb_p(0x00, E33G_IDCFR);
19                 if (*irqp == probe_irq_off(cookie)      /* It's a good IRQ line! */
20                     && ((retval = request_irq(dev->irq = *irqp, 
21 -                   ei_interrupt, 0, dev->name, dev)) == 0))
22 +                   ei_interrupt, SA_NET_RANDOM, dev->name, dev)) == 0))
23                     break;
24             }
25         } while (*++irqp);
26 @@ -357,7 +357,7 @@
27             return retval;
28         }
29      } else {
30 -       if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) {
31 +       if ((retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev))) {
32             return retval;
33         }
34      }
35 diff -urN linux-2.4.18/drivers/net/3c505.c linux/drivers/net/3c505.c
36 --- linux-2.4.18/drivers/net/3c505.c    Mon Feb 25 17:10:41 2002
37 +++ linux/drivers/net/3c505.c   Mon Feb 25 17:42:30 2002
38 @@ -906,7 +906,8 @@
39         /*
40          * install our interrupt service routine
41          */
42 -       if ((retval = request_irq(dev->irq, &elp_interrupt, 0, dev->name, dev))) {
43 +       if ((retval = request_irq(dev->irq, &elp_interrupt,
44 +                                       SA_NET_RANDOM, dev->name, dev))) {
45                 printk(KERN_ERR "%s: could not allocate IRQ%d\n", dev->name, dev->irq);
46                 return retval;
47         }
48 diff -urN linux-2.4.18/drivers/net/3c507.c linux/drivers/net/3c507.c
49 --- linux-2.4.18/drivers/net/3c507.c    Mon Feb 25 17:10:41 2002
50 +++ linux/drivers/net/3c507.c   Mon Feb 25 17:42:30 2002
51 @@ -373,7 +373,8 @@
52  
53         irq = inb(ioaddr + IRQ_CONFIG) & 0x0f;
54  
55 -       irqval = request_irq(irq, &el16_interrupt, 0, dev->name, dev);
56 +       irqval = request_irq(irq, &el16_interrupt, SA_NET_RANDOM,
57 +                       dev->name, dev);
58         if (irqval) {
59                 printk ("unable to get IRQ %d (irqval=%d).\n", irq, irqval);
60                 retval = -EAGAIN;
61 diff -urN linux-2.4.18/drivers/net/3c509.c linux/drivers/net/3c509.c
62 --- linux-2.4.18/drivers/net/3c509.c    Mon Feb 25 17:10:41 2002
63 +++ linux/drivers/net/3c509.c   Mon Feb 25 17:42:30 2002
64 @@ -573,7 +573,8 @@
65         outw(RxReset, ioaddr + EL3_CMD);
66         outw(SetStatusEnb | 0x00, ioaddr + EL3_CMD);
67  
68 -       i = request_irq(dev->irq, &el3_interrupt, 0, dev->name, dev);
69 +       i = request_irq(dev->irq, &el3_interrupt,
70 +                       SA_NET_RANDOM, dev->name, dev);
71         if (i) return i;
72  
73         EL3WINDOW(0);
74 diff -urN linux-2.4.18/drivers/net/3c515.c linux/drivers/net/3c515.c
75 --- linux-2.4.18/drivers/net/3c515.c    Mon Feb 25 17:10:44 2002
76 +++ linux/drivers/net/3c515.c   Mon Feb 25 17:42:30 2002
77 @@ -803,11 +803,13 @@
78                 /* Corkscrew: Cannot share ISA resources. */
79                 if (dev->irq == 0
80                     || dev->dma == 0
81 -                   || request_irq(dev->irq, &corkscrew_interrupt, 0,
82 -                                  vp->product_name, dev)) return -EAGAIN;
83 +                   || request_irq(dev->irq, &corkscrew_interrupt,
84 +                              SA_NET_RANDOM,
85 +                              vp->product_name, dev)) return -EAGAIN;
86                 enable_dma(dev->dma);
87                 set_dma_mode(dev->dma, DMA_MODE_CASCADE);
88 -       } else if (request_irq(dev->irq, &corkscrew_interrupt, SA_SHIRQ,
89 +       } else if (request_irq(dev->irq, &corkscrew_interrupt, 
90 +                              SA_SHIRQ | SA_NET_RANDOM,
91                                vp->product_name, dev)) {
92                 return -EAGAIN;
93         }
94 diff -urN linux-2.4.18/drivers/net/3c523.c linux/drivers/net/3c523.c
95 --- linux-2.4.18/drivers/net/3c523.c    Mon Feb 25 17:10:41 2002
96 +++ linux/drivers/net/3c523.c   Mon Feb 25 17:42:30 2002
97 @@ -289,8 +289,8 @@
98  
99         elmc_id_attn586();      /* disable interrupts */
100  
101 -       ret = request_irq(dev->irq, &elmc_interrupt, SA_SHIRQ | SA_SAMPLE_RANDOM,
102 -                         dev->name, dev);
103 +       ret = request_irq(dev->irq, &elmc_interrupt,
104 +               SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
105         if (ret) {
106                 printk(KERN_ERR "%s: couldn't get irq %d\n", dev->name, dev->irq);
107                 elmc_id_reset586();
108 diff -urN linux-2.4.18/drivers/net/3c527.c linux/drivers/net/3c527.c
109 --- linux-2.4.18/drivers/net/3c527.c    Mon Feb 25 17:10:45 2002
110 +++ linux/drivers/net/3c527.c   Mon Feb 25 17:42:30 2002
111 @@ -409,7 +409,7 @@
112          *      Grab the IRQ
113          */
114  
115 -       i = request_irq(dev->irq, &mc32_interrupt, SA_SHIRQ, dev->name, dev);
116 +       i = request_irq(dev->irq, &mc32_interrupt, SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
117         if (i) {
118                 release_region(dev->base_addr, MC32_IO_EXTENT);
119                 printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq);
120 diff -urN linux-2.4.18/drivers/net/3c59x.c linux/drivers/net/3c59x.c
121 --- linux-2.4.18/drivers/net/3c59x.c    Mon Feb 25 17:10:41 2002
122 +++ linux/drivers/net/3c59x.c   Mon Feb 25 17:42:30 2002
123 @@ -1578,7 +1578,8 @@
124  
125         /* Use the now-standard shared IRQ implementation. */
126         if ((retval = request_irq(dev->irq, vp->full_bus_master_rx ?
127 -                               &boomerang_interrupt : &vortex_interrupt, SA_SHIRQ, dev->name, dev))) {
128 +                       &boomerang_interrupt : &vortex_interrupt,
129 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev))) {
130                 printk(KERN_ERR "%s: Could not reserve IRQ %d\n", dev->name, dev->irq);
131                 goto out;
132         }
133 diff -urN linux-2.4.18/drivers/net/7990.c linux/drivers/net/7990.c
134 --- linux-2.4.18/drivers/net/7990.c     Mon Feb 25 17:10:45 2002
135 +++ linux/drivers/net/7990.c    Mon Feb 25 17:42:30 2002
136 @@ -463,7 +463,7 @@
137          DECLARE_LL;
138          
139          /* Install the Interrupt handler. Or we could shunt this out to specific drivers? */
140 -        if (request_irq(lp->irq, lance_interrupt, 0, lp->name, dev))
141 +        if (request_irq(lp->irq, lance_interrupt, SA_NET_RANDOM, lp->name, dev))
142                  return -EAGAIN;
143  
144          res = lance_reset(dev);
145 diff -urN linux-2.4.18/drivers/net/8139cp.c linux/drivers/net/8139cp.c
146 --- linux-2.4.18/drivers/net/8139cp.c   Mon Feb 25 17:10:48 2002
147 +++ linux/drivers/net/8139cp.c  Mon Feb 25 17:42:30 2002
148 @@ -980,7 +980,8 @@
149  
150         cp_init_hw(cp);
151  
152 -       rc = request_irq(dev->irq, cp_interrupt, SA_SHIRQ, dev->name, dev);
153 +       rc = request_irq(dev->irq, cp_interrupt,
154 +                       SA_NET_RANDOM | SA_SHIRQ, dev->name, dev);
155         if (rc)
156                 goto err_out_hw;
157  
158 diff -urN linux-2.4.18/drivers/net/8139too.c linux/drivers/net/8139too.c
159 --- linux-2.4.18/drivers/net/8139too.c  Mon Feb 25 17:10:45 2002
160 +++ linux/drivers/net/8139too.c Mon Feb 25 17:42:30 2002
161 @@ -1258,7 +1258,8 @@
162         void *ioaddr = tp->mmio_addr;
163  #endif
164  
165 -       retval = request_irq (dev->irq, rtl8139_interrupt, SA_SHIRQ, dev->name, dev);
166 +       retval = request_irq (dev->irq, rtl8139_interrupt,
167 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
168         if (retval)
169                 return retval;
170  
171 diff -urN linux-2.4.18/drivers/net/82596.c linux/drivers/net/82596.c
172 --- linux-2.4.18/drivers/net/82596.c    Mon Feb 25 17:10:45 2002
173 +++ linux/drivers/net/82596.c   Mon Feb 25 17:42:30 2002
174 @@ -973,7 +973,8 @@
175  
176         DEB(DEB_OPEN,printk("%s: i596_open() irq %d.\n", dev->name, dev->irq));
177  
178 -       if (request_irq(dev->irq, &i596_interrupt, 0, "i82596", dev)) {
179 +       if (request_irq(dev->irq, &i596_interrupt, SA_NET_RANDOM,
180 +                       "i82596", dev)) {
181                 printk("%s: IRQ %d not free\n", dev->name, dev->irq);
182                 return -EAGAIN;
183         }
184 diff -urN linux-2.4.18/drivers/net/a2065.c linux/drivers/net/a2065.c
185 --- linux-2.4.18/drivers/net/a2065.c    Mon Feb 25 17:10:42 2002
186 +++ linux/drivers/net/a2065.c   Mon Feb 25 17:42:30 2002
187 @@ -495,8 +495,8 @@
188         last_dev = dev;
189  
190         /* Install the Interrupt handler */
191 -       ret = request_irq(IRQ_AMIGA_PORTS, lance_interrupt, SA_SHIRQ,
192 -                         dev->name, dev);
193 +       ret = request_irq(IRQ_AMIGA_PORTS, lance_interrupt,
194 +                         SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
195         if (ret) return ret;
196  
197         /* Stop the Lance */
198 diff -urN linux-2.4.18/drivers/net/ac3200.c linux/drivers/net/ac3200.c
199 --- linux-2.4.18/drivers/net/ac3200.c   Mon Feb 25 17:10:41 2002
200 +++ linux/drivers/net/ac3200.c  Mon Feb 25 17:42:30 2002
201 @@ -173,7 +173,8 @@
202                 printk(", assigning");
203         }
204  
205 -       retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
206 +       retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM,
207 +                       dev->name, dev);
208         if (retval) {
209                 printk (" nothing! Unable to get IRQ %d.\n", dev->irq);
210                 goto out1;
211 diff -urN linux-2.4.18/drivers/net/acenic.c linux/drivers/net/acenic.c
212 --- linux-2.4.18/drivers/net/acenic.c   Mon Feb 25 17:10:41 2002
213 +++ linux/drivers/net/acenic.c  Mon Feb 25 17:42:30 2002
214 @@ -1370,7 +1370,8 @@
215                 goto init_error;
216         }
217  
218 -       ecode = request_irq(dev->irq, ace_interrupt, SA_SHIRQ, dev->name, dev);
219 +       ecode = request_irq(dev->irq, ace_interrupt,
220 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
221         if (ecode) {
222                 printk(KERN_WARNING "%s: Requested IRQ %d is busy\n",
223                        dev->name, dev->irq);
224 diff -urN linux-2.4.18/drivers/net/aironet4500_card.c linux/drivers/net/aironet4500_card.c
225 --- linux-2.4.18/drivers/net/aironet4500_card.c Mon Feb 25 17:10:46 2002
226 +++ linux/drivers/net/aironet4500_card.c        Mon Feb 25 17:42:30 2002
227 @@ -213,7 +213,7 @@
228         dev->watchdog_timeo = AWC_TX_TIMEOUT;
229         
230  
231 -       i = request_irq(dev->irq,awc_interrupt, SA_SHIRQ | SA_INTERRUPT, dev->name, dev);
232 +       i = request_irq(dev->irq,awc_interrupt, SA_SHIRQ | SA_INTERRUPT | SA_NET_RANDOM, dev->name, dev);
233         if (i) {
234                 kfree(dev->priv);
235                 dev->priv = NULL;
236 diff -urN linux-2.4.18/drivers/net/am79c961a.c linux/drivers/net/am79c961a.c
237 --- linux-2.4.18/drivers/net/am79c961a.c        Mon Feb 25 17:10:45 2002
238 +++ linux/drivers/net/am79c961a.c       Mon Feb 25 17:42:30 2002
239 @@ -267,7 +267,8 @@
240  
241         memset (&priv->stats, 0, sizeof (priv->stats));
242  
243 -       ret = request_irq(dev->irq, am79c961_interrupt, 0, dev->name, dev);
244 +       ret = request_irq(dev->irq, am79c961_interrupt, SA_NET_RANDOM,
245 +                       dev->name, dev);
246         if (ret)
247                 return ret;
248  
249 diff -urN linux-2.4.18/drivers/net/apne.c linux/drivers/net/apne.c
250 --- linux-2.4.18/drivers/net/apne.c     Mon Feb 25 17:10:41 2002
251 +++ linux/drivers/net/apne.c    Mon Feb 25 17:42:30 2002
252 @@ -287,7 +287,8 @@
253      dev->base_addr = ioaddr;
254  
255      /* Install the Interrupt handler */
256 -    i = request_irq(IRQ_AMIGA_PORTS, apne_interrupt, SA_SHIRQ, dev->name, dev);
257 +    i = request_irq(IRQ_AMIGA_PORTS, apne_interrupt,
258 +                   SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
259      if (i) return i;
260  
261      /* Allocate dev->priv and fill in 8390 specific dev fields. */
262 diff -urN linux-2.4.18/drivers/net/appletalk/cops.c linux/drivers/net/appletalk/cops.c
263 --- linux-2.4.18/drivers/net/appletalk/cops.c   Mon Feb 25 17:10:46 2002
264 +++ linux/drivers/net/appletalk/cops.c  Mon Feb 25 17:42:30 2002
265 @@ -304,7 +304,8 @@
266  
267         /* Reserve any actual interrupt. */
268         if(dev->irq) {
269 -               retval = request_irq(dev->irq, &cops_interrupt, 0, dev->name, dev);
270 +               retval = request_irq(dev->irq, &cops_interrupt,
271 +                               SA_NET_RANDOM, dev->name, dev);
272                 if (retval)
273                         goto err_out;
274         }
275 diff -urN linux-2.4.18/drivers/net/appletalk/ltpc.c linux/drivers/net/appletalk/ltpc.c
276 --- linux-2.4.18/drivers/net/appletalk/ltpc.c   Mon Feb 25 17:10:46 2002
277 +++ linux/drivers/net/appletalk/ltpc.c  Mon Feb 25 17:42:30 2002
278 @@ -1200,7 +1200,8 @@
279  
280         if (irq) {
281                 /* grab it and don't let go :-) */
282 -               (void) request_irq( irq, &ltpc_interrupt, 0, "ltpc", dev);
283 +               (void) request_irq(irq, &ltpc_interrupt,
284 +                       SA_NET_RANDOM, "ltpc", dev);
285                 (void) inb_p(io+7);  /* enable interrupts from board */
286                 (void) inb_p(io+7);  /* and reset irq line */
287         } else {
288 diff -urN linux-2.4.18/drivers/net/arcnet/arc-rimi.c linux/drivers/net/arcnet/arc-rimi.c
289 --- linux-2.4.18/drivers/net/arcnet/arc-rimi.c  Mon Feb 25 17:10:45 2002
290 +++ linux/drivers/net/arcnet/arc-rimi.c Mon Feb 25 17:42:30 2002
291 @@ -121,7 +121,8 @@
292         int mirror_size;
293  
294         /* reserve the irq */  {
295 -               if (request_irq(dev->irq, &arcnet_interrupt, 0, "arcnet (RIM I)", dev))
296 +               if (request_irq(dev->irq, &arcnet_interrupt,
297 +                               SA_NET_RANDOM, "arcnet (RIM I)", dev))
298                         BUGMSG(D_NORMAL, "Can't get IRQ %d!\n", dev->irq);
299                 return -ENODEV;
300         }
301 diff -urN linux-2.4.18/drivers/net/arcnet/com20020.c linux/drivers/net/arcnet/com20020.c
302 --- linux-2.4.18/drivers/net/arcnet/com20020.c  Mon Feb 25 17:10:45 2002
303 +++ linux/drivers/net/arcnet/com20020.c Mon Feb 25 17:42:30 2002
304 @@ -196,7 +196,8 @@
305         outb(dev->dev_addr[0], _XREG);
306  
307         /* reserve the irq */
308 -       if (request_irq(dev->irq, &arcnet_interrupt, shared,
309 +       if (request_irq(dev->irq, &arcnet_interrupt,
310 +                       shared | SA_NET_RANDOM,
311                         "arcnet (COM20020)", dev)) {
312                 BUGMSG(D_NORMAL, "Can't get IRQ %d!\n", dev->irq);
313                 return -ENODEV;
314 diff -urN linux-2.4.18/drivers/net/arcnet/com90io.c linux/drivers/net/arcnet/com90io.c
315 --- linux-2.4.18/drivers/net/arcnet/com90io.c   Mon Feb 25 17:10:45 2002
316 +++ linux/drivers/net/arcnet/com90io.c  Mon Feb 25 17:42:30 2002
317 @@ -236,7 +236,8 @@
318         int ioaddr = dev->base_addr;
319  
320         /* Reserve the irq */
321 -       if (request_irq(dev->irq, &arcnet_interrupt, 0, "arcnet (COM90xx-IO)", dev)) {
322 +       if (request_irq(dev->irq, &arcnet_interrupt,
323 +                       SA_NET_RANDOM, "arcnet (COM90xx-IO)", dev)) {
324                 BUGMSG(D_NORMAL, "Can't get IRQ %d!\n", dev->irq);
325                 return -ENODEV;
326         }
327 diff -urN linux-2.4.18/drivers/net/arcnet/com90xx.c linux/drivers/net/arcnet/com90xx.c
328 --- linux-2.4.18/drivers/net/arcnet/com90xx.c   Mon Feb 25 17:10:45 2002
329 +++ linux/drivers/net/arcnet/com90xx.c  Mon Feb 25 17:42:30 2002
330 @@ -472,7 +472,8 @@
331         dev->dev_addr[0] = readb(lp->mem_start + 1);
332  
333         /* reserve the irq */
334 -       if (request_irq(airq, &arcnet_interrupt, 0, "arcnet (90xx)", dev)) {
335 +       if (request_irq(airq, &arcnet_interrupt, SA_NET_RANDOM,
336 +                       "arcnet (90xx)", dev)) {
337                 BUGMSG(D_NORMAL, "Can't get IRQ %d!\n", airq);
338                 goto err_unmap;
339         }
340 diff -urN linux-2.4.18/drivers/net/ariadne.c linux/drivers/net/ariadne.c
341 --- linux-2.4.18/drivers/net/ariadne.c  Mon Feb 25 17:10:44 2002
342 +++ linux/drivers/net/ariadne.c Mon Feb 25 17:42:30 2002
343 @@ -313,8 +313,8 @@
344  
345      netif_start_queue(dev);
346  
347 -    i = request_irq(IRQ_AMIGA_PORTS, ariadne_interrupt, SA_SHIRQ,
348 -                    dev->name, dev);
349 +    i = request_irq(IRQ_AMIGA_PORTS, ariadne_interrupt,
350 +                   SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
351      if (i) return i;
352  
353      lance->RAP = CSR0;         /* PCnet-ISA Controller Status */
354 diff -urN linux-2.4.18/drivers/net/ariadne2.c linux/drivers/net/ariadne2.c
355 --- linux-2.4.18/drivers/net/ariadne2.c Mon Feb 25 17:10:45 2002
356 +++ linux/drivers/net/ariadne2.c        Mon Feb 25 17:42:30 2002
357 @@ -194,7 +194,8 @@
358      dev->irq = IRQ_AMIGA_PORTS;
359  
360      /* Install the Interrupt handler */
361 -    i = request_irq(IRQ_AMIGA_PORTS, ei_interrupt, SA_SHIRQ, dev->name, dev);
362 +    i = request_irq(IRQ_AMIGA_PORTS, ei_interrupt,
363 +                   SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
364      if (i) return i;
365  
366      /* Allocate dev->priv and fill in 8390 specific dev fields. */
367 diff -urN linux-2.4.18/drivers/net/arlan.c linux/drivers/net/arlan.c
368 --- linux-2.4.18/drivers/net/arlan.c    Mon Feb 25 17:10:45 2002
369 +++ linux/drivers/net/arlan.c   Mon Feb 25 17:42:30 2002
370 @@ -1299,7 +1299,8 @@
371                 return ret;
372  
373         arlan = ((struct arlan_private *) dev->priv)->card;
374 -       ret = request_irq(dev->irq, &arlan_interrupt, 0, dev->name, dev);
375 +       ret = request_irq(dev->irq, &arlan_interrupt, SA_NET_RANDOM,
376 +                       dev->name, dev);
377         if (ret)
378         {
379                 printk(KERN_ERR "%s: unable to get IRQ %d .\n",
380 diff -urN linux-2.4.18/drivers/net/at1700.c linux/drivers/net/at1700.c
381 --- linux-2.4.18/drivers/net/at1700.c   Mon Feb 25 17:10:41 2002
382 +++ linux/drivers/net/at1700.c  Mon Feb 25 17:42:30 2002
383 @@ -439,7 +439,8 @@
384         lp->jumpered = is_fmv18x;
385         lp->mca_slot = slot;
386         /* Snarf the interrupt vector now. */
387 -       ret = request_irq(irq, &net_interrupt, 0, dev->name, dev);
388 +       ret = request_irq(irq, &net_interrupt, SA_NET_RANDOM,
389 +                       dev->name, dev);
390         if (ret) {
391                 printk ("  AT1700 at %#3x is unusable due to a conflict on"
392                                 "IRQ %d.\n", ioaddr, irq);
393 diff -urN linux-2.4.18/drivers/net/atarilance.c linux/drivers/net/atarilance.c
394 --- linux-2.4.18/drivers/net/atarilance.c       Mon Feb 25 17:10:44 2002
395 +++ linux/drivers/net/atarilance.c      Mon Feb 25 17:42:30 2002
396 @@ -546,7 +546,8 @@
397         if (lp->cardtype == PAM_CARD ||
398                 memaddr == (unsigned short *)0xffe00000) {
399                 /* PAMs card and Riebl on ST use level 5 autovector */
400 -               request_irq(IRQ_AUTO_5, lance_interrupt, IRQ_TYPE_PRIO,
401 +               request_irq(IRQ_AUTO_5, lance_interrupt,
402 +                           IRQ_TYPE_PRIO | SA_NET_RANDOM,
403                             "PAM/Riebl-ST Ethernet", dev);
404                 dev->irq = (unsigned short)IRQ_AUTO_5;
405         }
406 @@ -560,7 +561,8 @@
407                         printk( "Lance: request for VME interrupt failed\n" );
408                         return( 0 );
409                 }
410 -               request_irq(irq, lance_interrupt, IRQ_TYPE_PRIO,
411 +               request_irq(irq, lance_interrupt,
412 +                           IRQ_TYPE_PRIO | SA_NET_RANDOM,
413                             "Riebl-VME Ethernet", dev);
414                 dev->irq = irq;
415         }
416 diff -urN linux-2.4.18/drivers/net/atp.c linux/drivers/net/atp.c
417 --- linux-2.4.18/drivers/net/atp.c      Mon Feb 25 17:10:41 2002
418 +++ linux/drivers/net/atp.c     Mon Feb 25 17:42:30 2002
419 @@ -438,7 +438,8 @@
420         /* The interrupt line is turned off (tri-stated) when the device isn't in
421            use.  That's especially important for "attached" interfaces where the
422            port or interrupt may be shared. */
423 -       ret = request_irq(dev->irq, &atp_interrupt, 0, dev->name, dev);
424 +       ret = request_irq(dev->irq, &atp_interrupt, SA_NET_RANDOM,
425 +                       dev->name, dev);
426         if (ret)
427                 return ret;
428  
429 diff -urN linux-2.4.18/drivers/net/au1000_eth.c linux/drivers/net/au1000_eth.c
430 --- linux-2.4.18/drivers/net/au1000_eth.c       Mon Feb 25 17:10:48 2002
431 +++ linux/drivers/net/au1000_eth.c      Mon Feb 25 17:42:30 2002
432 @@ -819,7 +819,8 @@
433         }
434         netif_start_queue(dev);
435  
436 -       if ((retval = request_irq(dev->irq, &au1000_interrupt, 0, dev->name, dev))) {
437 +       if ((retval = request_irq(dev->irq, &au1000_interrupt,
438 +                       SA_NET_RANDOM, dev->name, dev))) {
439                 printk(KERN_ERR "%s: unable to get IRQ %d\n", dev->name, dev->irq);
440                 MOD_DEC_USE_COUNT;
441                 return retval;
442 diff -urN linux-2.4.18/drivers/net/bagetlance.c linux/drivers/net/bagetlance.c
443 --- linux-2.4.18/drivers/net/bagetlance.c       Mon Feb 25 17:10:46 2002
444 +++ linux/drivers/net/bagetlance.c      Mon Feb 25 17:42:30 2002
445 @@ -622,7 +622,8 @@
446         if (lp->cardtype == PAM_CARD ||
447                 memaddr == (unsigned short *)0xffe00000) {
448                 /* PAMs card and Riebl on ST use level 5 autovector */
449 -               request_irq(BAGET_LANCE_IRQ, lance_interrupt, IRQ_TYPE_PRIO,
450 +               request_irq(BAGET_LANCE_IRQ, lance_interrupt,
451 +                           IRQ_TYPE_PRIO | SA_NET_RANDOM,
452                             "PAM/Riebl-ST Ethernet", dev);
453                 dev->irq = (unsigned short)BAGET_LANCE_IRQ;
454         }
455 diff -urN linux-2.4.18/drivers/net/bmac.c linux/drivers/net/bmac.c
456 --- linux-2.4.18/drivers/net/bmac.c     Mon Feb 25 17:10:45 2002
457 +++ linux/drivers/net/bmac.c    Mon Feb 25 17:42:30 2002
458 @@ -1418,17 +1418,20 @@
459         /*     init_timer(&bp->tx_timeout); */
460         /*     bp->timeout_active = 0; */
461  
462 -       ret = request_irq(dev->irq, bmac_misc_intr, 0, "BMAC-misc", dev);
463 +       ret = request_irq(dev->irq, bmac_misc_intr, SA_NET_RANDOM,
464 +                       "BMAC-misc", dev);
465         if (ret) {
466                 printk(KERN_ERR "BMAC: can't get irq %d\n", dev->irq);
467                 goto err_out_iounmap_rx;
468         }
469 -       ret = request_irq(bmac->intrs[1].line, bmac_txdma_intr, 0, "BMAC-txdma", dev);
470 +       ret = request_irq(bmac->intrs[1].line, bmac_txdma_intr,
471 +                       SA_NET_RANDOM, "BMAC-txdma", dev);
472         if (ret) {
473                 printk(KERN_ERR "BMAC: can't get irq %d\n", bmac->intrs[1].line);
474                 goto err_out_irq0;
475         }
476 -       ret = request_irq(bmac->intrs[2].line, bmac_rxdma_intr, 0, "BMAC-rxdma", dev);
477 +       ret = request_irq(bmac->intrs[2].line, bmac_rxdma_intr,
478 +                       SA_NET_RANDOM, "BMAC-rxdma", dev);
479         if (ret) {
480                 printk(KERN_ERR "BMAC: can't get irq %d\n", bmac->intrs[2].line);
481                 goto err_out_irq1;
482 diff -urN linux-2.4.18/drivers/net/cs89x0.c linux/drivers/net/cs89x0.c
483 --- linux-2.4.18/drivers/net/cs89x0.c   Mon Feb 25 17:10:41 2002
484 +++ linux/drivers/net/cs89x0.c  Mon Feb 25 17:42:30 2002
485 @@ -1057,7 +1057,7 @@
486  
487                 for (i = 2; i < CS8920_NO_INTS; i++) {
488                         if ((1 << dev->irq) & lp->irq_map) {
489 -                               if (request_irq(i, net_interrupt, 0, dev->name, dev) == 0) {
490 +                               if (request_irq(i, net_interrupt, SA_NET_RANDOM, dev->name, dev) == 0) {
491                                         dev->irq = i;
492                                         write_irq(dev, lp->chip_type, i);
493                                         /* writereg(dev, PP_BufCFG, GENERATE_SW_INTERRUPT); */
494 @@ -1086,7 +1086,8 @@
495                 writereg(dev, PP_BusCTL, ENABLE_IRQ | MEMORY_ON);
496  #endif
497                 write_irq(dev, lp->chip_type, dev->irq);
498 -               ret = request_irq(dev->irq, &net_interrupt, 0, dev->name, dev);
499 +               ret = request_irq(dev->irq, &net_interrupt,
500 +                               SA_NET_RANDOM, dev->name, dev);
501                 if (ret) {
502                         if (net_debug)
503                                 printk(KERN_DEBUG "cs89x0: request_irq(%d) failed\n", dev->irq);
504 diff -urN linux-2.4.18/drivers/net/daynaport.c linux/drivers/net/daynaport.c
505 --- linux-2.4.18/drivers/net/daynaport.c        Mon Feb 25 17:10:45 2002
506 +++ linux/drivers/net/daynaport.c       Mon Feb 25 17:42:30 2002
507 @@ -643,7 +643,8 @@
508         /*                             - funaho@jurai.org (1999-05-17) */
509  
510         /* Non-slow interrupt, works around issues with the SONIC driver */
511 -       ret = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev); 
512 +       ret = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM,
513 +                       dev->name, dev); 
514         if (ret) {
515                 printk ("%s: unable to get IRQ %d.\n", dev->name, dev->irq);
516                 return ret;
517 diff -urN linux-2.4.18/drivers/net/de4x5.c linux/drivers/net/de4x5.c
518 --- linux-2.4.18/drivers/net/de4x5.c    Mon Feb 25 17:10:41 2002
519 +++ linux/drivers/net/de4x5.c   Mon Feb 25 17:42:30 2002
520 @@ -1404,11 +1404,12 @@
521      lp->state = OPEN;
522      de4x5_dbg_open(dev);
523      
524 -    if (request_irq(dev->irq, (void *)de4x5_interrupt, SA_SHIRQ, 
525 -                                                    lp->adapter_name, dev)) {
526 +    if (request_irq(dev->irq, (void *)de4x5_interrupt,
527 +            SA_SHIRQ | SA_NET_RANDOM, lp->adapter_name, dev)) {
528         printk("de4x5_open(): Requested IRQ%d is busy - attemping FAST/SHARE...", dev->irq);
529 -       if (request_irq(dev->irq, de4x5_interrupt, SA_INTERRUPT | SA_SHIRQ,
530 -                                                    lp->adapter_name, dev)) {
531 +       if (request_irq(dev->irq, de4x5_interrupt,
532 +                SA_INTERRUPT | SA_SHIRQ | SA_NET_RANDOM,
533 +               lp->adapter_name, dev)) {
534             printk("\n              Cannot get IRQ- reconfigure your hardware.\n");
535             disable_ast(dev);
536             de4x5_free_rx_buffs(dev);
537 diff -urN linux-2.4.18/drivers/net/de600.c linux/drivers/net/de600.c
538 --- linux-2.4.18/drivers/net/de600.c    Mon Feb 25 17:10:41 2002
539 +++ linux/drivers/net/de600.c   Mon Feb 25 17:42:30 2002
540 @@ -344,7 +344,8 @@
541  static int
542  de600_open(struct net_device *dev)
543  {
544 -       int ret = request_irq(DE600_IRQ, de600_interrupt, 0, dev->name, dev);
545 +       int ret = request_irq(DE600_IRQ, de600_interrupt, SA_NET_RANDOM,
546 +                       dev->name, dev);
547         if (ret) {
548                 printk ("%s: unable to get IRQ %d\n", dev->name, DE600_IRQ);
549                 return ret;
550 diff -urN linux-2.4.18/drivers/net/de620.c linux/drivers/net/de620.c
551 --- linux-2.4.18/drivers/net/de620.c    Mon Feb 25 17:10:41 2002
552 +++ linux/drivers/net/de620.c   Mon Feb 25 17:42:30 2002
553 @@ -443,7 +443,8 @@
554   */
555  static int de620_open(struct net_device *dev)
556  {
557 -       int ret = request_irq(dev->irq, de620_interrupt, 0, dev->name, dev);
558 +       int ret = request_irq(dev->irq, de620_interrupt, SA_NET_RANDOM,
559 +                       dev->name, dev);
560         if (ret) {
561                 printk (KERN_ERR "%s: unable to get IRQ %d\n", dev->name, dev->irq);
562                 return ret;
563 diff -urN linux-2.4.18/drivers/net/declance.c linux/drivers/net/declance.c
564 --- linux-2.4.18/drivers/net/declance.c Mon Feb 25 17:10:46 2002
565 +++ linux/drivers/net/declance.c        Mon Feb 25 17:42:30 2002
566 @@ -800,7 +800,8 @@
567         netif_start_queue(dev);
568  
569         /* Associate IRQ with lance_interrupt */
570 -       if (request_irq(dev->irq, &lance_interrupt, 0, lp->name, dev)) {
571 +       if (request_irq(dev->irq, &lance_interrupt, SA_NET_RANDOM,
572 +                               lp->name, dev)) {
573                 printk("Lance: Can't get irq %d\n", dev->irq);
574                 return -EAGAIN;
575         }
576 diff -urN linux-2.4.18/drivers/net/defxx.c linux/drivers/net/defxx.c
577 --- linux-2.4.18/drivers/net/defxx.c    Mon Feb 25 17:10:44 2002
578 +++ linux/drivers/net/defxx.c   Mon Feb 25 17:42:30 2002
579 @@ -1218,7 +1218,8 @@
580         
581         /* Register IRQ - support shared interrupts by passing device ptr */
582  
583 -       ret = request_irq(dev->irq, (void *)dfx_interrupt, SA_SHIRQ, dev->name, dev);
584 +       ret = request_irq(dev->irq, (void *)dfx_interrupt,
585 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
586         if (ret) {
587                 printk(KERN_ERR "%s: Requested IRQ %d is busy\n", dev->name, dev->irq);
588                 return ret;
589 diff -urN linux-2.4.18/drivers/net/depca.c linux/drivers/net/depca.c
590 --- linux-2.4.18/drivers/net/depca.c    Mon Feb 25 17:10:41 2002
591 +++ linux/drivers/net/depca.c   Mon Feb 25 17:42:30 2002
592 @@ -780,7 +780,8 @@
593  
594    depca_dbg_open(dev);
595  
596 -  if (request_irq(dev->irq, &depca_interrupt, 0, lp->adapter_name, dev)) {
597 +  if (request_irq(dev->irq, &depca_interrupt, SA_NET_RANDOM,
598 +                         lp->adapter_name, dev)) {
599      printk("depca_open(): Requested IRQ%d is busy\n",dev->irq);
600      status = -EAGAIN;
601    } else {
602 diff -urN linux-2.4.18/drivers/net/dgrs.c linux/drivers/net/dgrs.c
603 --- linux-2.4.18/drivers/net/dgrs.c     Mon Feb 25 17:10:41 2002
604 +++ linux/drivers/net/dgrs.c    Mon Feb 25 17:42:30 2002
605 @@ -1178,7 +1178,8 @@
606          */
607         if (priv->plxreg)
608                 OUTL(dev->base_addr + PLX_LCL2PCI_DOORBELL, 1);
609 -       rc = request_irq(dev->irq, &dgrs_intr, SA_SHIRQ, "RightSwitch", dev);
610 +       rc = request_irq(dev->irq, &dgrs_intr, SA_SHIRQ | SA_NET_RANDOM,
611 +                       "RightSwitch", dev);
612         if (rc)
613                 return (rc);
614  
615 diff -urN linux-2.4.18/drivers/net/dl2k.c linux/drivers/net/dl2k.c
616 --- linux-2.4.18/drivers/net/dl2k.c     Mon Feb 25 17:10:45 2002
617 +++ linux/drivers/net/dl2k.c    Mon Feb 25 17:42:30 2002
618 @@ -400,7 +400,8 @@
619         long ioaddr = dev->base_addr;
620         int i;
621  
622 -       i = request_irq (dev->irq, &rio_interrupt, SA_SHIRQ, dev->name, dev);
623 +       i = request_irq (dev->irq, &rio_interrupt,
624 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
625         if (i)
626                 return i;
627         /* DebugCtrl bit 4, 5, 9 must set */
628 diff -urN linux-2.4.18/drivers/net/dmfe.c linux/drivers/net/dmfe.c
629 --- linux-2.4.18/drivers/net/dmfe.c     Mon Feb 25 17:10:45 2002
630 +++ linux/drivers/net/dmfe.c    Mon Feb 25 17:42:30 2002
631 @@ -561,7 +561,8 @@
632  
633         DMFE_DBUG(0, "dmfe_open", 0);
634  
635 -       ret = request_irq(dev->irq, &dmfe_interrupt, SA_SHIRQ, dev->name, dev);
636 +       ret = request_irq(dev->irq, &dmfe_interrupt,
637 +               SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
638         if (ret)
639                 return ret;
640  
641 diff -urN linux-2.4.18/drivers/net/e2100.c linux/drivers/net/e2100.c
642 --- linux-2.4.18/drivers/net/e2100.c    Mon Feb 25 17:10:41 2002
643 +++ linux/drivers/net/e2100.c   Mon Feb 25 17:42:30 2002
644 @@ -261,7 +261,8 @@
645         short ioaddr = dev->base_addr;
646         int retval;
647  
648 -       if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev)))
649 +       if ((retval = request_irq(dev->irq, ei_interrupt,
650 +                       SA_NET_RANDOM, dev->name, dev)))
651                 return retval;
652  
653         /* Set the interrupt line and memory base on the hardware. */
654 diff -urN linux-2.4.18/drivers/net/eepro.c linux/drivers/net/eepro.c
655 --- linux-2.4.18/drivers/net/eepro.c    Mon Feb 25 17:10:41 2002
656 +++ linux/drivers/net/eepro.c   Mon Feb 25 17:42:30 2002
657 @@ -962,7 +962,7 @@
658                 return -EAGAIN;
659         }
660  
661 -       if (request_irq(dev->irq , &eepro_interrupt, 0, dev->name, dev)) {
662 +       if (request_irq(dev->irq , &eepro_interrupt, SA_NET_RANDOM, dev->name, dev)) {
663                 printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq);
664                 return -EAGAIN;
665         }
666 diff -urN linux-2.4.18/drivers/net/eepro100.c linux/drivers/net/eepro100.c
667 --- linux-2.4.18/drivers/net/eepro100.c Mon Feb 25 17:10:44 2002
668 +++ linux/drivers/net/eepro100.c        Mon Feb 25 17:42:30 2002
669 @@ -940,7 +940,8 @@
670         sp->in_interrupt = 0;
671  
672         /* .. we can safely take handler calls during init. */
673 -       retval = request_irq(dev->irq, &speedo_interrupt, SA_SHIRQ, dev->name, dev);
674 +       retval = request_irq(dev->irq, &speedo_interrupt,
675 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
676         if (retval) {
677                 MOD_DEC_USE_COUNT;
678                 return retval;
679 diff -urN linux-2.4.18/drivers/net/eexpress.c linux/drivers/net/eexpress.c
680 --- linux-2.4.18/drivers/net/eexpress.c Mon Feb 25 17:10:41 2002
681 +++ linux/drivers/net/eexpress.c        Mon Feb 25 17:42:30 2002
682 @@ -433,7 +433,8 @@
683         if (!dev->irq || !irqrmap[dev->irq])
684                 return -ENXIO;
685  
686 -       ret = request_irq(dev->irq,&eexp_irq,0,dev->name,dev);
687 +       ret = request_irq(dev->irq,&eexp_irq,SA_NET_RANDOM,
688 +                       dev->name,dev);
689         if (ret) return ret;
690  
691         request_region(ioaddr, EEXP_IO_EXTENT, "EtherExpress");
692 diff -urN linux-2.4.18/drivers/net/epic100.c linux/drivers/net/epic100.c
693 --- linux-2.4.18/drivers/net/epic100.c  Mon Feb 25 17:10:45 2002
694 +++ linux/drivers/net/epic100.c Mon Feb 25 17:42:30 2002
695 @@ -663,7 +663,8 @@
696         /* Soft reset the chip. */
697         outl(0x4001, ioaddr + GENCTL);
698  
699 -       if ((retval = request_irq(dev->irq, &epic_interrupt, SA_SHIRQ, dev->name, dev)))
700 +       if ((retval = request_irq(dev->irq, &epic_interrupt,
701 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev)))
702                 return retval;
703  
704         epic_init_ring(dev);
705 diff -urN linux-2.4.18/drivers/net/es3210.c linux/drivers/net/es3210.c
706 --- linux-2.4.18/drivers/net/es3210.c   Mon Feb 25 17:10:44 2002
707 +++ linux/drivers/net/es3210.c  Mon Feb 25 17:42:30 2002
708 @@ -212,7 +212,8 @@
709                 printk(" assigning IRQ %d", dev->irq);
710         }
711  
712 -       if (request_irq(dev->irq, ei_interrupt, 0, "es3210", dev)) {
713 +       if (request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM,
714 +                       "es3210", dev)) {
715                 printk (" unable to get IRQ %d.\n", dev->irq);
716                 retval = -EAGAIN;
717                 goto out;
718 diff -urN linux-2.4.18/drivers/net/eth16i.c linux/drivers/net/eth16i.c
719 --- linux-2.4.18/drivers/net/eth16i.c   Mon Feb 25 17:10:41 2002
720 +++ linux/drivers/net/eth16i.c  Mon Feb 25 17:42:30 2002
721 @@ -521,7 +521,8 @@
722  
723         /* Try to obtain interrupt vector */
724  
725 -       if ((retval = request_irq(dev->irq, (void *)&eth16i_interrupt, 0, dev->name, dev))) {
726 +       if ((retval = request_irq(dev->irq, (void *)&eth16i_interrupt,
727 +                       SA_NET_RANDOM, dev->name, dev))) {
728                 printk(KERN_WARNING "%s: %s at %#3x, but is unusable due conflicting IRQ %d.\n", 
729                        dev->name, cardname, ioaddr, dev->irq);
730                 goto out;
731 diff -urN linux-2.4.18/drivers/net/ewrk3.c linux/drivers/net/ewrk3.c
732 --- linux-2.4.18/drivers/net/ewrk3.c    Mon Feb 25 17:10:41 2002
733 +++ linux/drivers/net/ewrk3.c   Mon Feb 25 17:42:30 2002
734 @@ -640,7 +640,8 @@
735         STOP_EWRK3;
736  
737         if (!lp->hard_strapped) {
738 -               if (request_irq(dev->irq, (void *) ewrk3_interrupt, 0, "ewrk3", dev)) {
739 +               if (request_irq(dev->irq, (void *) ewrk3_interrupt,
740 +                               SA_NET_RANDOM, "ewrk3", dev)) {
741                         printk("ewrk3_open(): Requested IRQ%d is busy\n", dev->irq);
742                         status = -EAGAIN;
743                 } else {
744 diff -urN linux-2.4.18/drivers/net/fc/iph5526.c linux/drivers/net/fc/iph5526.c
745 --- linux-2.4.18/drivers/net/fc/iph5526.c       Mon Feb 25 17:10:46 2002
746 +++ linux/drivers/net/fc/iph5526.c      Mon Feb 25 17:42:30 2002
747 @@ -3844,7 +3844,7 @@
748                 int irqval = 0;
749                         /* Found it, get IRQ.
750                          */
751 -                       irqval = request_irq(pci_irq_line, &tachyon_interrupt, pci_irq_line ? SA_SHIRQ : 0, fi->name, host);
752 +                       irqval = request_irq(pci_irq_line, &tachyon_interrupt, pci_irq_line ? SA_SHIRQ : 0 | SA_NET_RANDOM, fi->name, host);
753                         if (irqval) {
754                                 printk("iph5526.c : Unable to get IRQ %d (irqval = %d).\n", pci_irq_line, irqval);
755                                 scsi_unregister(host);
756 diff -urN linux-2.4.18/drivers/net/fealnx.c linux/drivers/net/fealnx.c
757 --- linux-2.4.18/drivers/net/fealnx.c   Mon Feb 25 17:10:46 2002
758 +++ linux/drivers/net/fealnx.c  Mon Feb 25 17:42:30 2002
759 @@ -880,7 +880,8 @@
760  
761         writel(0x00000001, ioaddr + BCR);       /* Reset */
762  
763 -       if (request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev))
764 +       if (request_irq(dev->irq, &intr_handler,
765 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev))
766                 return -EAGAIN;
767  
768         init_ring(dev);
769 diff -urN linux-2.4.18/drivers/net/fmv18x.c linux/drivers/net/fmv18x.c
770 --- linux-2.4.18/drivers/net/fmv18x.c   Mon Feb 25 17:10:41 2002
771 +++ linux/drivers/net/fmv18x.c  Mon Feb 25 17:42:30 2002
772 @@ -200,7 +200,8 @@
773         }
774  
775         /* Snarf the interrupt vector now. */
776 -       retval = request_irq(irq, &net_interrupt, 0, dev->name, dev);
777 +       retval = request_irq(irq, &net_interrupt, SA_NET_RANDOM,
778 +                       dev->name, dev);
779         if (retval) {
780                 printk ("FMV-18x found at %#3x, but it's unusable due to a conflict on"
781                                 "IRQ %d.\n", ioaddr, irq);
782 diff -urN linux-2.4.18/drivers/net/gmac.c linux/drivers/net/gmac.c
783 --- linux-2.4.18/drivers/net/gmac.c     Mon Feb 25 17:10:45 2002
784 +++ linux/drivers/net/gmac.c    Mon Feb 25 17:42:30 2002
785 @@ -1085,7 +1085,8 @@
786                 return -EIO;
787  
788         /* Get our interrupt */
789 -       ret = request_irq(dev->irq, gmac_interrupt, 0, dev->name, dev);
790 +       ret = request_irq(dev->irq, gmac_interrupt,
791 +                       SA_NET_RANDOM, dev->name, dev);
792         if (ret) {
793                 printk(KERN_ERR "%s can't get irq %d\n", dev->name, dev->irq);
794                 return ret;
795 diff -urN linux-2.4.18/drivers/net/gt96100eth.c linux/drivers/net/gt96100eth.c
796 --- linux-2.4.18/drivers/net/gt96100eth.c       Mon Feb 25 17:10:46 2002
797 +++ linux/drivers/net/gt96100eth.c      Mon Feb 25 17:42:30 2002
798 @@ -826,7 +826,8 @@
799                 printk("%s: gt96100_open: dev=%p\n", dev->name, dev);
800  
801         if ((retval = request_irq(dev->irq, &gt96100_interrupt,
802 -                                 SA_SHIRQ, dev->name, dev))) {
803 +                                 SA_SHIRQ | SA_NET_RANDOM,
804 +                                 dev->name, dev))) {
805                 printk(KERN_ERR "%s: unable to get IRQ %d\n", dev->name,
806                        dev->irq);
807                 MOD_DEC_USE_COUNT;
808 diff -urN linux-2.4.18/drivers/net/hamachi.c linux/drivers/net/hamachi.c
809 --- linux-2.4.18/drivers/net/hamachi.c  Mon Feb 25 17:10:46 2002
810 +++ linux/drivers/net/hamachi.c Mon Feb 25 17:42:30 2002
811 @@ -849,7 +849,8 @@
812         u32 rx_int_var, tx_int_var;
813         u16 fifo_info;
814  
815 -       i = request_irq(dev->irq, &hamachi_interrupt, SA_SHIRQ, dev->name, dev);
816 +       i = request_irq(dev->irq, &hamachi_interrupt,
817 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
818         if (i)
819                 return i;
820  
821 diff -urN linux-2.4.18/drivers/net/hamradio/baycom_ser_fdx.c linux/drivers/net/hamradio/baycom_ser_fdx.c
822 --- linux-2.4.18/drivers/net/hamradio/baycom_ser_fdx.c  Mon Feb 25 17:10:42 2002
823 +++ linux/drivers/net/hamradio/baycom_ser_fdx.c Mon Feb 25 17:42:30 2002
824 @@ -428,7 +428,8 @@
825         outb(0, FCR(dev->base_addr));  /* disable FIFOs */
826         outb(0x0d, MCR(dev->base_addr));
827         outb(0, IER(dev->base_addr));
828 -       if (request_irq(dev->irq, ser12_interrupt, SA_INTERRUPT | SA_SHIRQ,
829 +       if (request_irq(dev->irq, ser12_interrupt,
830 +                       SA_INTERRUPT | SA_SHIRQ | SA_NET_RANDOM,
831                         "baycom_ser_fdx", dev))
832                 return -EBUSY;
833         request_region(dev->base_addr, SER12_EXTENT, "baycom_ser_fdx");
834 diff -urN linux-2.4.18/drivers/net/hamradio/baycom_ser_hdx.c linux/drivers/net/hamradio/baycom_ser_hdx.c
835 --- linux-2.4.18/drivers/net/hamradio/baycom_ser_hdx.c  Mon Feb 25 17:10:42 2002
836 +++ linux/drivers/net/hamradio/baycom_ser_hdx.c Mon Feb 25 17:42:30 2002
837 @@ -485,7 +485,8 @@
838         outb(0, FCR(dev->base_addr));  /* disable FIFOs */
839         outb(0x0d, MCR(dev->base_addr));
840         outb(0, IER(dev->base_addr));
841 -       if (request_irq(dev->irq, ser12_interrupt, SA_INTERRUPT | SA_SHIRQ,
842 +       if (request_irq(dev->irq, ser12_interrupt,
843 +                       SA_INTERRUPT | SA_SHIRQ | SA_NET_RANDOM,
844                         "baycom_ser12", dev))
845                 return -EBUSY;
846         request_region(dev->base_addr, SER12_EXTENT, "baycom_ser12");
847 diff -urN linux-2.4.18/drivers/net/hamradio/dmascc.c linux/drivers/net/hamradio/dmascc.c
848 --- linux-2.4.18/drivers/net/hamradio/dmascc.c  Mon Feb 25 17:10:44 2002
849 +++ linux/drivers/net/hamradio/dmascc.c Mon Feb 25 17:42:30 2002
850 @@ -713,7 +713,7 @@
851  
852    /* Request IRQ if not already used by other channel */
853    if (!info->irq_used) {
854 -    if (request_irq(dev->irq, scc_isr, 0, "dmascc", info)) {
855 +    if (request_irq(dev->irq, scc_isr, SA_NET_RANDOM, "dmascc", info)) {
856        MOD_DEC_USE_COUNT;
857        return -EAGAIN;
858      }
859 diff -urN linux-2.4.18/drivers/net/hamradio/scc.c linux/drivers/net/hamradio/scc.c
860 --- linux-2.4.18/drivers/net/hamradio/scc.c     Mon Feb 25 17:10:44 2002
861 +++ linux/drivers/net/hamradio/scc.c    Mon Feb 25 17:42:30 2002
862 @@ -1769,7 +1769,7 @@
863                                 
864                         if (!Ivec[hwcfg.irq].used && hwcfg.irq)
865                         {
866 -                               if (request_irq(hwcfg.irq, scc_isr, SA_INTERRUPT, "AX.25 SCC", NULL))
867 +                               if (request_irq(hwcfg.irq, scc_isr, SA_INTERRUPT | SA_NET_RANDOM, "AX.25 SCC", NULL))
868                                         printk(KERN_WARNING "z8530drv: warning, cannot get IRQ %d\n", hwcfg.irq);
869                                 else
870                                         Ivec[hwcfg.irq].used = 1;
871 diff -urN linux-2.4.18/drivers/net/hamradio/soundmodem/sm_sbc.c linux/drivers/net/hamradio/soundmodem/sm_sbc.c
872 --- linux-2.4.18/drivers/net/hamradio/soundmodem/sm_sbc.c       Mon Feb 25 17:10:44 2002
873 +++ linux/drivers/net/hamradio/soundmodem/sm_sbc.c      Mon Feb 25 17:42:30 2002
874 @@ -436,7 +436,8 @@
875                 kfree(sm->dma.obuf);
876                 return -EBUSY;
877         }
878 -       if (request_irq(dev->irq, sbc_interrupt, SA_INTERRUPT, 
879 +       if (request_irq(dev->irq, sbc_interrupt,
880 +                       SA_INTERRUPT | SA_NET_RANDOM, 
881                         sm->hwdrv->hw_name, dev)) {
882                 free_dma(dev->dma);
883                 kfree(sm->dma.obuf);
884 @@ -815,7 +816,8 @@
885                 free_dma(dev->dma);
886                 return -EBUSY;
887         }
888 -       if (request_irq(dev->irq, sbcfdx_interrupt, SA_INTERRUPT, 
889 +       if (request_irq(dev->irq, sbcfdx_interrupt,
890 +                       SA_INTERRUPT | SA_NET_RANDOM, 
891                         sm->hwdrv->hw_name, dev)) {
892                 kfree(sm->dma.ibuf);
893                 kfree(sm->dma.obuf);
894 diff -urN linux-2.4.18/drivers/net/hamradio/soundmodem/sm_wss.c linux/drivers/net/hamradio/soundmodem/sm_wss.c
895 --- linux-2.4.18/drivers/net/hamradio/soundmodem/sm_wss.c       Mon Feb 25 17:10:44 2002
896 +++ linux/drivers/net/hamradio/soundmodem/sm_wss.c      Mon Feb 25 17:42:30 2002
897 @@ -473,7 +473,8 @@
898                 kfree(sm->dma.obuf);
899                 return -EBUSY;
900         }
901 -       if (request_irq(dev->irq, wss_interrupt, SA_INTERRUPT, 
902 +       if (request_irq(dev->irq, wss_interrupt,
903 +                       SA_INTERRUPT | SA_NET_RANDOM,
904                         sm->hwdrv->hw_name, dev)) {
905                 free_dma(dev->dma);
906                 kfree(sm->dma.obuf);
907 @@ -827,7 +828,8 @@
908                 free_dma(dev->dma);
909                 return -EBUSY;
910         }
911 -       if (request_irq(dev->irq, wssfdx_interrupt, SA_INTERRUPT, 
912 +       if (request_irq(dev->irq, wssfdx_interrupt,
913 +                       SA_INTERRUPT | SA_NET_RANDOM,
914                         sm->hwdrv->hw_name, dev)) {
915                 kfree(sm->dma.ibuf);
916                 kfree(sm->dma.obuf);
917 diff -urN linux-2.4.18/drivers/net/hamradio/yam.c linux/drivers/net/hamradio/yam.c
918 --- linux-2.4.18/drivers/net/hamradio/yam.c     Mon Feb 25 17:10:44 2002
919 +++ linux/drivers/net/hamradio/yam.c    Mon Feb 25 17:42:30 2002
920 @@ -862,7 +862,7 @@
921                 return -EIO;
922         }
923         outb(0, IER(dev->base_addr));
924 -       if (request_irq(dev->irq, yam_interrupt, SA_INTERRUPT | SA_SHIRQ, dev->name, dev)) {
925 +       if (request_irq(dev->irq, yam_interrupt, SA_INTERRUPT | SA_SHIRQ | SA_NET_RANDOM, dev->name, dev)) {
926                 printk(KERN_ERR "%s: irq %d busy\n", dev->name, dev->irq);
927                 return -EBUSY;
928         }
929 diff -urN linux-2.4.18/drivers/net/hp-plus.c linux/drivers/net/hp-plus.c
930 --- linux-2.4.18/drivers/net/hp-plus.c  Mon Feb 25 17:10:41 2002
931 +++ linux/drivers/net/hp-plus.c Mon Feb 25 17:42:30 2002
932 @@ -253,7 +253,8 @@
933         int option_reg;
934         int retval;
935  
936 -       if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) {
937 +       if ((retval = request_irq(dev->irq, ei_interrupt,
938 +                       SA_NET_RANDOM, dev->name, dev))) {
939             return retval;
940         }
941  
942 diff -urN linux-2.4.18/drivers/net/hp.c linux/drivers/net/hp.c
943 --- linux-2.4.18/drivers/net/hp.c       Mon Feb 25 17:10:41 2002
944 +++ linux/drivers/net/hp.c      Mon Feb 25 17:42:30 2002
945 @@ -157,8 +157,7 @@
946                                 /* Twinkle the interrupt, and check if it's seen. */
947                                 outb_p(irqmap[irq] | HP_RUN, ioaddr + HP_CONFIGURE);
948                                 outb_p( 0x00 | HP_RUN, ioaddr + HP_CONFIGURE);
949 -                               if (irq == probe_irq_off(cookie)                 /* It's a good IRQ line! */
950 -                                       && request_irq (irq, ei_interrupt, 0, dev->name, dev) == 0) {
951 +                               if (irq == probe_irq_off(cookie) /* It's a good IRQ line! */ && request_irq (irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev) == 0) {
952                                         printk(" selecting IRQ %d.\n", irq);
953                                         dev->irq = *irqp;
954                                         break;
955 diff -urN linux-2.4.18/drivers/net/hp100.c linux/drivers/net/hp100.c
956 --- linux-2.4.18/drivers/net/hp100.c    Mon Feb 25 17:10:41 2002
957 +++ linux/drivers/net/hp100.c   Mon Feb 25 17:42:31 2002
958 @@ -1124,8 +1124,9 @@
959  
960         /* New: if bus is PCI or EISA, interrupts might be shared interrupts */
961         if (request_irq(dev->irq, hp100_interrupt,
962 -                       lp->bus == HP100_BUS_PCI || lp->bus ==
963 -                       HP100_BUS_EISA ? SA_SHIRQ : SA_INTERRUPT,
964 +                       (lp->bus == HP100_BUS_PCI || lp->bus ==
965 +                       HP100_BUS_EISA ? SA_SHIRQ : SA_INTERRUPT) |
966 +                       SA_NET_RANDOM,
967                         lp->id->name, dev)) {
968                 printk("hp100: %s: unable to get IRQ %d\n", dev->name, dev->irq);
969                 return -EAGAIN;
970 diff -urN linux-2.4.18/drivers/net/hydra.c linux/drivers/net/hydra.c
971 --- linux-2.4.18/drivers/net/hydra.c    Mon Feb 25 17:10:44 2002
972 +++ linux/drivers/net/hydra.c   Mon Feb 25 17:42:31 2002
973 @@ -129,8 +129,8 @@
974      dev->irq = IRQ_AMIGA_PORTS;
975  
976      /* Install the Interrupt handler */
977 -    if (request_irq(IRQ_AMIGA_PORTS, ei_interrupt, SA_SHIRQ, "Hydra Ethernet",
978 -                   dev))
979 +    if (request_irq(IRQ_AMIGA_PORTS, ei_interrupt,
980 +            SA_SHIRQ | SA_NET_RANDOM, "Hydra Ethernet", dev))
981         return -EAGAIN;
982  
983      /* Allocate dev->priv and fill in 8390 specific dev fields. */
984 diff -urN linux-2.4.18/drivers/net/ibmlana.c linux/drivers/net/ibmlana.c
985 --- linux-2.4.18/drivers/net/ibmlana.c  Mon Feb 25 17:10:46 2002
986 +++ linux/drivers/net/ibmlana.c Mon Feb 25 17:42:31 2002
987 @@ -856,7 +856,7 @@
988  
989         result =
990             request_irq(priv->realirq, irq_handler,
991 -                       SA_SHIRQ | SA_SAMPLE_RANDOM, dev->name, dev);
992 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
993         if (result != 0) {
994                 printk("%s: failed to register irq %d\n", dev->name,
995                        dev->irq);
996 diff -urN linux-2.4.18/drivers/net/ioc3-eth.c linux/drivers/net/ioc3-eth.c
997 --- linux-2.4.18/drivers/net/ioc3-eth.c Mon Feb 25 17:10:46 2002
998 +++ linux/drivers/net/ioc3-eth.c        Mon Feb 25 17:42:31 2002
999 @@ -1313,7 +1313,8 @@
1000  {
1001         struct ioc3_private *ip = dev->priv;
1002  
1003 -       if (request_irq(dev->irq, ioc3_interrupt, SA_SHIRQ, ioc3_str, dev)) {
1004 +       if (request_irq(dev->irq, ioc3_interrupt,
1005 +                       SA_SHIRQ | SA_NET_RANDOM, ioc3_str, dev)) {
1006                 printk(KERN_ERR "%s: Can't get irq %d\n", dev->name, dev->irq);
1007  
1008                 return -EAGAIN;
1009 diff -urN linux-2.4.18/drivers/net/irda/ali-ircc.c linux/drivers/net/irda/ali-ircc.c
1010 --- linux-2.4.18/drivers/net/irda/ali-ircc.c    Mon Feb 25 17:10:45 2002
1011 +++ linux/drivers/net/irda/ali-ircc.c   Mon Feb 25 17:42:31 2002
1012 @@ -1357,7 +1357,8 @@
1013         iobase = self->io.fir_base;
1014         
1015         /* Request IRQ and install Interrupt Handler */
1016 -       if (request_irq(self->io.irq, ali_ircc_interrupt, 0, dev->name, dev)) 
1017 +       if (request_irq(self->io.irq, ali_ircc_interrupt,
1018 +                       SA_NET_RANDOM, dev->name, dev)) 
1019         {
1020                 WARNING("%s, unable to allocate irq=%d\n", driver_name, 
1021                         self->io.irq);
1022 diff -urN linux-2.4.18/drivers/net/irda/irport.c linux/drivers/net/irda/irport.c
1023 --- linux-2.4.18/drivers/net/irda/irport.c      Mon Feb 25 17:10:45 2002
1024 +++ linux/drivers/net/irda/irport.c     Mon Feb 25 17:42:31 2002
1025 @@ -782,8 +782,8 @@
1026  
1027         iobase = self->io.sir_base;
1028  
1029 -       if (request_irq(self->io.irq, self->interrupt, 0, dev->name, 
1030 -                       (void *) dev)) {
1031 +       if (request_irq(self->io.irq, self->interrupt,
1032 +                       SA_NET_RANDOM, dev->name, (void *) dev)) {
1033                 IRDA_DEBUG(0, __FUNCTION__ "(), unable to allocate irq=%d\n",
1034                            self->io.irq);
1035                 return -EAGAIN;
1036 diff -urN linux-2.4.18/drivers/net/irda/nsc-ircc.c linux/drivers/net/irda/nsc-ircc.c
1037 --- linux-2.4.18/drivers/net/irda/nsc-ircc.c    Mon Feb 25 17:10:45 2002
1038 +++ linux/drivers/net/irda/nsc-ircc.c   Mon Feb 25 17:42:31 2002
1039 @@ -1847,7 +1847,8 @@
1040         
1041         iobase = self->io.fir_base;
1042         
1043 -       if (request_irq(self->io.irq, nsc_ircc_interrupt, 0, dev->name, dev)) {
1044 +       if (request_irq(self->io.irq, nsc_ircc_interrupt,
1045 +                       SA_NET_RANDOM, dev->name, dev)) {
1046                 WARNING("%s, unable to allocate irq=%d\n", driver_name, 
1047                         self->io.irq);
1048                 return -EAGAIN;
1049 diff -urN linux-2.4.18/drivers/net/irda/sa1100_ir.c linux/drivers/net/irda/sa1100_ir.c
1050 --- linux-2.4.18/drivers/net/irda/sa1100_ir.c   Mon Feb 25 17:10:45 2002
1051 +++ linux/drivers/net/irda/sa1100_ir.c  Mon Feb 25 17:42:31 2002
1052 @@ -864,7 +864,8 @@
1053  
1054         si->speed = 9600;
1055  
1056 -       err = request_irq(dev->irq, sa1100_irda_irq, 0, dev->name, dev);
1057 +       err = request_irq(dev->irq, sa1100_irda_irq,
1058 +                       SA_NET_RANDOM, dev->name, dev);
1059         if (err)
1060                 goto err_irq;
1061  
1062 diff -urN linux-2.4.18/drivers/net/irda/toshoboe.c linux/drivers/net/irda/toshoboe.c
1063 --- linux-2.4.18/drivers/net/irda/toshoboe.c    Mon Feb 25 17:10:45 2002
1064 +++ linux/drivers/net/irda/toshoboe.c   Mon Feb 25 17:42:31 2002
1065 @@ -525,7 +525,8 @@
1066      return 0;
1067  
1068    if (request_irq (self->io.irq, toshoboe_interrupt,
1069 -                   SA_SHIRQ | SA_INTERRUPT, dev->name, (void *) self))
1070 +                   SA_SHIRQ | SA_INTERRUPT | SA_NET_RANDOM,
1071 +                  dev->name, (void *) self))
1072      {
1073  
1074        return -EAGAIN;
1075 diff -urN linux-2.4.18/drivers/net/irda/vlsi_ir.c linux/drivers/net/irda/vlsi_ir.c
1076 --- linux-2.4.18/drivers/net/irda/vlsi_ir.c     Mon Feb 25 17:10:45 2002
1077 +++ linux/drivers/net/irda/vlsi_ir.c    Mon Feb 25 17:42:31 2002
1078 @@ -832,8 +832,8 @@
1079  
1080         outb(IRINTR_INT_MASK, ndev->base_addr+VLSI_PIO_IRINTR);
1081  
1082 -       if (request_irq(ndev->irq, vlsi_interrupt, SA_SHIRQ,
1083 -                       drivername, ndev)) {
1084 +       if (request_irq(ndev->irq, vlsi_interrupt,
1085 +                       SA_SHIRQ | SA_NET_RANDOM, drivername, ndev)) {
1086                 printk(KERN_ERR "%s: couldn't get IRQ: %d\n",
1087                         __FUNCTION__, ndev->irq);
1088                 pci_release_regions(pdev);
1089 diff -urN linux-2.4.18/drivers/net/irda/w83977af_ir.c linux/drivers/net/irda/w83977af_ir.c
1090 --- linux-2.4.18/drivers/net/irda/w83977af_ir.c Mon Feb 25 17:10:45 2002
1091 +++ linux/drivers/net/irda/w83977af_ir.c        Mon Feb 25 17:42:31 2002
1092 @@ -1221,8 +1221,8 @@
1093         
1094         iobase = self->io.fir_base;
1095  
1096 -       if (request_irq(self->io.irq, w83977af_interrupt, 0, dev->name, 
1097 -                       (void *) dev)) {
1098 +       if (request_irq(self->io.irq, w83977af_interrupt,
1099 +                       SA_NET_RANDOM, dev->name, (void *) dev)) {
1100                 return -EAGAIN;
1101         }
1102         /*
1103 diff -urN linux-2.4.18/drivers/net/isa-skeleton.c linux/drivers/net/isa-skeleton.c
1104 --- linux-2.4.18/drivers/net/isa-skeleton.c     Mon Feb 25 17:10:46 2002
1105 +++ linux/drivers/net/isa-skeleton.c    Mon Feb 25 17:42:31 2002
1106 @@ -216,7 +216,8 @@
1107                 dev->irq = 9;
1108  
1109         {
1110 -               int irqval = request_irq(dev->irq, &net_interrupt, 0, cardname, dev);
1111 +               int irqval = request_irq(dev->irq, &net_interrupt,
1112 +                               SA_NET_RANDOM, cardname, dev);
1113                 if (irqval) {
1114                         printk("%s: unable to get IRQ %d (irqval=%d).\n",
1115                                    dev->name, dev->irq, irqval);
1116 diff -urN linux-2.4.18/drivers/net/lance.c linux/drivers/net/lance.c
1117 --- linux-2.4.18/drivers/net/lance.c    Mon Feb 25 17:10:41 2002
1118 +++ linux/drivers/net/lance.c   Mon Feb 25 17:42:31 2002
1119 @@ -672,7 +672,8 @@
1120         int i;
1121  
1122         if (dev->irq == 0 ||
1123 -               request_irq(dev->irq, &lance_interrupt, 0, lp->name, dev)) {
1124 +               request_irq(dev->irq, &lance_interrupt,
1125 +                               SA_NET_RANDOM, lp->name, dev)) {
1126                 return -EAGAIN;
1127         }
1128  
1129 diff -urN linux-2.4.18/drivers/net/lasi_82596.c linux/drivers/net/lasi_82596.c
1130 --- linux-2.4.18/drivers/net/lasi_82596.c       Mon Feb 25 17:10:46 2002
1131 +++ linux/drivers/net/lasi_82596.c      Mon Feb 25 17:42:31 2002
1132 @@ -999,7 +999,8 @@
1133  
1134         MOD_INC_USE_COUNT;
1135  
1136 -       if (request_irq(dev->irq, &i596_interrupt, 0, "i82596", dev)) {
1137 +       if (request_irq(dev->irq, &i596_interrupt, SA_NET_RANDOM,
1138 +                       "i82596", dev)) {
1139                 printk("%s: IRQ %d not free\n", dev->name, dev->irq);
1140                 goto out;
1141         }
1142 diff -urN linux-2.4.18/drivers/net/lne390.c linux/drivers/net/lne390.c
1143 --- linux-2.4.18/drivers/net/lne390.c   Mon Feb 25 17:10:45 2002
1144 +++ linux/drivers/net/lne390.c  Mon Feb 25 17:42:31 2002
1145 @@ -197,7 +197,8 @@
1146         }
1147         printk(" IRQ %d,", dev->irq);
1148  
1149 -       if ((ret = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) {
1150 +       if ((ret = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM,
1151 +                       dev->name, dev))) {
1152                 printk (" unable to get IRQ %d.\n", dev->irq);
1153                 kfree(dev->priv);
1154                 dev->priv = NULL;
1155 diff -urN linux-2.4.18/drivers/net/lp486e.c linux/drivers/net/lp486e.c
1156 --- linux-2.4.18/drivers/net/lp486e.c   Mon Feb 25 17:10:45 2002
1157 +++ linux/drivers/net/lp486e.c  Mon Feb 25 17:42:31 2002
1158 @@ -844,7 +844,8 @@
1159  i596_open(struct net_device *dev) {
1160         int i;
1161  
1162 -       i = request_irq(dev->irq, &i596_interrupt, SA_SHIRQ, dev->name, dev);
1163 +       i = request_irq(dev->irq, &i596_interrupt,
1164 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1165         if (i) {
1166                 printk("%s: IRQ %d not free\n", dev->name, dev->irq);
1167                 return i;
1168 diff -urN linux-2.4.18/drivers/net/mac89x0.c linux/drivers/net/mac89x0.c
1169 --- linux-2.4.18/drivers/net/mac89x0.c  Mon Feb 25 17:10:46 2002
1170 +++ linux/drivers/net/mac89x0.c Mon Feb 25 17:42:31 2002
1171 @@ -329,7 +329,8 @@
1172         writereg(dev, PP_BusCTL, readreg(dev, PP_BusCTL) & ~ENABLE_IRQ);
1173  
1174         /* Grab the interrupt */
1175 -       if (request_irq(dev->irq, &net_interrupt, 0, "cs89x0", dev))
1176 +       if (request_irq(dev->irq, &net_interrupt, SA_NET_RANDOM,
1177 +                       "cs89x0", dev))
1178                 return -EAGAIN;
1179  
1180         /* Set up the IRQ - Apparently magic */
1181 diff -urN linux-2.4.18/drivers/net/mace.c linux/drivers/net/mace.c
1182 --- linux-2.4.18/drivers/net/mace.c     Mon Feb 25 17:10:45 2002
1183 +++ linux/drivers/net/mace.c    Mon Feb 25 17:42:31 2002
1184 @@ -230,13 +230,14 @@
1185  
1186         mace_reset(dev);
1187  
1188 -       if (request_irq(dev->irq, mace_interrupt, 0, "MACE", dev))
1189 +       if (request_irq(dev->irq, mace_interrupt, SA_NET_RANDOM,
1190 +                       "MACE", dev))
1191                 printk(KERN_ERR "MACE: can't get irq %d\n", dev->irq);
1192 -       if (request_irq(mace->intrs[1].line, mace_txdma_intr, 0, "MACE-txdma",
1193 -                       dev))
1194 +       if (request_irq(mace->intrs[1].line, mace_txdma_intr,
1195 +                       SA_NET_RANDOM, "MACE-txdma", dev))
1196                 printk(KERN_ERR "MACE: can't get irq %d\n", mace->intrs[1].line);
1197 -       if (request_irq(mace->intrs[2].line, mace_rxdma_intr, 0, "MACE-rxdma",
1198 -                       dev))
1199 +       if (request_irq(mace->intrs[2].line, mace_rxdma_intr,
1200 +                       SA_NET_RANDOM, "MACE-rxdma", dev))
1201                 printk(KERN_ERR "MACE: can't get irq %d\n", mace->intrs[2].line);
1202  
1203         mp->next_mace = mace_devs;
1204 diff -urN linux-2.4.18/drivers/net/macmace.c linux/drivers/net/macmace.c
1205 --- linux-2.4.18/drivers/net/macmace.c  Mon Feb 25 17:10:46 2002
1206 +++ linux/drivers/net/macmace.c Mon Feb 25 17:42:31 2002
1207 @@ -422,7 +422,8 @@
1208          *      The interrupt is fixed and comes off the PSC.
1209          */
1210          
1211 -       if (request_irq(dev->irq, mace68k_interrupt, 0, "68K MACE", dev))
1212 +       if (request_irq(dev->irq, mace68k_interrupt,
1213 +                       SA_NET_RANDOM, "68K MACE", dev))
1214         {
1215                 printk(KERN_ERR "MACE: can't get irq %d\n", dev->irq);
1216                 return -EAGAIN;
1217 diff -urN linux-2.4.18/drivers/net/myri_sbus.c linux/drivers/net/myri_sbus.c
1218 --- linux-2.4.18/drivers/net/myri_sbus.c        Mon Feb 25 17:10:44 2002
1219 +++ linux/drivers/net/myri_sbus.c       Mon Feb 25 17:42:31 2002
1220 @@ -1062,7 +1062,8 @@
1221         /* Register interrupt handler now. */
1222         DET(("Requesting MYRIcom IRQ line.\n"));
1223         if (request_irq(dev->irq, &myri_interrupt,
1224 -                       SA_SHIRQ, "MyriCOM Ethernet", (void *) dev)) {
1225 +                       SA_SHIRQ | SA_NET_RANDOM, "MyriCOM Ethernet",
1226 +                       (void *) dev)) {
1227                 printk("MyriCOM: Cannot register interrupt handler.\n");
1228                 goto err;
1229         }
1230 diff -urN linux-2.4.18/drivers/net/natsemi.c linux/drivers/net/natsemi.c
1231 --- linux-2.4.18/drivers/net/natsemi.c  Mon Feb 25 17:10:46 2002
1232 +++ linux/drivers/net/natsemi.c Mon Feb 25 17:42:31 2002
1233 @@ -1046,7 +1046,8 @@
1234         /* Reset the chip, just in case. */
1235         natsemi_reset(dev);
1236  
1237 -       i = request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev);
1238 +       i = request_irq(dev->irq, &intr_handler,
1239 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1240         if (i) return i;
1241  
1242         if (netif_msg_ifup(np))
1243 diff -urN linux-2.4.18/drivers/net/ne.c linux/drivers/net/ne.c
1244 --- linux-2.4.18/drivers/net/ne.c       Mon Feb 25 17:10:41 2002
1245 +++ linux/drivers/net/ne.c      Mon Feb 25 17:42:31 2002
1246 @@ -427,7 +427,8 @@
1247  
1248         /* Snarf the interrupt now.  There's no point in waiting since we cannot
1249            share and the board will usually be enabled. */
1250 -       ret = request_irq(dev->irq, ei_interrupt, 0, name, dev);
1251 +       ret = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM,
1252 +                       name, dev);
1253         if (ret) {
1254                 printk (" unable to get IRQ %d (errno=%d).\n", dev->irq, ret);
1255                 goto err_out_kfree;
1256 diff -urN linux-2.4.18/drivers/net/ne2.c linux/drivers/net/ne2.c
1257 --- linux-2.4.18/drivers/net/ne2.c      Mon Feb 25 17:10:45 2002
1258 +++ linux/drivers/net/ne2.c     Mon Feb 25 17:42:31 2002
1259 @@ -439,7 +439,8 @@
1260  
1261         /* Snarf the interrupt now.  There's no point in waiting since we cannot
1262            share and the board will usually be enabled. */
1263 -       retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
1264 +       retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM,
1265 +                       dev->name, dev);
1266         if (retval) {
1267                 printk (" unable to get IRQ %d (irqval=%d).\n", 
1268                                 dev->irq, retval);
1269 diff -urN linux-2.4.18/drivers/net/ne2k-pci.c linux/drivers/net/ne2k-pci.c
1270 --- linux-2.4.18/drivers/net/ne2k-pci.c Mon Feb 25 17:10:45 2002
1271 +++ linux/drivers/net/ne2k-pci.c        Mon Feb 25 17:42:31 2002
1272 @@ -389,7 +389,8 @@
1273  
1274  static int ne2k_pci_open(struct net_device *dev)
1275  {
1276 -       int ret = request_irq(dev->irq, ei_interrupt, SA_SHIRQ, dev->name, dev);
1277 +       int ret = request_irq(dev->irq, ei_interrupt,
1278 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1279         if (ret)
1280                 return ret;
1281  
1282 diff -urN linux-2.4.18/drivers/net/ne3210.c linux/drivers/net/ne3210.c
1283 --- linux-2.4.18/drivers/net/ne3210.c   Mon Feb 25 17:10:45 2002
1284 +++ linux/drivers/net/ne3210.c  Mon Feb 25 17:42:31 2002
1285 @@ -189,7 +189,8 @@
1286         }
1287         printk(" IRQ %d,", dev->irq);
1288  
1289 -       retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
1290 +       retval = request_irq(dev->irq, ei_interrupt,
1291 +                       SA_NET_RANDOM, dev->name, dev);
1292         if (retval) {
1293                 printk (" unable to get IRQ %d.\n", dev->irq);
1294                 goto out1;
1295 diff -urN linux-2.4.18/drivers/net/ni5010.c linux/drivers/net/ni5010.c
1296 --- linux-2.4.18/drivers/net/ni5010.c   Mon Feb 25 17:10:45 2002
1297 +++ linux/drivers/net/ni5010.c  Mon Feb 25 17:42:31 2002
1298 @@ -354,7 +354,8 @@
1299  
1300         PRINTK2((KERN_DEBUG "%s: entering ni5010_open()\n", dev->name)); 
1301         
1302 -       if (request_irq(dev->irq, &ni5010_interrupt, 0, boardname, dev)) {
1303 +       if (request_irq(dev->irq, &ni5010_interrupt, SA_NET_RANDOM,
1304 +                               boardname, dev)) {
1305                 printk(KERN_WARNING "%s: Cannot get irq %#2x\n", dev->name, dev->irq);
1306                 return -EAGAIN;
1307         }
1308 diff -urN linux-2.4.18/drivers/net/ni52.c linux/drivers/net/ni52.c
1309 --- linux-2.4.18/drivers/net/ni52.c     Mon Feb 25 17:10:41 2002
1310 +++ linux/drivers/net/ni52.c    Mon Feb 25 17:42:31 2002
1311 @@ -264,7 +264,8 @@
1312         startrecv586(dev);
1313         ni_enaint();
1314  
1315 -       ret = request_irq(dev->irq, &ni52_interrupt,0,dev->name,dev);
1316 +       ret = request_irq(dev->irq, &ni52_interrupt,SA_NET_RANDOM,
1317 +                       dev->name,dev);
1318         if (ret)
1319         {
1320                 ni_reset586();
1321 diff -urN linux-2.4.18/drivers/net/ni65.c linux/drivers/net/ni65.c
1322 --- linux-2.4.18/drivers/net/ni65.c     Mon Feb 25 17:10:41 2002
1323 +++ linux/drivers/net/ni65.c    Mon Feb 25 17:42:31 2002
1324 @@ -269,7 +269,7 @@
1325  static int ni65_open(struct net_device *dev)
1326  {
1327         struct priv *p = (struct priv *) dev->priv;
1328 -       int irqval = request_irq(dev->irq, &ni65_interrupt,0,
1329 +       int irqval = request_irq(dev->irq, &ni65_interrupt,SA_NET_RANDOM,
1330                          cards[p->cardno].cardname,dev);
1331         if (irqval) {
1332                 printk ("%s: unable to get IRQ %d (irqval=%d).\n",
1333 diff -urN linux-2.4.18/drivers/net/ns83820.c linux/drivers/net/ns83820.c
1334 --- linux-2.4.18/drivers/net/ns83820.c  Mon Feb 25 17:10:48 2002
1335 +++ linux/drivers/net/ns83820.c Mon Feb 25 17:42:31 2002
1336 @@ -1442,8 +1442,8 @@
1337         setup_ee_mem_bitbanger(&dev->ee, (long)dev->base + MEAR, 3, 2, 1, 0,
1338                 0);
1339  
1340 -       err = request_irq(pci_dev->irq, ns83820_irq, SA_SHIRQ,
1341 -                         dev->net_dev.name, dev);
1342 +       err = request_irq(pci_dev->irq, ns83820_irq,
1343 +               SA_SHIRQ | SA_NET_RANDOM, dev->net_dev.name, dev);
1344         if (err) {
1345                 printk(KERN_INFO "ns83820: unable to register irq %d\n",
1346                         pci_dev->irq);
1347 diff -urN linux-2.4.18/drivers/net/oaknet.c linux/drivers/net/oaknet.c
1348 --- linux-2.4.18/drivers/net/oaknet.c   Mon Feb 25 17:10:45 2002
1349 +++ linux/drivers/net/oaknet.c  Mon Feb 25 17:42:31 2002
1350 @@ -183,7 +183,8 @@
1351         /* Attempt to get the interrupt line */
1352  
1353         ret = -EAGAIN;
1354 -       if (request_irq(dev->irq, ei_interrupt, 0, name, dev)) {
1355 +       if (request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM,
1356 +                               name, dev)) {
1357                 printk("%s: unable to request interrupt %d.\n",
1358                        dev->name, dev->irq);
1359                 goto out_priv;
1360 diff -urN linux-2.4.18/drivers/net/pci-skeleton.c linux/drivers/net/pci-skeleton.c
1361 --- linux-2.4.18/drivers/net/pci-skeleton.c     Mon Feb 25 17:10:46 2002
1362 +++ linux/drivers/net/pci-skeleton.c    Mon Feb 25 17:42:31 2002
1363 @@ -1086,7 +1086,8 @@
1364  
1365         DPRINTK ("ENTER\n");
1366  
1367 -       retval = request_irq (dev->irq, netdrv_interrupt, SA_SHIRQ, dev->name, dev);
1368 +       retval = request_irq (dev->irq, netdrv_interrupt,
1369 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1370         if (retval) {
1371                 DPRINTK ("EXIT, returning %d\n", retval);
1372                 return retval;
1373 diff -urN linux-2.4.18/drivers/net/pcmcia/axnet_cs.c linux/drivers/net/pcmcia/axnet_cs.c
1374 --- linux-2.4.18/drivers/net/pcmcia/axnet_cs.c  Mon Feb 25 17:10:46 2002
1375 +++ linux/drivers/net/pcmcia/axnet_cs.c Mon Feb 25 17:42:31 2002
1376 @@ -658,7 +658,8 @@
1377      link->open++;
1378      MOD_INC_USE_COUNT;
1379  
1380 -    request_irq(dev->irq, ei_irq_wrapper, SA_SHIRQ, dev_info, dev);
1381 +    request_irq(dev->irq, ei_irq_wrapper,
1382 +                SA_SHIRQ | SA_NET_RANDOM, dev_info, dev);
1383  
1384      info->link_status = 0x00;
1385      info->watchdog.function = &ei_watchdog;
1386 diff -urN linux-2.4.18/drivers/net/pcmcia/pcnet_cs.c linux/drivers/net/pcmcia/pcnet_cs.c
1387 --- linux-2.4.18/drivers/net/pcmcia/pcnet_cs.c  Mon Feb 25 17:10:46 2002
1388 +++ linux/drivers/net/pcmcia/pcnet_cs.c Mon Feb 25 17:42:31 2002
1389 @@ -1025,7 +1025,7 @@
1390      MOD_INC_USE_COUNT;
1391  
1392      set_misc_reg(dev);
1393 -    request_irq(dev->irq, ei_irq_wrapper, SA_SHIRQ, dev_info, dev);
1394 +    request_irq(dev->irq, ei_irq_wrapper, SA_SHIRQ | SA_NET_RANDOM, dev_info, dev);
1395  
1396      info->phy_id = info->eth_phy;
1397      info->link_status = 0x00;
1398 diff -urN linux-2.4.18/drivers/net/pcmcia/xircom_cb.c linux/drivers/net/pcmcia/xircom_cb.c
1399 --- linux-2.4.18/drivers/net/pcmcia/xircom_cb.c Mon Feb 25 17:10:46 2002
1400 +++ linux/drivers/net/pcmcia/xircom_cb.c        Mon Feb 25 17:42:31 2002
1401 @@ -464,7 +464,8 @@
1402         int retval;
1403         enter();
1404         printk(KERN_INFO "Xircom cardbus adaptor found, registering as %s, using irq %i \n",dev->name,dev->irq);
1405 -       retval = request_irq(dev->irq, &xircom_interrupt, SA_SHIRQ, dev->name, dev);
1406 +       retval = request_irq(dev->irq, &xircom_interrupt,
1407 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1408         if (retval) {
1409                 printk(KERN_ERR "xircom_cb: Unable to aquire IRQ %i, aborting.\n",dev->irq);
1410                 leave();
1411 diff -urN linux-2.4.18/drivers/net/pcmcia/xircom_tulip_cb.c linux/drivers/net/pcmcia/xircom_tulip_cb.c
1412 --- linux-2.4.18/drivers/net/pcmcia/xircom_tulip_cb.c   Mon Feb 25 17:10:46 2002
1413 +++ linux/drivers/net/pcmcia/xircom_tulip_cb.c  Mon Feb 25 17:42:31 2002
1414 @@ -797,7 +797,8 @@
1415  {
1416         struct xircom_private *tp = dev->priv;
1417  
1418 -       if (request_irq(dev->irq, &xircom_interrupt, SA_SHIRQ, dev->name, dev))
1419 +       if (request_irq(dev->irq, &xircom_interrupt,
1420 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev))
1421                 return -EAGAIN;
1422  
1423         xircom_init_ring(dev);
1424 diff -urN linux-2.4.18/drivers/net/pcnet32.c linux/drivers/net/pcnet32.c
1425 --- linux-2.4.18/drivers/net/pcnet32.c  Mon Feb 25 17:10:45 2002
1426 +++ linux/drivers/net/pcnet32.c Mon Feb 25 17:42:31 2002
1427 @@ -823,7 +823,8 @@
1428  
1429      if (dev->irq == 0 ||
1430         request_irq(dev->irq, &pcnet32_interrupt,
1431 -                   lp->shared_irq ? SA_SHIRQ : 0, lp->name, (void *)dev)) {
1432 +                   lp->shared_irq ? SA_SHIRQ : 0 | SA_NET_RANDOM,
1433 +                   lp->name, (void *)dev)) {
1434         return -EAGAIN;
1435      }
1436  
1437 diff -urN linux-2.4.18/drivers/net/rcpci45.c linux/drivers/net/rcpci45.c
1438 --- linux-2.4.18/drivers/net/rcpci45.c  Mon Feb 25 17:10:45 2002
1439 +++ linux/drivers/net/rcpci45.c Mon Feb 25 17:42:31 2002
1440 @@ -323,7 +323,8 @@
1441         }
1442  
1443         /* Request a shared interrupt line. */
1444 -       error = request_irq (dev->irq, RCinterrupt, SA_SHIRQ, dev->name, dev);
1445 +       error = request_irq (dev->irq, RCinterrupt,
1446 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1447         if (error) {
1448                 printk (KERN_ERR "%s: unable to get IRQ %d\n", 
1449                                 dev->name, dev->irq);
1450 diff -urN linux-2.4.18/drivers/net/rrunner.c linux/drivers/net/rrunner.c
1451 --- linux-2.4.18/drivers/net/rrunner.c  Mon Feb 25 17:10:45 2002
1452 +++ linux/drivers/net/rrunner.c Mon Feb 25 17:42:31 2002
1453 @@ -1227,7 +1227,8 @@
1454         writel(readl(&regs->HostCtrl)|HALT_NIC|RR_CLEAR_INT, &regs->HostCtrl);
1455         spin_unlock_irqrestore(&rrpriv->lock, flags);
1456  
1457 -       if (request_irq(dev->irq, rr_interrupt, SA_SHIRQ, rrpriv->name, dev))
1458 +       if (request_irq(dev->irq, rr_interrupt, SA_SHIRQ | SA_NET_RANDOM,
1459 +                       rrpriv->name, dev))
1460         {
1461                 printk(KERN_WARNING "%s: Requested IRQ %d is busy\n",
1462                        dev->name, dev->irq);
1463 diff -urN linux-2.4.18/drivers/net/saa9730.c linux/drivers/net/saa9730.c
1464 --- linux-2.4.18/drivers/net/saa9730.c  Mon Feb 25 17:10:46 2002
1465 +++ linux/drivers/net/saa9730.c Mon Feb 25 17:42:31 2002
1466 @@ -786,8 +786,8 @@
1467             (struct lan_saa9730_private *) dev->priv;
1468  
1469         /* Associate IRQ with lan_saa9730_interrupt */
1470 -       if (request_irq(dev->irq, &lan_saa9730_interrupt, 0, "SAA9730 Eth",
1471 -                       dev)) {
1472 +       if (request_irq(dev->irq, &lan_saa9730_interrupt, SA_NET_RANDOM,
1473 +                       "SAA9730 Eth", dev)) {
1474                 printk("lan_saa9730_open: Can't get irq %d\n", dev->irq);
1475                 return -EAGAIN;
1476         }
1477 diff -urN linux-2.4.18/drivers/net/sb1000.c linux/drivers/net/sb1000.c
1478 --- linux-2.4.18/drivers/net/sb1000.c   Mon Feb 25 17:10:45 2002
1479 +++ linux/drivers/net/sb1000.c  Mon Feb 25 17:42:31 2002
1480 @@ -992,7 +992,8 @@
1481         lp->rx_frame_id[1] = 0;
1482         lp->rx_frame_id[2] = 0;
1483         lp->rx_frame_id[3] = 0;
1484 -       if (request_irq(dev->irq, &sb1000_interrupt, 0, "sb1000", dev)) {
1485 +       if (request_irq(dev->irq, &sb1000_interrupt, SA_NET_RANDOM,
1486 +                       "sb1000", dev)) {
1487                 return -EAGAIN;
1488         }
1489  
1490 diff -urN linux-2.4.18/drivers/net/seeq8005.c linux/drivers/net/seeq8005.c
1491 --- linux-2.4.18/drivers/net/seeq8005.c Mon Feb 25 17:10:41 2002
1492 +++ linux/drivers/net/seeq8005.c        Mon Feb 25 17:42:31 2002
1493 @@ -347,7 +347,7 @@
1494         struct net_local *lp = (struct net_local *)dev->priv;
1495  
1496         {
1497 -                int irqval = request_irq(dev->irq, &seeq8005_interrupt, 0, "seeq8005", dev);
1498 +                int irqval = request_irq(dev->irq, &seeq8005_interrupt, SA_NET_RANDOM, "seeq8005", dev);
1499                  if (irqval) {
1500                          printk ("%s: unable to get IRQ %d (irqval=%d).\n", dev->name,
1501                                          dev->irq, irqval);
1502 diff -urN linux-2.4.18/drivers/net/sgiseeq.c linux/drivers/net/sgiseeq.c
1503 --- linux-2.4.18/drivers/net/sgiseeq.c  Mon Feb 25 17:10:45 2002
1504 +++ linux/drivers/net/sgiseeq.c Mon Feb 25 17:42:31 2002
1505 @@ -452,7 +452,8 @@
1506         int err;
1507  
1508         save_flags(flags); cli();
1509 -       if (request_irq(dev->irq, sgiseeq_interrupt, 0, sgiseeqstr, (void *) dev)) {
1510 +       if (request_irq(dev->irq, sgiseeq_interrupt, SA_NET_RANDOM,
1511 +                       sgiseeqstr, (void *) dev)) {
1512                 printk("Seeq8003: Can't get irq %d\n", dev->irq);
1513                 restore_flags(flags);
1514                 return -EAGAIN;
1515 diff -urN linux-2.4.18/drivers/net/sis900.c linux/drivers/net/sis900.c
1516 --- linux-2.4.18/drivers/net/sis900.c   Mon Feb 25 17:10:45 2002
1517 +++ linux/drivers/net/sis900.c  Mon Feb 25 17:42:31 2002
1518 @@ -863,7 +863,9 @@
1519         pci_read_config_byte(sis_priv->pci_dev, PCI_CLASS_REVISION, &revision);
1520         sis630_set_eq(net_dev, revision);
1521  
1522 -       ret = request_irq(net_dev->irq, &sis900_interrupt, SA_SHIRQ, net_dev->name, net_dev);
1523 +       ret = request_irq(net_dev->irq, &sis900_interrupt,
1524 +                       SA_SHIRQ | SA_NET_RANDOM,
1525 +                       net_dev->name, net_dev);
1526         if (ret)
1527                 return ret;
1528  
1529 diff -urN linux-2.4.18/drivers/net/sk98lin/skge.c linux/drivers/net/sk98lin/skge.c
1530 --- linux-2.4.18/drivers/net/sk98lin/skge.c     Mon Feb 25 17:10:46 2002
1531 +++ linux/drivers/net/sk98lin/skge.c    Mon Feb 25 17:42:31 2002
1532 @@ -867,10 +867,11 @@
1533         spin_unlock_irqrestore(&pAC->SlowPathLock, Flags);
1534  
1535         if (pAC->GIni.GIMacsFound == 2) {
1536 -                Ret = request_irq(dev->irq, SkGeIsr, SA_SHIRQ, pAC->Name, dev);
1537 +               Ret = request_irq(dev->irq, SkGeIsr,
1538 +                       SA_SHIRQ | SA_NET_RANDOM, pAC->Name, dev);
1539         } else if (pAC->GIni.GIMacsFound == 1) {
1540 -               Ret = request_irq(dev->irq, SkGeIsrOnePort, SA_SHIRQ,
1541 -                       pAC->Name, dev);
1542 +               Ret = request_irq(dev->irq, SkGeIsrOnePort,
1543 +                       SA_SHIRQ | SA_NET_RANDOM, pAC->Name, dev);
1544         } else {
1545                 printk(KERN_WARNING "%s: illegal number of ports: %d\n",
1546                        dev->name, pAC->GIni.GIMacsFound);
1547 diff -urN linux-2.4.18/drivers/net/sk_g16.c linux/drivers/net/sk_g16.c
1548 --- linux-2.4.18/drivers/net/sk_g16.c   Mon Feb 25 17:10:41 2002
1549 +++ linux/drivers/net/sk_g16.c  Mon Feb 25 17:42:31 2002
1550 @@ -947,7 +947,8 @@
1551  
1552         do
1553         {
1554 -         irqval = request_irq(irqtab[i], &SK_interrupt, 0, "sk_g16", dev);
1555 +         irqval = request_irq(irqtab[i], &SK_interrupt, SA_NET_RANDOM,
1556 +                         "sk_g16", dev);
1557           i++;
1558         } while (irqval && irqtab[i]);
1559  
1560 @@ -964,7 +965,7 @@
1561      }
1562      else if (dev->irq == 2) /* IRQ2 is always IRQ9 */
1563      {
1564 -       if (request_irq(9, &SK_interrupt, 0, "sk_g16", dev))
1565 +       if (request_irq(9, &SK_interrupt, SA_NET_RANDOM, "sk_g16", dev))
1566         {
1567             printk("%s: unable to get IRQ 9\n", dev->name);
1568             return -EAGAIN;
1569 diff -urN linux-2.4.18/drivers/net/sk_mca.c linux/drivers/net/sk_mca.c
1570 --- linux-2.4.18/drivers/net/sk_mca.c   Mon Feb 25 17:10:41 2002
1571 +++ linux/drivers/net/sk_mca.c  Mon Feb 25 17:42:31 2002
1572 @@ -861,7 +861,7 @@
1573         /* register resources - only necessary for IRQ */
1574         result =
1575             request_irq(priv->realirq, irq_handler,
1576 -                       SA_SHIRQ | SA_SAMPLE_RANDOM, "sk_mca", dev);
1577 +                       SA_SHIRQ | SA_NET_RANDOM, "sk_mca", dev);
1578         if (result != 0) {
1579                 printk("%s: failed to register irq %d\n", dev->name,
1580                        dev->irq);
1581 diff -urN linux-2.4.18/drivers/net/skfp/skfddi.c linux/drivers/net/skfp/skfddi.c
1582 --- linux-2.4.18/drivers/net/skfp/skfddi.c      Mon Feb 25 17:10:45 2002
1583 +++ linux/drivers/net/skfp/skfddi.c     Mon Feb 25 17:42:31 2002
1584 @@ -774,8 +774,8 @@
1585  
1586         PRINTK(KERN_INFO "entering skfp_open\n");
1587         /* Register IRQ - support shared interrupts by passing device ptr */
1588 -       if (request_irq(dev->irq, (void *) skfp_interrupt, SA_SHIRQ,
1589 -                       dev->name, dev)) {
1590 +       if (request_irq(dev->irq, (void *) skfp_interrupt,
1591 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev)) {
1592                 printk("%s: Requested IRQ %d is busy\n", dev->name, dev->irq);
1593                 return (-EAGAIN);
1594         }
1595 diff -urN linux-2.4.18/drivers/net/smc-mca.c linux/drivers/net/smc-mca.c
1596 --- linux-2.4.18/drivers/net/smc-mca.c  Mon Feb 25 17:10:44 2002
1597 +++ linux/drivers/net/smc-mca.c Mon Feb 25 17:42:31 2002
1598 @@ -325,7 +325,8 @@
1599         int ioaddr = dev->base_addr - ULTRA_NIC_OFFSET; /* ASIC addr */
1600         int retval;
1601  
1602 -       if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev)))
1603 +       if ((retval = request_irq(dev->irq, ei_interrupt,
1604 +                       SA_NET_RANDOM, dev->name, dev)))
1605                 return retval;
1606  
1607         outb(ULTRA_MEMENB, ioaddr); /* Enable memory */
1608 diff -urN linux-2.4.18/drivers/net/smc-ultra.c linux/drivers/net/smc-ultra.c
1609 --- linux-2.4.18/drivers/net/smc-ultra.c        Mon Feb 25 17:10:41 2002
1610 +++ linux/drivers/net/smc-ultra.c       Mon Feb 25 17:42:31 2002
1611 @@ -329,7 +329,8 @@
1612         unsigned char irq2reg[] = {0, 0, 0x04, 0x08, 0, 0x0C, 0, 0x40,
1613                                    0, 0x04, 0x44, 0x48, 0, 0, 0, 0x4C, };
1614  
1615 -       retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
1616 +       retval = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM,
1617 +                       dev->name, dev);
1618         if (retval)
1619                 return retval;
1620  
1621 diff -urN linux-2.4.18/drivers/net/smc-ultra32.c linux/drivers/net/smc-ultra32.c
1622 --- linux-2.4.18/drivers/net/smc-ultra32.c      Mon Feb 25 17:10:45 2002
1623 +++ linux/drivers/net/smc-ultra32.c     Mon Feb 25 17:42:31 2002
1624 @@ -256,6 +256,8 @@
1625         int irq_flags = (inb(ioaddr + ULTRA32_CFG5) & 0x08) ? 0 : SA_SHIRQ;
1626         int retval;
1627  
1628 +       irq_flags |= SA_NET_RANDOM;
1629 +
1630         retval = request_irq(dev->irq, ei_interrupt, irq_flags, dev->name, dev);
1631         if (retval)
1632                 return retval;
1633 diff -urN linux-2.4.18/drivers/net/smc9194.c linux/drivers/net/smc9194.c
1634 --- linux-2.4.18/drivers/net/smc9194.c  Mon Feb 25 17:10:42 2002
1635 +++ linux/drivers/net/smc9194.c Mon Feb 25 17:42:31 2002
1636 @@ -1017,7 +1017,7 @@
1637         ether_setup(dev);
1638  
1639         /* Grab the IRQ */
1640 -       retval = request_irq(dev->irq, &smc_interrupt, 0, dev->name, dev);
1641 +       retval = request_irq(dev->irq, &smc_interrupt, SA_NET_RANDOM, dev->name, dev);
1642         if (retval) {
1643                 printk("%s: unable to get IRQ %d (irqval=%d).\n", dev->name,
1644                         dev->irq, retval);
1645 diff -urN linux-2.4.18/drivers/net/sonic.c linux/drivers/net/sonic.c
1646 --- linux-2.4.18/drivers/net/sonic.c    Mon Feb 25 17:10:45 2002
1647 +++ linux/drivers/net/sonic.c   Mon Feb 25 17:42:31 2002
1648 @@ -42,8 +42,8 @@
1649   * this glue works ok under all situations.
1650   */
1651  //    if (sonic_request_irq(dev->irq, &sonic_interrupt, 0, "sonic", dev)) {
1652 -       if (sonic_request_irq(dev->irq, &sonic_interrupt, SA_INTERRUPT,
1653 -                             "sonic", dev)) {
1654 +       if (sonic_request_irq(dev->irq, &sonic_interrupt,
1655 +                       SA_INTERRUPT | SA_NET_RANDOM, "sonic", dev)) {
1656                 printk("\n%s: unable to get IRQ %d .\n", dev->name, dev->irq);
1657                 return -EAGAIN;
1658         }
1659 diff -urN linux-2.4.18/drivers/net/starfire.c linux/drivers/net/starfire.c
1660 --- linux-2.4.18/drivers/net/starfire.c Mon Feb 25 17:10:44 2002
1661 +++ linux/drivers/net/starfire.c        Mon Feb 25 17:42:31 2002
1662 @@ -831,7 +831,8 @@
1663  
1664         COMPAT_MOD_INC_USE_COUNT;
1665  
1666 -       retval = request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev);
1667 +       retval = request_irq(dev->irq, &intr_handler,
1668 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1669         if (retval) {
1670                 COMPAT_MOD_DEC_USE_COUNT;
1671                 return retval;
1672 diff -urN linux-2.4.18/drivers/net/stnic.c linux/drivers/net/stnic.c
1673 --- linux-2.4.18/drivers/net/stnic.c    Mon Feb 25 17:10:45 2002
1674 +++ linux/drivers/net/stnic.c   Mon Feb 25 17:42:31 2002
1675 @@ -135,7 +135,7 @@
1676  
1677    /* Snarf the interrupt now.  There's no point in waiting since we cannot
1678       share and the board will usually be enabled. */
1679 -  i = request_irq (dev->irq, ei_interrupt, 0, dev->name, dev);
1680 +  i = request_irq(dev->irq, ei_interrupt, SA_NET_RANDOM, dev->name, dev);
1681    if (i)  {
1682        printk (KERN_EMERG " unable to get IRQ %d.\n", dev->irq);
1683        unregister_netdev(dev);
1684 diff -urN linux-2.4.18/drivers/net/sun3lance.c linux/drivers/net/sun3lance.c
1685 --- linux-2.4.18/drivers/net/sun3lance.c        Mon Feb 25 17:10:46 2002
1686 +++ linux/drivers/net/sun3lance.c       Mon Feb 25 17:42:31 2002
1687 @@ -318,7 +318,8 @@
1688  
1689         REGA(CSR0) = CSR0_STOP; 
1690  
1691 -       request_irq(LANCE_IRQ, lance_interrupt, 0, "SUN3 Lance", dev);
1692 +       request_irq(LANCE_IRQ, lance_interrupt, SA_NET_RANDOM,
1693 +                       "SUN3 Lance", dev);
1694         dev->irq = (unsigned short)LANCE_IRQ;
1695  
1696  
1697 diff -urN linux-2.4.18/drivers/net/sunbmac.c linux/drivers/net/sunbmac.c
1698 --- linux-2.4.18/drivers/net/sunbmac.c  Mon Feb 25 17:10:45 2002
1699 +++ linux/drivers/net/sunbmac.c Mon Feb 25 17:42:31 2002
1700 @@ -904,7 +904,8 @@
1701         struct bigmac *bp = (struct bigmac *) dev->priv;
1702         int ret;
1703  
1704 -       ret = request_irq(dev->irq, &bigmac_interrupt, SA_SHIRQ, dev->name, bp);
1705 +       ret = request_irq(dev->irq, &bigmac_interrupt,
1706 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, bp);
1707         if (ret) {
1708                 printk(KERN_ERR "BIGMAC: Can't order irq %d to go.\n", dev->irq);
1709                 return ret;
1710 diff -urN linux-2.4.18/drivers/net/sundance.c linux/drivers/net/sundance.c
1711 --- linux-2.4.18/drivers/net/sundance.c Mon Feb 25 17:10:46 2002
1712 +++ linux/drivers/net/sundance.c        Mon Feb 25 17:42:31 2002
1713 @@ -750,7 +750,8 @@
1714  
1715         /* Do we need to reset the chip??? */
1716  
1717 -       i = request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev);
1718 +       i = request_irq(dev->irq, &intr_handler,
1719 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1720         if (i)
1721                 return i;
1722  
1723 diff -urN linux-2.4.18/drivers/net/sungem.c linux/drivers/net/sungem.c
1724 --- linux-2.4.18/drivers/net/sungem.c   Mon Feb 25 17:10:45 2002
1725 +++ linux/drivers/net/sungem.c  Mon Feb 25 17:42:31 2002
1726 @@ -2185,7 +2185,7 @@
1727          * on the controller
1728          */
1729         if (request_irq(gp->pdev->irq, gem_interrupt,
1730 -                       SA_SHIRQ, dev->name, (void *)dev)) {
1731 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, (void *)dev)) {
1732                 printk(KERN_ERR "%s: failed to request irq !\n", gp->dev->name);
1733  #ifdef CONFIG_ALL_PPC
1734                 if (!hw_was_up && gp->pdev->vendor == PCI_VENDOR_ID_APPLE)
1735 diff -urN linux-2.4.18/drivers/net/sunhme.c linux/drivers/net/sunhme.c
1736 --- linux-2.4.18/drivers/net/sunhme.c   Mon Feb 25 17:10:42 2002
1737 +++ linux/drivers/net/sunhme.c  Mon Feb 25 17:42:31 2002
1738 @@ -2219,7 +2219,8 @@
1739          */
1740         if ((hp->happy_flags & (HFLAG_QUATTRO|HFLAG_PCI)) != HFLAG_QUATTRO) {
1741                 if (request_irq(dev->irq, &happy_meal_interrupt,
1742 -                               SA_SHIRQ, "HAPPY MEAL", (void *)dev)) {
1743 +                               SA_SHIRQ | SA_NET_RANDOM,
1744 +                               "HAPPY MEAL", (void *)dev)) {
1745                         HMD(("EAGAIN\n"));
1746  #ifdef __sparc__
1747                         printk(KERN_ERR "happy_meal(SBUS): Can't order irq %s to go.\n",
1748 diff -urN linux-2.4.18/drivers/net/sunlance.c linux/drivers/net/sunlance.c
1749 --- linux-2.4.18/drivers/net/sunlance.c Mon Feb 25 17:10:42 2002
1750 +++ linux/drivers/net/sunlance.c        Mon Feb 25 17:42:31 2002
1751 @@ -925,7 +925,8 @@
1752  
1753         STOP_LANCE(lp);
1754  
1755 -       if (request_irq(dev->irq, &lance_interrupt, SA_SHIRQ,
1756 +       if (request_irq(dev->irq, &lance_interrupt,
1757 +                       SA_SHIRQ | SA_NET_RANDOM,
1758                         lancestr, (void *) dev)) {
1759                 printk(KERN_ERR "Lance: Can't get irq %s\n", __irq_itoa(dev->irq));
1760                 return -EAGAIN;
1761 diff -urN linux-2.4.18/drivers/net/sunqe.c linux/drivers/net/sunqe.c
1762 --- linux-2.4.18/drivers/net/sunqe.c    Mon Feb 25 17:10:44 2002
1763 +++ linux/drivers/net/sunqe.c   Mon Feb 25 17:42:31 2002
1764 @@ -896,7 +896,8 @@
1765          * for it now.
1766          */
1767         if (request_irq(sdev->irqs[0], &qec_interrupt,
1768 -                       SA_SHIRQ, "QuadEther", (void *) qecp)) {
1769 +                       SA_SHIRQ | SA_NET_RANDOM,
1770 +                       "QuadEther", (void *) qecp)) {
1771                 printk(KERN_ERR "QuadEther: Can't register QEC master irq handler.\n");
1772                 res = EAGAIN;
1773                 goto qec_free_devs;
1774 diff -urN linux-2.4.18/drivers/net/tlan.c linux/drivers/net/tlan.c
1775 --- linux-2.4.18/drivers/net/tlan.c     Mon Feb 25 17:10:41 2002
1776 +++ linux/drivers/net/tlan.c    Mon Feb 25 17:42:31 2002
1777 @@ -871,7 +871,8 @@
1778         int             err;
1779         
1780         priv->tlanRev = TLan_DioRead8( dev->base_addr, TLAN_DEF_REVISION );
1781 -       err = request_irq( dev->irq, TLan_HandleInterrupt, SA_SHIRQ, TLanSignature, dev );
1782 +       err = request_irq( dev->irq, TLan_HandleInterrupt,
1783 +                       SA_SHIRQ | SA_NET_RANDOM, TLanSignature, dev );
1784         
1785         if ( err ) {
1786                 printk(KERN_ERR "TLAN:  Cannot open %s because IRQ %d is already in use.\n", dev->name, dev->irq );
1787 diff -urN linux-2.4.18/drivers/net/tokenring/abyss.c linux/drivers/net/tokenring/abyss.c
1788 --- linux-2.4.18/drivers/net/tokenring/abyss.c  Mon Feb 25 17:10:41 2002
1789 +++ linux/drivers/net/tokenring/abyss.c Mon Feb 25 17:42:31 2002
1790 @@ -123,8 +123,8 @@
1791                 goto err_out_trdev;
1792         }
1793                 
1794 -       ret = request_irq(pdev->irq, tms380tr_interrupt, SA_SHIRQ,
1795 -                         dev->name, dev);
1796 +       ret = request_irq(pdev->irq, tms380tr_interrupt,
1797 +                         SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1798         if (ret)
1799                 goto err_out_region;
1800                 
1801 diff -urN linux-2.4.18/drivers/net/tokenring/ibmtr.c linux/drivers/net/tokenring/ibmtr.c
1802 --- linux-2.4.18/drivers/net/tokenring/ibmtr.c  Mon Feb 25 17:10:41 2002
1803 +++ linux/drivers/net/tokenring/ibmtr.c Mon Feb 25 17:42:31 2002
1804 @@ -662,7 +662,8 @@
1805  
1806         /* The PCMCIA has already got the interrupt line and the io port, 
1807            so no chance of anybody else getting it - MLP */
1808 -       if (request_irq(dev->irq = irq, &tok_interrupt, 0, "ibmtr", dev) != 0) {
1809 +       if (request_irq(dev->irq = irq, &tok_interrupt,
1810 +                       SA_NET_RANDOM, "ibmtr", dev) != 0) {
1811                 DPRINTK("Could not grab irq %d.  Halting Token Ring driver.\n",
1812                                         irq);
1813                 iounmap(t_mmio);
1814 diff -urN linux-2.4.18/drivers/net/tokenring/lanstreamer.c linux/drivers/net/tokenring/lanstreamer.c
1815 --- linux-2.4.18/drivers/net/tokenring/lanstreamer.c    Mon Feb 25 17:10:42 2002
1816 +++ linux/drivers/net/tokenring/lanstreamer.c   Mon Feb 25 17:42:31 2002
1817 @@ -535,7 +535,8 @@
1818                 rc=streamer_reset(dev);
1819         }
1820  
1821 -       if (request_irq(dev->irq, &streamer_interrupt, SA_SHIRQ, "lanstreamer", dev)) {
1822 +       if (request_irq(dev->irq, &streamer_interrupt,
1823 +                       SA_SHIRQ | SA_NET_RANDOM, "lanstreamer", dev)) {
1824                 return -EAGAIN;
1825         }
1826  #if STREAMER_DEBUG
1827 diff -urN linux-2.4.18/drivers/net/tokenring/madgemc.c linux/drivers/net/tokenring/madgemc.c
1828 --- linux-2.4.18/drivers/net/tokenring/madgemc.c        Mon Feb 25 17:10:42 2002
1829 +++ linux/drivers/net/tokenring/madgemc.c       Mon Feb 25 17:42:31 2002
1830 @@ -331,8 +331,9 @@
1831                  */ 
1832                 outb(0, dev->base_addr + MC_CONTROL_REG0); /* sanity */
1833                 madgemc_setsifsel(dev, 1);
1834 -               if(request_irq(dev->irq, madgemc_interrupt, SA_SHIRQ,
1835 -                              "madgemc", dev)) 
1836 +               if(request_irq(dev->irq, madgemc_interrupt,
1837 +                               SA_SHIRQ | SA_NET_RANDOM,
1838 +                               "madgemc", dev)) 
1839                         goto getout;
1840                 
1841                 madgemc_chipset_init(dev); /* enables interrupts! */
1842 diff -urN linux-2.4.18/drivers/net/tokenring/olympic.c linux/drivers/net/tokenring/olympic.c
1843 --- linux-2.4.18/drivers/net/tokenring/olympic.c        Mon Feb 25 17:10:41 2002
1844 +++ linux/drivers/net/tokenring/olympic.c       Mon Feb 25 17:42:31 2002
1845 @@ -396,7 +396,8 @@
1846         char open_error[255] ; 
1847         int i, open_finished = 1 ;
1848  
1849 -       if(request_irq(dev->irq, &olympic_interrupt, SA_SHIRQ , "olympic", dev)) {
1850 +       if(request_irq(dev->irq, &olympic_interrupt,
1851 +                       SA_SHIRQ | SA_NET_RANDOM, "olympic", dev)) {
1852                 return -EAGAIN;
1853         }
1854  
1855 diff -urN linux-2.4.18/drivers/net/tokenring/smctr.c linux/drivers/net/tokenring/smctr.c
1856 --- linux-2.4.18/drivers/net/tokenring/smctr.c  Mon Feb 25 17:10:41 2002
1857 +++ linux/drivers/net/tokenring/smctr.c Mon Feb 25 17:42:31 2002
1858 @@ -544,7 +544,8 @@
1859                         dev->irq = 15;
1860                                 break;
1861         }
1862 -       if(request_irq(dev->irq, smctr_interrupt, SA_SHIRQ, smctr_name, dev))
1863 +       if(request_irq(dev->irq, smctr_interrupt,
1864 +                       SA_SHIRQ | SA_NET_RANDOM, smctr_name, dev))
1865                  return (-ENODEV);
1866  
1867         /* Get RAM base */
1868 diff -urN linux-2.4.18/drivers/net/tokenring/tmsisa.c linux/drivers/net/tokenring/tmsisa.c
1869 --- linux-2.4.18/drivers/net/tokenring/tmsisa.c Mon Feb 25 17:10:42 2002
1870 +++ linux/drivers/net/tokenring/tmsisa.c        Mon Feb 25 17:42:31 2002
1871 @@ -184,8 +184,8 @@
1872                 for(j = 0; irqlist[j] != 0; j++)
1873                 {
1874                         dev->irq = irqlist[j];
1875 -                       if (!request_irq(dev->irq, tms380tr_interrupt, 0, 
1876 -                               isa_cardname, dev))
1877 +                       if (!request_irq(dev->irq, tms380tr_interrupt,
1878 +                               SA_NET_RANDOM, isa_cardname, dev))
1879                                 break;
1880                  }
1881                 
1882 diff -urN linux-2.4.18/drivers/net/tokenring/tmspci.c linux/drivers/net/tokenring/tmspci.c
1883 --- linux-2.4.18/drivers/net/tokenring/tmspci.c Mon Feb 25 17:10:42 2002
1884 +++ linux/drivers/net/tokenring/tmspci.c        Mon Feb 25 17:42:31 2002
1885 @@ -123,8 +123,8 @@
1886                 goto err_out_trdev;
1887         }
1888  
1889 -       ret = request_irq(pdev->irq, tms380tr_interrupt, SA_SHIRQ,
1890 -                         dev->name, dev);
1891 +       ret = request_irq(pdev->irq, tms380tr_interrupt,
1892 +                         SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1893         if (ret)
1894                 goto err_out_region;
1895  
1896 diff -urN linux-2.4.18/drivers/net/tulip/tulip_core.c linux/drivers/net/tulip/tulip_core.c
1897 --- linux-2.4.18/drivers/net/tulip/tulip_core.c Mon Feb 25 17:10:46 2002
1898 +++ linux/drivers/net/tulip/tulip_core.c        Mon Feb 25 17:42:31 2002
1899 @@ -507,7 +507,9 @@
1900         int retval;
1901         MOD_INC_USE_COUNT;
1902  
1903 -       if ((retval = request_irq(dev->irq, &tulip_interrupt, SA_SHIRQ, dev->name, dev))) {
1904 +       if ((retval = request_irq(dev->irq, &tulip_interrupt,
1905 +                                       SA_SHIRQ | SA_NET_RANDOM,
1906 +                                       dev->name, dev))) {
1907                 MOD_DEC_USE_COUNT;
1908                 return retval;
1909         }
1910 diff -urN linux-2.4.18/drivers/net/via-rhine.c linux/drivers/net/via-rhine.c
1911 --- linux-2.4.18/drivers/net/via-rhine.c        Mon Feb 25 17:10:45 2002
1912 +++ linux/drivers/net/via-rhine.c       Mon Feb 25 17:42:31 2002
1913 @@ -1056,7 +1056,8 @@
1914         /* Reset the chip. */
1915         writew(CmdReset, ioaddr + ChipCmd);
1916  
1917 -       i = request_irq(np->pdev->irq, &via_rhine_interrupt, SA_SHIRQ, dev->name, dev);
1918 +       i = request_irq(np->pdev->irq, &via_rhine_interrupt,
1919 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
1920         if (i)
1921                 return i;
1922  
1923 diff -urN linux-2.4.18/drivers/net/wan/c101.c linux/drivers/net/wan/c101.c
1924 --- linux-2.4.18/drivers/net/wan/c101.c Mon Feb 25 17:10:41 2002
1925 +++ linux/drivers/net/wan/c101.c        Mon Feb 25 17:42:31 2002
1926 @@ -251,7 +251,7 @@
1927         }
1928         memset(card, 0, sizeof(card_t));
1929  
1930 -       if (request_irq(irq, sca_intr, 0, devname, card)) {
1931 +       if (request_irq(irq, sca_intr, SA_NET_RANDOM, devname, card)) {
1932                 printk(KERN_ERR "c101: could not allocate IRQ\n");
1933                 c101_destroy_card(card);
1934                 return(-EBUSY);
1935 diff -urN linux-2.4.18/drivers/net/wan/comx-hw-comx.c linux/drivers/net/wan/comx-hw-comx.c
1936 --- linux-2.4.18/drivers/net/wan/comx-hw-comx.c Mon Feb 25 17:10:41 2002
1937 +++ linux/drivers/net/wan/comx-hw-comx.c        Mon Feb 25 17:42:32 2002
1938 @@ -469,8 +469,8 @@
1939                 if (check_region(dev->base_addr, hw->io_extent)) {
1940                         return -EAGAIN;
1941                 }
1942 -               if (request_irq(dev->irq, COMX_interrupt, 0, dev->name, 
1943 -                  (void *)dev)) {
1944 +               if (request_irq(dev->irq, COMX_interrupt, SA_NET_RANDOM,
1945 +                               dev->name, (void *)dev)) {
1946                         printk(KERN_ERR "comx-hw-comx: unable to obtain irq %d\n", dev->irq);
1947                         return -EAGAIN;
1948                 }
1949 diff -urN linux-2.4.18/drivers/net/wan/comx-hw-locomx.c linux/drivers/net/wan/comx-hw-locomx.c
1950 --- linux-2.4.18/drivers/net/wan/comx-hw-locomx.c       Mon Feb 25 17:10:41 2002
1951 +++ linux/drivers/net/wan/comx-hw-locomx.c      Mon Feb 25 17:42:32 2002
1952 @@ -172,8 +172,8 @@
1953         hw->board.chanA.irqs=&z8530_nop;
1954         hw->board.chanB.irqs=&z8530_nop;
1955  
1956 -       if(request_irq(dev->irq, z8530_interrupt, SA_INTERRUPT, 
1957 -           dev->name, &hw->board)) {
1958 +       if(request_irq(dev->irq, z8530_interrupt,
1959 +               SA_INTERRUPT | SA_NET_RANDOM, dev->name, &hw->board)) {
1960                 printk(KERN_ERR "%s: unable to obtain irq %d\n", dev->name, 
1961                         dev->irq);
1962                 ret=-EAGAIN;
1963 diff -urN linux-2.4.18/drivers/net/wan/comx-hw-mixcom.c linux/drivers/net/wan/comx-hw-mixcom.c
1964 --- linux-2.4.18/drivers/net/wan/comx-hw-mixcom.c       Mon Feb 25 17:10:41 2002
1965 +++ linux/drivers/net/wan/comx-hw-mixcom.c      Mon Feb 25 17:42:32 2002
1966 @@ -518,8 +518,8 @@
1967         }
1968  
1969         if(hw->channel==0 && !(ch->init_status & IRQ_ALLOCATED)) {
1970 -               if (request_irq(dev->irq, MIXCOM_interrupt, 0, 
1971 -                   dev->name, (void *)dev)) {
1972 +               if (request_irq(dev->irq, MIXCOM_interrupt,
1973 +                               SA_NET_RANDOM, dev->name, (void *)dev)) {
1974                         printk(KERN_ERR "MIXCOM: unable to obtain irq %d\n", dev->irq);
1975                         ret = -EAGAIN;
1976                         goto err_release_region;
1977 diff -urN linux-2.4.18/drivers/net/wan/cosa.c linux/drivers/net/wan/cosa.c
1978 --- linux-2.4.18/drivers/net/wan/cosa.c Mon Feb 25 17:10:41 2002
1979 +++ linux/drivers/net/wan/cosa.c        Mon Feb 25 17:42:32 2002
1980 @@ -541,7 +541,8 @@
1981         cosa->nchannels = 2;    /* FIXME: how to determine this? */
1982  
1983         request_region(base, is_8bit(cosa)?2:4, cosa->type);
1984 -       if (request_irq(cosa->irq, cosa_interrupt, 0, cosa->type, cosa))
1985 +       if (request_irq(cosa->irq, cosa_interrupt, SA_NET_RANDOM,
1986 +                       cosa->type, cosa))
1987                 goto bad1;
1988         if (request_dma(cosa->dma, cosa->type)) {
1989                 free_irq(cosa->irq, cosa);
1990 diff -urN linux-2.4.18/drivers/net/wan/cycx_main.c linux/drivers/net/wan/cycx_main.c
1991 --- linux-2.4.18/drivers/net/wan/cycx_main.c    Mon Feb 25 17:10:41 2002
1992 +++ linux/drivers/net/wan/cycx_main.c   Mon Feb 25 17:42:32 2002
1993 @@ -214,7 +214,8 @@
1994         /* Allocate IRQ */
1995         irq = conf->irq == 2 ? 9 : conf->irq;   /* IRQ2 -> IRQ9 */
1996  
1997 -       if (request_irq(irq, cycx_isr, 0, wandev->name, card)) {
1998 +       if (request_irq(irq, cycx_isr, SA_NET_RANDOM,
1999 +                       wandev->name, card)) {
2000                 printk(KERN_ERR "%s: can't reserve IRQ %d!\n",
2001                                 wandev->name, irq);
2002                 goto out;
2003 diff -urN linux-2.4.18/drivers/net/wan/dscc4.c linux/drivers/net/wan/dscc4.c
2004 --- linux-2.4.18/drivers/net/wan/dscc4.c        Mon Feb 25 17:10:41 2002
2005 +++ linux/drivers/net/wan/dscc4.c       Mon Feb 25 17:42:32 2002
2006 @@ -506,7 +506,8 @@
2007  
2008         priv = (struct dscc4_pci_priv *)pci_get_drvdata(pdev);
2009  
2010 -       if (request_irq(pdev->irq, &dscc4_irq, SA_SHIRQ, "dscc4", priv->root)) {
2011 +       if (request_irq(pdev->irq, &dscc4_irq, SA_SHIRQ | SA_NET_RANDOM,
2012 +                       "dscc4", priv->root)) {
2013                 printk(KERN_WARNING "dscc4: IRQ %d is busy\n", pdev->irq);
2014                 goto err_out_iounmap;
2015         }
2016 diff -urN linux-2.4.18/drivers/net/wan/farsync.c linux/drivers/net/wan/farsync.c
2017 --- linux-2.4.18/drivers/net/wan/farsync.c      Mon Feb 25 17:10:41 2002
2018 +++ linux/drivers/net/wan/farsync.c     Mon Feb 25 17:42:32 2002
2019 @@ -1737,7 +1737,8 @@
2020          card->state = FST_RESET;
2021  
2022          /* Register the interrupt handler */
2023 -        if ( request_irq ( card->irq, fst_intr, SA_SHIRQ, FST_DEV_NAME, card ))
2024 +        if ( request_irq ( card->irq, fst_intr, SA_SHIRQ | SA_NET_RANDOM,
2025 +                       FST_DEV_NAME, card ))
2026          {
2027  
2028                  printk_err ("Unable to register interrupt %d\n", card->irq );
2029 diff -urN linux-2.4.18/drivers/net/wan/hostess_sv11.c linux/drivers/net/wan/hostess_sv11.c
2030 --- linux-2.4.18/drivers/net/wan/hostess_sv11.c Mon Feb 25 17:10:41 2002
2031 +++ linux/drivers/net/wan/hostess_sv11.c        Mon Feb 25 17:42:32 2002
2032 @@ -254,7 +254,9 @@
2033         /* We want a fast IRQ for this device. Actually we'd like an even faster
2034            IRQ ;) - This is one driver RtLinux is made for */
2035            
2036 -       if(request_irq(irq, &z8530_interrupt, SA_INTERRUPT, "Hostess SV/11", dev)<0)
2037 +       if(request_irq(irq, &z8530_interrupt,
2038 +                       SA_INTERRUPT | SA_NET_RANDOM,
2039 +                       "Hostess SV/11", dev)<0)
2040         {
2041                 printk(KERN_WARNING "hostess: IRQ %d already in use.\n", irq);
2042                 goto fail1;
2043 diff -urN linux-2.4.18/drivers/net/wan/lmc/lmc_main.c linux/drivers/net/wan/lmc/lmc_main.c
2044 --- linux-2.4.18/drivers/net/wan/lmc/lmc_main.c Mon Feb 25 17:10:41 2002
2045 +++ linux/drivers/net/wan/lmc/lmc_main.c        Mon Feb 25 17:42:32 2002
2046 @@ -1178,7 +1178,8 @@
2047      lmc_softreset (sc);
2048  
2049      /* Since we have to use PCI bus, this should work on x86,alpha,ppc */
2050 -    if (request_irq (dev->irq, &lmc_interrupt, SA_SHIRQ, dev->name, dev)){
2051 +    if (request_irq (dev->irq, &lmc_interrupt,
2052 +               SA_SHIRQ | SA_NET_RANDOM, dev->name, dev)){
2053          printk(KERN_WARNING "%s: could not get irq: %d\n", dev->name, dev->irq);
2054          lmc_trace(dev, "lmc_open irq failed out");
2055          return -EAGAIN;
2056 diff -urN linux-2.4.18/drivers/net/wan/n2.c linux/drivers/net/wan/n2.c
2057 --- linux-2.4.18/drivers/net/wan/n2.c   Mon Feb 25 17:10:41 2002
2058 +++ linux/drivers/net/wan/n2.c  Mon Feb 25 17:42:32 2002
2059 @@ -398,7 +398,7 @@
2060         }
2061         card->io = io;
2062  
2063 -       if (request_irq(irq, &sca_intr, 0, devname, card)) {
2064 +       if (request_irq(irq, &sca_intr, SA_NET_RANDOM, devname, card)) {
2065                 printk(KERN_ERR "n2: could not allocate IRQ\n");
2066                 n2_destroy_card(card);
2067                 return(-EBUSY);
2068 diff -urN linux-2.4.18/drivers/net/wan/sbni.c linux/drivers/net/wan/sbni.c
2069 --- linux-2.4.18/drivers/net/wan/sbni.c Mon Feb 25 17:10:41 2002
2070 +++ linux/drivers/net/wan/sbni.c        Mon Feb 25 17:42:32 2002
2071 @@ -1168,7 +1168,8 @@
2072                         }
2073         }
2074  
2075 -       if( request_irq(dev->irq, sbni_interrupt, SA_SHIRQ, dev->name, dev) ) {
2076 +       if( request_irq(dev->irq, sbni_interrupt,
2077 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev) ) {
2078                 printk( KERN_ERR "%s: unable to get IRQ %d.\n",
2079                         dev->name, dev->irq );
2080                 return  -EAGAIN;
2081 diff -urN linux-2.4.18/drivers/net/wan/sdla.c linux/drivers/net/wan/sdla.c
2082 --- linux-2.4.18/drivers/net/wan/sdla.c Mon Feb 25 17:10:41 2002
2083 +++ linux/drivers/net/wan/sdla.c        Mon Feb 25 17:42:32 2002
2084 @@ -1469,7 +1469,8 @@
2085         }
2086         dev->irq = map->irq;
2087  
2088 -       if (request_irq(dev->irq, &sdla_isr, 0, dev->name, dev)) 
2089 +       if (request_irq(dev->irq, &sdla_isr, SA_NET_RANDOM,
2090 +                       dev->name, dev)) 
2091                 return(-EAGAIN);
2092  
2093         if (flp->type == SDLA_S507)
2094 diff -urN linux-2.4.18/drivers/net/wan/sdlamain.c linux/drivers/net/wan/sdlamain.c
2095 --- linux-2.4.18/drivers/net/wan/sdlamain.c     Mon Feb 25 17:10:41 2002
2096 +++ linux/drivers/net/wan/sdlamain.c    Mon Feb 25 17:42:32 2002
2097 @@ -495,8 +495,7 @@
2098                 /* when using the S514 PCI adapter */
2099                 
2100                         if(request_irq(irq, sdla_isr, 
2101 -                     (card->hw.type == SDLA_S514) ? SA_SHIRQ : 0, 
2102 -                      wandev->name, card)){
2103 +                     (card->hw.type == SDLA_S514) ? SA_SHIRQ : 0 | SA_NET_RANDOM, wandev->name, card)){
2104  
2105                         printk(KERN_INFO "%s: Can't reserve IRQ %d!\n", wandev->name, irq);
2106                         return -EINVAL;
2107 diff -urN linux-2.4.18/drivers/net/wan/sealevel.c linux/drivers/net/wan/sealevel.c
2108 --- linux-2.4.18/drivers/net/wan/sealevel.c     Mon Feb 25 17:10:41 2002
2109 +++ linux/drivers/net/wan/sealevel.c    Mon Feb 25 17:42:32 2002
2110 @@ -281,7 +281,8 @@
2111         /* We want a fast IRQ for this device. Actually we'd like an even faster
2112            IRQ ;) - This is one driver RtLinux is made for */
2113     
2114 -       if(request_irq(irq, &z8530_interrupt, SA_INTERRUPT, "SeaLevel", dev)<0)
2115 +       if(request_irq(irq, &z8530_interrupt,
2116 +                       SA_INTERRUPT | SA_NET_RANDOM, "SeaLevel", dev)<0)
2117         {
2118                 printk(KERN_WARNING "sealevel: IRQ %d already in use.\n", irq);
2119                 goto fail1_1;
2120 diff -urN linux-2.4.18/drivers/net/wavelan.c linux/drivers/net/wavelan.c
2121 --- linux-2.4.18/drivers/net/wavelan.c  Mon Feb 25 17:10:41 2002
2122 +++ linux/drivers/net/wavelan.c Mon Feb 25 17:42:32 2002
2123 @@ -3900,7 +3900,8 @@
2124                 return -ENXIO;
2125         }
2126  
2127 -       if (request_irq(dev->irq, &wavelan_interrupt, 0, "WaveLAN", dev) != 0) 
2128 +       if (request_irq(dev->irq, &wavelan_interrupt, SA_NET_RANDOM,
2129 +                               "WaveLAN", dev) != 0) 
2130         {
2131  #ifdef DEBUG_CONFIG_ERROR
2132                 printk(KERN_WARNING "%s: wavelan_open(): invalid IRQ\n",
2133 diff -urN linux-2.4.18/drivers/net/wd.c linux/drivers/net/wd.c
2134 --- linux-2.4.18/drivers/net/wd.c       Mon Feb 25 17:10:41 2002
2135 +++ linux/drivers/net/wd.c      Mon Feb 25 17:42:32 2002
2136 @@ -266,7 +266,8 @@
2137  
2138         /* Snarf the interrupt now.  There's no point in waiting since we cannot
2139            share and the board will usually be enabled. */
2140 -       i = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev);
2141 +       i = request_irq(dev->irq, ei_interrupt,
2142 +                       SA_NET_RANDOM, dev->name, dev);
2143         if (i) {
2144                 printk (" unable to get IRQ %d.\n", dev->irq);
2145                 kfree(dev->priv);
2146 diff -urN linux-2.4.18/drivers/net/winbond-840.c linux/drivers/net/winbond-840.c
2147 --- linux-2.4.18/drivers/net/winbond-840.c      Mon Feb 25 17:10:46 2002
2148 +++ linux/drivers/net/winbond-840.c     Mon Feb 25 17:42:32 2002
2149 @@ -691,7 +691,8 @@
2150         writel(0x00000001, ioaddr + PCIBusCfg);         /* Reset */
2151  
2152         netif_device_detach(dev);
2153 -       i = request_irq(dev->irq, &intr_handler, SA_SHIRQ, dev->name, dev);
2154 +       i = request_irq(dev->irq, &intr_handler,
2155 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
2156         if (i)
2157                 goto out_err;
2158  
2159 diff -urN linux-2.4.18/drivers/net/wireless/airo.c linux/drivers/net/wireless/airo.c
2160 --- linux-2.4.18/drivers/net/wireless/airo.c    Mon Feb 25 17:10:47 2002
2161 +++ linux/drivers/net/wireless/airo.c   Mon Feb 25 17:42:32 2002
2162 @@ -1191,7 +1191,8 @@
2163         dev->irq = irq;
2164         dev->base_addr = port;
2165  
2166 -       rc = request_irq( dev->irq, airo_interrupt, SA_SHIRQ, dev->name, dev );
2167 +       rc = request_irq( dev->irq, airo_interrupt,
2168 +               SA_SHIRQ | SA_NET_RANDOM, dev->name, dev );
2169         if (rc) {
2170                 printk(KERN_ERR "airo: register interrupt %d failed, rc %d\n", irq, rc );
2171                 goto err_out_unlink;
2172 diff -urN linux-2.4.18/drivers/net/wireless/airport.c linux/drivers/net/wireless/airport.c
2173 --- linux-2.4.18/drivers/net/wireless/airport.c Mon Feb 25 17:10:47 2002
2174 +++ linux/drivers/net/wireless/airport.c        Mon Feb 25 17:42:32 2002
2175 @@ -231,7 +231,8 @@
2176         /* Reset it before we get the interrupt */
2177         hermes_reset(hw);
2178  
2179 -       if (request_irq(ndev->irq, orinoco_interrupt, 0, "Airport", (void *)priv)) {
2180 +       if (request_irq(ndev->irq, orinoco_interrupt, SA_NET_RANDOM,
2181 +                       "Airport", (void *)priv)) {
2182                 printk(KERN_ERR "airport: Couldn't get IRQ %d\n", ndev->irq);
2183                 goto failed;
2184         }
2185 diff -urN linux-2.4.18/drivers/net/wireless/orinoco_plx.c linux/drivers/net/wireless/orinoco_plx.c
2186 --- linux-2.4.18/drivers/net/wireless/orinoco_plx.c     Mon Feb 25 17:10:47 2002
2187 +++ linux/drivers/net/wireless/orinoco_plx.c    Mon Feb 25 17:42:32 2002
2188 @@ -297,7 +297,8 @@
2189         hermes_struct_init(&(priv->hw), dev->base_addr);
2190         pci_set_drvdata(pdev, priv);
2191  
2192 -       err = request_irq(pdev->irq, orinoco_plx_interrupt, SA_SHIRQ, dev->name, priv);
2193 +       err = request_irq(pdev->irq, orinoco_plx_interrupt,
2194 +               SA_SHIRQ | SA_NET_RANDOM, dev->name, priv);
2195         if (err) {
2196                 printk(KERN_ERR "orinoco_plx: Error allocating IRQ %d.\n", pdev->irq);
2197                 err = -EBUSY;
2198 diff -urN linux-2.4.18/drivers/net/yellowfin.c linux/drivers/net/yellowfin.c
2199 --- linux-2.4.18/drivers/net/yellowfin.c        Mon Feb 25 17:10:44 2002
2200 +++ linux/drivers/net/yellowfin.c       Mon Feb 25 17:42:32 2002
2201 @@ -625,7 +625,8 @@
2202         /* Reset the chip. */
2203         outl(0x80000000, ioaddr + DMACtrl);
2204  
2205 -       i = request_irq(dev->irq, &yellowfin_interrupt, SA_SHIRQ, dev->name, dev);
2206 +       i = request_irq(dev->irq, &yellowfin_interrupt,
2207 +                       SA_SHIRQ | SA_NET_RANDOM, dev->name, dev);
2208         if (i) return i;
2209  
2210         if (yellowfin_debug > 1)
2211 diff -urN linux-2.4.18/drivers/net/znet.c linux/drivers/net/znet.c
2212 --- linux-2.4.18/drivers/net/znet.c     Mon Feb 25 17:10:41 2002
2213 +++ linux/drivers/net/znet.c    Mon Feb 25 17:42:32 2002
2214 @@ -252,7 +252,8 @@
2215         zn.lock = SPIN_LOCK_UNLOCKED;
2216  
2217         /* These should never fail.  You can't add devices to a sealed box! */
2218 -       if (request_irq(dev->irq, &znet_interrupt, 0, "ZNet", dev)
2219 +       if (request_irq(dev->irq, &znet_interrupt, SA_NET_RANDOM,
2220 +                       "ZNet", dev)
2221                 || request_dma(zn.rx_dma,"ZNet rx")
2222                 || request_dma(zn.tx_dma,"ZNet tx")) {
2223                 printk(KERN_WARNING "%s: Not opened -- resource busy?!?\n", dev->name);
This page took 0.185369 seconds and 3 git commands to generate.