aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-10-11 03:56:12 -0400
committerJeff Garzik <jeff@garzik.org>2006-10-11 03:56:12 -0400
commit24fcbacedb0d83cabc6761acbecfbf751265ce52 (patch)
tree7147b206304b028c3cfd5de6317e5c8510098ca9 /drivers/net
parent2f614fe04f4463ff22234133319067d7361f54e5 (diff)
parent53a5fbdc2dff55161a206ed1a1385a8fa8055c34 (diff)
Merge branch 'master' into upstream-fixes
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/3c501.c3
-rw-r--r--drivers/net/3c501.h2
-rw-r--r--drivers/net/3c505.c2
-rw-r--r--drivers/net/3c507.c4
-rw-r--r--drivers/net/3c509.c13
-rw-r--r--drivers/net/3c515.c6
-rw-r--r--drivers/net/3c523.c11
-rw-r--r--drivers/net/3c527.c9
-rw-r--r--drivers/net/3c59x.c14
-rw-r--r--drivers/net/7990.c4
-rw-r--r--drivers/net/8139cp.c5
-rw-r--r--drivers/net/8139too.c8
-rw-r--r--drivers/net/82596.c8
-rw-r--r--drivers/net/8390.c13
-rw-r--r--drivers/net/8390.h2
-rw-r--r--drivers/net/a2065.c3
-rw-r--r--drivers/net/acenic.c2
-rw-r--r--drivers/net/acenic.h2
-rw-r--r--drivers/net/amd8111e.c4
-rw-r--r--drivers/net/apne.c6
-rw-r--r--drivers/net/appletalk/cops.c4
-rw-r--r--drivers/net/appletalk/ltpc.c2
-rw-r--r--drivers/net/arcnet/arcnet.c2
-rw-r--r--drivers/net/ariadne.c4
-rw-r--r--drivers/net/arm/am79c961a.c4
-rw-r--r--drivers/net/arm/at91_ether.c4
-rw-r--r--drivers/net/arm/ep93xx_eth.c2
-rw-r--r--drivers/net/arm/ether1.c4
-rw-r--r--drivers/net/arm/ether3.c4
-rw-r--r--drivers/net/at1700.c5
-rw-r--r--drivers/net/atari_bionet.c2
-rw-r--r--drivers/net/atari_pamsnet.c3
-rw-r--r--drivers/net/atarilance.c4
-rw-r--r--drivers/net/atp.c11
-rw-r--r--drivers/net/au1000_eth.c4
-rw-r--r--drivers/net/b44.c4
-rw-r--r--drivers/net/bmac.c14
-rw-r--r--drivers/net/bnx2.c6
-rw-r--r--drivers/net/cassini.c8
-rw-r--r--drivers/net/chelsio/cpl5_cmd.h6
-rw-r--r--drivers/net/chelsio/cxgb2.c2
-rw-r--r--drivers/net/chelsio/sge.c6
-rw-r--r--drivers/net/chelsio/sge.h9
-rw-r--r--drivers/net/cris/eth_v10.c8
-rw-r--r--drivers/net/cs89x0.c6
-rw-r--r--drivers/net/de600.c8
-rw-r--r--drivers/net/de600.h2
-rw-r--r--drivers/net/de620.c4
-rw-r--r--drivers/net/declance.c10
-rw-r--r--drivers/net/defxx.c6
-rw-r--r--drivers/net/depca.c4
-rw-r--r--drivers/net/dgrs.c6
-rw-r--r--drivers/net/dl2k.c4
-rw-r--r--drivers/net/dm9000.c6
-rw-r--r--drivers/net/e100.c4
-rw-r--r--drivers/net/e1000/e1000_ethtool.c3
-rw-r--r--drivers/net/e1000/e1000_main.c7
-rw-r--r--drivers/net/eepro.c26
-rw-r--r--drivers/net/eepro100.c6
-rw-r--r--drivers/net/eexpress.c11
-rw-r--r--drivers/net/ehea/ehea_main.c12
-rw-r--r--drivers/net/epic100.c4
-rw-r--r--drivers/net/eth16i.c4
-rw-r--r--drivers/net/ewrk3.c4
-rw-r--r--drivers/net/fealnx.c4
-rw-r--r--drivers/net/fec.c10
-rw-r--r--drivers/net/fec_8xx/fec_main.c4
-rw-r--r--drivers/net/forcedeth.c20
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c4
-rw-r--r--drivers/net/gianfar.c22
-rw-r--r--drivers/net/gianfar.h2
-rw-r--r--drivers/net/hamachi.c4
-rw-r--r--drivers/net/hamradio/baycom_epp.c2
-rw-r--r--drivers/net/hamradio/baycom_par.c2
-rw-r--r--drivers/net/hamradio/baycom_ser_fdx.c2
-rw-r--r--drivers/net/hamradio/baycom_ser_hdx.c2
-rw-r--r--drivers/net/hamradio/dmascc.c4
-rw-r--r--drivers/net/hamradio/scc.c4
-rw-r--r--drivers/net/hamradio/yam.c2
-rw-r--r--drivers/net/hp100.c4
-rw-r--r--drivers/net/ibm_emac/ibm_emac_core.c4
-rw-r--r--drivers/net/ibm_emac/ibm_emac_debug.c3
-rw-r--r--drivers/net/ibm_emac/ibm_emac_mal.c10
-rw-r--r--drivers/net/ibmlana.c2
-rw-r--r--drivers/net/ibmveth.c8
-rw-r--r--drivers/net/ioc3-eth.c2
-rw-r--r--drivers/net/irda/ali-ircc.c13
-rw-r--r--drivers/net/irda/au1k_ir.c4
-rw-r--r--drivers/net/irda/donauboe.c35
-rw-r--r--drivers/net/irda/irda-usb.c12
-rw-r--r--drivers/net/irda/irport.c16
-rw-r--r--drivers/net/irda/irport.h2
-rw-r--r--drivers/net/irda/mcs7780.c4
-rw-r--r--drivers/net/irda/mcs7780.h4
-rw-r--r--drivers/net/irda/nsc-ircc.c12
-rw-r--r--drivers/net/irda/pxaficp_ir.c8
-rw-r--r--drivers/net/irda/sa1100_ir.c2
-rw-r--r--drivers/net/irda/smsc-ircc2.c6
-rw-r--r--drivers/net/irda/stir4200.c2
-rw-r--r--drivers/net/irda/via-ircc.c8
-rw-r--r--drivers/net/irda/vlsi_ir.c3
-rw-r--r--drivers/net/irda/w83977af_ir.c12
-rw-r--r--drivers/net/isa-skeleton.c4
-rw-r--r--drivers/net/iseries_veth.c2
-rw-r--r--drivers/net/ixgb/ixgb_main.c7
-rw-r--r--drivers/net/ixp2000/ixpdev.c2
-rw-r--r--drivers/net/lance.c10
-rw-r--r--drivers/net/lasi_82596.c8
-rw-r--r--drivers/net/lp486e.c4
-rw-r--r--drivers/net/mac89x0.c4
-rw-r--r--drivers/net/mace.c12
-rw-r--r--drivers/net/macmace.c8
-rw-r--r--drivers/net/meth.c4
-rw-r--r--drivers/net/mipsnet.c3
-rw-r--r--drivers/net/mv643xx_eth.c5
-rw-r--r--drivers/net/myri10ge/myri10ge.c2
-rw-r--r--drivers/net/myri_sbus.c2
-rw-r--r--drivers/net/natsemi.c6
-rw-r--r--drivers/net/netx-eth.c2
-rw-r--r--drivers/net/ni5010.c4
-rw-r--r--drivers/net/ni52.c4
-rw-r--r--drivers/net/ni65.c4
-rw-r--r--drivers/net/ns83820.c2
-rw-r--r--drivers/net/pci-skeleton.c6
-rw-r--r--drivers/net/pcmcia/3c574_cs.c6
-rw-r--r--drivers/net/pcmcia/3c589_cs.c6
-rw-r--r--drivers/net/pcmcia/axnet_cs.c20
-rw-r--r--drivers/net/pcmcia/fmvj18x_cs.c4
-rw-r--r--drivers/net/pcmcia/nmclan_cs.c4
-rw-r--r--drivers/net/pcmcia/pcnet_cs.c8
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c6
-rw-r--r--drivers/net/pcmcia/xirc2ps_cs.c4
-rw-r--r--drivers/net/pcnet32.c13
-rw-r--r--drivers/net/phy/phy.c2
-rw-r--r--drivers/net/plip.c11
-rw-r--r--drivers/net/qla3xxx.c2
-rw-r--r--drivers/net/r8169.c7
-rw-r--r--drivers/net/rrunner.c2
-rw-r--r--drivers/net/rrunner.h2
-rw-r--r--drivers/net/s2io.c12
-rw-r--r--drivers/net/s2io.h330
-rw-r--r--drivers/net/saa9730.c5
-rw-r--r--drivers/net/sb1000.c12
-rw-r--r--drivers/net/sb1250-mac.c4
-rw-r--r--drivers/net/seeq8005.c4
-rw-r--r--drivers/net/sgiseeq.c2
-rw-r--r--drivers/net/sis190.c4
-rw-r--r--drivers/net/sis900.c6
-rw-r--r--drivers/net/sk98lin/skge.c10
-rw-r--r--drivers/net/sk_mca.c2
-rw-r--r--drivers/net/skfp/skfddi.c12
-rw-r--r--drivers/net/skge.c4
-rw-r--r--drivers/net/sky2.c5
-rw-r--r--drivers/net/smc-ultra.c2
-rw-r--r--drivers/net/smc911x.c6
-rw-r--r--drivers/net/smc9194.c4
-rw-r--r--drivers/net/smc91x.c4
-rw-r--r--drivers/net/smc91x.h2
-rw-r--r--drivers/net/sonic.c9
-rw-r--r--drivers/net/sonic.h2
-rw-r--r--drivers/net/spider_net.c4
-rw-r--r--drivers/net/starfire.c4
-rw-r--r--drivers/net/sun3_82586.c4
-rw-r--r--drivers/net/sun3lance.c4
-rw-r--r--drivers/net/sunbmac.c2
-rw-r--r--drivers/net/sundance.c4
-rw-r--r--drivers/net/sungem.c4
-rw-r--r--drivers/net/sunhme.c8
-rw-r--r--drivers/net/sunlance.c4
-rw-r--r--drivers/net/sunqe.c4
-rw-r--r--drivers/net/tc35815.c4
-rw-r--r--drivers/net/tg3.c15
-rw-r--r--drivers/net/tlan.c7
-rw-r--r--drivers/net/tokenring/3c359.c4
-rw-r--r--drivers/net/tokenring/ibmtr.c6
-rw-r--r--drivers/net/tokenring/lanstreamer.c5
-rw-r--r--drivers/net/tokenring/madgemc.c6
-rw-r--r--drivers/net/tokenring/olympic.c4
-rw-r--r--drivers/net/tokenring/smctr.c11
-rw-r--r--drivers/net/tokenring/tms380tr.c7
-rw-r--r--drivers/net/tokenring/tms380tr.h2
-rw-r--r--drivers/net/tulip/de2104x.c2
-rw-r--r--drivers/net/tulip/de4x5.c10
-rw-r--r--drivers/net/tulip/dmfe.c6
-rw-r--r--drivers/net/tulip/interrupt.c2
-rw-r--r--drivers/net/tulip/tulip.h2
-rw-r--r--drivers/net/tulip/tulip_core.c2
-rw-r--r--drivers/net/tulip/uli526x.c4
-rw-r--r--drivers/net/tulip/winbond-840.c4
-rw-r--r--drivers/net/tulip/xircom_cb.c6
-rw-r--r--drivers/net/tulip/xircom_tulip_cb.c4
-rw-r--r--drivers/net/typhoon.c2
-rw-r--r--drivers/net/ucc_geth.c5
-rw-r--r--drivers/net/via-rhine.c6
-rw-r--r--drivers/net/via-velocity.c5
-rw-r--r--drivers/net/wan/cosa.c4
-rw-r--r--drivers/net/wan/cycx_main.c8
-rw-r--r--drivers/net/wan/dscc4.c4
-rw-r--r--drivers/net/wan/farsync.c2
-rw-r--r--drivers/net/wan/hd6457x.c2
-rw-r--r--drivers/net/wan/lmc/lmc_main.c4
-rw-r--r--drivers/net/wan/pc300_drv.c4
-rw-r--r--drivers/net/wan/sbni.c4
-rw-r--r--drivers/net/wan/sdla.c10
-rw-r--r--drivers/net/wan/wanxl.c2
-rw-r--r--drivers/net/wan/z85230.c2
-rw-r--r--drivers/net/wan/z85230.h2
-rw-r--r--drivers/net/wireless/airo.c5
-rw-r--r--drivers/net/wireless/arlan-main.c4
-rw-r--r--drivers/net/wireless/atmel.c2
-rw-r--r--drivers/net/wireless/bcm43xx/bcm43xx_main.c4
-rw-r--r--drivers/net/wireless/hostap/hostap_hw.c2
-rw-r--r--drivers/net/wireless/ipw2100.c2
-rw-r--r--drivers/net/wireless/ipw2200.c2
-rw-r--r--drivers/net/wireless/netwave_cs.c6
-rw-r--r--drivers/net/wireless/orinoco.c4
-rw-r--r--drivers/net/wireless/orinoco.h2
-rw-r--r--drivers/net/wireless/prism54/islpci_dev.c2
-rw-r--r--drivers/net/wireless/prism54/islpci_dev.h2
-rw-r--r--drivers/net/wireless/ray_cs.c4
-rw-r--r--drivers/net/wireless/wavelan.c2
-rw-r--r--drivers/net/wireless/wavelan.p.h3
-rw-r--r--drivers/net/wireless/wavelan_cs.c14
-rw-r--r--drivers/net/wireless/wavelan_cs.p.h3
-rw-r--r--drivers/net/wireless/wl3501_cs.c18
-rw-r--r--drivers/net/wireless/zd1201.c6
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.c6
-rw-r--r--drivers/net/yellowfin.c11
-rw-r--r--drivers/net/znet.c9
229 files changed, 690 insertions, 931 deletions
diff --git a/drivers/net/3c501.c b/drivers/net/3c501.c
index 1b82bccd8c71..11d170afa9c3 100644
--- a/drivers/net/3c501.c
+++ b/drivers/net/3c501.c
@@ -496,7 +496,6 @@ static int el_start_xmit(struct sk_buff *skb, struct net_device *dev)
496 * el_interrupt: 496 * el_interrupt:
497 * @irq: Interrupt number 497 * @irq: Interrupt number
498 * @dev_id: The 3c501 that burped 498 * @dev_id: The 3c501 that burped
499 * @regs: Register data (surplus to our requirements)
500 * 499 *
501 * Handle the ether interface interrupts. The 3c501 needs a lot more 500 * Handle the ether interface interrupts. The 3c501 needs a lot more
502 * hand holding than most cards. In particular we get a transmit interrupt 501 * hand holding than most cards. In particular we get a transmit interrupt
@@ -515,7 +514,7 @@ static int el_start_xmit(struct sk_buff *skb, struct net_device *dev)
515 * TCP window. 514 * TCP window.
516 */ 515 */
517 516
518static irqreturn_t el_interrupt(int irq, void *dev_id, struct pt_regs *regs) 517static irqreturn_t el_interrupt(int irq, void *dev_id)
519{ 518{
520 struct net_device *dev = dev_id; 519 struct net_device *dev = dev_id;
521 struct net_local *lp; 520 struct net_local *lp;
diff --git a/drivers/net/3c501.h b/drivers/net/3c501.h
index 39d332474750..c56a2c62f7de 100644
--- a/drivers/net/3c501.h
+++ b/drivers/net/3c501.h
@@ -7,7 +7,7 @@ static int el1_probe1(struct net_device *dev, int ioaddr);
7static int el_open(struct net_device *dev); 7static int el_open(struct net_device *dev);
8static void el_timeout(struct net_device *dev); 8static void el_timeout(struct net_device *dev);
9static int el_start_xmit(struct sk_buff *skb, struct net_device *dev); 9static int el_start_xmit(struct sk_buff *skb, struct net_device *dev);
10static irqreturn_t el_interrupt(int irq, void *dev_id, struct pt_regs *regs); 10static irqreturn_t el_interrupt(int irq, void *dev_id);
11static void el_receive(struct net_device *dev); 11static void el_receive(struct net_device *dev);
12static void el_reset(struct net_device *dev); 12static void el_reset(struct net_device *dev);
13static int el1_close(struct net_device *dev); 13static int el1_close(struct net_device *dev);
diff --git a/drivers/net/3c505.c b/drivers/net/3c505.c
index ab8230a68bea..458cb9cbe915 100644
--- a/drivers/net/3c505.c
+++ b/drivers/net/3c505.c
@@ -649,7 +649,7 @@ static void receive_packet(struct net_device *dev, int len)
649 * 649 *
650 ******************************************************/ 650 ******************************************************/
651 651
652static irqreturn_t elp_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr) 652static irqreturn_t elp_interrupt(int irq, void *dev_id)
653{ 653{
654 int len; 654 int len;
655 int dlen; 655 int dlen;
diff --git a/drivers/net/3c507.c b/drivers/net/3c507.c
index 8205a535c5b7..aa43563610ae 100644
--- a/drivers/net/3c507.c
+++ b/drivers/net/3c507.c
@@ -286,7 +286,7 @@ static unsigned short init_words[] = {
286static int el16_probe1(struct net_device *dev, int ioaddr); 286static int el16_probe1(struct net_device *dev, int ioaddr);
287static int el16_open(struct net_device *dev); 287static int el16_open(struct net_device *dev);
288static int el16_send_packet(struct sk_buff *skb, struct net_device *dev); 288static int el16_send_packet(struct sk_buff *skb, struct net_device *dev);
289static irqreturn_t el16_interrupt(int irq, void *dev_id, struct pt_regs *regs); 289static irqreturn_t el16_interrupt(int irq, void *dev_id);
290static void el16_rx(struct net_device *dev); 290static void el16_rx(struct net_device *dev);
291static int el16_close(struct net_device *dev); 291static int el16_close(struct net_device *dev);
292static struct net_device_stats *el16_get_stats(struct net_device *dev); 292static struct net_device_stats *el16_get_stats(struct net_device *dev);
@@ -543,7 +543,7 @@ static int el16_send_packet (struct sk_buff *skb, struct net_device *dev)
543 543
544/* The typical workload of the driver: 544/* The typical workload of the driver:
545 Handle the network interface interrupts. */ 545 Handle the network interface interrupts. */
546static irqreturn_t el16_interrupt(int irq, void *dev_id, struct pt_regs *regs) 546static irqreturn_t el16_interrupt(int irq, void *dev_id)
547{ 547{
548 struct net_device *dev = dev_id; 548 struct net_device *dev = dev_id;
549 struct net_local *lp; 549 struct net_local *lp;
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c
index b936373ab2a5..f791bf026e51 100644
--- a/drivers/net/3c509.c
+++ b/drivers/net/3c509.c
@@ -191,7 +191,7 @@ static ushort id_read_eeprom(int index);
191static ushort read_eeprom(int ioaddr, int index); 191static ushort read_eeprom(int ioaddr, int index);
192static int el3_open(struct net_device *dev); 192static int el3_open(struct net_device *dev);
193static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev); 193static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev);
194static irqreturn_t el3_interrupt(int irq, void *dev_id, struct pt_regs *regs); 194static irqreturn_t el3_interrupt(int irq, void *dev_id);
195static void update_stats(struct net_device *dev); 195static void update_stats(struct net_device *dev);
196static struct net_device_stats *el3_get_stats(struct net_device *dev); 196static struct net_device_stats *el3_get_stats(struct net_device *dev);
197static int el3_rx(struct net_device *dev); 197static int el3_rx(struct net_device *dev);
@@ -910,18 +910,13 @@ el3_start_xmit(struct sk_buff *skb, struct net_device *dev)
910 910
911/* The EL3 interrupt handler. */ 911/* The EL3 interrupt handler. */
912static irqreturn_t 912static irqreturn_t
913el3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 913el3_interrupt(int irq, void *dev_id)
914{ 914{
915 struct net_device *dev = (struct net_device *)dev_id; 915 struct net_device *dev = dev_id;
916 struct el3_private *lp; 916 struct el3_private *lp;
917 int ioaddr, status; 917 int ioaddr, status;
918 int i = max_interrupt_work; 918 int i = max_interrupt_work;
919 919
920 if (dev == NULL) {
921 printk ("el3_interrupt(): irq %d for unknown device.\n", irq);
922 return IRQ_NONE;
923 }
924
925 lp = netdev_priv(dev); 920 lp = netdev_priv(dev);
926 spin_lock(&lp->lock); 921 spin_lock(&lp->lock);
927 922
@@ -1006,7 +1001,7 @@ el3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1006static void el3_poll_controller(struct net_device *dev) 1001static void el3_poll_controller(struct net_device *dev)
1007{ 1002{
1008 disable_irq(dev->irq); 1003 disable_irq(dev->irq);
1009 el3_interrupt(dev->irq, dev, NULL); 1004 el3_interrupt(dev->irq, dev);
1010 enable_irq(dev->irq); 1005 enable_irq(dev->irq);
1011} 1006}
1012#endif 1007#endif
diff --git a/drivers/net/3c515.c b/drivers/net/3c515.c
index 91f2232e6050..c307ce66145c 100644
--- a/drivers/net/3c515.c
+++ b/drivers/net/3c515.c
@@ -373,8 +373,7 @@ static int corkscrew_start_xmit(struct sk_buff *skb,
373static int corkscrew_rx(struct net_device *dev); 373static int corkscrew_rx(struct net_device *dev);
374static void corkscrew_timeout(struct net_device *dev); 374static void corkscrew_timeout(struct net_device *dev);
375static int boomerang_rx(struct net_device *dev); 375static int boomerang_rx(struct net_device *dev);
376static irqreturn_t corkscrew_interrupt(int irq, void *dev_id, 376static irqreturn_t corkscrew_interrupt(int irq, void *dev_id);
377 struct pt_regs *regs);
378static int corkscrew_close(struct net_device *dev); 377static int corkscrew_close(struct net_device *dev);
379static void update_stats(int addr, struct net_device *dev); 378static void update_stats(int addr, struct net_device *dev);
380static struct net_device_stats *corkscrew_get_stats(struct net_device *dev); 379static struct net_device_stats *corkscrew_get_stats(struct net_device *dev);
@@ -1116,8 +1115,7 @@ static int corkscrew_start_xmit(struct sk_buff *skb,
1116/* The interrupt handler does all of the Rx thread work and cleans up 1115/* The interrupt handler does all of the Rx thread work and cleans up
1117 after the Tx thread. */ 1116 after the Tx thread. */
1118 1117
1119static irqreturn_t corkscrew_interrupt(int irq, void *dev_id, 1118static irqreturn_t corkscrew_interrupt(int irq, void *dev_id)
1120 struct pt_regs *regs)
1121{ 1119{
1122 /* Use the now-standard shared IRQ implementation. */ 1120 /* Use the now-standard shared IRQ implementation. */
1123 struct net_device *dev = dev_id; 1121 struct net_device *dev = dev_id;
diff --git a/drivers/net/3c523.c b/drivers/net/3c523.c
index cf8a0bc3bf34..91849469b4f4 100644
--- a/drivers/net/3c523.c
+++ b/drivers/net/3c523.c
@@ -180,7 +180,7 @@ sizeof(nop_cmd) = 8;
180 dev->name,__LINE__); \ 180 dev->name,__LINE__); \
181 elmc_id_reset586(); } } } 181 elmc_id_reset586(); } } }
182 182
183static irqreturn_t elmc_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr); 183static irqreturn_t elmc_interrupt(int irq, void *dev_id);
184static int elmc_open(struct net_device *dev); 184static int elmc_open(struct net_device *dev);
185static int elmc_close(struct net_device *dev); 185static int elmc_close(struct net_device *dev);
186static int elmc_send_packet(struct sk_buff *, struct net_device *); 186static int elmc_send_packet(struct sk_buff *, struct net_device *);
@@ -900,16 +900,13 @@ static void *alloc_rfa(struct net_device *dev, void *ptr)
900 */ 900 */
901 901
902static irqreturn_t 902static irqreturn_t
903elmc_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr) 903elmc_interrupt(int irq, void *dev_id)
904{ 904{
905 struct net_device *dev = (struct net_device *) dev_id; 905 struct net_device *dev = dev_id;
906 unsigned short stat; 906 unsigned short stat;
907 struct priv *p; 907 struct priv *p;
908 908
909 if (dev == NULL) { 909 if (!netif_running(dev)) {
910 printk(KERN_ERR "elmc-interrupt: irq %d for unknown device.\n", (int) -(((struct pt_regs *) reg_ptr)->orig_eax + 2));
911 return IRQ_NONE;
912 } else if (!netif_running(dev)) {
913 /* The 3c523 has this habit of generating interrupts during the 910 /* The 3c523 has this habit of generating interrupts during the
914 reset. I'm not sure if the ni52 has this same problem, but it's 911 reset. I'm not sure if the ni52 has this same problem, but it's
915 really annoying if we haven't finished initializing it. I was 912 really annoying if we haven't finished initializing it. I was
diff --git a/drivers/net/3c527.c b/drivers/net/3c527.c
index 625e57dc3b4a..f4aca5386add 100644
--- a/drivers/net/3c527.c
+++ b/drivers/net/3c527.c
@@ -217,7 +217,7 @@ static int mc32_command(struct net_device *dev, u16 cmd, void *data, int le
217static int mc32_open(struct net_device *dev); 217static int mc32_open(struct net_device *dev);
218static void mc32_timeout(struct net_device *dev); 218static void mc32_timeout(struct net_device *dev);
219static int mc32_send_packet(struct sk_buff *skb, struct net_device *dev); 219static int mc32_send_packet(struct sk_buff *skb, struct net_device *dev);
220static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs *regs); 220static irqreturn_t mc32_interrupt(int irq, void *dev_id);
221static int mc32_close(struct net_device *dev); 221static int mc32_close(struct net_device *dev);
222static struct net_device_stats *mc32_get_stats(struct net_device *dev); 222static struct net_device_stats *mc32_get_stats(struct net_device *dev);
223static void mc32_set_multicast_list(struct net_device *dev); 223static void mc32_set_multicast_list(struct net_device *dev);
@@ -1316,7 +1316,7 @@ static void mc32_tx_ring(struct net_device *dev)
1316 * 1316 *
1317 */ 1317 */
1318 1318
1319static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1319static irqreturn_t mc32_interrupt(int irq, void *dev_id)
1320{ 1320{
1321 struct net_device *dev = dev_id; 1321 struct net_device *dev = dev_id;
1322 struct mc32_local *lp; 1322 struct mc32_local *lp;
@@ -1324,11 +1324,6 @@ static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs)
1324 int rx_event = 0; 1324 int rx_event = 0;
1325 int tx_event = 0; 1325 int tx_event = 0;
1326 1326
1327 if (dev == NULL) {
1328 printk(KERN_WARNING "%s: irq %d for unknown device.\n", cardname, irq);
1329 return IRQ_NONE;
1330 }
1331
1332 ioaddr = dev->base_addr; 1327 ioaddr = dev->base_addr;
1333 lp = netdev_priv(dev); 1328 lp = netdev_priv(dev);
1334 1329
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index df42e28cc80f..80bdcf846234 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -717,8 +717,8 @@ static int vortex_start_xmit(struct sk_buff *skb, struct net_device *dev);
717static int boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev); 717static int boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev);
718static int vortex_rx(struct net_device *dev); 718static int vortex_rx(struct net_device *dev);
719static int boomerang_rx(struct net_device *dev); 719static int boomerang_rx(struct net_device *dev);
720static irqreturn_t vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs); 720static irqreturn_t vortex_interrupt(int irq, void *dev_id);
721static irqreturn_t boomerang_interrupt(int irq, void *dev_id, struct pt_regs *regs); 721static irqreturn_t boomerang_interrupt(int irq, void *dev_id);
722static int vortex_close(struct net_device *dev); 722static int vortex_close(struct net_device *dev);
723static void dump_tx_ring(struct net_device *dev); 723static void dump_tx_ring(struct net_device *dev);
724static void update_stats(void __iomem *ioaddr, struct net_device *dev); 724static void update_stats(void __iomem *ioaddr, struct net_device *dev);
@@ -794,7 +794,7 @@ static void poll_vortex(struct net_device *dev)
794 unsigned long flags; 794 unsigned long flags;
795 local_save_flags(flags); 795 local_save_flags(flags);
796 local_irq_disable(); 796 local_irq_disable();
797 (vp->full_bus_master_rx ? boomerang_interrupt:vortex_interrupt)(dev->irq,dev,NULL); 797 (vp->full_bus_master_rx ? boomerang_interrupt:vortex_interrupt)(dev->irq,dev);
798 local_irq_restore(flags); 798 local_irq_restore(flags);
799} 799}
800#endif 800#endif
@@ -1849,9 +1849,9 @@ static void vortex_tx_timeout(struct net_device *dev)
1849 unsigned long flags; 1849 unsigned long flags;
1850 local_irq_save(flags); 1850 local_irq_save(flags);
1851 if (vp->full_bus_master_tx) 1851 if (vp->full_bus_master_tx)
1852 boomerang_interrupt(dev->irq, dev, NULL); 1852 boomerang_interrupt(dev->irq, dev);
1853 else 1853 else
1854 vortex_interrupt(dev->irq, dev, NULL); 1854 vortex_interrupt(dev->irq, dev);
1855 local_irq_restore(flags); 1855 local_irq_restore(flags);
1856 } 1856 }
1857 } 1857 }
@@ -2149,7 +2149,7 @@ boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev)
2149 */ 2149 */
2150 2150
2151static irqreturn_t 2151static irqreturn_t
2152vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2152vortex_interrupt(int irq, void *dev_id)
2153{ 2153{
2154 struct net_device *dev = dev_id; 2154 struct net_device *dev = dev_id;
2155 struct vortex_private *vp = netdev_priv(dev); 2155 struct vortex_private *vp = netdev_priv(dev);
@@ -2254,7 +2254,7 @@ handler_exit:
2254 */ 2254 */
2255 2255
2256static irqreturn_t 2256static irqreturn_t
2257boomerang_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2257boomerang_interrupt(int irq, void *dev_id)
2258{ 2258{
2259 struct net_device *dev = dev_id; 2259 struct net_device *dev = dev_id;
2260 struct vortex_private *vp = netdev_priv(dev); 2260 struct vortex_private *vp = netdev_priv(dev);
diff --git a/drivers/net/7990.c b/drivers/net/7990.c
index db7b19a5cd59..7733697f7776 100644
--- a/drivers/net/7990.c
+++ b/drivers/net/7990.c
@@ -438,7 +438,7 @@ static int lance_tx (struct net_device *dev)
438} 438}
439 439
440static irqreturn_t 440static irqreturn_t
441lance_interrupt (int irq, void *dev_id, struct pt_regs *regs) 441lance_interrupt (int irq, void *dev_id)
442{ 442{
443 struct net_device *dev = (struct net_device *)dev_id; 443 struct net_device *dev = (struct net_device *)dev_id;
444 struct lance_private *lp = netdev_priv(dev); 444 struct lance_private *lp = netdev_priv(dev);
@@ -674,7 +674,7 @@ void lance_poll(struct net_device *dev)
674 WRITERAP(lp, LE_CSR0); 674 WRITERAP(lp, LE_CSR0);
675 WRITERDP(lp, LE_C0_STRT); 675 WRITERDP(lp, LE_C0_STRT);
676 spin_unlock (&lp->devlock); 676 spin_unlock (&lp->devlock);
677 lance_interrupt(dev->irq, dev, NULL); 677 lance_interrupt(dev->irq, dev);
678} 678}
679#endif 679#endif
680 680
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index 5a4990ae3730..458dd9f830c4 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -631,8 +631,7 @@ rx_next:
631 return 1; /* not done */ 631 return 1; /* not done */
632} 632}
633 633
634static irqreturn_t 634static irqreturn_t cp_interrupt (int irq, void *dev_instance)
635cp_interrupt (int irq, void *dev_instance, struct pt_regs *regs)
636{ 635{
637 struct net_device *dev = dev_instance; 636 struct net_device *dev = dev_instance;
638 struct cp_private *cp; 637 struct cp_private *cp;
@@ -696,7 +695,7 @@ cp_interrupt (int irq, void *dev_instance, struct pt_regs *regs)
696static void cp_poll_controller(struct net_device *dev) 695static void cp_poll_controller(struct net_device *dev)
697{ 696{
698 disable_irq(dev->irq); 697 disable_irq(dev->irq);
699 cp_interrupt(dev->irq, dev, NULL); 698 cp_interrupt(dev->irq, dev);
700 enable_irq(dev->irq); 699 enable_irq(dev->irq);
701} 700}
702#endif 701#endif
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index dbc5c0b1b96c..d02ed51abfcc 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -629,8 +629,7 @@ static int rtl8139_poll(struct net_device *dev, int *budget);
629#ifdef CONFIG_NET_POLL_CONTROLLER 629#ifdef CONFIG_NET_POLL_CONTROLLER
630static void rtl8139_poll_controller(struct net_device *dev); 630static void rtl8139_poll_controller(struct net_device *dev);
631#endif 631#endif
632static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance, 632static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance);
633 struct pt_regs *regs);
634static int rtl8139_close (struct net_device *dev); 633static int rtl8139_close (struct net_device *dev);
635static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd); 634static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
636static struct net_device_stats *rtl8139_get_stats (struct net_device *dev); 635static struct net_device_stats *rtl8139_get_stats (struct net_device *dev);
@@ -2146,8 +2145,7 @@ static int rtl8139_poll(struct net_device *dev, int *budget)
2146 2145
2147/* The interrupt handler does all of the Rx thread work and cleans up 2146/* The interrupt handler does all of the Rx thread work and cleans up
2148 after the Tx thread. */ 2147 after the Tx thread. */
2149static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance, 2148static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance)
2150 struct pt_regs *regs)
2151{ 2149{
2152 struct net_device *dev = (struct net_device *) dev_instance; 2150 struct net_device *dev = (struct net_device *) dev_instance;
2153 struct rtl8139_private *tp = netdev_priv(dev); 2151 struct rtl8139_private *tp = netdev_priv(dev);
@@ -2219,7 +2217,7 @@ static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance,
2219static void rtl8139_poll_controller(struct net_device *dev) 2217static void rtl8139_poll_controller(struct net_device *dev)
2220{ 2218{
2221 disable_irq(dev->irq); 2219 disable_irq(dev->irq);
2222 rtl8139_interrupt(dev->irq, dev, NULL); 2220 rtl8139_interrupt(dev->irq, dev);
2223 enable_irq(dev->irq); 2221 enable_irq(dev->irq);
2224} 2222}
2225#endif 2223#endif
diff --git a/drivers/net/82596.c b/drivers/net/82596.c
index c9e4dca9d410..8236f26ffd46 100644
--- a/drivers/net/82596.c
+++ b/drivers/net/82596.c
@@ -357,7 +357,7 @@ static char init_setup[] =
357 357
358static int i596_open(struct net_device *dev); 358static int i596_open(struct net_device *dev);
359static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev); 359static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev);
360static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs); 360static irqreturn_t i596_interrupt(int irq, void *dev_id);
361static int i596_close(struct net_device *dev); 361static int i596_close(struct net_device *dev);
362static struct net_device_stats *i596_get_stats(struct net_device *dev); 362static struct net_device_stats *i596_get_stats(struct net_device *dev);
363static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd); 363static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd);
@@ -501,7 +501,7 @@ static void i596_display_data(struct net_device *dev)
501 501
502 502
503#if defined(ENABLE_MVME16x_NET) || defined(ENABLE_BVME6000_NET) 503#if defined(ENABLE_MVME16x_NET) || defined(ENABLE_BVME6000_NET)
504static irqreturn_t i596_error(int irq, void *dev_id, struct pt_regs *regs) 504static irqreturn_t i596_error(int irq, void *dev_id)
505{ 505{
506 struct net_device *dev = dev_id; 506 struct net_device *dev = dev_id;
507#ifdef ENABLE_MVME16x_NET 507#ifdef ENABLE_MVME16x_NET
@@ -1283,7 +1283,7 @@ out:
1283 return ERR_PTR(err); 1283 return ERR_PTR(err);
1284} 1284}
1285 1285
1286static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1286static irqreturn_t i596_interrupt(int irq, void *dev_id)
1287{ 1287{
1288 struct net_device *dev = dev_id; 1288 struct net_device *dev = dev_id;
1289 struct i596_private *lp; 1289 struct i596_private *lp;
@@ -1294,7 +1294,7 @@ static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1294#ifdef ENABLE_BVME6000_NET 1294#ifdef ENABLE_BVME6000_NET
1295 if (MACH_IS_BVME6000) { 1295 if (MACH_IS_BVME6000) {
1296 if (*(char *) BVME_LOCAL_IRQ_STAT & BVME_ETHERR) { 1296 if (*(char *) BVME_LOCAL_IRQ_STAT & BVME_ETHERR) {
1297 i596_error(irq, dev_id, regs); 1297 i596_error(irq, dev_id);
1298 return IRQ_HANDLED; 1298 return IRQ_HANDLED;
1299 } 1299 }
1300 } 1300 }
diff --git a/drivers/net/8390.c b/drivers/net/8390.c
index 9d34056147ad..3d1c599ac3cb 100644
--- a/drivers/net/8390.c
+++ b/drivers/net/8390.c
@@ -391,7 +391,6 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
391 * ei_interrupt - handle the interrupts from an 8390 391 * ei_interrupt - handle the interrupts from an 8390
392 * @irq: interrupt number 392 * @irq: interrupt number
393 * @dev_id: a pointer to the net_device 393 * @dev_id: a pointer to the net_device
394 * @regs: unused
395 * 394 *
396 * Handle the ether interface interrupts. We pull packets from 395 * Handle the ether interface interrupts. We pull packets from
397 * the 8390 via the card specific functions and fire them at the networking 396 * the 8390 via the card specific functions and fire them at the networking
@@ -400,21 +399,15 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
400 * needed. 399 * needed.
401 */ 400 */
402 401
403irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs) 402irqreturn_t ei_interrupt(int irq, void *dev_id)
404{ 403{
405 struct net_device *dev = dev_id; 404 struct net_device *dev = dev_id;
406 long e8390_base; 405 long e8390_base;
407 int interrupts, nr_serviced = 0; 406 int interrupts, nr_serviced = 0;
408 struct ei_device *ei_local; 407 struct ei_device *ei_local;
409 408
410 if (dev == NULL)
411 {
412 printk ("net_interrupt(): irq %d for unknown device.\n", irq);
413 return IRQ_NONE;
414 }
415
416 e8390_base = dev->base_addr; 409 e8390_base = dev->base_addr;
417 ei_local = (struct ei_device *) netdev_priv(dev); 410 ei_local = netdev_priv(dev);
418 411
419 /* 412 /*
420 * Protect the irq test too. 413 * Protect the irq test too.
@@ -506,7 +499,7 @@ irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs)
506void ei_poll(struct net_device *dev) 499void ei_poll(struct net_device *dev)
507{ 500{
508 disable_irq_lockdep(dev->irq); 501 disable_irq_lockdep(dev->irq);
509 ei_interrupt(dev->irq, dev, NULL); 502 ei_interrupt(dev->irq, dev);
510 enable_irq_lockdep(dev->irq); 503 enable_irq_lockdep(dev->irq);
511} 504}
512#endif 505#endif
diff --git a/drivers/net/8390.h b/drivers/net/8390.h
index ca4eb0ccf8cf..f44f1220b3a5 100644
--- a/drivers/net/8390.h
+++ b/drivers/net/8390.h
@@ -35,7 +35,7 @@ extern void ei_poll(struct net_device *dev);
35extern void NS8390_init(struct net_device *dev, int startp); 35extern void NS8390_init(struct net_device *dev, int startp);
36extern int ei_open(struct net_device *dev); 36extern int ei_open(struct net_device *dev);
37extern int ei_close(struct net_device *dev); 37extern int ei_close(struct net_device *dev);
38extern irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs *regs); 38extern irqreturn_t ei_interrupt(int irq, void *dev_id);
39extern struct net_device *__alloc_ei_netdev(int size); 39extern struct net_device *__alloc_ei_netdev(int size);
40static inline struct net_device *alloc_ei_netdev(void) 40static inline struct net_device *alloc_ei_netdev(void)
41{ 41{
diff --git a/drivers/net/a2065.c b/drivers/net/a2065.c
index 5f7258fea19d..d76548e75350 100644
--- a/drivers/net/a2065.c
+++ b/drivers/net/a2065.c
@@ -425,8 +425,7 @@ static int lance_tx (struct net_device *dev)
425 return 0; 425 return 0;
426} 426}
427 427
428static irqreturn_t 428static irqreturn_t lance_interrupt (int irq, void *dev_id)
429lance_interrupt (int irq, void *dev_id, struct pt_regs *regs)
430{ 429{
431 struct net_device *dev; 430 struct net_device *dev;
432 struct lance_private *lp; 431 struct lance_private *lp;
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index 71a4f60f7325..33c6645455ae 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -2144,7 +2144,7 @@ static inline void ace_tx_int(struct net_device *dev,
2144} 2144}
2145 2145
2146 2146
2147static irqreturn_t ace_interrupt(int irq, void *dev_id, struct pt_regs *ptregs) 2147static irqreturn_t ace_interrupt(int irq, void *dev_id)
2148{ 2148{
2149 struct net_device *dev = (struct net_device *)dev_id; 2149 struct net_device *dev = (struct net_device *)dev_id;
2150 struct ace_private *ap = netdev_priv(dev); 2150 struct ace_private *ap = netdev_priv(dev);
diff --git a/drivers/net/acenic.h b/drivers/net/acenic.h
index efb14b9f4d90..8ca8534d70bf 100644
--- a/drivers/net/acenic.h
+++ b/drivers/net/acenic.h
@@ -769,7 +769,7 @@ static int ace_init(struct net_device *dev);
769static void ace_load_std_rx_ring(struct ace_private *ap, int nr_bufs); 769static void ace_load_std_rx_ring(struct ace_private *ap, int nr_bufs);
770static void ace_load_mini_rx_ring(struct ace_private *ap, int nr_bufs); 770static void ace_load_mini_rx_ring(struct ace_private *ap, int nr_bufs);
771static void ace_load_jumbo_rx_ring(struct ace_private *ap, int nr_bufs); 771static void ace_load_jumbo_rx_ring(struct ace_private *ap, int nr_bufs);
772static irqreturn_t ace_interrupt(int irq, void *dev_id, struct pt_regs *regs); 772static irqreturn_t ace_interrupt(int irq, void *dev_id);
773static int ace_load_firmware(struct net_device *dev); 773static int ace_load_firmware(struct net_device *dev);
774static int ace_open(struct net_device *dev); 774static int ace_open(struct net_device *dev);
775static int ace_start_xmit(struct sk_buff *skb, struct net_device *dev); 775static int ace_start_xmit(struct sk_buff *skb, struct net_device *dev);
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index 28855a01ed7b..ef65e5917c8f 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -1257,7 +1257,7 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
1257/* 1257/*
1258This is device interrupt function. It handles transmit, receive,link change and hardware timer interrupts. 1258This is device interrupt function. It handles transmit, receive,link change and hardware timer interrupts.
1259*/ 1259*/
1260static irqreturn_t amd8111e_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1260static irqreturn_t amd8111e_interrupt(int irq, void *dev_id)
1261{ 1261{
1262 1262
1263 struct net_device * dev = (struct net_device *) dev_id; 1263 struct net_device * dev = (struct net_device *) dev_id;
@@ -1336,7 +1336,7 @@ static void amd8111e_poll(struct net_device *dev)
1336 unsigned long flags; 1336 unsigned long flags;
1337 local_save_flags(flags); 1337 local_save_flags(flags);
1338 local_irq_disable(); 1338 local_irq_disable();
1339 amd8111e_interrupt(0, dev, NULL); 1339 amd8111e_interrupt(0, dev);
1340 local_irq_restore(flags); 1340 local_irq_restore(flags);
1341} 1341}
1342#endif 1342#endif
diff --git a/drivers/net/apne.c b/drivers/net/apne.c
index 643b08cc7403..9164d8cd670e 100644
--- a/drivers/net/apne.c
+++ b/drivers/net/apne.c
@@ -88,7 +88,7 @@ static void apne_block_input(struct net_device *dev, int count,
88 struct sk_buff *skb, int ring_offset); 88 struct sk_buff *skb, int ring_offset);
89static void apne_block_output(struct net_device *dev, const int count, 89static void apne_block_output(struct net_device *dev, const int count,
90 const unsigned char *buf, const int start_page); 90 const unsigned char *buf, const int start_page);
91static irqreturn_t apne_interrupt(int irq, void *dev_id, struct pt_regs *regs); 91static irqreturn_t apne_interrupt(int irq, void *dev_id);
92 92
93static int init_pcmcia(void); 93static int init_pcmcia(void);
94 94
@@ -543,7 +543,7 @@ apne_block_output(struct net_device *dev, int count,
543 return; 543 return;
544} 544}
545 545
546static irqreturn_t apne_interrupt(int irq, void *dev_id, struct pt_regs *regs) 546static irqreturn_t apne_interrupt(int irq, void *dev_id)
547{ 547{
548 unsigned char pcmcia_intreq; 548 unsigned char pcmcia_intreq;
549 549
@@ -559,7 +559,7 @@ static irqreturn_t apne_interrupt(int irq, void *dev_id, struct pt_regs *regs)
559 if (ei_debug > 3) 559 if (ei_debug > 3)
560 printk("pcmcia intreq = %x\n", pcmcia_intreq); 560 printk("pcmcia intreq = %x\n", pcmcia_intreq);
561 pcmcia_disable_irq(); /* to get rid of the sti() within ei_interrupt */ 561 pcmcia_disable_irq(); /* to get rid of the sti() within ei_interrupt */
562 ei_interrupt(irq, dev_id, regs); 562 ei_interrupt(irq, dev_id);
563 pcmcia_ack_int(pcmcia_get_intreq()); 563 pcmcia_ack_int(pcmcia_get_intreq());
564 pcmcia_enable_irq(); 564 pcmcia_enable_irq();
565 return IRQ_HANDLED; 565 return IRQ_HANDLED;
diff --git a/drivers/net/appletalk/cops.c b/drivers/net/appletalk/cops.c
index ae7f828344d9..cc1a27ed197f 100644
--- a/drivers/net/appletalk/cops.c
+++ b/drivers/net/appletalk/cops.c
@@ -188,7 +188,7 @@ static void cops_reset (struct net_device *dev, int sleep);
188static void cops_load (struct net_device *dev); 188static void cops_load (struct net_device *dev);
189static int cops_nodeid (struct net_device *dev, int nodeid); 189static int cops_nodeid (struct net_device *dev, int nodeid);
190 190
191static irqreturn_t cops_interrupt (int irq, void *dev_id, struct pt_regs *regs); 191static irqreturn_t cops_interrupt (int irq, void *dev_id);
192static void cops_poll (unsigned long ltdev); 192static void cops_poll (unsigned long ltdev);
193static void cops_timeout(struct net_device *dev); 193static void cops_timeout(struct net_device *dev);
194static void cops_rx (struct net_device *dev); 194static void cops_rx (struct net_device *dev);
@@ -721,7 +721,7 @@ static void cops_poll(unsigned long ltdev)
721 * The typical workload of the driver: 721 * The typical workload of the driver:
722 * Handle the network interface interrupts. 722 * Handle the network interface interrupts.
723 */ 723 */
724static irqreturn_t cops_interrupt(int irq, void *dev_id, struct pt_regs * regs) 724static irqreturn_t cops_interrupt(int irq, void *dev_id)
725{ 725{
726 struct net_device *dev = dev_id; 726 struct net_device *dev = dev_id;
727 struct cops_local *lp; 727 struct cops_local *lp;
diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c
index d5666c37cb0d..2ea44ce49810 100644
--- a/drivers/net/appletalk/ltpc.c
+++ b/drivers/net/appletalk/ltpc.c
@@ -790,7 +790,7 @@ static int sendup_buffer (struct net_device *dev)
790/* the handler for the board interrupt */ 790/* the handler for the board interrupt */
791 791
792static irqreturn_t 792static irqreturn_t
793ltpc_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr) 793ltpc_interrupt(int irq, void *dev_id)
794{ 794{
795 struct net_device *dev = dev_id; 795 struct net_device *dev = dev_id;
796 796
diff --git a/drivers/net/arcnet/arcnet.c b/drivers/net/arcnet/arcnet.c
index 5a95005253fa..4e91dab1f17f 100644
--- a/drivers/net/arcnet/arcnet.c
+++ b/drivers/net/arcnet/arcnet.c
@@ -752,7 +752,7 @@ static void arcnet_timeout(struct net_device *dev)
752 * interrupts. Establish which device needs attention, and call the correct 752 * interrupts. Establish which device needs attention, and call the correct
753 * chipset interrupt handler. 753 * chipset interrupt handler.
754 */ 754 */
755irqreturn_t arcnet_interrupt(int irq, void *dev_id, struct pt_regs *regs) 755irqreturn_t arcnet_interrupt(int irq, void *dev_id)
756{ 756{
757 struct net_device *dev = dev_id; 757 struct net_device *dev = dev_id;
758 struct arcnet_local *lp; 758 struct arcnet_local *lp;
diff --git a/drivers/net/ariadne.c b/drivers/net/ariadne.c
index 3aef3c10d56f..9dfc09b181c1 100644
--- a/drivers/net/ariadne.c
+++ b/drivers/net/ariadne.c
@@ -120,7 +120,7 @@ static int ariadne_start_xmit(struct sk_buff *skb, struct net_device *dev);
120static void ariadne_tx_timeout(struct net_device *dev); 120static void ariadne_tx_timeout(struct net_device *dev);
121static int ariadne_rx(struct net_device *dev); 121static int ariadne_rx(struct net_device *dev);
122static void ariadne_reset(struct net_device *dev); 122static void ariadne_reset(struct net_device *dev);
123static irqreturn_t ariadne_interrupt(int irq, void *data, struct pt_regs *fp); 123static irqreturn_t ariadne_interrupt(int irq, void *data);
124static int ariadne_close(struct net_device *dev); 124static int ariadne_close(struct net_device *dev);
125static struct net_device_stats *ariadne_get_stats(struct net_device *dev); 125static struct net_device_stats *ariadne_get_stats(struct net_device *dev);
126#ifdef HAVE_MULTICAST 126#ifdef HAVE_MULTICAST
@@ -416,7 +416,7 @@ static inline void ariadne_reset(struct net_device *dev)
416} 416}
417 417
418 418
419static irqreturn_t ariadne_interrupt(int irq, void *data, struct pt_regs *fp) 419static irqreturn_t ariadne_interrupt(int irq, void *data)
420{ 420{
421 struct net_device *dev = (struct net_device *)data; 421 struct net_device *dev = (struct net_device *)data;
422 volatile struct Am79C960 *lance = (struct Am79C960*)dev->base_addr; 422 volatile struct Am79C960 *lance = (struct Am79C960*)dev->base_addr;
diff --git a/drivers/net/arm/am79c961a.c b/drivers/net/arm/am79c961a.c
index 09d5c3f26985..ddd12d44ff22 100644
--- a/drivers/net/arm/am79c961a.c
+++ b/drivers/net/arm/am79c961a.c
@@ -38,7 +38,7 @@
38#include "am79c961a.h" 38#include "am79c961a.h"
39 39
40static irqreturn_t 40static irqreturn_t
41am79c961_interrupt (int irq, void *dev_id, struct pt_regs *regs); 41am79c961_interrupt (int irq, void *dev_id);
42 42
43static unsigned int net_debug = NET_DEBUG; 43static unsigned int net_debug = NET_DEBUG;
44 44
@@ -596,7 +596,7 @@ am79c961_tx(struct net_device *dev, struct dev_priv *priv)
596} 596}
597 597
598static irqreturn_t 598static irqreturn_t
599am79c961_interrupt(int irq, void *dev_id, struct pt_regs *regs) 599am79c961_interrupt(int irq, void *dev_id)
600{ 600{
601 struct net_device *dev = (struct net_device *)dev_id; 601 struct net_device *dev = (struct net_device *)dev_id;
602 struct dev_priv *priv = netdev_priv(dev); 602 struct dev_priv *priv = netdev_priv(dev);
diff --git a/drivers/net/arm/at91_ether.c b/drivers/net/arm/at91_ether.c
index 3ecf2cc53a7c..b54b857e357e 100644
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
@@ -196,7 +196,7 @@ static void update_linkspeed(struct net_device *dev, int silent)
196/* 196/*
197 * Handle interrupts from the PHY 197 * Handle interrupts from the PHY
198 */ 198 */
199static irqreturn_t at91ether_phy_interrupt(int irq, void *dev_id, struct pt_regs *regs) 199static irqreturn_t at91ether_phy_interrupt(int irq, void *dev_id)
200{ 200{
201 struct net_device *dev = (struct net_device *) dev_id; 201 struct net_device *dev = (struct net_device *) dev_id;
202 struct at91_private *lp = (struct at91_private *) dev->priv; 202 struct at91_private *lp = (struct at91_private *) dev->priv;
@@ -888,7 +888,7 @@ static void at91ether_rx(struct net_device *dev)
888/* 888/*
889 * MAC interrupt handler 889 * MAC interrupt handler
890 */ 890 */
891static irqreturn_t at91ether_interrupt(int irq, void *dev_id, struct pt_regs *regs) 891static irqreturn_t at91ether_interrupt(int irq, void *dev_id)
892{ 892{
893 struct net_device *dev = (struct net_device *) dev_id; 893 struct net_device *dev = (struct net_device *) dev_id;
894 struct at91_private *lp = (struct at91_private *) dev->priv; 894 struct at91_private *lp = (struct at91_private *) dev->priv;
diff --git a/drivers/net/arm/ep93xx_eth.c b/drivers/net/arm/ep93xx_eth.c
index d231efa624d4..127561c782fd 100644
--- a/drivers/net/arm/ep93xx_eth.c
+++ b/drivers/net/arm/ep93xx_eth.c
@@ -435,7 +435,7 @@ static void ep93xx_tx_complete(struct net_device *dev)
435 netif_wake_queue(dev); 435 netif_wake_queue(dev);
436} 436}
437 437
438static irqreturn_t ep93xx_irq(int irq, void *dev_id, struct pt_regs *regs) 438static irqreturn_t ep93xx_irq(int irq, void *dev_id)
439{ 439{
440 struct net_device *dev = dev_id; 440 struct net_device *dev = dev_id;
441 struct ep93xx_priv *ep = netdev_priv(dev); 441 struct ep93xx_priv *ep = netdev_priv(dev);
diff --git a/drivers/net/arm/ether1.c b/drivers/net/arm/ether1.c
index 312955d07b28..f3478a30e778 100644
--- a/drivers/net/arm/ether1.c
+++ b/drivers/net/arm/ether1.c
@@ -68,7 +68,7 @@ static unsigned int net_debug = NET_DEBUG;
68 68
69static int ether1_open(struct net_device *dev); 69static int ether1_open(struct net_device *dev);
70static int ether1_sendpacket(struct sk_buff *skb, struct net_device *dev); 70static int ether1_sendpacket(struct sk_buff *skb, struct net_device *dev);
71static irqreturn_t ether1_interrupt(int irq, void *dev_id, struct pt_regs *regs); 71static irqreturn_t ether1_interrupt(int irq, void *dev_id);
72static int ether1_close(struct net_device *dev); 72static int ether1_close(struct net_device *dev);
73static struct net_device_stats *ether1_getstats(struct net_device *dev); 73static struct net_device_stats *ether1_getstats(struct net_device *dev);
74static void ether1_setmulticastlist(struct net_device *dev); 74static void ether1_setmulticastlist(struct net_device *dev);
@@ -908,7 +908,7 @@ ether1_recv_done (struct net_device *dev)
908} 908}
909 909
910static irqreturn_t 910static irqreturn_t
911ether1_interrupt (int irq, void *dev_id, struct pt_regs *regs) 911ether1_interrupt (int irq, void *dev_id)
912{ 912{
913 struct net_device *dev = (struct net_device *)dev_id; 913 struct net_device *dev = (struct net_device *)dev_id;
914 int status; 914 int status;
diff --git a/drivers/net/arm/ether3.c b/drivers/net/arm/ether3.c
index 081074180e62..84686c8a5bc2 100644
--- a/drivers/net/arm/ether3.c
+++ b/drivers/net/arm/ether3.c
@@ -81,7 +81,7 @@ static int ether3_rx(struct net_device *dev, unsigned int maxcnt);
81static void ether3_tx(struct net_device *dev); 81static void ether3_tx(struct net_device *dev);
82static int ether3_open (struct net_device *dev); 82static int ether3_open (struct net_device *dev);
83static int ether3_sendpacket (struct sk_buff *skb, struct net_device *dev); 83static int ether3_sendpacket (struct sk_buff *skb, struct net_device *dev);
84static irqreturn_t ether3_interrupt (int irq, void *dev_id, struct pt_regs *regs); 84static irqreturn_t ether3_interrupt (int irq, void *dev_id);
85static int ether3_close (struct net_device *dev); 85static int ether3_close (struct net_device *dev);
86static struct net_device_stats *ether3_getstats (struct net_device *dev); 86static struct net_device_stats *ether3_getstats (struct net_device *dev);
87static void ether3_setmulticastlist (struct net_device *dev); 87static void ether3_setmulticastlist (struct net_device *dev);
@@ -568,7 +568,7 @@ ether3_sendpacket(struct sk_buff *skb, struct net_device *dev)
568} 568}
569 569
570static irqreturn_t 570static irqreturn_t
571ether3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 571ether3_interrupt(int irq, void *dev_id)
572{ 572{
573 struct net_device *dev = (struct net_device *)dev_id; 573 struct net_device *dev = (struct net_device *)dev_id;
574 unsigned int status, handled = IRQ_NONE; 574 unsigned int status, handled = IRQ_NONE;
diff --git a/drivers/net/at1700.c b/drivers/net/at1700.c
index 4aeca11f3ee2..8620a5b470f5 100644
--- a/drivers/net/at1700.c
+++ b/drivers/net/at1700.c
@@ -161,7 +161,7 @@ static int at1700_probe1(struct net_device *dev, int ioaddr);
161static int read_eeprom(long ioaddr, int location); 161static int read_eeprom(long ioaddr, int location);
162static int net_open(struct net_device *dev); 162static int net_open(struct net_device *dev);
163static int net_send_packet(struct sk_buff *skb, struct net_device *dev); 163static int net_send_packet(struct sk_buff *skb, struct net_device *dev);
164static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs *regs); 164static irqreturn_t net_interrupt(int irq, void *dev_id);
165static void net_rx(struct net_device *dev); 165static void net_rx(struct net_device *dev);
166static int net_close(struct net_device *dev); 166static int net_close(struct net_device *dev);
167static struct net_device_stats *net_get_stats(struct net_device *dev); 167static struct net_device_stats *net_get_stats(struct net_device *dev);
@@ -648,8 +648,7 @@ static int net_send_packet (struct sk_buff *skb, struct net_device *dev)
648 648
649/* The typical workload of the driver: 649/* The typical workload of the driver:
650 Handle the network interface interrupts. */ 650 Handle the network interface interrupts. */
651static irqreturn_t 651static irqreturn_t net_interrupt(int irq, void *dev_id)
652net_interrupt(int irq, void *dev_id, struct pt_regs *regs)
653{ 652{
654 struct net_device *dev = dev_id; 653 struct net_device *dev = dev_id;
655 struct net_local *lp; 654 struct net_local *lp;
diff --git a/drivers/net/atari_bionet.c b/drivers/net/atari_bionet.c
index 92b52138acad..4e3bf6a1f22c 100644
--- a/drivers/net/atari_bionet.c
+++ b/drivers/net/atari_bionet.c
@@ -220,7 +220,7 @@ gsend:
220} 220}
221 221
222static irqreturn_t 222static irqreturn_t
223bionet_intr(int irq, void *data, struct pt_regs *fp) { 223bionet_intr(int irq, void *data) {
224 return IRQ_HANDLED; 224 return IRQ_HANDLED;
225} 225}
226 226
diff --git a/drivers/net/atari_pamsnet.c b/drivers/net/atari_pamsnet.c
index a1026251b933..3b5436149286 100644
--- a/drivers/net/atari_pamsnet.c
+++ b/drivers/net/atari_pamsnet.c
@@ -163,7 +163,7 @@ static int pamsnet_close(struct net_device *dev);
163static struct net_device_stats *net_get_stats(struct net_device *dev); 163static struct net_device_stats *net_get_stats(struct net_device *dev);
164static void pamsnet_tick(unsigned long); 164static void pamsnet_tick(unsigned long);
165 165
166static irqreturn_t pamsnet_intr(int irq, void *data, struct pt_regs *fp); 166static irqreturn_t pamsnet_intr(int irq, void *data);
167 167
168static DEFINE_TIMER(pamsnet_timer, pamsnet_tick, 0, 0); 168static DEFINE_TIMER(pamsnet_timer, pamsnet_tick, 0, 0);
169 169
@@ -494,7 +494,6 @@ static irqreturn_t
494pamsnet_intr(irq, data, fp) 494pamsnet_intr(irq, data, fp)
495 int irq; 495 int irq;
496 void *data; 496 void *data;
497 struct pt_regs *fp;
498{ 497{
499 return IRQ_HANDLED; 498 return IRQ_HANDLED;
500} 499}
diff --git a/drivers/net/atarilance.c b/drivers/net/atarilance.c
index b6570ca6ada7..d79489e46249 100644
--- a/drivers/net/atarilance.c
+++ b/drivers/net/atarilance.c
@@ -344,7 +344,7 @@ static unsigned long lance_probe1( struct net_device *dev, struct lance_addr
344static int lance_open( struct net_device *dev ); 344static int lance_open( struct net_device *dev );
345static void lance_init_ring( struct net_device *dev ); 345static void lance_init_ring( struct net_device *dev );
346static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev ); 346static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev );
347static irqreturn_t lance_interrupt( int irq, void *dev_id, struct pt_regs *fp ); 347static irqreturn_t lance_interrupt( int irq, void *dev_id );
348static int lance_rx( struct net_device *dev ); 348static int lance_rx( struct net_device *dev );
349static int lance_close( struct net_device *dev ); 349static int lance_close( struct net_device *dev );
350static struct net_device_stats *lance_get_stats( struct net_device *dev ); 350static struct net_device_stats *lance_get_stats( struct net_device *dev );
@@ -866,7 +866,7 @@ static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev )
866 866
867/* The LANCE interrupt handler. */ 867/* The LANCE interrupt handler. */
868 868
869static irqreturn_t lance_interrupt( int irq, void *dev_id, struct pt_regs *fp) 869static irqreturn_t lance_interrupt( int irq, void *dev_id )
870{ 870{
871 struct net_device *dev = dev_id; 871 struct net_device *dev = dev_id;
872 struct lance_private *lp; 872 struct lance_private *lp;
diff --git a/drivers/net/atp.c b/drivers/net/atp.c
index f2c8e0d5497b..2d306fcb7f36 100644
--- a/drivers/net/atp.c
+++ b/drivers/net/atp.c
@@ -203,7 +203,7 @@ static void hardware_init(struct net_device *dev);
203static void write_packet(long ioaddr, int length, unsigned char *packet, int pad, int mode); 203static void write_packet(long ioaddr, int length, unsigned char *packet, int pad, int mode);
204static void trigger_send(long ioaddr, int length); 204static void trigger_send(long ioaddr, int length);
205static int atp_send_packet(struct sk_buff *skb, struct net_device *dev); 205static int atp_send_packet(struct sk_buff *skb, struct net_device *dev);
206static irqreturn_t atp_interrupt(int irq, void *dev_id, struct pt_regs *regs); 206static irqreturn_t atp_interrupt(int irq, void *dev_id);
207static void net_rx(struct net_device *dev); 207static void net_rx(struct net_device *dev);
208static void read_block(long ioaddr, int length, unsigned char *buffer, int data_mode); 208static void read_block(long ioaddr, int length, unsigned char *buffer, int data_mode);
209static int net_close(struct net_device *dev); 209static int net_close(struct net_device *dev);
@@ -596,20 +596,15 @@ static int atp_send_packet(struct sk_buff *skb, struct net_device *dev)
596 596
597/* The typical workload of the driver: 597/* The typical workload of the driver:
598 Handle the network interface interrupts. */ 598 Handle the network interface interrupts. */
599static irqreturn_t 599static irqreturn_t atp_interrupt(int irq, void *dev_instance)
600atp_interrupt(int irq, void *dev_instance, struct pt_regs * regs)
601{ 600{
602 struct net_device *dev = (struct net_device *)dev_instance; 601 struct net_device *dev = dev_instance;
603 struct net_local *lp; 602 struct net_local *lp;
604 long ioaddr; 603 long ioaddr;
605 static int num_tx_since_rx; 604 static int num_tx_since_rx;
606 int boguscount = max_interrupt_work; 605 int boguscount = max_interrupt_work;
607 int handled = 0; 606 int handled = 0;
608 607
609 if (dev == NULL) {
610 printk(KERN_ERR "ATP_interrupt(): irq %d for unknown device.\n", irq);
611 return IRQ_NONE;
612 }
613 ioaddr = dev->base_addr; 608 ioaddr = dev->base_addr;
614 lp = netdev_priv(dev); 609 lp = netdev_priv(dev);
615 610
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
index ac33b1b9cf4a..4873dc610d22 100644
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
@@ -89,7 +89,7 @@ static int au1000_open(struct net_device *);
89static int au1000_close(struct net_device *); 89static int au1000_close(struct net_device *);
90static int au1000_tx(struct sk_buff *, struct net_device *); 90static int au1000_tx(struct sk_buff *, struct net_device *);
91static int au1000_rx(struct net_device *); 91static int au1000_rx(struct net_device *);
92static irqreturn_t au1000_interrupt(int, void *, struct pt_regs *); 92static irqreturn_t au1000_interrupt(int, void *);
93static void au1000_tx_timeout(struct net_device *); 93static void au1000_tx_timeout(struct net_device *);
94static void set_rx_mode(struct net_device *); 94static void set_rx_mode(struct net_device *);
95static struct net_device_stats *au1000_get_stats(struct net_device *); 95static struct net_device_stats *au1000_get_stats(struct net_device *);
@@ -1253,7 +1253,7 @@ static int au1000_rx(struct net_device *dev)
1253/* 1253/*
1254 * Au1000 interrupt service routine. 1254 * Au1000 interrupt service routine.
1255 */ 1255 */
1256static irqreturn_t au1000_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1256static irqreturn_t au1000_interrupt(int irq, void *dev_id)
1257{ 1257{
1258 struct net_device *dev = (struct net_device *) dev_id; 1258 struct net_device *dev = (struct net_device *) dev_id;
1259 1259
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 973b8eb37dc2..ebb726e655ac 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -896,7 +896,7 @@ static int b44_poll(struct net_device *netdev, int *budget)
896 return (done ? 0 : 1); 896 return (done ? 0 : 1);
897} 897}
898 898
899static irqreturn_t b44_interrupt(int irq, void *dev_id, struct pt_regs *regs) 899static irqreturn_t b44_interrupt(int irq, void *dev_id)
900{ 900{
901 struct net_device *dev = dev_id; 901 struct net_device *dev = dev_id;
902 struct b44 *bp = netdev_priv(dev); 902 struct b44 *bp = netdev_priv(dev);
@@ -1461,7 +1461,7 @@ out:
1461static void b44_poll_controller(struct net_device *dev) 1461static void b44_poll_controller(struct net_device *dev)
1462{ 1462{
1463 disable_irq(dev->irq); 1463 disable_irq(dev->irq);
1464 b44_interrupt(dev->irq, dev, NULL); 1464 b44_interrupt(dev->irq, dev);
1465 enable_irq(dev->irq); 1465 enable_irq(dev->irq);
1466} 1466}
1467#endif 1467#endif
diff --git a/drivers/net/bmac.c b/drivers/net/bmac.c
index 4adfe7b77031..4528ce9c4e43 100644
--- a/drivers/net/bmac.c
+++ b/drivers/net/bmac.c
@@ -152,9 +152,9 @@ static void bmac_init_chip(struct net_device *dev);
152static void bmac_init_registers(struct net_device *dev); 152static void bmac_init_registers(struct net_device *dev);
153static void bmac_enable_and_reset_chip(struct net_device *dev); 153static void bmac_enable_and_reset_chip(struct net_device *dev);
154static int bmac_set_address(struct net_device *dev, void *addr); 154static int bmac_set_address(struct net_device *dev, void *addr);
155static irqreturn_t bmac_misc_intr(int irq, void *dev_id, struct pt_regs *regs); 155static irqreturn_t bmac_misc_intr(int irq, void *dev_id);
156static irqreturn_t bmac_txdma_intr(int irq, void *dev_id, struct pt_regs *regs); 156static irqreturn_t bmac_txdma_intr(int irq, void *dev_id);
157static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs); 157static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id);
158static void bmac_set_timeout(struct net_device *dev); 158static void bmac_set_timeout(struct net_device *dev);
159static void bmac_tx_timeout(unsigned long data); 159static void bmac_tx_timeout(unsigned long data);
160static int bmac_output(struct sk_buff *skb, struct net_device *dev); 160static int bmac_output(struct sk_buff *skb, struct net_device *dev);
@@ -688,7 +688,7 @@ static int bmac_transmit_packet(struct sk_buff *skb, struct net_device *dev)
688 688
689static int rxintcount; 689static int rxintcount;
690 690
691static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs) 691static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id)
692{ 692{
693 struct net_device *dev = (struct net_device *) dev_id; 693 struct net_device *dev = (struct net_device *) dev_id;
694 struct bmac_data *bp = netdev_priv(dev); 694 struct bmac_data *bp = netdev_priv(dev);
@@ -765,7 +765,7 @@ static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs)
765 765
766static int txintcount; 766static int txintcount;
767 767
768static irqreturn_t bmac_txdma_intr(int irq, void *dev_id, struct pt_regs *regs) 768static irqreturn_t bmac_txdma_intr(int irq, void *dev_id)
769{ 769{
770 struct net_device *dev = (struct net_device *) dev_id; 770 struct net_device *dev = (struct net_device *) dev_id;
771 struct bmac_data *bp = netdev_priv(dev); 771 struct bmac_data *bp = netdev_priv(dev);
@@ -1082,7 +1082,7 @@ static void bmac_set_multicast(struct net_device *dev)
1082 1082
1083static int miscintcount; 1083static int miscintcount;
1084 1084
1085static irqreturn_t bmac_misc_intr(int irq, void *dev_id, struct pt_regs *regs) 1085static irqreturn_t bmac_misc_intr(int irq, void *dev_id)
1086{ 1086{
1087 struct net_device *dev = (struct net_device *) dev_id; 1087 struct net_device *dev = (struct net_device *) dev_id;
1088 struct bmac_data *bp = netdev_priv(dev); 1088 struct bmac_data *bp = netdev_priv(dev);
@@ -1091,7 +1091,7 @@ static irqreturn_t bmac_misc_intr(int irq, void *dev_id, struct pt_regs *regs)
1091 XXDEBUG(("bmac_misc_intr\n")); 1091 XXDEBUG(("bmac_misc_intr\n"));
1092 } 1092 }
1093 /* XXDEBUG(("bmac_misc_intr, status=%#08x\n", status)); */ 1093 /* XXDEBUG(("bmac_misc_intr, status=%#08x\n", status)); */
1094 /* bmac_txdma_intr_inner(irq, dev_id, regs); */ 1094 /* bmac_txdma_intr_inner(irq, dev_id); */
1095 /* if (status & FrameReceived) bp->stats.rx_dropped++; */ 1095 /* if (status & FrameReceived) bp->stats.rx_dropped++; */
1096 if (status & RxErrorMask) bp->stats.rx_errors++; 1096 if (status & RxErrorMask) bp->stats.rx_errors++;
1097 if (status & RxCRCCntExp) bp->stats.rx_crc_errors++; 1097 if (status & RxCRCCntExp) bp->stats.rx_crc_errors++;
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 6b4edb63c4c4..01b76d3aa42f 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -1888,7 +1888,7 @@ next_rx:
1888 * is that the MSI interrupt is always serviced. 1888 * is that the MSI interrupt is always serviced.
1889 */ 1889 */
1890static irqreturn_t 1890static irqreturn_t
1891bnx2_msi(int irq, void *dev_instance, struct pt_regs *regs) 1891bnx2_msi(int irq, void *dev_instance)
1892{ 1892{
1893 struct net_device *dev = dev_instance; 1893 struct net_device *dev = dev_instance;
1894 struct bnx2 *bp = netdev_priv(dev); 1894 struct bnx2 *bp = netdev_priv(dev);
@@ -1908,7 +1908,7 @@ bnx2_msi(int irq, void *dev_instance, struct pt_regs *regs)
1908} 1908}
1909 1909
1910static irqreturn_t 1910static irqreturn_t
1911bnx2_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1911bnx2_interrupt(int irq, void *dev_instance)
1912{ 1912{
1913 struct net_device *dev = dev_instance; 1913 struct net_device *dev = dev_instance;
1914 struct bnx2 *bp = netdev_priv(dev); 1914 struct bnx2 *bp = netdev_priv(dev);
@@ -5554,7 +5554,7 @@ poll_bnx2(struct net_device *dev)
5554 struct bnx2 *bp = netdev_priv(dev); 5554 struct bnx2 *bp = netdev_priv(dev);
5555 5555
5556 disable_irq(bp->pdev->irq); 5556 disable_irq(bp->pdev->irq);
5557 bnx2_interrupt(bp->pdev->irq, dev, NULL); 5557 bnx2_interrupt(bp->pdev->irq, dev);
5558 enable_irq(bp->pdev->irq); 5558 enable_irq(bp->pdev->irq);
5559} 5559}
5560#endif 5560#endif
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index 7694365092f8..521c5b71023c 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -2469,7 +2469,7 @@ static inline void cas_handle_irqN(struct net_device *dev,
2469 cas_post_rxcs_ringN(dev, cp, ring); 2469 cas_post_rxcs_ringN(dev, cp, ring);
2470} 2470}
2471 2471
2472static irqreturn_t cas_interruptN(int irq, void *dev_id, struct pt_regs *regs) 2472static irqreturn_t cas_interruptN(int irq, void *dev_id)
2473{ 2473{
2474 struct net_device *dev = dev_id; 2474 struct net_device *dev = dev_id;
2475 struct cas *cp = netdev_priv(dev); 2475 struct cas *cp = netdev_priv(dev);
@@ -2522,7 +2522,7 @@ static inline void cas_handle_irq1(struct cas *cp, const u32 status)
2522} 2522}
2523 2523
2524/* ring 2 handles a few more events than 3 and 4 */ 2524/* ring 2 handles a few more events than 3 and 4 */
2525static irqreturn_t cas_interrupt1(int irq, void *dev_id, struct pt_regs *regs) 2525static irqreturn_t cas_interrupt1(int irq, void *dev_id)
2526{ 2526{
2527 struct net_device *dev = dev_id; 2527 struct net_device *dev = dev_id;
2528 struct cas *cp = netdev_priv(dev); 2528 struct cas *cp = netdev_priv(dev);
@@ -2574,7 +2574,7 @@ static inline void cas_handle_irq(struct net_device *dev,
2574 cas_post_rxcs_ringN(dev, cp, 0); 2574 cas_post_rxcs_ringN(dev, cp, 0);
2575} 2575}
2576 2576
2577static irqreturn_t cas_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2577static irqreturn_t cas_interrupt(int irq, void *dev_id)
2578{ 2578{
2579 struct net_device *dev = dev_id; 2579 struct net_device *dev = dev_id;
2580 struct cas *cp = netdev_priv(dev); 2580 struct cas *cp = netdev_priv(dev);
@@ -2689,7 +2689,7 @@ static void cas_netpoll(struct net_device *dev)
2689 struct cas *cp = netdev_priv(dev); 2689 struct cas *cp = netdev_priv(dev);
2690 2690
2691 cas_disable_irq(cp, 0); 2691 cas_disable_irq(cp, 0);
2692 cas_interrupt(cp->pdev->irq, dev, NULL); 2692 cas_interrupt(cp->pdev->irq, dev);
2693 cas_enable_irq(cp, 0); 2693 cas_enable_irq(cp, 0);
2694 2694
2695#ifdef USE_PCI_INTB 2695#ifdef USE_PCI_INTB
diff --git a/drivers/net/chelsio/cpl5_cmd.h b/drivers/net/chelsio/cpl5_cmd.h
index 27925e487bcf..5b357d9e88d6 100644
--- a/drivers/net/chelsio/cpl5_cmd.h
+++ b/drivers/net/chelsio/cpl5_cmd.h
@@ -108,7 +108,7 @@ struct cpl_tx_pkt_lso {
108 u8 iff:4; 108 u8 iff:4;
109#endif 109#endif
110 u16 vlan; 110 u16 vlan;
111 u32 len; 111 __be32 len;
112 112
113 u32 rsvd2; 113 u32 rsvd2;
114 u8 rsvd3; 114 u8 rsvd3;
@@ -119,7 +119,7 @@ struct cpl_tx_pkt_lso {
119 u8 ip_hdr_words:4; 119 u8 ip_hdr_words:4;
120 u8 tcp_hdr_words:4; 120 u8 tcp_hdr_words:4;
121#endif 121#endif
122 u16 eth_type_mss; 122 __be16 eth_type_mss;
123}; 123};
124 124
125struct cpl_rx_pkt { 125struct cpl_rx_pkt {
@@ -138,7 +138,7 @@ struct cpl_rx_pkt {
138 u8 iff:4; 138 u8 iff:4;
139#endif 139#endif
140 u16 csum; 140 u16 csum;
141 u16 vlan; 141 __be16 vlan;
142 u16 len; 142 u16 len;
143}; 143};
144 144
diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c
index 5f1b06753462..ad7ff9641a7e 100644
--- a/drivers/net/chelsio/cxgb2.c
+++ b/drivers/net/chelsio/cxgb2.c
@@ -918,7 +918,7 @@ static void t1_netpoll(struct net_device *dev)
918 struct adapter *adapter = dev->priv; 918 struct adapter *adapter = dev->priv;
919 919
920 local_irq_save(flags); 920 local_irq_save(flags);
921 t1_select_intr_handler(adapter)(adapter->pdev->irq, adapter, NULL); 921 t1_select_intr_handler(adapter)(adapter->pdev->irq, adapter);
922 local_irq_restore(flags); 922 local_irq_restore(flags);
923} 923}
924#endif 924#endif
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c
index ddd0bdb498f4..9799c12380fc 100644
--- a/drivers/net/chelsio/sge.c
+++ b/drivers/net/chelsio/sge.c
@@ -1217,7 +1217,7 @@ static inline int napi_is_scheduled(struct net_device *dev)
1217/* 1217/*
1218 * NAPI version of the main interrupt handler. 1218 * NAPI version of the main interrupt handler.
1219 */ 1219 */
1220static irqreturn_t t1_interrupt_napi(int irq, void *data, struct pt_regs *regs) 1220static irqreturn_t t1_interrupt_napi(int irq, void *data)
1221{ 1221{
1222 int handled; 1222 int handled;
1223 struct adapter *adapter = data; 1223 struct adapter *adapter = data;
@@ -1279,7 +1279,7 @@ static irqreturn_t t1_interrupt_napi(int irq, void *data, struct pt_regs *regs)
1279 * 5. If we took an interrupt, but no valid respQ descriptors was found we 1279 * 5. If we took an interrupt, but no valid respQ descriptors was found we
1280 * let the slow_intr_handler run and do error handling. 1280 * let the slow_intr_handler run and do error handling.
1281 */ 1281 */
1282static irqreturn_t t1_interrupt(int irq, void *cookie, struct pt_regs *regs) 1282static irqreturn_t t1_interrupt(int irq, void *cookie)
1283{ 1283{
1284 int work_done; 1284 int work_done;
1285 struct respQ_e *e; 1285 struct respQ_e *e;
@@ -1312,7 +1312,7 @@ static irqreturn_t t1_interrupt(int irq, void *cookie, struct pt_regs *regs)
1312 return IRQ_RETVAL(work_done != 0); 1312 return IRQ_RETVAL(work_done != 0);
1313} 1313}
1314 1314
1315intr_handler_t t1_select_intr_handler(adapter_t *adapter) 1315irq_handler_t t1_select_intr_handler(adapter_t *adapter)
1316{ 1316{
1317 return adapter->params.sge.polling ? t1_interrupt_napi : t1_interrupt; 1317 return adapter->params.sge.polling ? t1_interrupt_napi : t1_interrupt;
1318} 1318}
diff --git a/drivers/net/chelsio/sge.h b/drivers/net/chelsio/sge.h
index 6d0d24a6364f..91af47bab7be 100644
--- a/drivers/net/chelsio/sge.h
+++ b/drivers/net/chelsio/sge.h
@@ -43,13 +43,6 @@
43#include <linux/interrupt.h> 43#include <linux/interrupt.h>
44#include <asm/byteorder.h> 44#include <asm/byteorder.h>
45 45
46#ifndef IRQ_RETVAL
47#define IRQ_RETVAL(x)
48typedef void irqreturn_t;
49#endif
50
51typedef irqreturn_t (*intr_handler_t)(int, void *, struct pt_regs *);
52
53struct sge_intr_counts { 46struct sge_intr_counts {
54 unsigned int respQ_empty; /* # times respQ empty */ 47 unsigned int respQ_empty; /* # times respQ empty */
55 unsigned int respQ_overflow; /* # respQ overflow (fatal) */ 48 unsigned int respQ_overflow; /* # respQ overflow (fatal) */
@@ -88,7 +81,7 @@ struct sge *t1_sge_create(struct adapter *, struct sge_params *);
88int t1_sge_configure(struct sge *, struct sge_params *); 81int t1_sge_configure(struct sge *, struct sge_params *);
89int t1_sge_set_coalesce_params(struct sge *, struct sge_params *); 82int t1_sge_set_coalesce_params(struct sge *, struct sge_params *);
90void t1_sge_destroy(struct sge *); 83void t1_sge_destroy(struct sge *);
91intr_handler_t t1_select_intr_handler(adapter_t *adapter); 84irq_handler_t t1_select_intr_handler(adapter_t *adapter);
92int t1_start_xmit(struct sk_buff *skb, struct net_device *dev); 85int t1_start_xmit(struct sk_buff *skb, struct net_device *dev);
93void t1_set_vlan_accel(struct adapter *adapter, int on_off); 86void t1_set_vlan_accel(struct adapter *adapter, int on_off);
94void t1_sge_start(struct sge *); 87void t1_sge_start(struct sge *);
diff --git a/drivers/net/cris/eth_v10.c b/drivers/net/cris/eth_v10.c
index f1501b6f247e..966b563e42bb 100644
--- a/drivers/net/cris/eth_v10.c
+++ b/drivers/net/cris/eth_v10.c
@@ -403,8 +403,8 @@ static int etrax_ethernet_init(void);
403static int e100_open(struct net_device *dev); 403static int e100_open(struct net_device *dev);
404static int e100_set_mac_address(struct net_device *dev, void *addr); 404static int e100_set_mac_address(struct net_device *dev, void *addr);
405static int e100_send_packet(struct sk_buff *skb, struct net_device *dev); 405static int e100_send_packet(struct sk_buff *skb, struct net_device *dev);
406static irqreturn_t e100rxtx_interrupt(int irq, void *dev_id, struct pt_regs *regs); 406static irqreturn_t e100rxtx_interrupt(int irq, void *dev_id);
407static irqreturn_t e100nw_interrupt(int irq, void *dev_id, struct pt_regs *regs); 407static irqreturn_t e100nw_interrupt(int irq, void *dev_id);
408static void e100_rx(struct net_device *dev); 408static void e100_rx(struct net_device *dev);
409static int e100_close(struct net_device *dev); 409static int e100_close(struct net_device *dev);
410static int e100_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); 410static int e100_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
@@ -1197,7 +1197,7 @@ e100_send_packet(struct sk_buff *skb, struct net_device *dev)
1197 */ 1197 */
1198 1198
1199static irqreturn_t 1199static irqreturn_t
1200e100rxtx_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1200e100rxtx_interrupt(int irq, void *dev_id)
1201{ 1201{
1202 struct net_device *dev = (struct net_device *)dev_id; 1202 struct net_device *dev = (struct net_device *)dev_id;
1203 struct net_local *np = (struct net_local *)dev->priv; 1203 struct net_local *np = (struct net_local *)dev->priv;
@@ -1264,7 +1264,7 @@ e100rxtx_interrupt(int irq, void *dev_id, struct pt_regs * regs)
1264} 1264}
1265 1265
1266static irqreturn_t 1266static irqreturn_t
1267e100nw_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1267e100nw_interrupt(int irq, void *dev_id)
1268{ 1268{
1269 struct net_device *dev = (struct net_device *)dev_id; 1269 struct net_device *dev = (struct net_device *)dev_id;
1270 struct net_local *np = (struct net_local *)dev->priv; 1270 struct net_local *np = (struct net_local *)dev->priv;
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
index e4d50f0de930..4ffc9b44a8e1 100644
--- a/drivers/net/cs89x0.c
+++ b/drivers/net/cs89x0.c
@@ -249,7 +249,7 @@ struct net_local {
249static int cs89x0_probe1(struct net_device *dev, int ioaddr, int modular); 249static int cs89x0_probe1(struct net_device *dev, int ioaddr, int modular);
250static int net_open(struct net_device *dev); 250static int net_open(struct net_device *dev);
251static int net_send_packet(struct sk_buff *skb, struct net_device *dev); 251static int net_send_packet(struct sk_buff *skb, struct net_device *dev);
252static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs *regs); 252static irqreturn_t net_interrupt(int irq, void *dev_id);
253static void set_multicast_list(struct net_device *dev); 253static void set_multicast_list(struct net_device *dev);
254static void net_timeout(struct net_device *dev); 254static void net_timeout(struct net_device *dev);
255static void net_rx(struct net_device *dev); 255static void net_rx(struct net_device *dev);
@@ -495,7 +495,7 @@ get_eeprom_cksum(int off, int len, int *buffer)
495static void net_poll_controller(struct net_device *dev) 495static void net_poll_controller(struct net_device *dev)
496{ 496{
497 disable_irq(dev->irq); 497 disable_irq(dev->irq);
498 net_interrupt(dev->irq, dev, NULL); 498 net_interrupt(dev->irq, dev);
499 enable_irq(dev->irq); 499 enable_irq(dev->irq);
500} 500}
501#endif 501#endif
@@ -1573,7 +1573,7 @@ static int net_send_packet(struct sk_buff *skb, struct net_device *dev)
1573/* The typical workload of the driver: 1573/* The typical workload of the driver:
1574 Handle the network interface interrupts. */ 1574 Handle the network interface interrupts. */
1575 1575
1576static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1576static irqreturn_t net_interrupt(int irq, void *dev_id)
1577{ 1577{
1578 struct net_device *dev = dev_id; 1578 struct net_device *dev = dev_id;
1579 struct net_local *lp; 1579 struct net_local *lp;
diff --git a/drivers/net/de600.c b/drivers/net/de600.c
index 0b930da5d47d..690bb40b353d 100644
--- a/drivers/net/de600.c
+++ b/drivers/net/de600.c
@@ -258,19 +258,13 @@ static int de600_start_xmit(struct sk_buff *skb, struct net_device *dev)
258 * Handle the network interface interrupts. 258 * Handle the network interface interrupts.
259 */ 259 */
260 260
261static irqreturn_t de600_interrupt(int irq, void *dev_id, struct pt_regs * regs) 261static irqreturn_t de600_interrupt(int irq, void *dev_id)
262{ 262{
263 struct net_device *dev = dev_id; 263 struct net_device *dev = dev_id;
264 u8 irq_status; 264 u8 irq_status;
265 int retrig = 0; 265 int retrig = 0;
266 int boguscount = 0; 266 int boguscount = 0;
267 267
268 /* This might just as well be deleted now, no crummy drivers present :-) */
269 if ((dev == NULL) || (DE600_IRQ != irq)) {
270 printk(KERN_ERR "%s: bogus interrupt %d\n", dev?dev->name:"DE-600", irq);
271 return IRQ_NONE;
272 }
273
274 spin_lock(&de600_lock); 268 spin_lock(&de600_lock);
275 269
276 select_nic(); 270 select_nic();
diff --git a/drivers/net/de600.h b/drivers/net/de600.h
index e4073015dcd8..1288e48ba704 100644
--- a/drivers/net/de600.h
+++ b/drivers/net/de600.h
@@ -125,7 +125,7 @@ static struct net_device_stats *get_stats(struct net_device *dev);
125static int de600_start_xmit(struct sk_buff *skb, struct net_device *dev); 125static int de600_start_xmit(struct sk_buff *skb, struct net_device *dev);
126 126
127/* Dispatch from interrupts. */ 127/* Dispatch from interrupts. */
128static irqreturn_t de600_interrupt(int irq, void *dev_id, struct pt_regs *regs); 128static irqreturn_t de600_interrupt(int irq, void *dev_id);
129static int de600_tx_intr(struct net_device *dev, int irq_status); 129static int de600_tx_intr(struct net_device *dev, int irq_status);
130static void de600_rx_intr(struct net_device *dev); 130static void de600_rx_intr(struct net_device *dev);
131 131
diff --git a/drivers/net/de620.c b/drivers/net/de620.c
index a18d4d14b665..b6ad0cb50552 100644
--- a/drivers/net/de620.c
+++ b/drivers/net/de620.c
@@ -221,7 +221,7 @@ static void de620_set_multicast_list(struct net_device *);
221static int de620_start_xmit(struct sk_buff *, struct net_device *); 221static int de620_start_xmit(struct sk_buff *, struct net_device *);
222 222
223/* Dispatch from interrupts. */ 223/* Dispatch from interrupts. */
224static irqreturn_t de620_interrupt(int, void *, struct pt_regs *); 224static irqreturn_t de620_interrupt(int, void *);
225static int de620_rx_intr(struct net_device *); 225static int de620_rx_intr(struct net_device *);
226 226
227/* Initialization */ 227/* Initialization */
@@ -591,7 +591,7 @@ static int de620_start_xmit(struct sk_buff *skb, struct net_device *dev)
591 * 591 *
592 */ 592 */
593static irqreturn_t 593static irqreturn_t
594de620_interrupt(int irq_in, void *dev_id, struct pt_regs *regs) 594de620_interrupt(int irq_in, void *dev_id)
595{ 595{
596 struct net_device *dev = dev_id; 596 struct net_device *dev = dev_id;
597 byte irq_status; 597 byte irq_status;
diff --git a/drivers/net/declance.c b/drivers/net/declance.c
index bbccd741cdbf..00e2a8a134d7 100644
--- a/drivers/net/declance.c
+++ b/drivers/net/declance.c
@@ -694,19 +694,17 @@ out:
694 spin_unlock(&lp->lock); 694 spin_unlock(&lp->lock);
695} 695}
696 696
697static irqreturn_t lance_dma_merr_int(const int irq, void *dev_id, 697static irqreturn_t lance_dma_merr_int(const int irq, void *dev_id)
698 struct pt_regs *regs)
699{ 698{
700 struct net_device *dev = (struct net_device *) dev_id; 699 struct net_device *dev = dev_id;
701 700
702 printk("%s: DMA error\n", dev->name); 701 printk("%s: DMA error\n", dev->name);
703 return IRQ_HANDLED; 702 return IRQ_HANDLED;
704} 703}
705 704
706static irqreturn_t lance_interrupt(const int irq, void *dev_id, 705static irqreturn_t lance_interrupt(const int irq, void *dev_id)
707 struct pt_regs *regs)
708{ 706{
709 struct net_device *dev = (struct net_device *) dev_id; 707 struct net_device *dev = dev_id;
710 struct lance_private *lp = netdev_priv(dev); 708 struct lance_private *lp = netdev_priv(dev);
711 volatile struct lance_regs *ll = lp->ll; 709 volatile struct lance_regs *ll = lp->ll;
712 int csr0; 710 int csr0;
diff --git a/drivers/net/defxx.c b/drivers/net/defxx.c
index ae9680552b82..8f514cc0debd 100644
--- a/drivers/net/defxx.c
+++ b/drivers/net/defxx.c
@@ -248,8 +248,7 @@ static int dfx_close(struct net_device *dev);
248static void dfx_int_pr_halt_id(DFX_board_t *bp); 248static void dfx_int_pr_halt_id(DFX_board_t *bp);
249static void dfx_int_type_0_process(DFX_board_t *bp); 249static void dfx_int_type_0_process(DFX_board_t *bp);
250static void dfx_int_common(struct net_device *dev); 250static void dfx_int_common(struct net_device *dev);
251static irqreturn_t dfx_interrupt(int irq, void *dev_id, 251static irqreturn_t dfx_interrupt(int irq, void *dev_id);
252 struct pt_regs *regs);
253 252
254static struct net_device_stats *dfx_ctl_get_stats(struct net_device *dev); 253static struct net_device_stats *dfx_ctl_get_stats(struct net_device *dev);
255static void dfx_ctl_set_multicast_list(struct net_device *dev); 254static void dfx_ctl_set_multicast_list(struct net_device *dev);
@@ -1693,7 +1692,6 @@ static void dfx_int_common(struct net_device *dev)
1693 * Arguments: 1692 * Arguments:
1694 * irq - interrupt vector 1693 * irq - interrupt vector
1695 * dev_id - pointer to device information 1694 * dev_id - pointer to device information
1696 * regs - pointer to registers structure
1697 * 1695 *
1698 * Functional Description: 1696 * Functional Description:
1699 * This routine calls the interrupt processing routine for this adapter. It 1697 * This routine calls the interrupt processing routine for this adapter. It
@@ -1716,7 +1714,7 @@ static void dfx_int_common(struct net_device *dev)
1716 * Interrupts are disabled, then reenabled at the adapter. 1714 * Interrupts are disabled, then reenabled at the adapter.
1717 */ 1715 */
1718 1716
1719static irqreturn_t dfx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1717static irqreturn_t dfx_interrupt(int irq, void *dev_id)
1720{ 1718{
1721 struct net_device *dev = dev_id; 1719 struct net_device *dev = dev_id;
1722 DFX_board_t *bp; /* private board structure pointer */ 1720 DFX_board_t *bp; /* private board structure pointer */
diff --git a/drivers/net/depca.c b/drivers/net/depca.c
index af594664df51..f87f6e3dc721 100644
--- a/drivers/net/depca.c
+++ b/drivers/net/depca.c
@@ -518,7 +518,7 @@ struct depca_private {
518*/ 518*/
519static int depca_open(struct net_device *dev); 519static int depca_open(struct net_device *dev);
520static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev); 520static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev);
521static irqreturn_t depca_interrupt(int irq, void *dev_id, struct pt_regs *regs); 521static irqreturn_t depca_interrupt(int irq, void *dev_id);
522static int depca_close(struct net_device *dev); 522static int depca_close(struct net_device *dev);
523static int depca_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 523static int depca_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
524static void depca_tx_timeout(struct net_device *dev); 524static void depca_tx_timeout(struct net_device *dev);
@@ -965,7 +965,7 @@ static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev)
965/* 965/*
966** The DEPCA interrupt handler. 966** The DEPCA interrupt handler.
967*/ 967*/
968static irqreturn_t depca_interrupt(int irq, void *dev_id, struct pt_regs *regs) 968static irqreturn_t depca_interrupt(int irq, void *dev_id)
969{ 969{
970 struct net_device *dev = dev_id; 970 struct net_device *dev = dev_id;
971 struct depca_private *lp; 971 struct depca_private *lp;
diff --git a/drivers/net/dgrs.c b/drivers/net/dgrs.c
index d0842527b369..a79520295fd0 100644
--- a/drivers/net/dgrs.c
+++ b/drivers/net/dgrs.c
@@ -895,10 +895,10 @@ static int dgrs_ioctl(struct net_device *devN, struct ifreq *ifr, int cmd)
895 * dev, priv will always refer to the 0th device in Multi-NIC mode. 895 * dev, priv will always refer to the 0th device in Multi-NIC mode.
896 */ 896 */
897 897
898static irqreturn_t dgrs_intr(int irq, void *dev_id, struct pt_regs *regs) 898static irqreturn_t dgrs_intr(int irq, void *dev_id)
899{ 899{
900 struct net_device *dev0 = (struct net_device *) dev_id; 900 struct net_device *dev0 = dev_id;
901 DGRS_PRIV *priv0 = (DGRS_PRIV *) dev0->priv; 901 DGRS_PRIV *priv0 = dev0->priv;
902 I596_CB *cbp; 902 I596_CB *cbp;
903 int cmd; 903 int cmd;
904 int i; 904 int i;
diff --git a/drivers/net/dl2k.c b/drivers/net/dl2k.c
index 7e95cf1a4872..9d446a0fe0bf 100644
--- a/drivers/net/dl2k.c
+++ b/drivers/net/dl2k.c
@@ -60,7 +60,7 @@ static void rio_timer (unsigned long data);
60static void rio_tx_timeout (struct net_device *dev); 60static void rio_tx_timeout (struct net_device *dev);
61static void alloc_list (struct net_device *dev); 61static void alloc_list (struct net_device *dev);
62static int start_xmit (struct sk_buff *skb, struct net_device *dev); 62static int start_xmit (struct sk_buff *skb, struct net_device *dev);
63static irqreturn_t rio_interrupt (int irq, void *dev_instance, struct pt_regs *regs); 63static irqreturn_t rio_interrupt (int irq, void *dev_instance);
64static void rio_free_tx (struct net_device *dev, int irq); 64static void rio_free_tx (struct net_device *dev, int irq);
65static void tx_error (struct net_device *dev, int tx_status); 65static void tx_error (struct net_device *dev, int tx_status);
66static int receive_packet (struct net_device *dev); 66static int receive_packet (struct net_device *dev);
@@ -665,7 +665,7 @@ start_xmit (struct sk_buff *skb, struct net_device *dev)
665} 665}
666 666
667static irqreturn_t 667static irqreturn_t
668rio_interrupt (int irq, void *dev_instance, struct pt_regs *rgs) 668rio_interrupt (int irq, void *dev_instance)
669{ 669{
670 struct net_device *dev = dev_instance; 670 struct net_device *dev = dev_instance;
671 struct netdev_private *np; 671 struct netdev_private *np;
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index a860ebbbf815..615d2b14efa7 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -159,7 +159,7 @@ static void dm9000_init_dm9000(struct net_device *);
159 159
160static struct net_device_stats *dm9000_get_stats(struct net_device *); 160static struct net_device_stats *dm9000_get_stats(struct net_device *);
161 161
162static irqreturn_t dm9000_interrupt(int, void *, struct pt_regs *); 162static irqreturn_t dm9000_interrupt(int, void *);
163 163
164static int dm9000_phy_read(struct net_device *dev, int phyaddr_unsused, int reg); 164static int dm9000_phy_read(struct net_device *dev, int phyaddr_unsused, int reg);
165static void dm9000_phy_write(struct net_device *dev, int phyaddr_unused, int reg, 165static void dm9000_phy_write(struct net_device *dev, int phyaddr_unused, int reg,
@@ -346,7 +346,7 @@ static void dm9000_timeout(struct net_device *dev)
346static void dm9000_poll_controller(struct net_device *dev) 346static void dm9000_poll_controller(struct net_device *dev)
347{ 347{
348 disable_irq(dev->irq); 348 disable_irq(dev->irq);
349 dm9000_interrupt(dev->irq,dev,NULL); 349 dm9000_interrupt(dev->irq,dev);
350 enable_irq(dev->irq); 350 enable_irq(dev->irq);
351} 351}
352#endif 352#endif
@@ -804,7 +804,7 @@ dm9000_tx_done(struct net_device *dev, board_info_t * db)
804} 804}
805 805
806static irqreturn_t 806static irqreturn_t
807dm9000_interrupt(int irq, void *dev_id, struct pt_regs *regs) 807dm9000_interrupt(int irq, void *dev_id)
808{ 808{
809 struct net_device *dev = dev_id; 809 struct net_device *dev = dev_id;
810 board_info_t *db; 810 board_info_t *db;
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 26073c345213..27d5d2f02533 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -1949,7 +1949,7 @@ static int e100_rx_alloc_list(struct nic *nic)
1949 return 0; 1949 return 0;
1950} 1950}
1951 1951
1952static irqreturn_t e100_intr(int irq, void *dev_id, struct pt_regs *regs) 1952static irqreturn_t e100_intr(int irq, void *dev_id)
1953{ 1953{
1954 struct net_device *netdev = dev_id; 1954 struct net_device *netdev = dev_id;
1955 struct nic *nic = netdev_priv(netdev); 1955 struct nic *nic = netdev_priv(netdev);
@@ -2005,7 +2005,7 @@ static void e100_netpoll(struct net_device *netdev)
2005 struct nic *nic = netdev_priv(netdev); 2005 struct nic *nic = netdev_priv(netdev);
2006 2006
2007 e100_disable_irq(nic); 2007 e100_disable_irq(nic);
2008 e100_intr(nic->pdev->irq, netdev, NULL); 2008 e100_intr(nic->pdev->irq, netdev);
2009 e100_tx_clean(nic); 2009 e100_tx_clean(nic);
2010 e100_enable_irq(nic); 2010 e100_enable_irq(nic);
2011} 2011}
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c
index 778ede3c0216..773821e4cf57 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -883,8 +883,7 @@ e1000_eeprom_test(struct e1000_adapter *adapter, uint64_t *data)
883 883
884static irqreturn_t 884static irqreturn_t
885e1000_test_intr(int irq, 885e1000_test_intr(int irq,
886 void *data, 886 void *data)
887 struct pt_regs *regs)
888{ 887{
889 struct net_device *netdev = (struct net_device *) data; 888 struct net_device *netdev = (struct net_device *) data;
890 struct e1000_adapter *adapter = netdev_priv(netdev); 889 struct e1000_adapter *adapter = netdev_priv(netdev);
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 7dca38fba6a1..ce0d35fe3947 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -153,7 +153,7 @@ static int e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev);
153static struct net_device_stats * e1000_get_stats(struct net_device *netdev); 153static struct net_device_stats * e1000_get_stats(struct net_device *netdev);
154static int e1000_change_mtu(struct net_device *netdev, int new_mtu); 154static int e1000_change_mtu(struct net_device *netdev, int new_mtu);
155static int e1000_set_mac(struct net_device *netdev, void *p); 155static int e1000_set_mac(struct net_device *netdev, void *p);
156static irqreturn_t e1000_intr(int irq, void *data, struct pt_regs *regs); 156static irqreturn_t e1000_intr(int irq, void *data);
157static boolean_t e1000_clean_tx_irq(struct e1000_adapter *adapter, 157static boolean_t e1000_clean_tx_irq(struct e1000_adapter *adapter,
158 struct e1000_tx_ring *tx_ring); 158 struct e1000_tx_ring *tx_ring);
159#ifdef CONFIG_E1000_NAPI 159#ifdef CONFIG_E1000_NAPI
@@ -3436,11 +3436,10 @@ e1000_update_stats(struct e1000_adapter *adapter)
3436 * e1000_intr - Interrupt Handler 3436 * e1000_intr - Interrupt Handler
3437 * @irq: interrupt number 3437 * @irq: interrupt number
3438 * @data: pointer to a network interface device structure 3438 * @data: pointer to a network interface device structure
3439 * @pt_regs: CPU registers structure
3440 **/ 3439 **/
3441 3440
3442static irqreturn_t 3441static irqreturn_t
3443e1000_intr(int irq, void *data, struct pt_regs *regs) 3442e1000_intr(int irq, void *data)
3444{ 3443{
3445 struct net_device *netdev = data; 3444 struct net_device *netdev = data;
3446 struct e1000_adapter *adapter = netdev_priv(netdev); 3445 struct e1000_adapter *adapter = netdev_priv(netdev);
@@ -4862,7 +4861,7 @@ e1000_netpoll(struct net_device *netdev)
4862 struct e1000_adapter *adapter = netdev_priv(netdev); 4861 struct e1000_adapter *adapter = netdev_priv(netdev);
4863 4862
4864 disable_irq(adapter->pdev->irq); 4863 disable_irq(adapter->pdev->irq);
4865 e1000_intr(adapter->pdev->irq, netdev, NULL); 4864 e1000_intr(adapter->pdev->irq, netdev);
4866 e1000_clean_tx_irq(adapter, adapter->tx_ring); 4865 e1000_clean_tx_irq(adapter, adapter->tx_ring);
4867#ifndef CONFIG_E1000_NAPI 4866#ifndef CONFIG_E1000_NAPI
4868 adapter->clean_rx(adapter, adapter->rx_ring); 4867 adapter->clean_rx(adapter, adapter->rx_ring);
diff --git a/drivers/net/eepro.c b/drivers/net/eepro.c
index 09ff9b9418f4..a4eb0dc99ecf 100644
--- a/drivers/net/eepro.c
+++ b/drivers/net/eepro.c
@@ -311,7 +311,7 @@ struct eepro_local {
311static int eepro_probe1(struct net_device *dev, int autoprobe); 311static int eepro_probe1(struct net_device *dev, int autoprobe);
312static int eepro_open(struct net_device *dev); 312static int eepro_open(struct net_device *dev);
313static int eepro_send_packet(struct sk_buff *skb, struct net_device *dev); 313static int eepro_send_packet(struct sk_buff *skb, struct net_device *dev);
314static irqreturn_t eepro_interrupt(int irq, void *dev_id, struct pt_regs *regs); 314static irqreturn_t eepro_interrupt(int irq, void *dev_id);
315static void eepro_rx(struct net_device *dev); 315static void eepro_rx(struct net_device *dev);
316static void eepro_transmit_interrupt(struct net_device *dev); 316static void eepro_transmit_interrupt(struct net_device *dev);
317static int eepro_close(struct net_device *dev); 317static int eepro_close(struct net_device *dev);
@@ -994,16 +994,6 @@ static int eepro_open(struct net_device *dev)
994 return -EAGAIN; 994 return -EAGAIN;
995 } 995 }
996 996
997#ifdef irq2dev_map
998 if (((irq2dev_map[dev->irq] != 0)
999 || (irq2dev_map[dev->irq] = dev) == 0) &&
1000 (irq2dev_map[dev->irq]!=dev)) {
1001 /* printk("%s: IRQ map wrong\n", dev->name); */
1002 free_irq(dev->irq, dev);
1003 return -EAGAIN;
1004 }
1005#endif
1006
1007 /* Initialize the 82595. */ 997 /* Initialize the 82595. */
1008 998
1009 eepro_sw2bank2(ioaddr); /* be CAREFUL, BANK 2 now */ 999 eepro_sw2bank2(ioaddr); /* be CAREFUL, BANK 2 now */
@@ -1196,19 +1186,13 @@ static int eepro_send_packet(struct sk_buff *skb, struct net_device *dev)
1196 Handle the network interface interrupts. */ 1186 Handle the network interface interrupts. */
1197 1187
1198static irqreturn_t 1188static irqreturn_t
1199eepro_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1189eepro_interrupt(int irq, void *dev_id)
1200{ 1190{
1201 struct net_device *dev = (struct net_device *)dev_id; 1191 struct net_device *dev = dev_id;
1202 /* (struct net_device *)(irq2dev_map[irq]);*/
1203 struct eepro_local *lp; 1192 struct eepro_local *lp;
1204 int ioaddr, status, boguscount = 20; 1193 int ioaddr, status, boguscount = 20;
1205 int handled = 0; 1194 int handled = 0;
1206 1195
1207 if (dev == NULL) {
1208 printk (KERN_ERR "eepro_interrupt(): irq %d for unknown device.\\n", irq);
1209 return IRQ_NONE;
1210 }
1211
1212 lp = netdev_priv(dev); 1196 lp = netdev_priv(dev);
1213 1197
1214 spin_lock(&lp->lock); 1198 spin_lock(&lp->lock);
@@ -1288,10 +1272,6 @@ static int eepro_close(struct net_device *dev)
1288 /* release the interrupt */ 1272 /* release the interrupt */
1289 free_irq(dev->irq, dev); 1273 free_irq(dev->irq, dev);
1290 1274
1291#ifdef irq2dev_map
1292 irq2dev_map[dev->irq] = 0;
1293#endif
1294
1295 /* Update the statistics here. What statistics? */ 1275 /* Update the statistics here. What statistics? */
1296 1276
1297 return 0; 1277 return 0;
diff --git a/drivers/net/eepro100.c b/drivers/net/eepro100.c
index 499e93b31f54..e28bb1e38f8d 100644
--- a/drivers/net/eepro100.c
+++ b/drivers/net/eepro100.c
@@ -488,7 +488,7 @@ static int speedo_start_xmit(struct sk_buff *skb, struct net_device *dev);
488static void speedo_refill_rx_buffers(struct net_device *dev, int force); 488static void speedo_refill_rx_buffers(struct net_device *dev, int force);
489static int speedo_rx(struct net_device *dev); 489static int speedo_rx(struct net_device *dev);
490static void speedo_tx_buffer_gc(struct net_device *dev); 490static void speedo_tx_buffer_gc(struct net_device *dev);
491static irqreturn_t speedo_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 491static irqreturn_t speedo_interrupt(int irq, void *dev_instance);
492static int speedo_close(struct net_device *dev); 492static int speedo_close(struct net_device *dev);
493static struct net_device_stats *speedo_get_stats(struct net_device *dev); 493static struct net_device_stats *speedo_get_stats(struct net_device *dev);
494static int speedo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 494static int speedo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -606,7 +606,7 @@ static void poll_speedo (struct net_device *dev)
606 /* disable_irq is not very nice, but with the funny lockless design 606 /* disable_irq is not very nice, but with the funny lockless design
607 we have no other choice. */ 607 we have no other choice. */
608 disable_irq(dev->irq); 608 disable_irq(dev->irq);
609 speedo_interrupt (dev->irq, dev, NULL); 609 speedo_interrupt (dev->irq, dev);
610 enable_irq(dev->irq); 610 enable_irq(dev->irq);
611} 611}
612#endif 612#endif
@@ -1541,7 +1541,7 @@ static void speedo_tx_buffer_gc(struct net_device *dev)
1541 1541
1542/* The interrupt handler does all of the Rx thread work and cleans up 1542/* The interrupt handler does all of the Rx thread work and cleans up
1543 after the Tx thread. */ 1543 after the Tx thread. */
1544static irqreturn_t speedo_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1544static irqreturn_t speedo_interrupt(int irq, void *dev_instance)
1545{ 1545{
1546 struct net_device *dev = (struct net_device *)dev_instance; 1546 struct net_device *dev = (struct net_device *)dev_instance;
1547 struct speedo_private *sp; 1547 struct speedo_private *sp;
diff --git a/drivers/net/eexpress.c b/drivers/net/eexpress.c
index 9cb05d99ee1b..e14be020e562 100644
--- a/drivers/net/eexpress.c
+++ b/drivers/net/eexpress.c
@@ -249,7 +249,7 @@ static void eexp_timeout(struct net_device *dev);
249static struct net_device_stats *eexp_stats(struct net_device *dev); 249static struct net_device_stats *eexp_stats(struct net_device *dev);
250static int eexp_xmit(struct sk_buff *buf, struct net_device *dev); 250static int eexp_xmit(struct sk_buff *buf, struct net_device *dev);
251 251
252static irqreturn_t eexp_irq(int irq, void *dev_addr, struct pt_regs *regs); 252static irqreturn_t eexp_irq(int irq, void *dev_addr);
253static void eexp_set_multicast(struct net_device *dev); 253static void eexp_set_multicast(struct net_device *dev);
254 254
255/* 255/*
@@ -789,20 +789,13 @@ static void eexp_cmd_clear(struct net_device *dev)
789 } 789 }
790} 790}
791 791
792static irqreturn_t eexp_irq(int irq, void *dev_info, struct pt_regs *regs) 792static irqreturn_t eexp_irq(int irq, void *dev_info)
793{ 793{
794 struct net_device *dev = dev_info; 794 struct net_device *dev = dev_info;
795 struct net_local *lp; 795 struct net_local *lp;
796 unsigned short ioaddr,status,ack_cmd; 796 unsigned short ioaddr,status,ack_cmd;
797 unsigned short old_read_ptr, old_write_ptr; 797 unsigned short old_read_ptr, old_write_ptr;
798 798
799 if (dev==NULL)
800 {
801 printk(KERN_WARNING "eexpress: irq %d for unknown device\n",
802 irq);
803 return IRQ_NONE;
804 }
805
806 lp = netdev_priv(dev); 799 lp = netdev_priv(dev);
807 ioaddr = dev->base_addr; 800 ioaddr = dev->base_addr;
808 801
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 263d1c5b3f23..c6b31775e26b 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -536,16 +536,14 @@ void ehea_send_irq_tasklet(unsigned long data)
536 tasklet_hi_schedule(&pr->send_comp_task); 536 tasklet_hi_schedule(&pr->send_comp_task);
537} 537}
538 538
539static irqreturn_t ehea_send_irq_handler(int irq, void *param, 539static irqreturn_t ehea_send_irq_handler(int irq, void *param)
540 struct pt_regs *regs)
541{ 540{
542 struct ehea_port_res *pr = param; 541 struct ehea_port_res *pr = param;
543 tasklet_hi_schedule(&pr->send_comp_task); 542 tasklet_hi_schedule(&pr->send_comp_task);
544 return IRQ_HANDLED; 543 return IRQ_HANDLED;
545} 544}
546 545
547static irqreturn_t ehea_recv_irq_handler(int irq, void *param, 546static irqreturn_t ehea_recv_irq_handler(int irq, void *param)
548 struct pt_regs *regs)
549{ 547{
550 struct ehea_port_res *pr = param; 548 struct ehea_port_res *pr = param;
551 struct ehea_port *port = pr->port; 549 struct ehea_port *port = pr->port;
@@ -553,8 +551,7 @@ static irqreturn_t ehea_recv_irq_handler(int irq, void *param,
553 return IRQ_HANDLED; 551 return IRQ_HANDLED;
554} 552}
555 553
556static irqreturn_t ehea_qp_aff_irq_handler(int irq, void *param, 554static irqreturn_t ehea_qp_aff_irq_handler(int irq, void *param)
557 struct pt_regs *regs)
558{ 555{
559 struct ehea_port *port = param; 556 struct ehea_port *port = param;
560 struct ehea_eqe *eqe; 557 struct ehea_eqe *eqe;
@@ -850,8 +847,7 @@ static void ehea_neq_tasklet(unsigned long data)
850 adapter->neq->fw_handle, event_mask); 847 adapter->neq->fw_handle, event_mask);
851} 848}
852 849
853static irqreturn_t ehea_interrupt_neq(int irq, void *param, 850static irqreturn_t ehea_interrupt_neq(int irq, void *param)
854 struct pt_regs *regs)
855{ 851{
856 struct ehea_adapter *adapter = param; 852 struct ehea_adapter *adapter = param;
857 tasklet_hi_schedule(&adapter->neq_tasklet); 853 tasklet_hi_schedule(&adapter->neq_tasklet);
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c
index ba2565ee0439..3a6a83d3ee1c 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -297,7 +297,7 @@ static void epic_init_ring(struct net_device *dev);
297static int epic_start_xmit(struct sk_buff *skb, struct net_device *dev); 297static int epic_start_xmit(struct sk_buff *skb, struct net_device *dev);
298static int epic_rx(struct net_device *dev, int budget); 298static int epic_rx(struct net_device *dev, int budget);
299static int epic_poll(struct net_device *dev, int *budget); 299static int epic_poll(struct net_device *dev, int *budget);
300static irqreturn_t epic_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 300static irqreturn_t epic_interrupt(int irq, void *dev_instance);
301static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 301static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
302static const struct ethtool_ops netdev_ethtool_ops; 302static const struct ethtool_ops netdev_ethtool_ops;
303static int epic_close(struct net_device *dev); 303static int epic_close(struct net_device *dev);
@@ -1081,7 +1081,7 @@ static void epic_tx(struct net_device *dev, struct epic_private *ep)
1081 1081
1082/* The interrupt handler does all of the Rx thread work and cleans up 1082/* The interrupt handler does all of the Rx thread work and cleans up
1083 after the Tx thread. */ 1083 after the Tx thread. */
1084static irqreturn_t epic_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1084static irqreturn_t epic_interrupt(int irq, void *dev_instance)
1085{ 1085{
1086 struct net_device *dev = dev_instance; 1086 struct net_device *dev = dev_instance;
1087 struct epic_private *ep = dev->priv; 1087 struct epic_private *ep = dev->priv;
diff --git a/drivers/net/eth16i.c b/drivers/net/eth16i.c
index f16b6a5aaa34..8cc3c331aca8 100644
--- a/drivers/net/eth16i.c
+++ b/drivers/net/eth16i.c
@@ -410,7 +410,7 @@ static int eth16i_close(struct net_device *dev);
410static int eth16i_tx(struct sk_buff *skb, struct net_device *dev); 410static int eth16i_tx(struct sk_buff *skb, struct net_device *dev);
411static void eth16i_rx(struct net_device *dev); 411static void eth16i_rx(struct net_device *dev);
412static void eth16i_timeout(struct net_device *dev); 412static void eth16i_timeout(struct net_device *dev);
413static irqreturn_t eth16i_interrupt(int irq, void *dev_id, struct pt_regs *regs); 413static irqreturn_t eth16i_interrupt(int irq, void *dev_id);
414static void eth16i_reset(struct net_device *dev); 414static void eth16i_reset(struct net_device *dev);
415static void eth16i_timeout(struct net_device *dev); 415static void eth16i_timeout(struct net_device *dev);
416static void eth16i_skip_packet(struct net_device *dev); 416static void eth16i_skip_packet(struct net_device *dev);
@@ -1226,7 +1226,7 @@ static void eth16i_rx(struct net_device *dev)
1226 } /* while */ 1226 } /* while */
1227} 1227}
1228 1228
1229static irqreturn_t eth16i_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1229static irqreturn_t eth16i_interrupt(int irq, void *dev_id)
1230{ 1230{
1231 struct net_device *dev = dev_id; 1231 struct net_device *dev = dev_id;
1232 struct eth16i_local *lp; 1232 struct eth16i_local *lp;
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c
index 75a43f7c70cf..c8c41f0a47d6 100644
--- a/drivers/net/ewrk3.c
+++ b/drivers/net/ewrk3.c
@@ -300,7 +300,7 @@ struct ewrk3_private {
300 */ 300 */
301static int ewrk3_open(struct net_device *dev); 301static int ewrk3_open(struct net_device *dev);
302static int ewrk3_queue_pkt(struct sk_buff *skb, struct net_device *dev); 302static int ewrk3_queue_pkt(struct sk_buff *skb, struct net_device *dev);
303static irqreturn_t ewrk3_interrupt(int irq, void *dev_id, struct pt_regs *regs); 303static irqreturn_t ewrk3_interrupt(int irq, void *dev_id);
304static int ewrk3_close(struct net_device *dev); 304static int ewrk3_close(struct net_device *dev);
305static struct net_device_stats *ewrk3_get_stats(struct net_device *dev); 305static struct net_device_stats *ewrk3_get_stats(struct net_device *dev);
306static void set_multicast_list(struct net_device *dev); 306static void set_multicast_list(struct net_device *dev);
@@ -884,7 +884,7 @@ err_out:
884/* 884/*
885 ** The EWRK3 interrupt handler. 885 ** The EWRK3 interrupt handler.
886 */ 886 */
887static irqreturn_t ewrk3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 887static irqreturn_t ewrk3_interrupt(int irq, void *dev_id)
888{ 888{
889 struct net_device *dev = dev_id; 889 struct net_device *dev = dev_id;
890 struct ewrk3_private *lp; 890 struct ewrk3_private *lp;
diff --git a/drivers/net/fealnx.c b/drivers/net/fealnx.c
index 191bd429076a..38a13f440530 100644
--- a/drivers/net/fealnx.c
+++ b/drivers/net/fealnx.c
@@ -434,7 +434,7 @@ static void reset_timer(unsigned long data);
434static void tx_timeout(struct net_device *dev); 434static void tx_timeout(struct net_device *dev);
435static void init_ring(struct net_device *dev); 435static void init_ring(struct net_device *dev);
436static int start_tx(struct sk_buff *skb, struct net_device *dev); 436static int start_tx(struct sk_buff *skb, struct net_device *dev);
437static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs); 437static irqreturn_t intr_handler(int irq, void *dev_instance);
438static int netdev_rx(struct net_device *dev); 438static int netdev_rx(struct net_device *dev);
439static void set_rx_mode(struct net_device *dev); 439static void set_rx_mode(struct net_device *dev);
440static void __set_rx_mode(struct net_device *dev); 440static void __set_rx_mode(struct net_device *dev);
@@ -1453,7 +1453,7 @@ static void reset_rx_descriptors(struct net_device *dev)
1453 1453
1454/* The interrupt handler does all of the Rx thread work and cleans up 1454/* The interrupt handler does all of the Rx thread work and cleans up
1455 after the Tx thread. */ 1455 after the Tx thread. */
1456static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs) 1456static irqreturn_t intr_handler(int irq, void *dev_instance)
1457{ 1457{
1458 struct net_device *dev = (struct net_device *) dev_instance; 1458 struct net_device *dev = (struct net_device *) dev_instance;
1459 struct netdev_private *np = netdev_priv(dev); 1459 struct netdev_private *np = netdev_priv(dev);
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index 55d86bc4c104..6764281b4531 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -229,7 +229,7 @@ struct fec_enet_private {
229static int fec_enet_open(struct net_device *dev); 229static int fec_enet_open(struct net_device *dev);
230static int fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev); 230static int fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
231static void fec_enet_mii(struct net_device *dev); 231static void fec_enet_mii(struct net_device *dev);
232static irqreturn_t fec_enet_interrupt(int irq, void * dev_id, struct pt_regs * regs); 232static irqreturn_t fec_enet_interrupt(int irq, void * dev_id);
233static void fec_enet_tx(struct net_device *dev); 233static void fec_enet_tx(struct net_device *dev);
234static void fec_enet_rx(struct net_device *dev); 234static void fec_enet_rx(struct net_device *dev);
235static int fec_enet_close(struct net_device *dev); 235static int fec_enet_close(struct net_device *dev);
@@ -450,7 +450,7 @@ fec_timeout(struct net_device *dev)
450 * This is called from the MPC core interrupt. 450 * This is called from the MPC core interrupt.
451 */ 451 */
452static irqreturn_t 452static irqreturn_t
453fec_enet_interrupt(int irq, void * dev_id, struct pt_regs * regs) 453fec_enet_interrupt(int irq, void * dev_id)
454{ 454{
455 struct net_device *dev = dev_id; 455 struct net_device *dev = dev_id;
456 volatile fec_t *fecp; 456 volatile fec_t *fecp;
@@ -1236,7 +1236,7 @@ static void
1236mii_link_interrupt(void *dev_id); 1236mii_link_interrupt(void *dev_id);
1237#else 1237#else
1238static irqreturn_t 1238static irqreturn_t
1239mii_link_interrupt(int irq, void * dev_id, struct pt_regs * regs); 1239mii_link_interrupt(int irq, void * dev_id);
1240#endif 1240#endif
1241#endif 1241#endif
1242 1242
@@ -1251,7 +1251,7 @@ static void __inline__ fec_request_intrs(struct net_device *dev)
1251 static const struct idesc { 1251 static const struct idesc {
1252 char *name; 1252 char *name;
1253 unsigned short irq; 1253 unsigned short irq;
1254 irqreturn_t (*handler)(int, void *, struct pt_regs *); 1254 irq_handler_t handler;
1255 } *idp, id[] = { 1255 } *idp, id[] = {
1256 { "fec(RX)", 86, fec_enet_interrupt }, 1256 { "fec(RX)", 86, fec_enet_interrupt },
1257 { "fec(TX)", 87, fec_enet_interrupt }, 1257 { "fec(TX)", 87, fec_enet_interrupt },
@@ -2117,7 +2117,7 @@ static void
2117mii_link_interrupt(void *dev_id) 2117mii_link_interrupt(void *dev_id)
2118#else 2118#else
2119static irqreturn_t 2119static irqreturn_t
2120mii_link_interrupt(int irq, void * dev_id, struct pt_regs * regs) 2120mii_link_interrupt(int irq, void * dev_id)
2121#endif 2121#endif
2122{ 2122{
2123 struct net_device *dev = dev_id; 2123 struct net_device *dev = dev_id;
diff --git a/drivers/net/fec_8xx/fec_main.c b/drivers/net/fec_8xx/fec_main.c
index e17a1449ee10..8e7a56fadfd2 100644
--- a/drivers/net/fec_8xx/fec_main.c
+++ b/drivers/net/fec_8xx/fec_main.c
@@ -708,7 +708,7 @@ static void fec_enet_tx(struct net_device *dev)
708 * This is called from the MPC core interrupt. 708 * This is called from the MPC core interrupt.
709 */ 709 */
710static irqreturn_t 710static irqreturn_t
711fec_enet_interrupt(int irq, void *dev_id, struct pt_regs *regs) 711fec_enet_interrupt(int irq, void *dev_id)
712{ 712{
713 struct net_device *dev = dev_id; 713 struct net_device *dev = dev_id;
714 struct fec_enet_private *fep; 714 struct fec_enet_private *fep;
@@ -768,7 +768,7 @@ fec_enet_interrupt(int irq, void *dev_id, struct pt_regs *regs)
768 768
769/* This interrupt occurs when the PHY detects a link change. */ 769/* This interrupt occurs when the PHY detects a link change. */
770static irqreturn_t 770static irqreturn_t
771fec_mii_link_interrupt(int irq, void *dev_id, struct pt_regs *regs) 771fec_mii_link_interrupt(int irq, void *dev_id)
772{ 772{
773 struct net_device *dev = dev_id; 773 struct net_device *dev = dev_id;
774 struct fec_enet_private *fep; 774 struct fec_enet_private *fep;
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 35467e0ac538..c5ed635bce36 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -2397,7 +2397,7 @@ static void nv_link_irq(struct net_device *dev)
2397 dprintk(KERN_DEBUG "%s: link change notification done.\n", dev->name); 2397 dprintk(KERN_DEBUG "%s: link change notification done.\n", dev->name);
2398} 2398}
2399 2399
2400static irqreturn_t nv_nic_irq(int foo, void *data, struct pt_regs *regs) 2400static irqreturn_t nv_nic_irq(int foo, void *data)
2401{ 2401{
2402 struct net_device *dev = (struct net_device *) data; 2402 struct net_device *dev = (struct net_device *) data;
2403 struct fe_priv *np = netdev_priv(dev); 2403 struct fe_priv *np = netdev_priv(dev);
@@ -2490,7 +2490,7 @@ static irqreturn_t nv_nic_irq(int foo, void *data, struct pt_regs *regs)
2490 return IRQ_RETVAL(i); 2490 return IRQ_RETVAL(i);
2491} 2491}
2492 2492
2493static irqreturn_t nv_nic_irq_tx(int foo, void *data, struct pt_regs *regs) 2493static irqreturn_t nv_nic_irq_tx(int foo, void *data)
2494{ 2494{
2495 struct net_device *dev = (struct net_device *) data; 2495 struct net_device *dev = (struct net_device *) data;
2496 struct fe_priv *np = netdev_priv(dev); 2496 struct fe_priv *np = netdev_priv(dev);
@@ -2577,7 +2577,7 @@ static int nv_napi_poll(struct net_device *dev, int *budget)
2577#endif 2577#endif
2578 2578
2579#ifdef CONFIG_FORCEDETH_NAPI 2579#ifdef CONFIG_FORCEDETH_NAPI
2580static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs) 2580static irqreturn_t nv_nic_irq_rx(int foo, void *data)
2581{ 2581{
2582 struct net_device *dev = (struct net_device *) data; 2582 struct net_device *dev = (struct net_device *) data;
2583 u8 __iomem *base = get_hwbase(dev); 2583 u8 __iomem *base = get_hwbase(dev);
@@ -2595,7 +2595,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs)
2595 return IRQ_HANDLED; 2595 return IRQ_HANDLED;
2596} 2596}
2597#else 2597#else
2598static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs) 2598static irqreturn_t nv_nic_irq_rx(int foo, void *data)
2599{ 2599{
2600 struct net_device *dev = (struct net_device *) data; 2600 struct net_device *dev = (struct net_device *) data;
2601 struct fe_priv *np = netdev_priv(dev); 2601 struct fe_priv *np = netdev_priv(dev);
@@ -2643,7 +2643,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs)
2643} 2643}
2644#endif 2644#endif
2645 2645
2646static irqreturn_t nv_nic_irq_other(int foo, void *data, struct pt_regs *regs) 2646static irqreturn_t nv_nic_irq_other(int foo, void *data)
2647{ 2647{
2648 struct net_device *dev = (struct net_device *) data; 2648 struct net_device *dev = (struct net_device *) data;
2649 struct fe_priv *np = netdev_priv(dev); 2649 struct fe_priv *np = netdev_priv(dev);
@@ -2698,7 +2698,7 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data, struct pt_regs *regs)
2698 return IRQ_RETVAL(i); 2698 return IRQ_RETVAL(i);
2699} 2699}
2700 2700
2701static irqreturn_t nv_nic_irq_test(int foo, void *data, struct pt_regs *regs) 2701static irqreturn_t nv_nic_irq_test(int foo, void *data)
2702{ 2702{
2703 struct net_device *dev = (struct net_device *) data; 2703 struct net_device *dev = (struct net_device *) data;
2704 struct fe_priv *np = netdev_priv(dev); 2704 struct fe_priv *np = netdev_priv(dev);
@@ -2908,22 +2908,22 @@ static void nv_do_nic_poll(unsigned long data)
2908 pci_push(base); 2908 pci_push(base);
2909 2909
2910 if (!using_multi_irqs(dev)) { 2910 if (!using_multi_irqs(dev)) {
2911 nv_nic_irq(0, dev, NULL); 2911 nv_nic_irq(0, dev);
2912 if (np->msi_flags & NV_MSI_X_ENABLED) 2912 if (np->msi_flags & NV_MSI_X_ENABLED)
2913 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); 2913 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector);
2914 else 2914 else
2915 enable_irq_lockdep(dev->irq); 2915 enable_irq_lockdep(dev->irq);
2916 } else { 2916 } else {
2917 if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { 2917 if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) {
2918 nv_nic_irq_rx(0, dev, NULL); 2918 nv_nic_irq_rx(0, dev);
2919 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); 2919 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector);
2920 } 2920 }
2921 if (np->nic_poll_irq & NVREG_IRQ_TX_ALL) { 2921 if (np->nic_poll_irq & NVREG_IRQ_TX_ALL) {
2922 nv_nic_irq_tx(0, dev, NULL); 2922 nv_nic_irq_tx(0, dev);
2923 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); 2923 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector);
2924 } 2924 }
2925 if (np->nic_poll_irq & NVREG_IRQ_OTHER) { 2925 if (np->nic_poll_irq & NVREG_IRQ_OTHER) {
2926 nv_nic_irq_other(0, dev, NULL); 2926 nv_nic_irq_other(0, dev);
2927 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); 2927 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector);
2928 } 2928 }
2929 } 2929 }
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index d01870619a4a..cb3958704a87 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -441,7 +441,7 @@ static void fs_enet_tx(struct net_device *dev)
441 * This is called from the MPC core interrupt. 441 * This is called from the MPC core interrupt.
442 */ 442 */
443static irqreturn_t 443static irqreturn_t
444fs_enet_interrupt(int irq, void *dev_id, struct pt_regs *regs) 444fs_enet_interrupt(int irq, void *dev_id)
445{ 445{
446 struct net_device *dev = dev_id; 446 struct net_device *dev = dev_id;
447 struct fs_enet_private *fep; 447 struct fs_enet_private *fep;
@@ -667,7 +667,7 @@ static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)
667} 667}
668 668
669static int fs_request_irq(struct net_device *dev, int irq, const char *name, 669static int fs_request_irq(struct net_device *dev, int irq, const char *name,
670 irqreturn_t (*irqf)(int irq, void *dev_id, struct pt_regs *regs)) 670 irq_handler_t irqf)
671{ 671{
672 struct fs_enet_private *fep = netdev_priv(dev); 672 struct fs_enet_private *fep = netdev_priv(dev);
673 673
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 280b114e253f..a06d8d1aaceb 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -119,9 +119,9 @@ struct sk_buff *gfar_new_skb(struct net_device *dev, struct rxbd8 *bdp);
119static struct net_device_stats *gfar_get_stats(struct net_device *dev); 119static struct net_device_stats *gfar_get_stats(struct net_device *dev);
120static int gfar_set_mac_address(struct net_device *dev); 120static int gfar_set_mac_address(struct net_device *dev);
121static int gfar_change_mtu(struct net_device *dev, int new_mtu); 121static int gfar_change_mtu(struct net_device *dev, int new_mtu);
122static irqreturn_t gfar_error(int irq, void *dev_id, struct pt_regs *regs); 122static irqreturn_t gfar_error(int irq, void *dev_id);
123static irqreturn_t gfar_transmit(int irq, void *dev_id, struct pt_regs *regs); 123static irqreturn_t gfar_transmit(int irq, void *dev_id);
124static irqreturn_t gfar_interrupt(int irq, void *dev_id, struct pt_regs *regs); 124static irqreturn_t gfar_interrupt(int irq, void *dev_id);
125static void adjust_link(struct net_device *dev); 125static void adjust_link(struct net_device *dev);
126static void init_registers(struct net_device *dev); 126static void init_registers(struct net_device *dev);
127static int init_phy(struct net_device *dev); 127static int init_phy(struct net_device *dev);
@@ -1173,7 +1173,7 @@ static void gfar_timeout(struct net_device *dev)
1173} 1173}
1174 1174
1175/* Interrupt Handler for Transmit complete */ 1175/* Interrupt Handler for Transmit complete */
1176static irqreturn_t gfar_transmit(int irq, void *dev_id, struct pt_regs *regs) 1176static irqreturn_t gfar_transmit(int irq, void *dev_id)
1177{ 1177{
1178 struct net_device *dev = (struct net_device *) dev_id; 1178 struct net_device *dev = (struct net_device *) dev_id;
1179 struct gfar_private *priv = netdev_priv(dev); 1179 struct gfar_private *priv = netdev_priv(dev);
@@ -1305,7 +1305,7 @@ static inline void count_errors(unsigned short status, struct gfar_private *priv
1305 } 1305 }
1306} 1306}
1307 1307
1308irqreturn_t gfar_receive(int irq, void *dev_id, struct pt_regs *regs) 1308irqreturn_t gfar_receive(int irq, void *dev_id)
1309{ 1309{
1310 struct net_device *dev = (struct net_device *) dev_id; 1310 struct net_device *dev = (struct net_device *) dev_id;
1311 struct gfar_private *priv = netdev_priv(dev); 1311 struct gfar_private *priv = netdev_priv(dev);
@@ -1537,7 +1537,7 @@ static int gfar_poll(struct net_device *dev, int *budget)
1537#endif 1537#endif
1538 1538
1539/* The interrupt handler for devices with one interrupt */ 1539/* The interrupt handler for devices with one interrupt */
1540static irqreturn_t gfar_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1540static irqreturn_t gfar_interrupt(int irq, void *dev_id)
1541{ 1541{
1542 struct net_device *dev = dev_id; 1542 struct net_device *dev = dev_id;
1543 struct gfar_private *priv = netdev_priv(dev); 1543 struct gfar_private *priv = netdev_priv(dev);
@@ -1550,11 +1550,11 @@ static irqreturn_t gfar_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1550 1550
1551 /* Check for reception */ 1551 /* Check for reception */
1552 if ((events & IEVENT_RXF0) || (events & IEVENT_RXB0)) 1552 if ((events & IEVENT_RXF0) || (events & IEVENT_RXB0))
1553 gfar_receive(irq, dev_id, regs); 1553 gfar_receive(irq, dev_id);
1554 1554
1555 /* Check for transmit completion */ 1555 /* Check for transmit completion */
1556 if ((events & IEVENT_TXF) || (events & IEVENT_TXB)) 1556 if ((events & IEVENT_TXF) || (events & IEVENT_TXB))
1557 gfar_transmit(irq, dev_id, regs); 1557 gfar_transmit(irq, dev_id);
1558 1558
1559 /* Update error statistics */ 1559 /* Update error statistics */
1560 if (events & IEVENT_TXE) { 1560 if (events & IEVENT_TXE) {
@@ -1578,7 +1578,7 @@ static irqreturn_t gfar_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1578 priv->stats.rx_errors++; 1578 priv->stats.rx_errors++;
1579 priv->extra_stats.rx_bsy++; 1579 priv->extra_stats.rx_bsy++;
1580 1580
1581 gfar_receive(irq, dev_id, regs); 1581 gfar_receive(irq, dev_id);
1582 1582
1583#ifndef CONFIG_GFAR_NAPI 1583#ifndef CONFIG_GFAR_NAPI
1584 /* Clear the halt bit in RSTAT */ 1584 /* Clear the halt bit in RSTAT */
@@ -1857,7 +1857,7 @@ static void gfar_set_mac_for_addr(struct net_device *dev, int num, u8 *addr)
1857} 1857}
1858 1858
1859/* GFAR error interrupt handler */ 1859/* GFAR error interrupt handler */
1860static irqreturn_t gfar_error(int irq, void *dev_id, struct pt_regs *regs) 1860static irqreturn_t gfar_error(int irq, void *dev_id)
1861{ 1861{
1862 struct net_device *dev = dev_id; 1862 struct net_device *dev = dev_id;
1863 struct gfar_private *priv = netdev_priv(dev); 1863 struct gfar_private *priv = netdev_priv(dev);
@@ -1898,7 +1898,7 @@ static irqreturn_t gfar_error(int irq, void *dev_id, struct pt_regs *regs)
1898 priv->stats.rx_errors++; 1898 priv->stats.rx_errors++;
1899 priv->extra_stats.rx_bsy++; 1899 priv->extra_stats.rx_bsy++;
1900 1900
1901 gfar_receive(irq, dev_id, regs); 1901 gfar_receive(irq, dev_id);
1902 1902
1903#ifndef CONFIG_GFAR_NAPI 1903#ifndef CONFIG_GFAR_NAPI
1904 /* Clear the halt bit in RSTAT */ 1904 /* Clear the halt bit in RSTAT */
diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h
index c35d47c40c39..9e81a50cf2be 100644
--- a/drivers/net/gianfar.h
+++ b/drivers/net/gianfar.h
@@ -754,7 +754,7 @@ static inline void gfar_write(volatile unsigned __iomem *addr, u32 val)
754 out_be32(addr, val); 754 out_be32(addr, val);
755} 755}
756 756
757extern irqreturn_t gfar_receive(int irq, void *dev_id, struct pt_regs *regs); 757extern irqreturn_t gfar_receive(int irq, void *dev_id);
758extern int startup_gfar(struct net_device *dev); 758extern int startup_gfar(struct net_device *dev);
759extern void stop_gfar(struct net_device *dev); 759extern void stop_gfar(struct net_device *dev);
760extern void gfar_halt(struct net_device *dev); 760extern void gfar_halt(struct net_device *dev);
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c
index 5c89ae78a519..c3c0d67fc383 100644
--- a/drivers/net/hamachi.c
+++ b/drivers/net/hamachi.c
@@ -556,7 +556,7 @@ static void hamachi_timer(unsigned long data);
556static void hamachi_tx_timeout(struct net_device *dev); 556static void hamachi_tx_timeout(struct net_device *dev);
557static void hamachi_init_ring(struct net_device *dev); 557static void hamachi_init_ring(struct net_device *dev);
558static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev); 558static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev);
559static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 559static irqreturn_t hamachi_interrupt(int irq, void *dev_instance);
560static int hamachi_rx(struct net_device *dev); 560static int hamachi_rx(struct net_device *dev);
561static inline int hamachi_tx(struct net_device *dev); 561static inline int hamachi_tx(struct net_device *dev);
562static void hamachi_error(struct net_device *dev, int intr_status); 562static void hamachi_error(struct net_device *dev, int intr_status);
@@ -1376,7 +1376,7 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
1376 1376
1377/* The interrupt handler does all of the Rx thread work and cleans up 1377/* The interrupt handler does all of the Rx thread work and cleans up
1378 after the Tx thread. */ 1378 after the Tx thread. */
1379static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs *rgs) 1379static irqreturn_t hamachi_interrupt(int irq, void *dev_instance)
1380{ 1380{
1381 struct net_device *dev = dev_instance; 1381 struct net_device *dev = dev_instance;
1382 struct hamachi_private *hmp = netdev_priv(dev); 1382 struct hamachi_private *hmp = netdev_priv(dev);
diff --git a/drivers/net/hamradio/baycom_epp.c b/drivers/net/hamradio/baycom_epp.c
index 9220de9f4fe7..1ed9cccd3c11 100644
--- a/drivers/net/hamradio/baycom_epp.c
+++ b/drivers/net/hamradio/baycom_epp.c
@@ -323,7 +323,7 @@ static int eppconfig(struct baycom_state *bc)
323 323
324/* ---------------------------------------------------------------------- */ 324/* ---------------------------------------------------------------------- */
325 325
326static void epp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 326static void epp_interrupt(int irq, void *dev_id)
327{ 327{
328} 328}
329 329
diff --git a/drivers/net/hamradio/baycom_par.c b/drivers/net/hamradio/baycom_par.c
index 77411a00d1ee..5930aeb35015 100644
--- a/drivers/net/hamradio/baycom_par.c
+++ b/drivers/net/hamradio/baycom_par.c
@@ -270,7 +270,7 @@ static __inline__ void par96_rx(struct net_device *dev, struct baycom_state *bc)
270 270
271/* --------------------------------------------------------------------- */ 271/* --------------------------------------------------------------------- */
272 272
273static void par96_interrupt(int irq, void *dev_id, struct pt_regs *regs) 273static void par96_interrupt(int irq, void *dev_id)
274{ 274{
275 struct net_device *dev = (struct net_device *)dev_id; 275 struct net_device *dev = (struct net_device *)dev_id;
276 struct baycom_state *bc = netdev_priv(dev); 276 struct baycom_state *bc = netdev_priv(dev);
diff --git a/drivers/net/hamradio/baycom_ser_fdx.c b/drivers/net/hamradio/baycom_ser_fdx.c
index 55906c7b4bb1..59214e74b9cf 100644
--- a/drivers/net/hamradio/baycom_ser_fdx.c
+++ b/drivers/net/hamradio/baycom_ser_fdx.c
@@ -279,7 +279,7 @@ static __inline__ void ser12_rx(struct net_device *dev, struct baycom_state *bc,
279 279
280/* --------------------------------------------------------------------- */ 280/* --------------------------------------------------------------------- */
281 281
282static irqreturn_t ser12_interrupt(int irq, void *dev_id, struct pt_regs *regs) 282static irqreturn_t ser12_interrupt(int irq, void *dev_id)
283{ 283{
284 struct net_device *dev = (struct net_device *)dev_id; 284 struct net_device *dev = (struct net_device *)dev_id;
285 struct baycom_state *bc = netdev_priv(dev); 285 struct baycom_state *bc = netdev_priv(dev);
diff --git a/drivers/net/hamradio/baycom_ser_hdx.c b/drivers/net/hamradio/baycom_ser_hdx.c
index de95de8983da..3bcc57acbe6d 100644
--- a/drivers/net/hamradio/baycom_ser_hdx.c
+++ b/drivers/net/hamradio/baycom_ser_hdx.c
@@ -373,7 +373,7 @@ static inline void ser12_rx(struct net_device *dev, struct baycom_state *bc)
373 373
374/* --------------------------------------------------------------------- */ 374/* --------------------------------------------------------------------- */
375 375
376static irqreturn_t ser12_interrupt(int irq, void *dev_id, struct pt_regs *regs) 376static irqreturn_t ser12_interrupt(int irq, void *dev_id)
377{ 377{
378 struct net_device *dev = (struct net_device *)dev_id; 378 struct net_device *dev = (struct net_device *)dev_id;
379 struct baycom_state *bc = netdev_priv(dev); 379 struct baycom_state *bc = netdev_priv(dev);
diff --git a/drivers/net/hamradio/dmascc.c b/drivers/net/hamradio/dmascc.c
index c9a46b89942a..0f8b9afd55b4 100644
--- a/drivers/net/hamradio/dmascc.c
+++ b/drivers/net/hamradio/dmascc.c
@@ -249,7 +249,7 @@ static void start_timer(struct scc_priv *priv, int t, int r15);
249static inline unsigned char random(void); 249static inline unsigned char random(void);
250 250
251static inline void z8530_isr(struct scc_info *info); 251static inline void z8530_isr(struct scc_info *info);
252static irqreturn_t scc_isr(int irq, void *dev_id, struct pt_regs *regs); 252static irqreturn_t scc_isr(int irq, void *dev_id);
253static void rx_isr(struct scc_priv *priv); 253static void rx_isr(struct scc_priv *priv);
254static void special_condition(struct scc_priv *priv, int rc); 254static void special_condition(struct scc_priv *priv, int rc);
255static void rx_bh(void *arg); 255static void rx_bh(void *arg);
@@ -1142,7 +1142,7 @@ static inline void z8530_isr(struct scc_info *info)
1142} 1142}
1143 1143
1144 1144
1145static irqreturn_t scc_isr(int irq, void *dev_id, struct pt_regs *regs) 1145static irqreturn_t scc_isr(int irq, void *dev_id)
1146{ 1146{
1147 struct scc_info *info = dev_id; 1147 struct scc_info *info = dev_id;
1148 1148
diff --git a/drivers/net/hamradio/scc.c b/drivers/net/hamradio/scc.c
index df4b68142ac7..ec9b6d9b6f05 100644
--- a/drivers/net/hamradio/scc.c
+++ b/drivers/net/hamradio/scc.c
@@ -200,7 +200,7 @@ static void z8530_init(void);
200 200
201static void init_channel(struct scc_channel *scc); 201static void init_channel(struct scc_channel *scc);
202static void scc_key_trx (struct scc_channel *scc, char tx); 202static void scc_key_trx (struct scc_channel *scc, char tx);
203static irqreturn_t scc_isr(int irq, void *dev_id, struct pt_regs *regs); 203static irqreturn_t scc_isr(int irq, void *dev_id);
204static void scc_init_timer(struct scc_channel *scc); 204static void scc_init_timer(struct scc_channel *scc);
205 205
206static int scc_net_alloc(const char *name, struct scc_channel *scc); 206static int scc_net_alloc(const char *name, struct scc_channel *scc);
@@ -626,7 +626,7 @@ static void scc_isr_dispatch(struct scc_channel *scc, int vector)
626 626
627#define SCC_IRQTIMEOUT 30000 627#define SCC_IRQTIMEOUT 30000
628 628
629static irqreturn_t scc_isr(int irq, void *dev_id, struct pt_regs *regs) 629static irqreturn_t scc_isr(int irq, void *dev_id)
630{ 630{
631 unsigned char vector; 631 unsigned char vector;
632 struct scc_channel *scc; 632 struct scc_channel *scc;
diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c
index f98f5777dfbb..3c4455bd466d 100644
--- a/drivers/net/hamradio/yam.c
+++ b/drivers/net/hamradio/yam.c
@@ -702,7 +702,7 @@ static void yam_tx_byte(struct net_device *dev, struct yam_port *yp)
702* ISR routine 702* ISR routine
703************************************************************************************/ 703************************************************************************************/
704 704
705static irqreturn_t yam_interrupt(int irq, void *dev_id, struct pt_regs *regs) 705static irqreturn_t yam_interrupt(int irq, void *dev_id)
706{ 706{
707 struct net_device *dev; 707 struct net_device *dev;
708 struct yam_port *yp; 708 struct yam_port *yp;
diff --git a/drivers/net/hp100.c b/drivers/net/hp100.c
index ae8ad4f763bf..844c136e9920 100644
--- a/drivers/net/hp100.c
+++ b/drivers/net/hp100.c
@@ -249,7 +249,7 @@ static void hp100_misc_interrupt(struct net_device *dev);
249static void hp100_update_stats(struct net_device *dev); 249static void hp100_update_stats(struct net_device *dev);
250static void hp100_clear_stats(struct hp100_private *lp, int ioaddr); 250static void hp100_clear_stats(struct hp100_private *lp, int ioaddr);
251static void hp100_set_multicast_list(struct net_device *dev); 251static void hp100_set_multicast_list(struct net_device *dev);
252static irqreturn_t hp100_interrupt(int irq, void *dev_id, struct pt_regs *regs); 252static irqreturn_t hp100_interrupt(int irq, void *dev_id);
253static void hp100_start_interface(struct net_device *dev); 253static void hp100_start_interface(struct net_device *dev);
254static void hp100_stop_interface(struct net_device *dev); 254static void hp100_stop_interface(struct net_device *dev);
255static void hp100_load_eeprom(struct net_device *dev, u_short ioaddr); 255static void hp100_load_eeprom(struct net_device *dev, u_short ioaddr);
@@ -2187,7 +2187,7 @@ static void hp100_set_multicast_list(struct net_device *dev)
2187 * hardware interrupt handling 2187 * hardware interrupt handling
2188 */ 2188 */
2189 2189
2190static irqreturn_t hp100_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2190static irqreturn_t hp100_interrupt(int irq, void *dev_id)
2191{ 2191{
2192 struct net_device *dev = (struct net_device *) dev_id; 2192 struct net_device *dev = (struct net_device *) dev_id;
2193 struct hp100_private *lp = netdev_priv(dev); 2193 struct hp100_private *lp = netdev_priv(dev);
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c
index d52e3bd01301..ffeafb28f782 100644
--- a/drivers/net/ibm_emac/ibm_emac_core.c
+++ b/drivers/net/ibm_emac/ibm_emac_core.c
@@ -184,7 +184,7 @@ static const char emac_stats_keys[EMAC_ETHTOOL_STATS_COUNT][ETH_GSTRING_LEN] = {
184 "tx_errors" 184 "tx_errors"
185}; 185};
186 186
187static irqreturn_t emac_irq(int irq, void *dev_instance, struct pt_regs *regs); 187static irqreturn_t emac_irq(int irq, void *dev_instance);
188static void emac_clean_tx_ring(struct ocp_enet_private *dev); 188static void emac_clean_tx_ring(struct ocp_enet_private *dev);
189 189
190static inline int emac_phy_supports_gige(int phy_mode) 190static inline int emac_phy_supports_gige(int phy_mode)
@@ -1515,7 +1515,7 @@ static void emac_rxde(void *param)
1515} 1515}
1516 1516
1517/* Hard IRQ */ 1517/* Hard IRQ */
1518static irqreturn_t emac_irq(int irq, void *dev_instance, struct pt_regs *regs) 1518static irqreturn_t emac_irq(int irq, void *dev_instance)
1519{ 1519{
1520 struct ocp_enet_private *dev = dev_instance; 1520 struct ocp_enet_private *dev = dev_instance;
1521 struct emac_regs __iomem *p = dev->emacp; 1521 struct emac_regs __iomem *p = dev->emacp;
diff --git a/drivers/net/ibm_emac/ibm_emac_debug.c b/drivers/net/ibm_emac/ibm_emac_debug.c
index c3645908034d..92f970d402df 100644
--- a/drivers/net/ibm_emac/ibm_emac_debug.c
+++ b/drivers/net/ibm_emac/ibm_emac_debug.c
@@ -179,8 +179,7 @@ void emac_dbg_dump_all(void)
179} 179}
180 180
181#if defined(CONFIG_MAGIC_SYSRQ) 181#if defined(CONFIG_MAGIC_SYSRQ)
182static void emac_sysrq_handler(int key, struct pt_regs *pt_regs, 182static void emac_sysrq_handler(int key, struct tty_struct *tty)
183 struct tty_struct *tty)
184{ 183{
185 emac_dbg_dump_all(); 184 emac_dbg_dump_all();
186} 185}
diff --git a/drivers/net/ibm_emac/ibm_emac_mal.c b/drivers/net/ibm_emac/ibm_emac_mal.c
index af50e7b2e0d7..6c0f071e4052 100644
--- a/drivers/net/ibm_emac/ibm_emac_mal.c
+++ b/drivers/net/ibm_emac/ibm_emac_mal.c
@@ -168,7 +168,7 @@ static inline void mal_disable_eob_irq(struct ibm_ocp_mal *mal)
168 MAL_DBG2("%d: disable_irq" NL, mal->def->index); 168 MAL_DBG2("%d: disable_irq" NL, mal->def->index);
169} 169}
170 170
171static irqreturn_t mal_serr(int irq, void *dev_instance, struct pt_regs *regs) 171static irqreturn_t mal_serr(int irq, void *dev_instance)
172{ 172{
173 struct ibm_ocp_mal *mal = dev_instance; 173 struct ibm_ocp_mal *mal = dev_instance;
174 u32 esr = get_mal_dcrn(mal, MAL_ESR); 174 u32 esr = get_mal_dcrn(mal, MAL_ESR);
@@ -216,7 +216,7 @@ static inline void mal_schedule_poll(struct ibm_ocp_mal *mal)
216 MAL_DBG2("%d: already in poll" NL, mal->def->index); 216 MAL_DBG2("%d: already in poll" NL, mal->def->index);
217} 217}
218 218
219static irqreturn_t mal_txeob(int irq, void *dev_instance, struct pt_regs *regs) 219static irqreturn_t mal_txeob(int irq, void *dev_instance)
220{ 220{
221 struct ibm_ocp_mal *mal = dev_instance; 221 struct ibm_ocp_mal *mal = dev_instance;
222 u32 r = get_mal_dcrn(mal, MAL_TXEOBISR); 222 u32 r = get_mal_dcrn(mal, MAL_TXEOBISR);
@@ -226,7 +226,7 @@ static irqreturn_t mal_txeob(int irq, void *dev_instance, struct pt_regs *regs)
226 return IRQ_HANDLED; 226 return IRQ_HANDLED;
227} 227}
228 228
229static irqreturn_t mal_rxeob(int irq, void *dev_instance, struct pt_regs *regs) 229static irqreturn_t mal_rxeob(int irq, void *dev_instance)
230{ 230{
231 struct ibm_ocp_mal *mal = dev_instance; 231 struct ibm_ocp_mal *mal = dev_instance;
232 u32 r = get_mal_dcrn(mal, MAL_RXEOBISR); 232 u32 r = get_mal_dcrn(mal, MAL_RXEOBISR);
@@ -236,7 +236,7 @@ static irqreturn_t mal_rxeob(int irq, void *dev_instance, struct pt_regs *regs)
236 return IRQ_HANDLED; 236 return IRQ_HANDLED;
237} 237}
238 238
239static irqreturn_t mal_txde(int irq, void *dev_instance, struct pt_regs *regs) 239static irqreturn_t mal_txde(int irq, void *dev_instance)
240{ 240{
241 struct ibm_ocp_mal *mal = dev_instance; 241 struct ibm_ocp_mal *mal = dev_instance;
242 u32 deir = get_mal_dcrn(mal, MAL_TXDEIR); 242 u32 deir = get_mal_dcrn(mal, MAL_TXDEIR);
@@ -252,7 +252,7 @@ static irqreturn_t mal_txde(int irq, void *dev_instance, struct pt_regs *regs)
252 return IRQ_HANDLED; 252 return IRQ_HANDLED;
253} 253}
254 254
255static irqreturn_t mal_rxde(int irq, void *dev_instance, struct pt_regs *regs) 255static irqreturn_t mal_rxde(int irq, void *dev_instance)
256{ 256{
257 struct ibm_ocp_mal *mal = dev_instance; 257 struct ibm_ocp_mal *mal = dev_instance;
258 struct list_head *l; 258 struct list_head *l;
diff --git a/drivers/net/ibmlana.c b/drivers/net/ibmlana.c
index 2a95d72fa593..3f946c811511 100644
--- a/drivers/net/ibmlana.c
+++ b/drivers/net/ibmlana.c
@@ -705,7 +705,7 @@ static void irqtxerr_handler(struct net_device *dev)
705 705
706/* general interrupt entry */ 706/* general interrupt entry */
707 707
708static irqreturn_t irq_handler(int irq, void *device, struct pt_regs *regs) 708static irqreturn_t irq_handler(int irq, void *device)
709{ 709{
710 struct net_device *dev = (struct net_device *) device; 710 struct net_device *dev = (struct net_device *) device;
711 u16 ival; 711 u16 ival;
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index 16f3faa7ea5b..bf414a93facb 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -93,7 +93,7 @@ static void ibmveth_proc_register_driver(void);
93static void ibmveth_proc_unregister_driver(void); 93static void ibmveth_proc_unregister_driver(void);
94static void ibmveth_proc_register_adapter(struct ibmveth_adapter *adapter); 94static void ibmveth_proc_register_adapter(struct ibmveth_adapter *adapter);
95static void ibmveth_proc_unregister_adapter(struct ibmveth_adapter *adapter); 95static void ibmveth_proc_unregister_adapter(struct ibmveth_adapter *adapter);
96static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 96static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance);
97static inline void ibmveth_rxq_harvest_buffer(struct ibmveth_adapter *adapter); 97static inline void ibmveth_rxq_harvest_buffer(struct ibmveth_adapter *adapter);
98static struct kobj_type ktype_veth_pool; 98static struct kobj_type ktype_veth_pool;
99 99
@@ -570,7 +570,7 @@ static int ibmveth_open(struct net_device *netdev)
570 } 570 }
571 571
572 ibmveth_debug_printk("initial replenish cycle\n"); 572 ibmveth_debug_printk("initial replenish cycle\n");
573 ibmveth_interrupt(netdev->irq, netdev, NULL); 573 ibmveth_interrupt(netdev->irq, netdev);
574 574
575 netif_start_queue(netdev); 575 netif_start_queue(netdev);
576 576
@@ -843,7 +843,7 @@ static int ibmveth_poll(struct net_device *netdev, int *budget)
843 return 0; 843 return 0;
844} 844}
845 845
846static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 846static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance)
847{ 847{
848 struct net_device *netdev = dev_instance; 848 struct net_device *netdev = dev_instance;
849 struct ibmveth_adapter *adapter = netdev->priv; 849 struct ibmveth_adapter *adapter = netdev->priv;
@@ -1303,7 +1303,7 @@ const char * buf, size_t count)
1303 } 1303 }
1304 1304
1305 /* kick the interrupt handler to allocate/deallocate pools */ 1305 /* kick the interrupt handler to allocate/deallocate pools */
1306 ibmveth_interrupt(netdev->irq, netdev, NULL); 1306 ibmveth_interrupt(netdev->irq, netdev);
1307 return count; 1307 return count;
1308} 1308}
1309 1309
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c
index 87650237dc5c..e963dbf816be 100644
--- a/drivers/net/ioc3-eth.c
+++ b/drivers/net/ioc3-eth.c
@@ -750,7 +750,7 @@ static void ioc3_error(struct ioc3_private *ip, u32 eisr)
750 750
751/* The interrupt handler does all of the Rx thread work and cleans up 751/* The interrupt handler does all of the Rx thread work and cleans up
752 after the Tx thread. */ 752 after the Tx thread. */
753static irqreturn_t ioc3_interrupt(int irq, void *_dev, struct pt_regs *regs) 753static irqreturn_t ioc3_interrupt(int irq, void *_dev)
754{ 754{
755 struct net_device *dev = (struct net_device *)_dev; 755 struct net_device *dev = (struct net_device *)_dev;
756 struct ioc3_private *ip = netdev_priv(dev); 756 struct ioc3_private *ip = netdev_priv(dev);
diff --git a/drivers/net/irda/ali-ircc.c b/drivers/net/irda/ali-ircc.c
index 68d4c418cb98..cebf8c374bc5 100644
--- a/drivers/net/irda/ali-ircc.c
+++ b/drivers/net/irda/ali-ircc.c
@@ -660,22 +660,15 @@ static int ali_ircc_read_dongle_id (int i, chipio_t *info)
660 * An interrupt from the chip has arrived. Time to do some work 660 * An interrupt from the chip has arrived. Time to do some work
661 * 661 *
662 */ 662 */
663static irqreturn_t ali_ircc_interrupt(int irq, void *dev_id, 663static irqreturn_t ali_ircc_interrupt(int irq, void *dev_id)
664 struct pt_regs *regs)
665{ 664{
666 struct net_device *dev = (struct net_device *) dev_id; 665 struct net_device *dev = dev_id;
667 struct ali_ircc_cb *self; 666 struct ali_ircc_cb *self;
668 int ret; 667 int ret;
669 668
670 IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __FUNCTION__); 669 IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __FUNCTION__);
671 670
672 if (!dev) { 671 self = dev->priv;
673 IRDA_WARNING("%s: irq %d for unknown device.\n",
674 ALI_IRCC_DRIVER_NAME, irq);
675 return IRQ_NONE;
676 }
677
678 self = (struct ali_ircc_cb *) dev->priv;
679 672
680 spin_lock(&self->lock); 673 spin_lock(&self->lock);
681 674
diff --git a/drivers/net/irda/au1k_ir.c b/drivers/net/irda/au1k_ir.c
index 7b2b4135bb23..37914dc5b90e 100644
--- a/drivers/net/irda/au1k_ir.c
+++ b/drivers/net/irda/au1k_ir.c
@@ -51,7 +51,7 @@ static int au1k_irda_start(struct net_device *);
51static int au1k_irda_stop(struct net_device *dev); 51static int au1k_irda_stop(struct net_device *dev);
52static int au1k_irda_hard_xmit(struct sk_buff *, struct net_device *); 52static int au1k_irda_hard_xmit(struct sk_buff *, struct net_device *);
53static int au1k_irda_rx(struct net_device *); 53static int au1k_irda_rx(struct net_device *);
54static void au1k_irda_interrupt(int, void *, struct pt_regs *); 54static void au1k_irda_interrupt(int, void *);
55static void au1k_tx_timeout(struct net_device *); 55static void au1k_tx_timeout(struct net_device *);
56static struct net_device_stats *au1k_irda_stats(struct net_device *); 56static struct net_device_stats *au1k_irda_stats(struct net_device *);
57static int au1k_irda_ioctl(struct net_device *, struct ifreq *, int); 57static int au1k_irda_ioctl(struct net_device *, struct ifreq *, int);
@@ -627,7 +627,7 @@ static int au1k_irda_rx(struct net_device *dev)
627} 627}
628 628
629 629
630void au1k_irda_interrupt(int irq, void *dev_id, struct pt_regs *regs) 630void au1k_irda_interrupt(int irq, void *dev_id)
631{ 631{
632 struct net_device *dev = (struct net_device *) dev_id; 632 struct net_device *dev = (struct net_device *) dev_id;
633 633
diff --git a/drivers/net/irda/donauboe.c b/drivers/net/irda/donauboe.c
index 33c07d5275da..16620bd97fbf 100644
--- a/drivers/net/irda/donauboe.c
+++ b/drivers/net/irda/donauboe.c
@@ -657,12 +657,6 @@ toshoboe_makemttpacket (struct toshoboe_cb *self, void *buf, int mtt)
657 return xbofs; 657 return xbofs;
658} 658}
659 659
660static int toshoboe_invalid_dev(int irq)
661{
662 printk (KERN_WARNING DRIVER_NAME ": irq %d for unknown device.\n", irq);
663 return 1;
664}
665
666#ifdef USE_PROBE 660#ifdef USE_PROBE
667/***********************************************************************/ 661/***********************************************************************/
668/* Probe code */ 662/* Probe code */
@@ -709,14 +703,11 @@ stuff_byte (__u8 byte, __u8 * buf)
709} 703}
710 704
711static irqreturn_t 705static irqreturn_t
712toshoboe_probeinterrupt (int irq, void *dev_id, struct pt_regs *regs) 706toshoboe_probeinterrupt (int irq, void *dev_id)
713{ 707{
714 struct toshoboe_cb *self = (struct toshoboe_cb *) dev_id; 708 struct toshoboe_cb *self = dev_id;
715 __u8 irqstat; 709 __u8 irqstat;
716 710
717 if (self == NULL && toshoboe_invalid_dev(irq))
718 return IRQ_NONE;
719
720 irqstat = INB (OBOE_ISR); 711 irqstat = INB (OBOE_ISR);
721 712
722/* was it us */ 713/* was it us */
@@ -1161,15 +1152,12 @@ dumpbufs(skb->data,skb->len,'>');
1161 1152
1162/*interrupt handler */ 1153/*interrupt handler */
1163static irqreturn_t 1154static irqreturn_t
1164toshoboe_interrupt (int irq, void *dev_id, struct pt_regs *regs) 1155toshoboe_interrupt (int irq, void *dev_id)
1165{ 1156{
1166 struct toshoboe_cb *self = (struct toshoboe_cb *) dev_id; 1157 struct toshoboe_cb *self = dev_id;
1167 __u8 irqstat; 1158 __u8 irqstat;
1168 struct sk_buff *skb = NULL; 1159 struct sk_buff *skb = NULL;
1169 1160
1170 if (self == NULL && toshoboe_invalid_dev(irq))
1171 return IRQ_NONE;
1172
1173 irqstat = INB (OBOE_ISR); 1161 irqstat = INB (OBOE_ISR);
1174 1162
1175/* was it us */ 1163/* was it us */
@@ -1357,13 +1345,11 @@ toshoboe_net_open (struct net_device *dev)
1357{ 1345{
1358 struct toshoboe_cb *self; 1346 struct toshoboe_cb *self;
1359 unsigned long flags; 1347 unsigned long flags;
1348 int rc;
1360 1349
1361 IRDA_DEBUG (4, "%s()\n", __FUNCTION__); 1350 IRDA_DEBUG (4, "%s()\n", __FUNCTION__);
1362 1351
1363 IRDA_ASSERT (dev != NULL, return -1; ); 1352 self = netdev_priv(dev);
1364 self = (struct toshoboe_cb *) dev->priv;
1365
1366 IRDA_ASSERT (self != NULL, return 0; );
1367 1353
1368 if (self->async) 1354 if (self->async)
1369 return -EBUSY; 1355 return -EBUSY;
@@ -1371,11 +1357,10 @@ toshoboe_net_open (struct net_device *dev)
1371 if (self->stopped) 1357 if (self->stopped)
1372 return 0; 1358 return 0;
1373 1359
1374 if (request_irq (self->io.irq, toshoboe_interrupt, 1360 rc = request_irq (self->io.irq, toshoboe_interrupt,
1375 IRQF_SHARED | IRQF_DISABLED, dev->name, (void *) self)) 1361 IRQF_SHARED | IRQF_DISABLED, dev->name, self);
1376 { 1362 if (rc)
1377 return -EAGAIN; 1363 return rc;
1378 }
1379 1364
1380 spin_lock_irqsave(&self->spinlock, flags); 1365 spin_lock_irqsave(&self->spinlock, flags);
1381 toshoboe_startchip (self); 1366 toshoboe_startchip (self);
diff --git a/drivers/net/irda/irda-usb.c b/drivers/net/irda/irda-usb.c
index 383cef1f5999..14bda765c2fa 100644
--- a/drivers/net/irda/irda-usb.c
+++ b/drivers/net/irda/irda-usb.c
@@ -114,9 +114,9 @@ static void irda_usb_change_speed_xbofs(struct irda_usb_cb *self);
114static int irda_usb_hard_xmit(struct sk_buff *skb, struct net_device *dev); 114static int irda_usb_hard_xmit(struct sk_buff *skb, struct net_device *dev);
115static int irda_usb_open(struct irda_usb_cb *self); 115static int irda_usb_open(struct irda_usb_cb *self);
116static void irda_usb_close(struct irda_usb_cb *self); 116static void irda_usb_close(struct irda_usb_cb *self);
117static void speed_bulk_callback(struct urb *urb, struct pt_regs *regs); 117static void speed_bulk_callback(struct urb *urb);
118static void write_bulk_callback(struct urb *urb, struct pt_regs *regs); 118static void write_bulk_callback(struct urb *urb);
119static void irda_usb_receive(struct urb *urb, struct pt_regs *regs); 119static void irda_usb_receive(struct urb *urb);
120static void irda_usb_rx_defer_expired(unsigned long data); 120static void irda_usb_rx_defer_expired(unsigned long data);
121static int irda_usb_net_open(struct net_device *dev); 121static int irda_usb_net_open(struct net_device *dev);
122static int irda_usb_net_close(struct net_device *dev); 122static int irda_usb_net_close(struct net_device *dev);
@@ -343,7 +343,7 @@ static void irda_usb_change_speed_xbofs(struct irda_usb_cb *self)
343 * Speed URB callback 343 * Speed URB callback
344 * Now, we can only get called for the speed URB. 344 * Now, we can only get called for the speed URB.
345 */ 345 */
346static void speed_bulk_callback(struct urb *urb, struct pt_regs *regs) 346static void speed_bulk_callback(struct urb *urb)
347{ 347{
348 struct irda_usb_cb *self = urb->context; 348 struct irda_usb_cb *self = urb->context;
349 349
@@ -562,7 +562,7 @@ drop:
562/* 562/*
563 * Note : this function will be called only for tx_urb... 563 * Note : this function will be called only for tx_urb...
564 */ 564 */
565static void write_bulk_callback(struct urb *urb, struct pt_regs *regs) 565static void write_bulk_callback(struct urb *urb)
566{ 566{
567 unsigned long flags; 567 unsigned long flags;
568 struct sk_buff *skb = urb->context; 568 struct sk_buff *skb = urb->context;
@@ -809,7 +809,7 @@ static void irda_usb_submit(struct irda_usb_cb *self, struct sk_buff *skb, struc
809 * Called by the USB subsystem when a frame has been received 809 * Called by the USB subsystem when a frame has been received
810 * 810 *
811 */ 811 */
812static void irda_usb_receive(struct urb *urb, struct pt_regs *regs) 812static void irda_usb_receive(struct urb *urb)
813{ 813{
814 struct sk_buff *skb = (struct sk_buff *) urb->context; 814 struct sk_buff *skb = (struct sk_buff *) urb->context;
815 struct irda_usb_cb *self; 815 struct irda_usb_cb *self;
diff --git a/drivers/net/irda/irport.c b/drivers/net/irda/irport.c
index ba4f3eb988b3..654a68b490ae 100644
--- a/drivers/net/irda/irport.c
+++ b/drivers/net/irda/irport.c
@@ -87,8 +87,7 @@ static struct net_device_stats *irport_net_get_stats(struct net_device *dev);
87static int irport_change_speed_complete(struct irda_task *task); 87static int irport_change_speed_complete(struct irda_task *task);
88static void irport_timeout(struct net_device *dev); 88static void irport_timeout(struct net_device *dev);
89 89
90static irqreturn_t irport_interrupt(int irq, void *dev_id, 90static irqreturn_t irport_interrupt(int irq, void *dev_id);
91 struct pt_regs *regs);
92static int irport_hard_xmit(struct sk_buff *skb, struct net_device *dev); 91static int irport_hard_xmit(struct sk_buff *skb, struct net_device *dev);
93static void irport_change_speed(void *priv, __u32 speed); 92static void irport_change_speed(void *priv, __u32 speed);
94static int irport_net_open(struct net_device *dev); 93static int irport_net_open(struct net_device *dev);
@@ -761,25 +760,20 @@ static inline void irport_receive(struct irport_cb *self)
761} 760}
762 761
763/* 762/*
764 * Function irport_interrupt (irq, dev_id, regs) 763 * Function irport_interrupt (irq, dev_id)
765 * 764 *
766 * Interrupt handler 765 * Interrupt handler
767 */ 766 */
768static irqreturn_t irport_interrupt(int irq, void *dev_id, 767static irqreturn_t irport_interrupt(int irq, void *dev_id)
769 struct pt_regs *regs)
770{ 768{
771 struct net_device *dev = (struct net_device *) dev_id; 769 struct net_device *dev = dev_id;
772 struct irport_cb *self; 770 struct irport_cb *self;
773 int boguscount = 0; 771 int boguscount = 0;
774 int iobase; 772 int iobase;
775 int iir, lsr; 773 int iir, lsr;
776 int handled = 0; 774 int handled = 0;
777 775
778 if (!dev) { 776 self = dev->priv;
779 IRDA_WARNING("%s() irq %d for unknown device.\n", __FUNCTION__, irq);
780 return IRQ_NONE;
781 }
782 self = (struct irport_cb *) dev->priv;
783 777
784 spin_lock(&self->lock); 778 spin_lock(&self->lock);
785 779
diff --git a/drivers/net/irda/irport.h b/drivers/net/irda/irport.h
index fc89c8c3dd7f..3f46b84c6c85 100644
--- a/drivers/net/irda/irport.h
+++ b/drivers/net/irda/irport.h
@@ -74,7 +74,7 @@ struct irport_cb {
74 /* For piggyback drivers */ 74 /* For piggyback drivers */
75 void *priv; 75 void *priv;
76 void (*change_speed)(void *priv, __u32 speed); 76 void (*change_speed)(void *priv, __u32 speed);
77 int (*interrupt)(int irq, void *dev_id, struct pt_regs *regs); 77 irqreturn_t (*interrupt)(int irq, void *dev_id);
78}; 78};
79 79
80#endif /* IRPORT_H */ 80#endif /* IRPORT_H */
diff --git a/drivers/net/irda/mcs7780.c b/drivers/net/irda/mcs7780.c
index 415ba8dc94ce..b32c52ed19d7 100644
--- a/drivers/net/irda/mcs7780.c
+++ b/drivers/net/irda/mcs7780.c
@@ -764,7 +764,7 @@ static struct net_device_stats *mcs_net_get_stats(struct net_device *netdev)
764} 764}
765 765
766/* Receive callback function. */ 766/* Receive callback function. */
767static void mcs_receive_irq(struct urb *urb, struct pt_regs *regs) 767static void mcs_receive_irq(struct urb *urb)
768{ 768{
769 __u8 *bytes; 769 __u8 *bytes;
770 struct mcs_cb *mcs = urb->context; 770 struct mcs_cb *mcs = urb->context;
@@ -813,7 +813,7 @@ static void mcs_receive_irq(struct urb *urb, struct pt_regs *regs)
813} 813}
814 814
815/* Transmit callback funtion. */ 815/* Transmit callback funtion. */
816static void mcs_send_irq(struct urb *urb, struct pt_regs *regs) 816static void mcs_send_irq(struct urb *urb)
817{ 817{
818 struct mcs_cb *mcs = urb->context; 818 struct mcs_cb *mcs = urb->context;
819 struct net_device *ndev = mcs->netdev; 819 struct net_device *ndev = mcs->netdev;
diff --git a/drivers/net/irda/mcs7780.h b/drivers/net/irda/mcs7780.h
index 1a723d725c2a..b18148cee638 100644
--- a/drivers/net/irda/mcs7780.h
+++ b/drivers/net/irda/mcs7780.h
@@ -156,8 +156,8 @@ static int mcs_net_close(struct net_device *netdev);
156static int mcs_net_open(struct net_device *netdev); 156static int mcs_net_open(struct net_device *netdev);
157static struct net_device_stats *mcs_net_get_stats(struct net_device *netdev); 157static struct net_device_stats *mcs_net_get_stats(struct net_device *netdev);
158 158
159static void mcs_receive_irq(struct urb *urb, struct pt_regs *regs); 159static void mcs_receive_irq(struct urb *urb);
160static void mcs_send_irq(struct urb *urb, struct pt_regs *regs); 160static void mcs_send_irq(struct urb *urb);
161static int mcs_hard_xmit(struct sk_buff *skb, struct net_device *netdev); 161static int mcs_hard_xmit(struct sk_buff *skb, struct net_device *netdev);
162 162
163static int mcs_probe(struct usb_interface *intf, 163static int mcs_probe(struct usb_interface *intf,
diff --git a/drivers/net/irda/nsc-ircc.c b/drivers/net/irda/nsc-ircc.c
index 7185a4ee3c1e..29b5ccd29d0b 100644
--- a/drivers/net/irda/nsc-ircc.c
+++ b/drivers/net/irda/nsc-ircc.c
@@ -2066,20 +2066,14 @@ static void nsc_ircc_fir_interrupt(struct nsc_ircc_cb *self, int iobase,
2066 * An interrupt from the chip has arrived. Time to do some work 2066 * An interrupt from the chip has arrived. Time to do some work
2067 * 2067 *
2068 */ 2068 */
2069static irqreturn_t nsc_ircc_interrupt(int irq, void *dev_id, 2069static irqreturn_t nsc_ircc_interrupt(int irq, void *dev_id)
2070 struct pt_regs *regs)
2071{ 2070{
2072 struct net_device *dev = (struct net_device *) dev_id; 2071 struct net_device *dev = dev_id;
2073 struct nsc_ircc_cb *self; 2072 struct nsc_ircc_cb *self;
2074 __u8 bsr, eir; 2073 __u8 bsr, eir;
2075 int iobase; 2074 int iobase;
2076 2075
2077 if (!dev) { 2076 self = dev->priv;
2078 IRDA_WARNING("%s: irq %d for unknown device.\n",
2079 driver_name, irq);
2080 return IRQ_NONE;
2081 }
2082 self = (struct nsc_ircc_cb *) dev->priv;
2083 2077
2084 spin_lock(&self->lock); 2078 spin_lock(&self->lock);
2085 2079
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c
index afb19e8d95c8..f9a1c88a4283 100644
--- a/drivers/net/irda/pxaficp_ir.c
+++ b/drivers/net/irda/pxaficp_ir.c
@@ -199,7 +199,7 @@ static int pxa_irda_set_speed(struct pxa_irda *si, int speed)
199} 199}
200 200
201/* SIR interrupt service routine. */ 201/* SIR interrupt service routine. */
202static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id, struct pt_regs *regs) 202static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id)
203{ 203{
204 struct net_device *dev = dev_id; 204 struct net_device *dev = dev_id;
205 struct pxa_irda *si = netdev_priv(dev); 205 struct pxa_irda *si = netdev_priv(dev);
@@ -281,7 +281,7 @@ static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id, struct pt_regs *regs)
281} 281}
282 282
283/* FIR Receive DMA interrupt handler */ 283/* FIR Receive DMA interrupt handler */
284static void pxa_irda_fir_dma_rx_irq(int channel, void *data, struct pt_regs *regs) 284static void pxa_irda_fir_dma_rx_irq(int channel, void *data)
285{ 285{
286 int dcsr = DCSR(channel); 286 int dcsr = DCSR(channel);
287 287
@@ -291,7 +291,7 @@ static void pxa_irda_fir_dma_rx_irq(int channel, void *data, struct pt_regs *reg
291} 291}
292 292
293/* FIR Transmit DMA interrupt handler */ 293/* FIR Transmit DMA interrupt handler */
294static void pxa_irda_fir_dma_tx_irq(int channel, void *data, struct pt_regs *regs) 294static void pxa_irda_fir_dma_tx_irq(int channel, void *data)
295{ 295{
296 struct net_device *dev = data; 296 struct net_device *dev = data;
297 struct pxa_irda *si = netdev_priv(dev); 297 struct pxa_irda *si = netdev_priv(dev);
@@ -388,7 +388,7 @@ static void pxa_irda_fir_irq_eif(struct pxa_irda *si, struct net_device *dev)
388} 388}
389 389
390/* FIR interrupt handler */ 390/* FIR interrupt handler */
391static irqreturn_t pxa_irda_fir_irq(int irq, void *dev_id, struct pt_regs *regs) 391static irqreturn_t pxa_irda_fir_irq(int irq, void *dev_id)
392{ 392{
393 struct net_device *dev = dev_id; 393 struct net_device *dev = dev_id;
394 struct pxa_irda *si = netdev_priv(dev); 394 struct pxa_irda *si = netdev_priv(dev);
diff --git a/drivers/net/irda/sa1100_ir.c b/drivers/net/irda/sa1100_ir.c
index 8d5a288d7976..937372d00398 100644
--- a/drivers/net/irda/sa1100_ir.c
+++ b/drivers/net/irda/sa1100_ir.c
@@ -579,7 +579,7 @@ static void sa1100_irda_fir_irq(struct net_device *dev)
579 sa1100_irda_rx_dma_start(si); 579 sa1100_irda_rx_dma_start(si);
580} 580}
581 581
582static irqreturn_t sa1100_irda_irq(int irq, void *dev_id, struct pt_regs *regs) 582static irqreturn_t sa1100_irda_irq(int irq, void *dev_id)
583{ 583{
584 struct net_device *dev = dev_id; 584 struct net_device *dev = dev_id;
585 if (IS_FIR(((struct sa1100_irda *)dev->priv))) 585 if (IS_FIR(((struct sa1100_irda *)dev->priv)))
diff --git a/drivers/net/irda/smsc-ircc2.c b/drivers/net/irda/smsc-ircc2.c
index 22358ff68c4c..31c623381ea8 100644
--- a/drivers/net/irda/smsc-ircc2.c
+++ b/drivers/net/irda/smsc-ircc2.c
@@ -196,7 +196,7 @@ static void smsc_ircc_dma_xmit(struct smsc_ircc_cb *self, int bofs);
196static void smsc_ircc_dma_xmit_complete(struct smsc_ircc_cb *self); 196static void smsc_ircc_dma_xmit_complete(struct smsc_ircc_cb *self);
197static void smsc_ircc_change_speed(struct smsc_ircc_cb *self, u32 speed); 197static void smsc_ircc_change_speed(struct smsc_ircc_cb *self, u32 speed);
198static void smsc_ircc_set_sir_speed(struct smsc_ircc_cb *self, u32 speed); 198static void smsc_ircc_set_sir_speed(struct smsc_ircc_cb *self, u32 speed);
199static irqreturn_t smsc_ircc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 199static irqreturn_t smsc_ircc_interrupt(int irq, void *dev_id);
200static irqreturn_t smsc_ircc_interrupt_sir(struct net_device *dev); 200static irqreturn_t smsc_ircc_interrupt_sir(struct net_device *dev);
201static void smsc_ircc_sir_start(struct smsc_ircc_cb *self); 201static void smsc_ircc_sir_start(struct smsc_ircc_cb *self);
202#if SMSC_IRCC2_C_SIR_STOP 202#if SMSC_IRCC2_C_SIR_STOP
@@ -1455,7 +1455,7 @@ static void smsc_ircc_sir_receive(struct smsc_ircc_cb *self)
1455 * An interrupt from the chip has arrived. Time to do some work 1455 * An interrupt from the chip has arrived. Time to do some work
1456 * 1456 *
1457 */ 1457 */
1458static irqreturn_t smsc_ircc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1458static irqreturn_t smsc_ircc_interrupt(int irq, void *dev_id)
1459{ 1459{
1460 struct net_device *dev = (struct net_device *) dev_id; 1460 struct net_device *dev = (struct net_device *) dev_id;
1461 struct smsc_ircc_cb *self; 1461 struct smsc_ircc_cb *self;
@@ -1520,7 +1520,7 @@ static irqreturn_t smsc_ircc_interrupt(int irq, void *dev_id, struct pt_regs *re
1520} 1520}
1521 1521
1522/* 1522/*
1523 * Function irport_interrupt_sir (irq, dev_id, regs) 1523 * Function irport_interrupt_sir (irq, dev_id)
1524 * 1524 *
1525 * Interrupt handler for SIR modes 1525 * Interrupt handler for SIR modes
1526 */ 1526 */
diff --git a/drivers/net/irda/stir4200.c b/drivers/net/irda/stir4200.c
index 12103c93f7ef..be8a66e702b0 100644
--- a/drivers/net/irda/stir4200.c
+++ b/drivers/net/irda/stir4200.c
@@ -804,7 +804,7 @@ static int stir_transmit_thread(void *arg)
804 * Wakes up every ms (usb round trip) with wrapped 804 * Wakes up every ms (usb round trip) with wrapped
805 * data. 805 * data.
806 */ 806 */
807static void stir_rcv_irq(struct urb *urb, struct pt_regs *regs) 807static void stir_rcv_irq(struct urb *urb)
808{ 808{
809 struct stir_cb *stir = urb->context; 809 struct stir_cb *stir = urb->context;
810 int err; 810 int err;
diff --git a/drivers/net/irda/via-ircc.c b/drivers/net/irda/via-ircc.c
index d916e1257c47..c3ed9b3067e5 100644
--- a/drivers/net/irda/via-ircc.c
+++ b/drivers/net/irda/via-ircc.c
@@ -93,8 +93,7 @@ static int via_ircc_hard_xmit_fir(struct sk_buff *skb,
93 struct net_device *dev); 93 struct net_device *dev);
94static void via_hw_init(struct via_ircc_cb *self); 94static void via_hw_init(struct via_ircc_cb *self);
95static void via_ircc_change_speed(struct via_ircc_cb *self, __u32 baud); 95static void via_ircc_change_speed(struct via_ircc_cb *self, __u32 baud);
96static irqreturn_t via_ircc_interrupt(int irq, void *dev_id, 96static irqreturn_t via_ircc_interrupt(int irq, void *dev_id);
97 struct pt_regs *regs);
98static int via_ircc_is_receiving(struct via_ircc_cb *self); 97static int via_ircc_is_receiving(struct via_ircc_cb *self);
99static int via_ircc_read_dongle_id(int iobase); 98static int via_ircc_read_dongle_id(int iobase);
100 99
@@ -1345,13 +1344,12 @@ static int RxTimerHandler(struct via_ircc_cb *self, int iobase)
1345 1344
1346 1345
1347/* 1346/*
1348 * Function via_ircc_interrupt (irq, dev_id, regs) 1347 * Function via_ircc_interrupt (irq, dev_id)
1349 * 1348 *
1350 * An interrupt from the chip has arrived. Time to do some work 1349 * An interrupt from the chip has arrived. Time to do some work
1351 * 1350 *
1352 */ 1351 */
1353static irqreturn_t via_ircc_interrupt(int irq, void *dev_id, 1352static irqreturn_t via_ircc_interrupt(int irq, void *dev_id)
1354 struct pt_regs *regs)
1355{ 1353{
1356 struct net_device *dev = (struct net_device *) dev_id; 1354 struct net_device *dev = (struct net_device *) dev_id;
1357 struct via_ircc_cb *self; 1355 struct via_ircc_cb *self;
diff --git a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c
index 92d646cc9edc..18c68193bf14 100644
--- a/drivers/net/irda/vlsi_ir.c
+++ b/drivers/net/irda/vlsi_ir.c
@@ -1455,8 +1455,7 @@ static int vlsi_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
1455 1455
1456/********************************************************/ 1456/********************************************************/
1457 1457
1458static irqreturn_t vlsi_interrupt(int irq, void *dev_instance, 1458static irqreturn_t vlsi_interrupt(int irq, void *dev_instance)
1459 struct pt_regs *regs)
1460{ 1459{
1461 struct net_device *ndev = dev_instance; 1460 struct net_device *ndev = dev_instance;
1462 vlsi_irda_dev_t *idev = ndev->priv; 1461 vlsi_irda_dev_t *idev = ndev->priv;
diff --git a/drivers/net/irda/w83977af_ir.c b/drivers/net/irda/w83977af_ir.c
index 7de1afdeec3d..4212657fa4f9 100644
--- a/drivers/net/irda/w83977af_ir.c
+++ b/drivers/net/irda/w83977af_ir.c
@@ -1111,20 +1111,14 @@ static __u8 w83977af_fir_interrupt(struct w83977af_ir *self, int isr)
1111 * An interrupt from the chip has arrived. Time to do some work 1111 * An interrupt from the chip has arrived. Time to do some work
1112 * 1112 *
1113 */ 1113 */
1114static irqreturn_t w83977af_interrupt(int irq, void *dev_id, 1114static irqreturn_t w83977af_interrupt(int irq, void *dev_id)
1115 struct pt_regs *regs)
1116{ 1115{
1117 struct net_device *dev = (struct net_device *) dev_id; 1116 struct net_device *dev = dev_id;
1118 struct w83977af_ir *self; 1117 struct w83977af_ir *self;
1119 __u8 set, icr, isr; 1118 __u8 set, icr, isr;
1120 int iobase; 1119 int iobase;
1121 1120
1122 if (!dev) { 1121 self = dev->priv;
1123 printk(KERN_WARNING "%s: irq %d for unknown device.\n",
1124 driver_name, irq);
1125 return IRQ_NONE;
1126 }
1127 self = (struct w83977af_ir *) dev->priv;
1128 1122
1129 iobase = self->io.fir_base; 1123 iobase = self->io.fir_base;
1130 1124
diff --git a/drivers/net/isa-skeleton.c b/drivers/net/isa-skeleton.c
index 984c31d1b3fb..0343f12d2ffb 100644
--- a/drivers/net/isa-skeleton.c
+++ b/drivers/net/isa-skeleton.c
@@ -107,7 +107,7 @@ struct net_local {
107static int netcard_probe1(struct net_device *dev, int ioaddr); 107static int netcard_probe1(struct net_device *dev, int ioaddr);
108static int net_open(struct net_device *dev); 108static int net_open(struct net_device *dev);
109static int net_send_packet(struct sk_buff *skb, struct net_device *dev); 109static int net_send_packet(struct sk_buff *skb, struct net_device *dev);
110static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs *regs); 110static irqreturn_t net_interrupt(int irq, void *dev_id);
111static void net_rx(struct net_device *dev); 111static void net_rx(struct net_device *dev);
112static int net_close(struct net_device *dev); 112static int net_close(struct net_device *dev);
113static struct net_device_stats *net_get_stats(struct net_device *dev); 113static struct net_device_stats *net_get_stats(struct net_device *dev);
@@ -504,7 +504,7 @@ void net_tx(struct net_device *dev)
504 * The typical workload of the driver: 504 * The typical workload of the driver:
505 * Handle the network interface interrupts. 505 * Handle the network interface interrupts.
506 */ 506 */
507static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs * regs) 507static irqreturn_t net_interrupt(int irq, void *dev_id)
508{ 508{
509 struct net_device *dev = dev_id; 509 struct net_device *dev = dev_id;
510 struct net_local *np; 510 struct net_local *np;
diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c
index 41b1d08fd57b..2284e2ce1692 100644
--- a/drivers/net/iseries_veth.c
+++ b/drivers/net/iseries_veth.c
@@ -586,7 +586,7 @@ static void veth_handle_int(struct veth_lpevent *event)
586 }; 586 };
587} 587}
588 588
589static void veth_handle_event(struct HvLpEvent *event, struct pt_regs *regs) 589static void veth_handle_event(struct HvLpEvent *event)
590{ 590{
591 struct veth_lpevent *veth_event = (struct veth_lpevent *)event; 591 struct veth_lpevent *veth_event = (struct veth_lpevent *)event;
592 592
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index cfde7c2569bb..e09f575a3a38 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -93,7 +93,7 @@ static int ixgb_xmit_frame(struct sk_buff *skb, struct net_device *netdev);
93static struct net_device_stats *ixgb_get_stats(struct net_device *netdev); 93static struct net_device_stats *ixgb_get_stats(struct net_device *netdev);
94static int ixgb_change_mtu(struct net_device *netdev, int new_mtu); 94static int ixgb_change_mtu(struct net_device *netdev, int new_mtu);
95static int ixgb_set_mac(struct net_device *netdev, void *p); 95static int ixgb_set_mac(struct net_device *netdev, void *p);
96static irqreturn_t ixgb_intr(int irq, void *data, struct pt_regs *regs); 96static irqreturn_t ixgb_intr(int irq, void *data);
97static boolean_t ixgb_clean_tx_irq(struct ixgb_adapter *adapter); 97static boolean_t ixgb_clean_tx_irq(struct ixgb_adapter *adapter);
98 98
99#ifdef CONFIG_IXGB_NAPI 99#ifdef CONFIG_IXGB_NAPI
@@ -1687,11 +1687,10 @@ ixgb_update_stats(struct ixgb_adapter *adapter)
1687 * ixgb_intr - Interrupt Handler 1687 * ixgb_intr - Interrupt Handler
1688 * @irq: interrupt number 1688 * @irq: interrupt number
1689 * @data: pointer to a network interface device structure 1689 * @data: pointer to a network interface device structure
1690 * @pt_regs: CPU registers structure
1691 **/ 1690 **/
1692 1691
1693static irqreturn_t 1692static irqreturn_t
1694ixgb_intr(int irq, void *data, struct pt_regs *regs) 1693ixgb_intr(int irq, void *data)
1695{ 1694{
1696 struct net_device *netdev = data; 1695 struct net_device *netdev = data;
1697 struct ixgb_adapter *adapter = netdev_priv(netdev); 1696 struct ixgb_adapter *adapter = netdev_priv(netdev);
@@ -2213,7 +2212,7 @@ static void ixgb_netpoll(struct net_device *dev)
2213 struct ixgb_adapter *adapter = netdev_priv(dev); 2212 struct ixgb_adapter *adapter = netdev_priv(dev);
2214 2213
2215 disable_irq(adapter->pdev->irq); 2214 disable_irq(adapter->pdev->irq);
2216 ixgb_intr(adapter->pdev->irq, dev, NULL); 2215 ixgb_intr(adapter->pdev->irq, dev);
2217 enable_irq(adapter->pdev->irq); 2216 enable_irq(adapter->pdev->irq);
2218} 2217}
2219#endif 2218#endif
diff --git a/drivers/net/ixp2000/ixpdev.c b/drivers/net/ixp2000/ixpdev.c
index 6eeb965b4d72..a4eccb11d677 100644
--- a/drivers/net/ixp2000/ixpdev.c
+++ b/drivers/net/ixp2000/ixpdev.c
@@ -188,7 +188,7 @@ static void ixpdev_tx_complete(void)
188 } 188 }
189} 189}
190 190
191static irqreturn_t ixpdev_interrupt(int irq, void *dev_id, struct pt_regs *regs) 191static irqreturn_t ixpdev_interrupt(int irq, void *dev_id)
192{ 192{
193 u32 status; 193 u32 status;
194 194
diff --git a/drivers/net/lance.c b/drivers/net/lance.c
index f349e88e0ddf..6efbd499d752 100644
--- a/drivers/net/lance.c
+++ b/drivers/net/lance.c
@@ -301,7 +301,7 @@ static int lance_open(struct net_device *dev);
301static void lance_init_ring(struct net_device *dev, gfp_t mode); 301static void lance_init_ring(struct net_device *dev, gfp_t mode);
302static int lance_start_xmit(struct sk_buff *skb, struct net_device *dev); 302static int lance_start_xmit(struct sk_buff *skb, struct net_device *dev);
303static int lance_rx(struct net_device *dev); 303static int lance_rx(struct net_device *dev);
304static irqreturn_t lance_interrupt(int irq, void *dev_id, struct pt_regs *regs); 304static irqreturn_t lance_interrupt(int irq, void *dev_id);
305static int lance_close(struct net_device *dev); 305static int lance_close(struct net_device *dev);
306static struct net_device_stats *lance_get_stats(struct net_device *dev); 306static struct net_device_stats *lance_get_stats(struct net_device *dev);
307static void set_multicast_list(struct net_device *dev); 307static void set_multicast_list(struct net_device *dev);
@@ -1012,19 +1012,13 @@ out:
1012} 1012}
1013 1013
1014/* The LANCE interrupt handler. */ 1014/* The LANCE interrupt handler. */
1015static irqreturn_t 1015static irqreturn_t lance_interrupt(int irq, void *dev_id)
1016lance_interrupt(int irq, void *dev_id, struct pt_regs * regs)
1017{ 1016{
1018 struct net_device *dev = dev_id; 1017 struct net_device *dev = dev_id;
1019 struct lance_private *lp; 1018 struct lance_private *lp;
1020 int csr0, ioaddr, boguscnt=10; 1019 int csr0, ioaddr, boguscnt=10;
1021 int must_restart; 1020 int must_restart;
1022 1021
1023 if (dev == NULL) {
1024 printk ("lance_interrupt(): irq %d for unknown device.\n", irq);
1025 return IRQ_NONE;
1026 }
1027
1028 ioaddr = dev->base_addr; 1022 ioaddr = dev->base_addr;
1029 lp = dev->priv; 1023 lp = dev->priv;
1030 1024
diff --git a/drivers/net/lasi_82596.c b/drivers/net/lasi_82596.c
index da1eedef0b55..f4d815bca643 100644
--- a/drivers/net/lasi_82596.c
+++ b/drivers/net/lasi_82596.c
@@ -403,7 +403,7 @@ static char init_setup[] =
403 403
404static int i596_open(struct net_device *dev); 404static int i596_open(struct net_device *dev);
405static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev); 405static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev);
406static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs); 406static irqreturn_t i596_interrupt(int irq, void *dev_id);
407static int i596_close(struct net_device *dev); 407static int i596_close(struct net_device *dev);
408static struct net_device_stats *i596_get_stats(struct net_device *dev); 408static struct net_device_stats *i596_get_stats(struct net_device *dev);
409static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd); 409static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd);
@@ -527,7 +527,7 @@ static void i596_display_data(struct net_device *dev)
527 527
528 528
529#if defined(ENABLE_MVME16x_NET) || defined(ENABLE_BVME6000_NET) 529#if defined(ENABLE_MVME16x_NET) || defined(ENABLE_BVME6000_NET)
530static void i596_error(int irq, void *dev_id, struct pt_regs *regs) 530static void i596_error(int irq, void *dev_id)
531{ 531{
532 struct net_device *dev = dev_id; 532 struct net_device *dev = dev_id;
533 volatile unsigned char *pcc2 = (unsigned char *) 0xfff42000; 533 volatile unsigned char *pcc2 = (unsigned char *) 0xfff42000;
@@ -1252,12 +1252,12 @@ static int __devinit i82596_probe(struct net_device *dev,
1252static void i596_poll_controller(struct net_device *dev) 1252static void i596_poll_controller(struct net_device *dev)
1253{ 1253{
1254 disable_irq(dev->irq); 1254 disable_irq(dev->irq);
1255 i596_interrupt(dev->irq, dev, NULL); 1255 i596_interrupt(dev->irq, dev);
1256 enable_irq(dev->irq); 1256 enable_irq(dev->irq);
1257} 1257}
1258#endif 1258#endif
1259 1259
1260static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1260static irqreturn_t i596_interrupt(int irq, void *dev_id)
1261{ 1261{
1262 struct net_device *dev = dev_id; 1262 struct net_device *dev = dev_id;
1263 struct i596_private *lp; 1263 struct i596_private *lp;
diff --git a/drivers/net/lp486e.c b/drivers/net/lp486e.c
index 0258aaca9ed3..b833016f1825 100644
--- a/drivers/net/lp486e.c
+++ b/drivers/net/lp486e.c
@@ -379,7 +379,7 @@ static char init_setup[14] = {
379 379
380static int i596_open(struct net_device *dev); 380static int i596_open(struct net_device *dev);
381static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev); 381static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev);
382static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs); 382static irqreturn_t i596_interrupt(int irq, void *dev_id);
383static int i596_close(struct net_device *dev); 383static int i596_close(struct net_device *dev);
384static struct net_device_stats *i596_get_stats(struct net_device *dev); 384static struct net_device_stats *i596_get_stats(struct net_device *dev);
385static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd); 385static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd);
@@ -1151,7 +1151,7 @@ i596_handle_CU_completion(struct net_device *dev,
1151} 1151}
1152 1152
1153static irqreturn_t 1153static irqreturn_t
1154i596_interrupt (int irq, void *dev_instance, struct pt_regs *regs) { 1154i596_interrupt (int irq, void *dev_instance) {
1155 struct net_device *dev = (struct net_device *) dev_instance; 1155 struct net_device *dev = (struct net_device *) dev_instance;
1156 struct i596_private *lp; 1156 struct i596_private *lp;
1157 unsigned short status, ack_cmd = 0; 1157 unsigned short status, ack_cmd = 0;
diff --git a/drivers/net/mac89x0.c b/drivers/net/mac89x0.c
index 8472b71641da..e960138011c0 100644
--- a/drivers/net/mac89x0.c
+++ b/drivers/net/mac89x0.c
@@ -129,7 +129,7 @@ extern void reset_chip(struct net_device *dev);
129#endif 129#endif
130static int net_open(struct net_device *dev); 130static int net_open(struct net_device *dev);
131static int net_send_packet(struct sk_buff *skb, struct net_device *dev); 131static int net_send_packet(struct sk_buff *skb, struct net_device *dev);
132static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs *regs); 132static irqreturn_t net_interrupt(int irq, void *dev_id);
133static void set_multicast_list(struct net_device *dev); 133static void set_multicast_list(struct net_device *dev);
134static void net_rx(struct net_device *dev); 134static void net_rx(struct net_device *dev);
135static int net_close(struct net_device *dev); 135static int net_close(struct net_device *dev);
@@ -431,7 +431,7 @@ net_send_packet(struct sk_buff *skb, struct net_device *dev)
431 431
432/* The typical workload of the driver: 432/* The typical workload of the driver:
433 Handle the network interface interrupts. */ 433 Handle the network interface interrupts. */
434static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs * regs) 434static irqreturn_t net_interrupt(int irq, void *dev_id)
435{ 435{
436 struct net_device *dev = dev_id; 436 struct net_device *dev = dev_id;
437 struct net_local *lp; 437 struct net_local *lp;
diff --git a/drivers/net/mace.c b/drivers/net/mace.c
index 27c24eaa2414..2907cfb12ada 100644
--- a/drivers/net/mace.c
+++ b/drivers/net/mace.c
@@ -82,9 +82,9 @@ static struct net_device_stats *mace_stats(struct net_device *dev);
82static void mace_set_multicast(struct net_device *dev); 82static void mace_set_multicast(struct net_device *dev);
83static void mace_reset(struct net_device *dev); 83static void mace_reset(struct net_device *dev);
84static int mace_set_address(struct net_device *dev, void *addr); 84static int mace_set_address(struct net_device *dev, void *addr);
85static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs); 85static irqreturn_t mace_interrupt(int irq, void *dev_id);
86static irqreturn_t mace_txdma_intr(int irq, void *dev_id, struct pt_regs *regs); 86static irqreturn_t mace_txdma_intr(int irq, void *dev_id);
87static irqreturn_t mace_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs); 87static irqreturn_t mace_rxdma_intr(int irq, void *dev_id);
88static void mace_set_timeout(struct net_device *dev); 88static void mace_set_timeout(struct net_device *dev);
89static void mace_tx_timeout(unsigned long data); 89static void mace_tx_timeout(unsigned long data);
90static inline void dbdma_reset(volatile struct dbdma_regs __iomem *dma); 90static inline void dbdma_reset(volatile struct dbdma_regs __iomem *dma);
@@ -678,7 +678,7 @@ static void mace_handle_misc_intrs(struct mace_data *mp, int intr)
678 printk(KERN_DEBUG "mace: jabbering transceiver\n"); 678 printk(KERN_DEBUG "mace: jabbering transceiver\n");
679} 679}
680 680
681static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs) 681static irqreturn_t mace_interrupt(int irq, void *dev_id)
682{ 682{
683 struct net_device *dev = (struct net_device *) dev_id; 683 struct net_device *dev = (struct net_device *) dev_id;
684 struct mace_data *mp = (struct mace_data *) dev->priv; 684 struct mace_data *mp = (struct mace_data *) dev->priv;
@@ -890,12 +890,12 @@ out:
890 spin_unlock_irqrestore(&mp->lock, flags); 890 spin_unlock_irqrestore(&mp->lock, flags);
891} 891}
892 892
893static irqreturn_t mace_txdma_intr(int irq, void *dev_id, struct pt_regs *regs) 893static irqreturn_t mace_txdma_intr(int irq, void *dev_id)
894{ 894{
895 return IRQ_HANDLED; 895 return IRQ_HANDLED;
896} 896}
897 897
898static irqreturn_t mace_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs) 898static irqreturn_t mace_rxdma_intr(int irq, void *dev_id)
899{ 899{
900 struct net_device *dev = (struct net_device *) dev_id; 900 struct net_device *dev = (struct net_device *) dev_id;
901 struct mace_data *mp = (struct mace_data *) dev->priv; 901 struct mace_data *mp = (struct mace_data *) dev->priv;
diff --git a/drivers/net/macmace.c b/drivers/net/macmace.c
index 696d5513e558..464e4a6f3d5f 100644
--- a/drivers/net/macmace.c
+++ b/drivers/net/macmace.c
@@ -77,8 +77,8 @@ static int mace_xmit_start(struct sk_buff *skb, struct net_device *dev);
77static struct net_device_stats *mace_stats(struct net_device *dev); 77static struct net_device_stats *mace_stats(struct net_device *dev);
78static void mace_set_multicast(struct net_device *dev); 78static void mace_set_multicast(struct net_device *dev);
79static int mace_set_address(struct net_device *dev, void *addr); 79static int mace_set_address(struct net_device *dev, void *addr);
80static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs); 80static irqreturn_t mace_interrupt(int irq, void *dev_id);
81static irqreturn_t mace_dma_intr(int irq, void *dev_id, struct pt_regs *regs); 81static irqreturn_t mace_dma_intr(int irq, void *dev_id);
82static void mace_tx_timeout(struct net_device *dev); 82static void mace_tx_timeout(struct net_device *dev);
83 83
84/* Bit-reverse one byte of an ethernet hardware address. */ 84/* Bit-reverse one byte of an ethernet hardware address. */
@@ -573,7 +573,7 @@ static void mace_recv_interrupt(struct net_device *dev)
573 * Process the chip interrupt 573 * Process the chip interrupt
574 */ 574 */
575 575
576static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs) 576static irqreturn_t mace_interrupt(int irq, void *dev_id)
577{ 577{
578 struct net_device *dev = (struct net_device *) dev_id; 578 struct net_device *dev = (struct net_device *) dev_id;
579 struct mace_data *mp = (struct mace_data *) dev->priv; 579 struct mace_data *mp = (struct mace_data *) dev->priv;
@@ -645,7 +645,7 @@ static void mace_dma_rx_frame(struct net_device *dev, struct mace_frame *mf)
645 * The PSC has passed us a DMA interrupt event. 645 * The PSC has passed us a DMA interrupt event.
646 */ 646 */
647 647
648static irqreturn_t mace_dma_intr(int irq, void *dev_id, struct pt_regs *regs) 648static irqreturn_t mace_dma_intr(int irq, void *dev_id)
649{ 649{
650 struct net_device *dev = (struct net_device *) dev_id; 650 struct net_device *dev = (struct net_device *) dev_id;
651 struct mace_data *mp = (struct mace_data *) dev->priv; 651 struct mace_data *mp = (struct mace_data *) dev->priv;
diff --git a/drivers/net/meth.c b/drivers/net/meth.c
index 55b1495a70d6..c1aa60b9a982 100644
--- a/drivers/net/meth.c
+++ b/drivers/net/meth.c
@@ -92,7 +92,7 @@ struct meth_private {
92}; 92};
93 93
94static void meth_tx_timeout(struct net_device *dev); 94static void meth_tx_timeout(struct net_device *dev);
95static irqreturn_t meth_interrupt(int irq, void *dev_id, struct pt_regs *pregs); 95static irqreturn_t meth_interrupt(int irq, void *dev_id);
96 96
97/* global, initialized in ip32-setup.c */ 97/* global, initialized in ip32-setup.c */
98char o2meth_eaddr[8]={0,0,0,0,0,0,0,0}; 98char o2meth_eaddr[8]={0,0,0,0,0,0,0,0};
@@ -569,7 +569,7 @@ static void meth_error(struct net_device* dev, unsigned status)
569/* 569/*
570 * The typical interrupt entry point 570 * The typical interrupt entry point
571 */ 571 */
572static irqreturn_t meth_interrupt(int irq, void *dev_id, struct pt_regs *pregs) 572static irqreturn_t meth_interrupt(int irq, void *dev_id)
573{ 573{
574 struct net_device *dev = (struct net_device *)dev_id; 574 struct net_device *dev = (struct net_device *)dev_id;
575 struct meth_private *priv = (struct meth_private *) dev->priv; 575 struct meth_private *priv = (struct meth_private *) dev->priv;
diff --git a/drivers/net/mipsnet.c b/drivers/net/mipsnet.c
index 07e58f4a2916..c9469985bd71 100644
--- a/drivers/net/mipsnet.c
+++ b/drivers/net/mipsnet.c
@@ -116,8 +116,7 @@ static inline ssize_t mipsnet_get_fromdev(struct net_device *dev, size_t count)
116 return count; 116 return count;
117} 117}
118 118
119static irqreturn_t 119static irqreturn_t mipsnet_interrupt(int irq, void *dev_id)
120mipsnet_interrupt(int irq, void *dev_id, struct pt_regs *regs)
121{ 120{
122 struct net_device *dev = dev_id; 121 struct net_device *dev = dev_id;
123 122
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index eccedf3e627d..9997081c6dae 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -507,8 +507,7 @@ static void mv643xx_eth_update_pscr(struct net_device *dev,
507 * Output : N/A 507 * Output : N/A
508 */ 508 */
509 509
510static irqreturn_t mv643xx_eth_int_handler(int irq, void *dev_id, 510static irqreturn_t mv643xx_eth_int_handler(int irq, void *dev_id)
511 struct pt_regs *regs)
512{ 511{
513 struct net_device *dev = (struct net_device *)dev_id; 512 struct net_device *dev = (struct net_device *)dev_id;
514 struct mv643xx_private *mp = netdev_priv(dev); 513 struct mv643xx_private *mp = netdev_priv(dev);
@@ -1252,7 +1251,7 @@ static void mv643xx_netpoll(struct net_device *netdev)
1252 /* wait for previous write to complete */ 1251 /* wait for previous write to complete */
1253 mv_read(MV643XX_ETH_INTERRUPT_MASK_REG(port_num)); 1252 mv_read(MV643XX_ETH_INTERRUPT_MASK_REG(port_num));
1254 1253
1255 mv643xx_eth_int_handler(netdev->irq, netdev, NULL); 1254 mv643xx_eth_int_handler(netdev->irq, netdev);
1256 1255
1257 mv_write(MV643XX_ETH_INTERRUPT_MASK_REG(port_num), ETH_INT_UNMASK_ALL); 1256 mv_write(MV643XX_ETH_INTERRUPT_MASK_REG(port_num), ETH_INT_UNMASK_ALL);
1258} 1257}
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 4330197994df..fdbb0d7213b0 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -1148,7 +1148,7 @@ static int myri10ge_poll(struct net_device *netdev, int *budget)
1148 return 1; 1148 return 1;
1149} 1149}
1150 1150
1151static irqreturn_t myri10ge_intr(int irq, void *arg, struct pt_regs *regs) 1151static irqreturn_t myri10ge_intr(int irq, void *arg)
1152{ 1152{
1153 struct myri10ge_priv *mgp = arg; 1153 struct myri10ge_priv *mgp = arg;
1154 struct mcp_irq_data *stats = mgp->fw_stats; 1154 struct mcp_irq_data *stats = mgp->fw_stats;
diff --git a/drivers/net/myri_sbus.c b/drivers/net/myri_sbus.c
index a925bc9db4ac..466b484c9fa4 100644
--- a/drivers/net/myri_sbus.c
+++ b/drivers/net/myri_sbus.c
@@ -536,7 +536,7 @@ static void myri_rx(struct myri_eth *mp, struct net_device *dev)
536 } 536 }
537} 537}
538 538
539static irqreturn_t myri_interrupt(int irq, void *dev_id, struct pt_regs *regs) 539static irqreturn_t myri_interrupt(int irq, void *dev_id)
540{ 540{
541 struct net_device *dev = (struct net_device *) dev_id; 541 struct net_device *dev = (struct net_device *) dev_id;
542 struct myri_eth *mp = (struct myri_eth *) dev->priv; 542 struct myri_eth *mp = (struct myri_eth *) dev->priv;
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index d7b241f7d7bc..ffa0afd2eddc 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -623,7 +623,7 @@ static void free_ring(struct net_device *dev);
623static void reinit_ring(struct net_device *dev); 623static void reinit_ring(struct net_device *dev);
624static void init_registers(struct net_device *dev); 624static void init_registers(struct net_device *dev);
625static int start_tx(struct sk_buff *skb, struct net_device *dev); 625static int start_tx(struct sk_buff *skb, struct net_device *dev);
626static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs); 626static irqreturn_t intr_handler(int irq, void *dev_instance);
627static void netdev_error(struct net_device *dev, int intr_status); 627static void netdev_error(struct net_device *dev, int intr_status);
628static int natsemi_poll(struct net_device *dev, int *budget); 628static int natsemi_poll(struct net_device *dev, int *budget);
629static void netdev_rx(struct net_device *dev, int *work_done, int work_to_do); 629static void netdev_rx(struct net_device *dev, int *work_done, int work_to_do);
@@ -2088,7 +2088,7 @@ static void netdev_tx_done(struct net_device *dev)
2088 2088
2089/* The interrupt handler doesn't actually handle interrupts itself, it 2089/* The interrupt handler doesn't actually handle interrupts itself, it
2090 * schedules a NAPI poll if there is anything to do. */ 2090 * schedules a NAPI poll if there is anything to do. */
2091static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs) 2091static irqreturn_t intr_handler(int irq, void *dev_instance)
2092{ 2092{
2093 struct net_device *dev = dev_instance; 2093 struct net_device *dev = dev_instance;
2094 struct netdev_private *np = netdev_priv(dev); 2094 struct netdev_private *np = netdev_priv(dev);
@@ -2373,7 +2373,7 @@ static struct net_device_stats *get_stats(struct net_device *dev)
2373static void natsemi_poll_controller(struct net_device *dev) 2373static void natsemi_poll_controller(struct net_device *dev)
2374{ 2374{
2375 disable_irq(dev->irq); 2375 disable_irq(dev->irq);
2376 intr_handler(dev->irq, dev, NULL); 2376 intr_handler(dev->irq, dev);
2377 enable_irq(dev->irq); 2377 enable_irq(dev->irq);
2378} 2378}
2379#endif 2379#endif
diff --git a/drivers/net/netx-eth.c b/drivers/net/netx-eth.c
index 30ed9a5a40e0..a53644f6a29b 100644
--- a/drivers/net/netx-eth.c
+++ b/drivers/net/netx-eth.c
@@ -176,7 +176,7 @@ static void netx_eth_receive(struct net_device *ndev)
176} 176}
177 177
178static irqreturn_t 178static irqreturn_t
179netx_eth_interrupt(int irq, void *dev_id, struct pt_regs *regs) 179netx_eth_interrupt(int irq, void *dev_id)
180{ 180{
181 struct net_device *ndev = dev_id; 181 struct net_device *ndev = dev_id;
182 struct netx_eth_priv *priv = netdev_priv(ndev); 182 struct netx_eth_priv *priv = netdev_priv(ndev);
diff --git a/drivers/net/ni5010.c b/drivers/net/ni5010.c
index 383c690eefec..8be0d030d6f4 100644
--- a/drivers/net/ni5010.c
+++ b/drivers/net/ni5010.c
@@ -99,7 +99,7 @@ struct ni5010_local {
99static int ni5010_probe1(struct net_device *dev, int ioaddr); 99static int ni5010_probe1(struct net_device *dev, int ioaddr);
100static int ni5010_open(struct net_device *dev); 100static int ni5010_open(struct net_device *dev);
101static int ni5010_send_packet(struct sk_buff *skb, struct net_device *dev); 101static int ni5010_send_packet(struct sk_buff *skb, struct net_device *dev);
102static irqreturn_t ni5010_interrupt(int irq, void *dev_id, struct pt_regs *regs); 102static irqreturn_t ni5010_interrupt(int irq, void *dev_id);
103static void ni5010_rx(struct net_device *dev); 103static void ni5010_rx(struct net_device *dev);
104static void ni5010_timeout(struct net_device *dev); 104static void ni5010_timeout(struct net_device *dev);
105static int ni5010_close(struct net_device *dev); 105static int ni5010_close(struct net_device *dev);
@@ -468,7 +468,7 @@ static int ni5010_send_packet(struct sk_buff *skb, struct net_device *dev)
468 * The typical workload of the driver: 468 * The typical workload of the driver:
469 * Handle the network interface interrupts. 469 * Handle the network interface interrupts.
470 */ 470 */
471static irqreturn_t ni5010_interrupt(int irq, void *dev_id, struct pt_regs *regs) 471static irqreturn_t ni5010_interrupt(int irq, void *dev_id)
472{ 472{
473 struct net_device *dev = dev_id; 473 struct net_device *dev = dev_id;
474 struct ni5010_local *lp; 474 struct ni5010_local *lp;
diff --git a/drivers/net/ni52.c b/drivers/net/ni52.c
index e8889235996e..26e42f6e9fb1 100644
--- a/drivers/net/ni52.c
+++ b/drivers/net/ni52.c
@@ -195,7 +195,7 @@ sizeof(nop_cmd) = 8;
195#define NI52_ADDR2 0x01 195#define NI52_ADDR2 0x01
196 196
197static int ni52_probe1(struct net_device *dev,int ioaddr); 197static int ni52_probe1(struct net_device *dev,int ioaddr);
198static irqreturn_t ni52_interrupt(int irq,void *dev_id,struct pt_regs *reg_ptr); 198static irqreturn_t ni52_interrupt(int irq,void *dev_id);
199static int ni52_open(struct net_device *dev); 199static int ni52_open(struct net_device *dev);
200static int ni52_close(struct net_device *dev); 200static int ni52_close(struct net_device *dev);
201static int ni52_send_packet(struct sk_buff *,struct net_device *); 201static int ni52_send_packet(struct sk_buff *,struct net_device *);
@@ -837,7 +837,7 @@ static void *alloc_rfa(struct net_device *dev,void *ptr)
837 * Interrupt Handler ... 837 * Interrupt Handler ...
838 */ 838 */
839 839
840static irqreturn_t ni52_interrupt(int irq,void *dev_id,struct pt_regs *reg_ptr) 840static irqreturn_t ni52_interrupt(int irq,void *dev_id)
841{ 841{
842 struct net_device *dev = dev_id; 842 struct net_device *dev = dev_id;
843 unsigned short stat; 843 unsigned short stat;
diff --git a/drivers/net/ni65.c b/drivers/net/ni65.c
index fab3c8593ac1..340ad0d5388a 100644
--- a/drivers/net/ni65.c
+++ b/drivers/net/ni65.c
@@ -248,7 +248,7 @@ struct priv
248}; 248};
249 249
250static int ni65_probe1(struct net_device *dev,int); 250static int ni65_probe1(struct net_device *dev,int);
251static irqreturn_t ni65_interrupt(int irq, void * dev_id, struct pt_regs *regs); 251static irqreturn_t ni65_interrupt(int irq, void * dev_id);
252static void ni65_recv_intr(struct net_device *dev,int); 252static void ni65_recv_intr(struct net_device *dev,int);
253static void ni65_xmit_intr(struct net_device *dev,int); 253static void ni65_xmit_intr(struct net_device *dev,int);
254static int ni65_open(struct net_device *dev); 254static int ni65_open(struct net_device *dev);
@@ -871,7 +871,7 @@ static int ni65_lance_reinit(struct net_device *dev)
871/* 871/*
872 * interrupt handler 872 * interrupt handler
873 */ 873 */
874static irqreturn_t ni65_interrupt(int irq, void * dev_id, struct pt_regs * regs) 874static irqreturn_t ni65_interrupt(int irq, void * dev_id)
875{ 875{
876 int csr0 = 0; 876 int csr0 = 0;
877 struct net_device *dev = dev_id; 877 struct net_device *dev = dev_id;
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c
index e10da1aa3d30..b0127c71a5b6 100644
--- a/drivers/net/ns83820.c
+++ b/drivers/net/ns83820.c
@@ -1288,7 +1288,7 @@ static void ns83820_mib_isr(struct ns83820 *dev)
1288} 1288}
1289 1289
1290static void ns83820_do_isr(struct net_device *ndev, u32 isr); 1290static void ns83820_do_isr(struct net_device *ndev, u32 isr);
1291static irqreturn_t ns83820_irq(int foo, void *data, struct pt_regs *regs) 1291static irqreturn_t ns83820_irq(int foo, void *data)
1292{ 1292{
1293 struct net_device *ndev = data; 1293 struct net_device *ndev = data;
1294 struct ns83820 *dev = PRIV(ndev); 1294 struct ns83820 *dev = PRIV(ndev);
diff --git a/drivers/net/pci-skeleton.c b/drivers/net/pci-skeleton.c
index 2687e747657d..00ca0fdb837b 100644
--- a/drivers/net/pci-skeleton.c
+++ b/drivers/net/pci-skeleton.c
@@ -502,8 +502,7 @@ static void netdrv_tx_timeout (struct net_device *dev);
502static void netdrv_init_ring (struct net_device *dev); 502static void netdrv_init_ring (struct net_device *dev);
503static int netdrv_start_xmit (struct sk_buff *skb, 503static int netdrv_start_xmit (struct sk_buff *skb,
504 struct net_device *dev); 504 struct net_device *dev);
505static irqreturn_t netdrv_interrupt (int irq, void *dev_instance, 505static irqreturn_t netdrv_interrupt (int irq, void *dev_instance);
506 struct pt_regs *regs);
507static int netdrv_close (struct net_device *dev); 506static int netdrv_close (struct net_device *dev);
508static int netdrv_ioctl (struct net_device *dev, struct ifreq *rq, int cmd); 507static int netdrv_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
509static struct net_device_stats *netdrv_get_stats (struct net_device *dev); 508static struct net_device_stats *netdrv_get_stats (struct net_device *dev);
@@ -1654,8 +1653,7 @@ static void netdrv_weird_interrupt (struct net_device *dev,
1654 1653
1655/* The interrupt handler does all of the Rx thread work and cleans up 1654/* The interrupt handler does all of the Rx thread work and cleans up
1656 after the Tx thread. */ 1655 after the Tx thread. */
1657static irqreturn_t netdrv_interrupt (int irq, void *dev_instance, 1656static irqreturn_t netdrv_interrupt (int irq, void *dev_instance)
1658 struct pt_regs *regs)
1659{ 1657{
1660 struct net_device *dev = (struct net_device *) dev_instance; 1658 struct net_device *dev = (struct net_device *) dev_instance;
1661 struct netdrv_private *tp = dev->priv; 1659 struct netdrv_private *tp = dev->priv;
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index 2418cdb9d317..046009928526 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -238,7 +238,7 @@ static void tc574_reset(struct net_device *dev);
238static void media_check(unsigned long arg); 238static void media_check(unsigned long arg);
239static int el3_open(struct net_device *dev); 239static int el3_open(struct net_device *dev);
240static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev); 240static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev);
241static irqreturn_t el3_interrupt(int irq, void *dev_id, struct pt_regs *regs); 241static irqreturn_t el3_interrupt(int irq, void *dev_id);
242static void update_stats(struct net_device *dev); 242static void update_stats(struct net_device *dev);
243static struct net_device_stats *el3_get_stats(struct net_device *dev); 243static struct net_device_stats *el3_get_stats(struct net_device *dev);
244static int el3_rx(struct net_device *dev, int worklimit); 244static int el3_rx(struct net_device *dev, int worklimit);
@@ -817,7 +817,7 @@ static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev)
817} 817}
818 818
819/* The EL3 interrupt handler. */ 819/* The EL3 interrupt handler. */
820static irqreturn_t el3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 820static irqreturn_t el3_interrupt(int irq, void *dev_id)
821{ 821{
822 struct net_device *dev = (struct net_device *) dev_id; 822 struct net_device *dev = (struct net_device *) dev_id;
823 struct el3_private *lp = netdev_priv(dev); 823 struct el3_private *lp = netdev_priv(dev);
@@ -927,7 +927,7 @@ static void media_check(unsigned long arg)
927 if ((inw(ioaddr + EL3_STATUS) & IntLatch) && (inb(ioaddr + Timer) == 0xff)) { 927 if ((inw(ioaddr + EL3_STATUS) & IntLatch) && (inb(ioaddr + Timer) == 0xff)) {
928 if (!lp->fast_poll) 928 if (!lp->fast_poll)
929 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 929 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
930 el3_interrupt(dev->irq, lp, NULL); 930 el3_interrupt(dev->irq, lp);
931 lp->fast_poll = HZ; 931 lp->fast_poll = HZ;
932 } 932 }
933 if (lp->fast_poll) { 933 if (lp->fast_poll) {
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index a0e2b01c027c..231fa2c9ec6c 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -151,7 +151,7 @@ static void media_check(unsigned long arg);
151static int el3_config(struct net_device *dev, struct ifmap *map); 151static int el3_config(struct net_device *dev, struct ifmap *map);
152static int el3_open(struct net_device *dev); 152static int el3_open(struct net_device *dev);
153static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev); 153static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev);
154static irqreturn_t el3_interrupt(int irq, void *dev_id, struct pt_regs *regs); 154static irqreturn_t el3_interrupt(int irq, void *dev_id);
155static void update_stats(struct net_device *dev); 155static void update_stats(struct net_device *dev);
156static struct net_device_stats *el3_get_stats(struct net_device *dev); 156static struct net_device_stats *el3_get_stats(struct net_device *dev);
157static int el3_rx(struct net_device *dev); 157static int el3_rx(struct net_device *dev);
@@ -645,7 +645,7 @@ static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev)
645} 645}
646 646
647/* The EL3 interrupt handler. */ 647/* The EL3 interrupt handler. */
648static irqreturn_t el3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 648static irqreturn_t el3_interrupt(int irq, void *dev_id)
649{ 649{
650 struct net_device *dev = (struct net_device *) dev_id; 650 struct net_device *dev = (struct net_device *) dev_id;
651 struct el3_private *lp = netdev_priv(dev); 651 struct el3_private *lp = netdev_priv(dev);
@@ -748,7 +748,7 @@ static void media_check(unsigned long arg)
748 (inb(ioaddr + EL3_TIMER) == 0xff)) { 748 (inb(ioaddr + EL3_TIMER) == 0xff)) {
749 if (!lp->fast_poll) 749 if (!lp->fast_poll)
750 printk(KERN_WARNING "%s: interrupt(s) dropped!\n", dev->name); 750 printk(KERN_WARNING "%s: interrupt(s) dropped!\n", dev->name);
751 el3_interrupt(dev->irq, lp, NULL); 751 el3_interrupt(dev->irq, lp);
752 lp->fast_poll = HZ; 752 lp->fast_poll = HZ;
753 } 753 }
754 if (lp->fast_poll) { 754 if (lp->fast_poll) {
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index a8891a9000ac..5ddd5742f779 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -92,7 +92,7 @@ static int axnet_open(struct net_device *dev);
92static int axnet_close(struct net_device *dev); 92static int axnet_close(struct net_device *dev);
93static int axnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 93static int axnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
94static const struct ethtool_ops netdev_ethtool_ops; 94static const struct ethtool_ops netdev_ethtool_ops;
95static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs); 95static irqreturn_t ei_irq_wrapper(int irq, void *dev_id);
96static void ei_watchdog(u_long arg); 96static void ei_watchdog(u_long arg);
97static void axnet_reset_8390(struct net_device *dev); 97static void axnet_reset_8390(struct net_device *dev);
98 98
@@ -112,7 +112,7 @@ static void axdev_setup(struct net_device *dev);
112static void AX88190_init(struct net_device *dev, int startp); 112static void AX88190_init(struct net_device *dev, int startp);
113static int ax_open(struct net_device *dev); 113static int ax_open(struct net_device *dev);
114static int ax_close(struct net_device *dev); 114static int ax_close(struct net_device *dev);
115static irqreturn_t ax_interrupt(int irq, void *dev_id, struct pt_regs *regs); 115static irqreturn_t ax_interrupt(int irq, void *dev_id);
116 116
117/*====================================================================*/ 117/*====================================================================*/
118 118
@@ -599,11 +599,11 @@ static void axnet_reset_8390(struct net_device *dev)
599 599
600/*====================================================================*/ 600/*====================================================================*/
601 601
602static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs) 602static irqreturn_t ei_irq_wrapper(int irq, void *dev_id)
603{ 603{
604 struct net_device *dev = dev_id; 604 struct net_device *dev = dev_id;
605 PRIV(dev)->stale = 0; 605 PRIV(dev)->stale = 0;
606 return ax_interrupt(irq, dev_id, regs); 606 return ax_interrupt(irq, dev_id);
607} 607}
608 608
609static void ei_watchdog(u_long arg) 609static void ei_watchdog(u_long arg)
@@ -621,7 +621,7 @@ static void ei_watchdog(u_long arg)
621 if (info->stale++ && (inb_p(nic_base + EN0_ISR) & ENISR_ALL)) { 621 if (info->stale++ && (inb_p(nic_base + EN0_ISR) & ENISR_ALL)) {
622 if (!info->fast_poll) 622 if (!info->fast_poll)
623 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 623 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
624 ei_irq_wrapper(dev->irq, dev, NULL); 624 ei_irq_wrapper(dev->irq, dev);
625 info->fast_poll = HZ; 625 info->fast_poll = HZ;
626 } 626 }
627 if (info->fast_poll) { 627 if (info->fast_poll) {
@@ -1193,7 +1193,7 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
1193 * needed. 1193 * needed.
1194 */ 1194 */
1195 1195
1196static irqreturn_t ax_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1196static irqreturn_t ax_interrupt(int irq, void *dev_id)
1197{ 1197{
1198 struct net_device *dev = dev_id; 1198 struct net_device *dev = dev_id;
1199 long e8390_base; 1199 long e8390_base;
@@ -1201,14 +1201,8 @@ static irqreturn_t ax_interrupt(int irq, void *dev_id, struct pt_regs * regs)
1201 struct ei_device *ei_local; 1201 struct ei_device *ei_local;
1202 int handled = 0; 1202 int handled = 0;
1203 1203
1204 if (dev == NULL)
1205 {
1206 printk ("net_interrupt(): irq %d for unknown device.\n", irq);
1207 return IRQ_NONE;
1208 }
1209
1210 e8390_base = dev->base_addr; 1204 e8390_base = dev->base_addr;
1211 ei_local = (struct ei_device *) netdev_priv(dev); 1205 ei_local = netdev_priv(dev);
1212 1206
1213 /* 1207 /*
1214 * Protect the irq test too. 1208 * Protect the irq test too.
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index d682f30dea6e..65f6fdf43725 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -97,7 +97,7 @@ static int fjn_config(struct net_device *dev, struct ifmap *map);
97static int fjn_open(struct net_device *dev); 97static int fjn_open(struct net_device *dev);
98static int fjn_close(struct net_device *dev); 98static int fjn_close(struct net_device *dev);
99static int fjn_start_xmit(struct sk_buff *skb, struct net_device *dev); 99static int fjn_start_xmit(struct sk_buff *skb, struct net_device *dev);
100static irqreturn_t fjn_interrupt(int irq, void *dev_id, struct pt_regs *regs); 100static irqreturn_t fjn_interrupt(int irq, void *dev_id);
101static void fjn_rx(struct net_device *dev); 101static void fjn_rx(struct net_device *dev);
102static void fjn_reset(struct net_device *dev); 102static void fjn_reset(struct net_device *dev);
103static struct net_device_stats *fjn_get_stats(struct net_device *dev); 103static struct net_device_stats *fjn_get_stats(struct net_device *dev);
@@ -733,7 +733,7 @@ module_exit(exit_fmvj18x_cs);
733 733
734/*====================================================================*/ 734/*====================================================================*/
735 735
736static irqreturn_t fjn_interrupt(int irq, void *dev_id, struct pt_regs *regs) 736static irqreturn_t fjn_interrupt(int irq, void *dev_id)
737{ 737{
738 struct net_device *dev = dev_id; 738 struct net_device *dev = dev_id;
739 local_info_t *lp = netdev_priv(dev); 739 local_info_t *lp = netdev_priv(dev);
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index 7d5687e94607..e77110e4c288 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -426,7 +426,7 @@ static int mace_open(struct net_device *dev);
426static int mace_close(struct net_device *dev); 426static int mace_close(struct net_device *dev);
427static int mace_start_xmit(struct sk_buff *skb, struct net_device *dev); 427static int mace_start_xmit(struct sk_buff *skb, struct net_device *dev);
428static void mace_tx_timeout(struct net_device *dev); 428static void mace_tx_timeout(struct net_device *dev);
429static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs); 429static irqreturn_t mace_interrupt(int irq, void *dev_id);
430static struct net_device_stats *mace_get_stats(struct net_device *dev); 430static struct net_device_stats *mace_get_stats(struct net_device *dev);
431static int mace_rx(struct net_device *dev, unsigned char RxCnt); 431static int mace_rx(struct net_device *dev, unsigned char RxCnt);
432static void restore_multicast_list(struct net_device *dev); 432static void restore_multicast_list(struct net_device *dev);
@@ -1002,7 +1002,7 @@ static int mace_start_xmit(struct sk_buff *skb, struct net_device *dev)
1002mace_interrupt 1002mace_interrupt
1003 The interrupt handler. 1003 The interrupt handler.
1004---------------------------------------------------------------------------- */ 1004---------------------------------------------------------------------------- */
1005static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1005static irqreturn_t mace_interrupt(int irq, void *dev_id)
1006{ 1006{
1007 struct net_device *dev = (struct net_device *) dev_id; 1007 struct net_device *dev = (struct net_device *) dev_id;
1008 mace_private *lp = netdev_priv(dev); 1008 mace_private *lp = netdev_priv(dev);
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index a09c22840f63..0c00d182e7fd 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -109,7 +109,7 @@ static int pcnet_open(struct net_device *dev);
109static int pcnet_close(struct net_device *dev); 109static int pcnet_close(struct net_device *dev);
110static int ei_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 110static int ei_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
111static const struct ethtool_ops netdev_ethtool_ops; 111static const struct ethtool_ops netdev_ethtool_ops;
112static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs); 112static irqreturn_t ei_irq_wrapper(int irq, void *dev_id);
113static void ei_watchdog(u_long arg); 113static void ei_watchdog(u_long arg);
114static void pcnet_reset_8390(struct net_device *dev); 114static void pcnet_reset_8390(struct net_device *dev);
115static int set_config(struct net_device *dev, struct ifmap *map); 115static int set_config(struct net_device *dev, struct ifmap *map);
@@ -1071,11 +1071,11 @@ static int set_config(struct net_device *dev, struct ifmap *map)
1071 1071
1072/*====================================================================*/ 1072/*====================================================================*/
1073 1073
1074static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs) 1074static irqreturn_t ei_irq_wrapper(int irq, void *dev_id)
1075{ 1075{
1076 struct net_device *dev = dev_id; 1076 struct net_device *dev = dev_id;
1077 pcnet_dev_t *info; 1077 pcnet_dev_t *info;
1078 irqreturn_t ret = ei_interrupt(irq, dev_id, regs); 1078 irqreturn_t ret = ei_interrupt(irq, dev_id);
1079 1079
1080 if (ret == IRQ_HANDLED) { 1080 if (ret == IRQ_HANDLED) {
1081 info = PRIV(dev); 1081 info = PRIV(dev);
@@ -1100,7 +1100,7 @@ static void ei_watchdog(u_long arg)
1100 if (info->stale++ && (inb_p(nic_base + EN0_ISR) & ENISR_ALL)) { 1100 if (info->stale++ && (inb_p(nic_base + EN0_ISR) & ENISR_ALL)) {
1101 if (!info->fast_poll) 1101 if (!info->fast_poll)
1102 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 1102 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
1103 ei_irq_wrapper(dev->irq, dev, NULL); 1103 ei_irq_wrapper(dev->irq, dev);
1104 info->fast_poll = HZ; 1104 info->fast_poll = HZ;
1105 } 1105 }
1106 if (info->fast_poll) { 1106 if (info->fast_poll) {
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index a2f3a0e2a005..20fcc3576202 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -287,7 +287,7 @@ static int smc_close(struct net_device *dev);
287static int smc_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 287static int smc_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
288static void smc_tx_timeout(struct net_device *dev); 288static void smc_tx_timeout(struct net_device *dev);
289static int smc_start_xmit(struct sk_buff *skb, struct net_device *dev); 289static int smc_start_xmit(struct sk_buff *skb, struct net_device *dev);
290static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 290static irqreturn_t smc_interrupt(int irq, void *dev_id);
291static void smc_rx(struct net_device *dev); 291static void smc_rx(struct net_device *dev);
292static struct net_device_stats *smc_get_stats(struct net_device *dev); 292static struct net_device_stats *smc_get_stats(struct net_device *dev);
293static void set_rx_mode(struct net_device *dev); 293static void set_rx_mode(struct net_device *dev);
@@ -1545,7 +1545,7 @@ static void smc_eph_irq(struct net_device *dev)
1545 1545
1546/*====================================================================*/ 1546/*====================================================================*/
1547 1547
1548static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1548static irqreturn_t smc_interrupt(int irq, void *dev_id)
1549{ 1549{
1550 struct net_device *dev = dev_id; 1550 struct net_device *dev = dev_id;
1551 struct smc_private *smc = netdev_priv(dev); 1551 struct smc_private *smc = netdev_priv(dev);
@@ -1966,7 +1966,7 @@ static void media_check(u_long arg)
1966 if (smc->watchdog++ && ((i>>8) & i)) { 1966 if (smc->watchdog++ && ((i>>8) & i)) {
1967 if (!smc->fast_poll) 1967 if (!smc->fast_poll)
1968 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 1968 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
1969 smc_interrupt(dev->irq, smc, NULL); 1969 smc_interrupt(dev->irq, smc);
1970 smc->fast_poll = HZ; 1970 smc->fast_poll = HZ;
1971 } 1971 }
1972 if (smc->fast_poll) { 1972 if (smc->fast_poll) {
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index 62664c01eb45..f3914f58d67f 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -308,7 +308,7 @@ static void xirc2ps_detach(struct pcmcia_device *p_dev);
308 * less on other parts of the kernel. 308 * less on other parts of the kernel.
309 */ 309 */
310 310
311static irqreturn_t xirc2ps_interrupt(int irq, void *dev_id, struct pt_regs *regs); 311static irqreturn_t xirc2ps_interrupt(int irq, void *dev_id);
312 312
313/**************** 313/****************
314 * A linked list of "instances" of the device. Each actual 314 * A linked list of "instances" of the device. Each actual
@@ -1121,7 +1121,7 @@ static int xirc2ps_resume(struct pcmcia_device *link)
1121 * This is the Interrupt service route. 1121 * This is the Interrupt service route.
1122 */ 1122 */
1123static irqreturn_t 1123static irqreturn_t
1124xirc2ps_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1124xirc2ps_interrupt(int irq, void *dev_id)
1125{ 1125{
1126 struct net_device *dev = (struct net_device *)dev_id; 1126 struct net_device *dev = (struct net_device *)dev_id;
1127 local_info_t *lp = netdev_priv(dev); 1127 local_info_t *lp = netdev_priv(dev);
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index a43e24245b7e..36f9d988278f 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -304,7 +304,7 @@ static int pcnet32_open(struct net_device *);
304static int pcnet32_init_ring(struct net_device *); 304static int pcnet32_init_ring(struct net_device *);
305static int pcnet32_start_xmit(struct sk_buff *, struct net_device *); 305static int pcnet32_start_xmit(struct sk_buff *, struct net_device *);
306static void pcnet32_tx_timeout(struct net_device *dev); 306static void pcnet32_tx_timeout(struct net_device *dev);
307static irqreturn_t pcnet32_interrupt(int, void *, struct pt_regs *); 307static irqreturn_t pcnet32_interrupt(int, void *);
308static int pcnet32_close(struct net_device *); 308static int pcnet32_close(struct net_device *);
309static struct net_device_stats *pcnet32_get_stats(struct net_device *); 309static struct net_device_stats *pcnet32_get_stats(struct net_device *);
310static void pcnet32_load_multicast(struct net_device *dev); 310static void pcnet32_load_multicast(struct net_device *dev);
@@ -674,7 +674,7 @@ static void pcnet32_purge_rx_ring(struct net_device *dev)
674static void pcnet32_poll_controller(struct net_device *dev) 674static void pcnet32_poll_controller(struct net_device *dev)
675{ 675{
676 disable_irq(dev->irq); 676 disable_irq(dev->irq);
677 pcnet32_interrupt(0, dev, NULL); 677 pcnet32_interrupt(0, dev);
678 enable_irq(dev->irq); 678 enable_irq(dev->irq);
679} 679}
680#endif 680#endif
@@ -2561,7 +2561,7 @@ static int pcnet32_start_xmit(struct sk_buff *skb, struct net_device *dev)
2561 2561
2562/* The PCNET32 interrupt handler. */ 2562/* The PCNET32 interrupt handler. */
2563static irqreturn_t 2563static irqreturn_t
2564pcnet32_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2564pcnet32_interrupt(int irq, void *dev_id)
2565{ 2565{
2566 struct net_device *dev = dev_id; 2566 struct net_device *dev = dev_id;
2567 struct pcnet32_private *lp; 2567 struct pcnet32_private *lp;
@@ -2569,13 +2569,6 @@ pcnet32_interrupt(int irq, void *dev_id, struct pt_regs *regs)
2569 u16 csr0; 2569 u16 csr0;
2570 int boguscnt = max_interrupt_work; 2570 int boguscnt = max_interrupt_work;
2571 2571
2572 if (!dev) {
2573 if (pcnet32_debug & NETIF_MSG_INTR)
2574 printk(KERN_DEBUG "%s(): irq %d for unknown device\n",
2575 __FUNCTION__, irq);
2576 return IRQ_NONE;
2577 }
2578
2579 ioaddr = dev->base_addr; 2572 ioaddr = dev->base_addr;
2580 lp = dev->priv; 2573 lp = dev->priv;
2581 2574
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index f5aad77288f9..3af9fcf76c81 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -480,7 +480,7 @@ void phy_error(struct phy_device *phydev)
480 * description: When a PHY interrupt occurs, the handler disables 480 * description: When a PHY interrupt occurs, the handler disables
481 * interrupts, and schedules a work task to clear the interrupt. 481 * interrupts, and schedules a work task to clear the interrupt.
482 */ 482 */
483static irqreturn_t phy_interrupt(int irq, void *phy_dat, struct pt_regs *regs) 483static irqreturn_t phy_interrupt(int irq, void *phy_dat)
484{ 484{
485 struct phy_device *phydev = phy_dat; 485 struct phy_device *phydev = phy_dat;
486 486
diff --git a/drivers/net/plip.c b/drivers/net/plip.c
index d4f54e9798cd..71afb274498f 100644
--- a/drivers/net/plip.c
+++ b/drivers/net/plip.c
@@ -143,7 +143,7 @@ static void plip_bh(struct net_device *dev);
143static void plip_timer_bh(struct net_device *dev); 143static void plip_timer_bh(struct net_device *dev);
144 144
145/* Interrupt handler */ 145/* Interrupt handler */
146static void plip_interrupt(int irq, void *dev_id, struct pt_regs *regs); 146static void plip_interrupt(int irq, void *dev_id);
147 147
148/* Functions for DEV methods */ 148/* Functions for DEV methods */
149static int plip_tx_packet(struct sk_buff *skb, struct net_device *dev); 149static int plip_tx_packet(struct sk_buff *skb, struct net_device *dev);
@@ -385,7 +385,7 @@ plip_timer_bh(struct net_device *dev)
385 struct net_local *nl = netdev_priv(dev); 385 struct net_local *nl = netdev_priv(dev);
386 386
387 if (!(atomic_read (&nl->kill_timer))) { 387 if (!(atomic_read (&nl->kill_timer))) {
388 plip_interrupt (-1, dev, NULL); 388 plip_interrupt (-1, dev);
389 389
390 schedule_delayed_work(&nl->timer, 1); 390 schedule_delayed_work(&nl->timer, 1);
391 } 391 }
@@ -902,18 +902,13 @@ plip_error(struct net_device *dev, struct net_local *nl,
902 902
903/* Handle the parallel port interrupts. */ 903/* Handle the parallel port interrupts. */
904static void 904static void
905plip_interrupt(int irq, void *dev_id, struct pt_regs * regs) 905plip_interrupt(int irq, void *dev_id)
906{ 906{
907 struct net_device *dev = dev_id; 907 struct net_device *dev = dev_id;
908 struct net_local *nl; 908 struct net_local *nl;
909 struct plip_local *rcv; 909 struct plip_local *rcv;
910 unsigned char c0; 910 unsigned char c0;
911 911
912 if (dev == NULL) {
913 printk(KERN_DEBUG "plip_interrupt: irq %d for unknown device.\n", irq);
914 return;
915 }
916
917 nl = netdev_priv(dev); 912 nl = netdev_priv(dev);
918 rcv = &nl->rcv_data; 913 rcv = &nl->rcv_data;
919 914
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 157471846349..ec640f6229ae 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -1965,7 +1965,7 @@ quit_polling:
1965 return 1; 1965 return 1;
1966} 1966}
1967 1967
1968static irqreturn_t ql3xxx_isr(int irq, void *dev_id, struct pt_regs *regs) 1968static irqreturn_t ql3xxx_isr(int irq, void *dev_id)
1969{ 1969{
1970 1970
1971 struct net_device *ndev = dev_id; 1971 struct net_device *ndev = dev_id;
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 4c47c5b10ba0..f1c75751cab7 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -473,8 +473,7 @@ MODULE_VERSION(RTL8169_VERSION);
473 473
474static int rtl8169_open(struct net_device *dev); 474static int rtl8169_open(struct net_device *dev);
475static int rtl8169_start_xmit(struct sk_buff *skb, struct net_device *dev); 475static int rtl8169_start_xmit(struct sk_buff *skb, struct net_device *dev);
476static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance, 476static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance);
477 struct pt_regs *regs);
478static int rtl8169_init_ring(struct net_device *dev); 477static int rtl8169_init_ring(struct net_device *dev);
479static void rtl8169_hw_start(struct net_device *dev); 478static void rtl8169_hw_start(struct net_device *dev);
480static int rtl8169_close(struct net_device *dev); 479static int rtl8169_close(struct net_device *dev);
@@ -1392,7 +1391,7 @@ static void rtl8169_netpoll(struct net_device *dev)
1392 struct pci_dev *pdev = tp->pci_dev; 1391 struct pci_dev *pdev = tp->pci_dev;
1393 1392
1394 disable_irq(pdev->irq); 1393 disable_irq(pdev->irq);
1395 rtl8169_interrupt(pdev->irq, dev, NULL); 1394 rtl8169_interrupt(pdev->irq, dev);
1396 enable_irq(pdev->irq); 1395 enable_irq(pdev->irq);
1397} 1396}
1398#endif 1397#endif
@@ -2592,7 +2591,7 @@ rtl8169_rx_interrupt(struct net_device *dev, struct rtl8169_private *tp,
2592 2591
2593/* The interrupt handler does all of the Rx thread work and cleans up after the Tx thread. */ 2592/* The interrupt handler does all of the Rx thread work and cleans up after the Tx thread. */
2594static irqreturn_t 2593static irqreturn_t
2595rtl8169_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 2594rtl8169_interrupt(int irq, void *dev_instance)
2596{ 2595{
2597 struct net_device *dev = (struct net_device *) dev_instance; 2596 struct net_device *dev = (struct net_device *) dev_instance;
2598 struct rtl8169_private *tp = netdev_priv(dev); 2597 struct rtl8169_private *tp = netdev_priv(dev);
diff --git a/drivers/net/rrunner.c b/drivers/net/rrunner.c
index 6108bac8d56a..d81536f90df6 100644
--- a/drivers/net/rrunner.c
+++ b/drivers/net/rrunner.c
@@ -1053,7 +1053,7 @@ static void rx_int(struct net_device *dev, u32 rxlimit, u32 index)
1053} 1053}
1054 1054
1055 1055
1056static irqreturn_t rr_interrupt(int irq, void *dev_id, struct pt_regs *ptregs) 1056static irqreturn_t rr_interrupt(int irq, void *dev_id)
1057{ 1057{
1058 struct rr_private *rrpriv; 1058 struct rr_private *rrpriv;
1059 struct rr_regs __iomem *regs; 1059 struct rr_regs __iomem *regs;
diff --git a/drivers/net/rrunner.h b/drivers/net/rrunner.h
index 99451b523399..9f3e050c4dc6 100644
--- a/drivers/net/rrunner.h
+++ b/drivers/net/rrunner.h
@@ -829,7 +829,7 @@ struct rr_private
829 */ 829 */
830static int rr_init(struct net_device *dev); 830static int rr_init(struct net_device *dev);
831static int rr_init1(struct net_device *dev); 831static int rr_init1(struct net_device *dev);
832static irqreturn_t rr_interrupt(int irq, void *dev_id, struct pt_regs *regs); 832static irqreturn_t rr_interrupt(int irq, void *dev_id);
833 833
834static int rr_open(struct net_device *dev); 834static int rr_open(struct net_device *dev);
835static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev); 835static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev);
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 1bf23e41f580..a231ab7d28dd 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -4029,8 +4029,7 @@ static int s2io_chk_rx_buffers(nic_t *sp, int rng_n)
4029 return 0; 4029 return 0;
4030} 4030}
4031 4031
4032static irqreturn_t 4032static irqreturn_t s2io_msi_handle(int irq, void *dev_id)
4033s2io_msi_handle(int irq, void *dev_id, struct pt_regs *regs)
4034{ 4033{
4035 struct net_device *dev = (struct net_device *) dev_id; 4034 struct net_device *dev = (struct net_device *) dev_id;
4036 nic_t *sp = dev->priv; 4035 nic_t *sp = dev->priv;
@@ -4063,8 +4062,7 @@ s2io_msi_handle(int irq, void *dev_id, struct pt_regs *regs)
4063 return IRQ_HANDLED; 4062 return IRQ_HANDLED;
4064} 4063}
4065 4064
4066static irqreturn_t 4065static irqreturn_t s2io_msix_ring_handle(int irq, void *dev_id)
4067s2io_msix_ring_handle(int irq, void *dev_id, struct pt_regs *regs)
4068{ 4066{
4069 ring_info_t *ring = (ring_info_t *)dev_id; 4067 ring_info_t *ring = (ring_info_t *)dev_id;
4070 nic_t *sp = ring->nic; 4068 nic_t *sp = ring->nic;
@@ -4078,8 +4076,7 @@ s2io_msix_ring_handle(int irq, void *dev_id, struct pt_regs *regs)
4078 return IRQ_HANDLED; 4076 return IRQ_HANDLED;
4079} 4077}
4080 4078
4081static irqreturn_t 4079static irqreturn_t s2io_msix_fifo_handle(int irq, void *dev_id)
4082s2io_msix_fifo_handle(int irq, void *dev_id, struct pt_regs *regs)
4083{ 4080{
4084 fifo_info_t *fifo = (fifo_info_t *)dev_id; 4081 fifo_info_t *fifo = (fifo_info_t *)dev_id;
4085 nic_t *sp = fifo->nic; 4082 nic_t *sp = fifo->nic;
@@ -4155,7 +4152,6 @@ static void s2io_txpic_intr_handle(nic_t *sp)
4155 * s2io_isr - ISR handler of the device . 4152 * s2io_isr - ISR handler of the device .
4156 * @irq: the irq of the device. 4153 * @irq: the irq of the device.
4157 * @dev_id: a void pointer to the dev structure of the NIC. 4154 * @dev_id: a void pointer to the dev structure of the NIC.
4158 * @pt_regs: pointer to the registers pushed on the stack.
4159 * Description: This function is the ISR handler of the device. It 4155 * Description: This function is the ISR handler of the device. It
4160 * identifies the reason for the interrupt and calls the relevant 4156 * identifies the reason for the interrupt and calls the relevant
4161 * service routines. As a contongency measure, this ISR allocates the 4157 * service routines. As a contongency measure, this ISR allocates the
@@ -4165,7 +4161,7 @@ static void s2io_txpic_intr_handle(nic_t *sp)
4165 * IRQ_HANDLED: will be returned if IRQ was handled by this routine 4161 * IRQ_HANDLED: will be returned if IRQ was handled by this routine
4166 * IRQ_NONE: will be returned if interrupt is not from our device 4162 * IRQ_NONE: will be returned if interrupt is not from our device
4167 */ 4163 */
4168static irqreturn_t s2io_isr(int irq, void *dev_id, struct pt_regs *regs) 4164static irqreturn_t s2io_isr(int irq, void *dev_id)
4169{ 4165{
4170 struct net_device *dev = (struct net_device *) dev_id; 4166 struct net_device *dev = (struct net_device *) dev_id;
4171 nic_t *sp = dev->priv; 4167 nic_t *sp = dev->priv;
diff --git a/drivers/net/s2io.h b/drivers/net/s2io.h
index 3afd9126a591..12b719f4d00f 100644
--- a/drivers/net/s2io.h
+++ b/drivers/net/s2io.h
@@ -116,179 +116,179 @@ typedef struct {
116/* The statistics block of Xena */ 116/* The statistics block of Xena */
117typedef struct stat_block { 117typedef struct stat_block {
118/* Tx MAC statistics counters. */ 118/* Tx MAC statistics counters. */
119 u32 tmac_data_octets; 119 __le32 tmac_data_octets;
120 u32 tmac_frms; 120 __le32 tmac_frms;
121 u64 tmac_drop_frms; 121 __le64 tmac_drop_frms;
122 u32 tmac_bcst_frms; 122 __le32 tmac_bcst_frms;
123 u32 tmac_mcst_frms; 123 __le32 tmac_mcst_frms;
124 u64 tmac_pause_ctrl_frms; 124 __le64 tmac_pause_ctrl_frms;
125 u32 tmac_ucst_frms; 125 __le32 tmac_ucst_frms;
126 u32 tmac_ttl_octets; 126 __le32 tmac_ttl_octets;
127 u32 tmac_any_err_frms; 127 __le32 tmac_any_err_frms;
128 u32 tmac_nucst_frms; 128 __le32 tmac_nucst_frms;
129 u64 tmac_ttl_less_fb_octets; 129 __le64 tmac_ttl_less_fb_octets;
130 u64 tmac_vld_ip_octets; 130 __le64 tmac_vld_ip_octets;
131 u32 tmac_drop_ip; 131 __le32 tmac_drop_ip;
132 u32 tmac_vld_ip; 132 __le32 tmac_vld_ip;
133 u32 tmac_rst_tcp; 133 __le32 tmac_rst_tcp;
134 u32 tmac_icmp; 134 __le32 tmac_icmp;
135 u64 tmac_tcp; 135 __le64 tmac_tcp;
136 u32 reserved_0; 136 __le32 reserved_0;
137 u32 tmac_udp; 137 __le32 tmac_udp;
138 138
139/* Rx MAC Statistics counters. */ 139/* Rx MAC Statistics counters. */
140 u32 rmac_data_octets; 140 __le32 rmac_data_octets;
141 u32 rmac_vld_frms; 141 __le32 rmac_vld_frms;
142 u64 rmac_fcs_err_frms; 142 __le64 rmac_fcs_err_frms;
143 u64 rmac_drop_frms; 143 __le64 rmac_drop_frms;
144 u32 rmac_vld_bcst_frms; 144 __le32 rmac_vld_bcst_frms;
145 u32 rmac_vld_mcst_frms; 145 __le32 rmac_vld_mcst_frms;
146 u32 rmac_out_rng_len_err_frms; 146 __le32 rmac_out_rng_len_err_frms;
147 u32 rmac_in_rng_len_err_frms; 147 __le32 rmac_in_rng_len_err_frms;
148 u64 rmac_long_frms; 148 __le64 rmac_long_frms;
149 u64 rmac_pause_ctrl_frms; 149 __le64 rmac_pause_ctrl_frms;
150 u64 rmac_unsup_ctrl_frms; 150 __le64 rmac_unsup_ctrl_frms;
151 u32 rmac_accepted_ucst_frms; 151 __le32 rmac_accepted_ucst_frms;
152 u32 rmac_ttl_octets; 152 __le32 rmac_ttl_octets;
153 u32 rmac_discarded_frms; 153 __le32 rmac_discarded_frms;
154 u32 rmac_accepted_nucst_frms; 154 __le32 rmac_accepted_nucst_frms;
155 u32 reserved_1; 155 __le32 reserved_1;
156 u32 rmac_drop_events; 156 __le32 rmac_drop_events;
157 u64 rmac_ttl_less_fb_octets; 157 __le64 rmac_ttl_less_fb_octets;
158 u64 rmac_ttl_frms; 158 __le64 rmac_ttl_frms;
159 u64 reserved_2; 159 __le64 reserved_2;
160 u32 rmac_usized_frms; 160 __le32 rmac_usized_frms;
161 u32 reserved_3; 161 __le32 reserved_3;
162 u32 rmac_frag_frms; 162 __le32 rmac_frag_frms;
163 u32 rmac_osized_frms; 163 __le32 rmac_osized_frms;
164 u32 reserved_4; 164 __le32 reserved_4;
165 u32 rmac_jabber_frms; 165 __le32 rmac_jabber_frms;
166 u64 rmac_ttl_64_frms; 166 __le64 rmac_ttl_64_frms;
167 u64 rmac_ttl_65_127_frms; 167 __le64 rmac_ttl_65_127_frms;
168 u64 reserved_5; 168 __le64 reserved_5;
169 u64 rmac_ttl_128_255_frms; 169 __le64 rmac_ttl_128_255_frms;
170 u64 rmac_ttl_256_511_frms; 170 __le64 rmac_ttl_256_511_frms;
171 u64 reserved_6; 171 __le64 reserved_6;
172 u64 rmac_ttl_512_1023_frms; 172 __le64 rmac_ttl_512_1023_frms;
173 u64 rmac_ttl_1024_1518_frms; 173 __le64 rmac_ttl_1024_1518_frms;
174 u32 rmac_ip; 174 __le32 rmac_ip;
175 u32 reserved_7; 175 __le32 reserved_7;
176 u64 rmac_ip_octets; 176 __le64 rmac_ip_octets;
177 u32 rmac_drop_ip; 177 __le32 rmac_drop_ip;
178 u32 rmac_hdr_err_ip; 178 __le32 rmac_hdr_err_ip;
179 u32 reserved_8; 179 __le32 reserved_8;
180 u32 rmac_icmp; 180 __le32 rmac_icmp;
181 u64 rmac_tcp; 181 __le64 rmac_tcp;
182 u32 rmac_err_drp_udp; 182 __le32 rmac_err_drp_udp;
183 u32 rmac_udp; 183 __le32 rmac_udp;
184 u64 rmac_xgmii_err_sym; 184 __le64 rmac_xgmii_err_sym;
185 u64 rmac_frms_q0; 185 __le64 rmac_frms_q0;
186 u64 rmac_frms_q1; 186 __le64 rmac_frms_q1;
187 u64 rmac_frms_q2; 187 __le64 rmac_frms_q2;
188 u64 rmac_frms_q3; 188 __le64 rmac_frms_q3;
189 u64 rmac_frms_q4; 189 __le64 rmac_frms_q4;
190 u64 rmac_frms_q5; 190 __le64 rmac_frms_q5;
191 u64 rmac_frms_q6; 191 __le64 rmac_frms_q6;
192 u64 rmac_frms_q7; 192 __le64 rmac_frms_q7;
193 u16 rmac_full_q3; 193 __le16 rmac_full_q3;
194 u16 rmac_full_q2; 194 __le16 rmac_full_q2;
195 u16 rmac_full_q1; 195 __le16 rmac_full_q1;
196 u16 rmac_full_q0; 196 __le16 rmac_full_q0;
197 u16 rmac_full_q7; 197 __le16 rmac_full_q7;
198 u16 rmac_full_q6; 198 __le16 rmac_full_q6;
199 u16 rmac_full_q5; 199 __le16 rmac_full_q5;
200 u16 rmac_full_q4; 200 __le16 rmac_full_q4;
201 u32 reserved_9; 201 __le32 reserved_9;
202 u32 rmac_pause_cnt; 202 __le32 rmac_pause_cnt;
203 u64 rmac_xgmii_data_err_cnt; 203 __le64 rmac_xgmii_data_err_cnt;
204 u64 rmac_xgmii_ctrl_err_cnt; 204 __le64 rmac_xgmii_ctrl_err_cnt;
205 u32 rmac_err_tcp; 205 __le32 rmac_err_tcp;
206 u32 rmac_accepted_ip; 206 __le32 rmac_accepted_ip;
207 207
208/* PCI/PCI-X Read transaction statistics. */ 208/* PCI/PCI-X Read transaction statistics. */
209 u32 new_rd_req_cnt; 209 __le32 new_rd_req_cnt;
210 u32 rd_req_cnt; 210 __le32 rd_req_cnt;
211 u32 rd_rtry_cnt; 211 __le32 rd_rtry_cnt;
212 u32 new_rd_req_rtry_cnt; 212 __le32 new_rd_req_rtry_cnt;
213 213
214/* PCI/PCI-X Write/Read transaction statistics. */ 214/* PCI/PCI-X Write/Read transaction statistics. */
215 u32 wr_req_cnt; 215 __le32 wr_req_cnt;
216 u32 wr_rtry_rd_ack_cnt; 216 __le32 wr_rtry_rd_ack_cnt;
217 u32 new_wr_req_rtry_cnt; 217 __le32 new_wr_req_rtry_cnt;
218 u32 new_wr_req_cnt; 218 __le32 new_wr_req_cnt;
219 u32 wr_disc_cnt; 219 __le32 wr_disc_cnt;
220 u32 wr_rtry_cnt; 220 __le32 wr_rtry_cnt;
221 221
222/* PCI/PCI-X Write / DMA Transaction statistics. */ 222/* PCI/PCI-X Write / DMA Transaction statistics. */
223 u32 txp_wr_cnt; 223 __le32 txp_wr_cnt;
224 u32 rd_rtry_wr_ack_cnt; 224 __le32 rd_rtry_wr_ack_cnt;
225 u32 txd_wr_cnt; 225 __le32 txd_wr_cnt;
226 u32 txd_rd_cnt; 226 __le32 txd_rd_cnt;
227 u32 rxd_wr_cnt; 227 __le32 rxd_wr_cnt;
228 u32 rxd_rd_cnt; 228 __le32 rxd_rd_cnt;
229 u32 rxf_wr_cnt; 229 __le32 rxf_wr_cnt;
230 u32 txf_rd_cnt; 230 __le32 txf_rd_cnt;
231 231
232/* Tx MAC statistics overflow counters. */ 232/* Tx MAC statistics overflow counters. */
233 u32 tmac_data_octets_oflow; 233 __le32 tmac_data_octets_oflow;
234 u32 tmac_frms_oflow; 234 __le32 tmac_frms_oflow;
235 u32 tmac_bcst_frms_oflow; 235 __le32 tmac_bcst_frms_oflow;
236 u32 tmac_mcst_frms_oflow; 236 __le32 tmac_mcst_frms_oflow;
237 u32 tmac_ucst_frms_oflow; 237 __le32 tmac_ucst_frms_oflow;
238 u32 tmac_ttl_octets_oflow; 238 __le32 tmac_ttl_octets_oflow;
239 u32 tmac_any_err_frms_oflow; 239 __le32 tmac_any_err_frms_oflow;
240 u32 tmac_nucst_frms_oflow; 240 __le32 tmac_nucst_frms_oflow;
241 u64 tmac_vlan_frms; 241 __le64 tmac_vlan_frms;
242 u32 tmac_drop_ip_oflow; 242 __le32 tmac_drop_ip_oflow;
243 u32 tmac_vld_ip_oflow; 243 __le32 tmac_vld_ip_oflow;
244 u32 tmac_rst_tcp_oflow; 244 __le32 tmac_rst_tcp_oflow;
245 u32 tmac_icmp_oflow; 245 __le32 tmac_icmp_oflow;
246 u32 tpa_unknown_protocol; 246 __le32 tpa_unknown_protocol;
247 u32 tmac_udp_oflow; 247 __le32 tmac_udp_oflow;
248 u32 reserved_10; 248 __le32 reserved_10;
249 u32 tpa_parse_failure; 249 __le32 tpa_parse_failure;
250 250
251/* Rx MAC Statistics overflow counters. */ 251/* Rx MAC Statistics overflow counters. */
252 u32 rmac_data_octets_oflow; 252 __le32 rmac_data_octets_oflow;
253 u32 rmac_vld_frms_oflow; 253 __le32 rmac_vld_frms_oflow;
254 u32 rmac_vld_bcst_frms_oflow; 254 __le32 rmac_vld_bcst_frms_oflow;
255 u32 rmac_vld_mcst_frms_oflow; 255 __le32 rmac_vld_mcst_frms_oflow;
256 u32 rmac_accepted_ucst_frms_oflow; 256 __le32 rmac_accepted_ucst_frms_oflow;
257 u32 rmac_ttl_octets_oflow; 257 __le32 rmac_ttl_octets_oflow;
258 u32 rmac_discarded_frms_oflow; 258 __le32 rmac_discarded_frms_oflow;
259 u32 rmac_accepted_nucst_frms_oflow; 259 __le32 rmac_accepted_nucst_frms_oflow;
260 u32 rmac_usized_frms_oflow; 260 __le32 rmac_usized_frms_oflow;
261 u32 rmac_drop_events_oflow; 261 __le32 rmac_drop_events_oflow;
262 u32 rmac_frag_frms_oflow; 262 __le32 rmac_frag_frms_oflow;
263 u32 rmac_osized_frms_oflow; 263 __le32 rmac_osized_frms_oflow;
264 u32 rmac_ip_oflow; 264 __le32 rmac_ip_oflow;
265 u32 rmac_jabber_frms_oflow; 265 __le32 rmac_jabber_frms_oflow;
266 u32 rmac_icmp_oflow; 266 __le32 rmac_icmp_oflow;
267 u32 rmac_drop_ip_oflow; 267 __le32 rmac_drop_ip_oflow;
268 u32 rmac_err_drp_udp_oflow; 268 __le32 rmac_err_drp_udp_oflow;
269 u32 rmac_udp_oflow; 269 __le32 rmac_udp_oflow;
270 u32 reserved_11; 270 __le32 reserved_11;
271 u32 rmac_pause_cnt_oflow; 271 __le32 rmac_pause_cnt_oflow;
272 u64 rmac_ttl_1519_4095_frms; 272 __le64 rmac_ttl_1519_4095_frms;
273 u64 rmac_ttl_4096_8191_frms; 273 __le64 rmac_ttl_4096_8191_frms;
274 u64 rmac_ttl_8192_max_frms; 274 __le64 rmac_ttl_8192_max_frms;
275 u64 rmac_ttl_gt_max_frms; 275 __le64 rmac_ttl_gt_max_frms;
276 u64 rmac_osized_alt_frms; 276 __le64 rmac_osized_alt_frms;
277 u64 rmac_jabber_alt_frms; 277 __le64 rmac_jabber_alt_frms;
278 u64 rmac_gt_max_alt_frms; 278 __le64 rmac_gt_max_alt_frms;
279 u64 rmac_vlan_frms; 279 __le64 rmac_vlan_frms;
280 u32 rmac_len_discard; 280 __le32 rmac_len_discard;
281 u32 rmac_fcs_discard; 281 __le32 rmac_fcs_discard;
282 u32 rmac_pf_discard; 282 __le32 rmac_pf_discard;
283 u32 rmac_da_discard; 283 __le32 rmac_da_discard;
284 u32 rmac_red_discard; 284 __le32 rmac_red_discard;
285 u32 rmac_rts_discard; 285 __le32 rmac_rts_discard;
286 u32 reserved_12; 286 __le32 reserved_12;
287 u32 rmac_ingm_full_discard; 287 __le32 rmac_ingm_full_discard;
288 u32 reserved_13; 288 __le32 reserved_13;
289 u32 rmac_accepted_ip_oflow; 289 __le32 rmac_accepted_ip_oflow;
290 u32 reserved_14; 290 __le32 reserved_14;
291 u32 link_fault_cnt; 291 __le32 link_fault_cnt;
292 u8 buffer[20]; 292 u8 buffer[20];
293 swStat_t sw_stat; 293 swStat_t sw_stat;
294 xpakStat_t xpak_stat; 294 xpakStat_t xpak_stat;
@@ -992,12 +992,12 @@ static void s2io_init_pci(nic_t * sp);
992static int s2io_set_mac_addr(struct net_device *dev, u8 * addr); 992static int s2io_set_mac_addr(struct net_device *dev, u8 * addr);
993static void s2io_alarm_handle(unsigned long data); 993static void s2io_alarm_handle(unsigned long data);
994static int s2io_enable_msi(nic_t *nic); 994static int s2io_enable_msi(nic_t *nic);
995static irqreturn_t s2io_msi_handle(int irq, void *dev_id, struct pt_regs *regs); 995static irqreturn_t s2io_msi_handle(int irq, void *dev_id);
996static irqreturn_t 996static irqreturn_t
997s2io_msix_ring_handle(int irq, void *dev_id, struct pt_regs *regs); 997s2io_msix_ring_handle(int irq, void *dev_id);
998static irqreturn_t 998static irqreturn_t
999s2io_msix_fifo_handle(int irq, void *dev_id, struct pt_regs *regs); 999s2io_msix_fifo_handle(int irq, void *dev_id);
1000static irqreturn_t s2io_isr(int irq, void *dev_id, struct pt_regs *regs); 1000static irqreturn_t s2io_isr(int irq, void *dev_id);
1001static int verify_xena_quiescence(nic_t *sp, u64 val64, int flag); 1001static int verify_xena_quiescence(nic_t *sp, u64 val64, int flag);
1002static const struct ethtool_ops netdev_ethtool_ops; 1002static const struct ethtool_ops netdev_ethtool_ops;
1003static void s2io_set_link(unsigned long data); 1003static void s2io_set_link(unsigned long data);
diff --git a/drivers/net/saa9730.c b/drivers/net/saa9730.c
index c479b07be788..b269513cde45 100644
--- a/drivers/net/saa9730.c
+++ b/drivers/net/saa9730.c
@@ -745,10 +745,9 @@ static int lan_saa9730_rx(struct net_device *dev)
745 return 0; 745 return 0;
746} 746}
747 747
748static irqreturn_t lan_saa9730_interrupt(const int irq, void *dev_id, 748static irqreturn_t lan_saa9730_interrupt(const int irq, void *dev_id)
749 struct pt_regs *regs)
750{ 749{
751 struct net_device *dev = (struct net_device *) dev_id; 750 struct net_device *dev = dev_id;
752 struct lan_saa9730_private *lp = netdev_priv(dev); 751 struct lan_saa9730_private *lp = netdev_priv(dev);
753 752
754 if (lan_saa9730_debug > 5) 753 if (lan_saa9730_debug > 5)
diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c
index a1789ae59278..b9fa4fbb1398 100644
--- a/drivers/net/sb1000.c
+++ b/drivers/net/sb1000.c
@@ -84,7 +84,7 @@ extern int sb1000_probe(struct net_device *dev);
84static int sb1000_open(struct net_device *dev); 84static int sb1000_open(struct net_device *dev);
85static int sb1000_dev_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd); 85static int sb1000_dev_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd);
86static int sb1000_start_xmit(struct sk_buff *skb, struct net_device *dev); 86static int sb1000_start_xmit(struct sk_buff *skb, struct net_device *dev);
87static irqreturn_t sb1000_interrupt(int irq, void *dev_id, struct pt_regs *regs); 87static irqreturn_t sb1000_interrupt(int irq, void *dev_id);
88static struct net_device_stats *sb1000_stats(struct net_device *dev); 88static struct net_device_stats *sb1000_stats(struct net_device *dev);
89static int sb1000_close(struct net_device *dev); 89static int sb1000_close(struct net_device *dev);
90 90
@@ -1079,24 +1079,18 @@ sb1000_start_xmit(struct sk_buff *skb, struct net_device *dev)
1079} 1079}
1080 1080
1081/* SB1000 interrupt handler. */ 1081/* SB1000 interrupt handler. */
1082static irqreturn_t sb1000_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1082static irqreturn_t sb1000_interrupt(int irq, void *dev_id)
1083{ 1083{
1084 char *name; 1084 char *name;
1085 unsigned char st; 1085 unsigned char st;
1086 int ioaddr[2]; 1086 int ioaddr[2];
1087 struct net_device *dev = (struct net_device *) dev_id; 1087 struct net_device *dev = dev_id;
1088 struct sb1000_private *lp = netdev_priv(dev); 1088 struct sb1000_private *lp = netdev_priv(dev);
1089 1089
1090 const unsigned char Command0[6] = {0x80, 0x2c, 0x00, 0x00, 0x00, 0x00}; 1090 const unsigned char Command0[6] = {0x80, 0x2c, 0x00, 0x00, 0x00, 0x00};
1091 const unsigned char Command1[6] = {0x80, 0x2e, 0x00, 0x00, 0x00, 0x00}; 1091 const unsigned char Command1[6] = {0x80, 0x2e, 0x00, 0x00, 0x00, 0x00};
1092 const int MaxRxErrorCount = 6; 1092 const int MaxRxErrorCount = 6;
1093 1093
1094 if (dev == NULL) {
1095 printk(KERN_ERR "sb1000_interrupt(): irq %d for unknown device.\n",
1096 irq);
1097 return IRQ_NONE;
1098 }
1099
1100 ioaddr[0] = dev->base_addr; 1094 ioaddr[0] = dev->base_addr;
1101 /* mem_start holds the second I/O address */ 1095 /* mem_start holds the second I/O address */
1102 ioaddr[1] = dev->mem_start; 1096 ioaddr[1] = dev->mem_start;
diff --git a/drivers/net/sb1250-mac.c b/drivers/net/sb1250-mac.c
index e4c8896b76cb..db2324939b69 100644
--- a/drivers/net/sb1250-mac.c
+++ b/drivers/net/sb1250-mac.c
@@ -294,7 +294,7 @@ static void sbmac_channel_stop(struct sbmac_softc *s);
294static sbmac_state_t sbmac_set_channel_state(struct sbmac_softc *,sbmac_state_t); 294static sbmac_state_t sbmac_set_channel_state(struct sbmac_softc *,sbmac_state_t);
295static void sbmac_promiscuous_mode(struct sbmac_softc *sc,int onoff); 295static void sbmac_promiscuous_mode(struct sbmac_softc *sc,int onoff);
296static uint64_t sbmac_addr2reg(unsigned char *ptr); 296static uint64_t sbmac_addr2reg(unsigned char *ptr);
297static irqreturn_t sbmac_intr(int irq,void *dev_instance,struct pt_regs *rgs); 297static irqreturn_t sbmac_intr(int irq,void *dev_instance);
298static int sbmac_start_tx(struct sk_buff *skb, struct net_device *dev); 298static int sbmac_start_tx(struct sk_buff *skb, struct net_device *dev);
299static void sbmac_setmulti(struct sbmac_softc *sc); 299static void sbmac_setmulti(struct sbmac_softc *sc);
300static int sbmac_init(struct net_device *dev, int idx); 300static int sbmac_init(struct net_device *dev, int idx);
@@ -2049,7 +2049,7 @@ static int sbmac_set_duplex(struct sbmac_softc *s,sbmac_duplex_t duplex,sbmac_fc
2049 * Return value: 2049 * Return value:
2050 * nothing 2050 * nothing
2051 ********************************************************************* */ 2051 ********************************************************************* */
2052static irqreturn_t sbmac_intr(int irq,void *dev_instance,struct pt_regs *rgs) 2052static irqreturn_t sbmac_intr(int irq,void *dev_instance)
2053{ 2053{
2054 struct net_device *dev = (struct net_device *) dev_instance; 2054 struct net_device *dev = (struct net_device *) dev_instance;
2055 struct sbmac_softc *sc = netdev_priv(dev); 2055 struct sbmac_softc *sc = netdev_priv(dev);
diff --git a/drivers/net/seeq8005.c b/drivers/net/seeq8005.c
index 20afdc7f2b97..d9d0a3a3c558 100644
--- a/drivers/net/seeq8005.c
+++ b/drivers/net/seeq8005.c
@@ -83,7 +83,7 @@ static int seeq8005_probe1(struct net_device *dev, int ioaddr);
83static int seeq8005_open(struct net_device *dev); 83static int seeq8005_open(struct net_device *dev);
84static void seeq8005_timeout(struct net_device *dev); 84static void seeq8005_timeout(struct net_device *dev);
85static int seeq8005_send_packet(struct sk_buff *skb, struct net_device *dev); 85static int seeq8005_send_packet(struct sk_buff *skb, struct net_device *dev);
86static irqreturn_t seeq8005_interrupt(int irq, void *dev_id, struct pt_regs *regs); 86static irqreturn_t seeq8005_interrupt(int irq, void *dev_id);
87static void seeq8005_rx(struct net_device *dev); 87static void seeq8005_rx(struct net_device *dev);
88static int seeq8005_close(struct net_device *dev); 88static int seeq8005_close(struct net_device *dev);
89static struct net_device_stats *seeq8005_get_stats(struct net_device *dev); 89static struct net_device_stats *seeq8005_get_stats(struct net_device *dev);
@@ -437,7 +437,7 @@ inline void wait_for_buffer(struct net_device * dev)
437 437
438/* The typical workload of the driver: 438/* The typical workload of the driver:
439 Handle the network interface interrupts. */ 439 Handle the network interface interrupts. */
440static irqreturn_t seeq8005_interrupt(int irq, void *dev_id, struct pt_regs * regs) 440static irqreturn_t seeq8005_interrupt(int irq, void *dev_id)
441{ 441{
442 struct net_device *dev = dev_id; 442 struct net_device *dev = dev_id;
443 struct net_local *lp; 443 struct net_local *lp;
diff --git a/drivers/net/sgiseeq.c b/drivers/net/sgiseeq.c
index f95a5b0223fb..a833e7f9757f 100644
--- a/drivers/net/sgiseeq.c
+++ b/drivers/net/sgiseeq.c
@@ -432,7 +432,7 @@ static inline void sgiseeq_tx(struct net_device *dev, struct sgiseeq_private *sp
432 } 432 }
433} 433}
434 434
435static irqreturn_t sgiseeq_interrupt(int irq, void *dev_id, struct pt_regs *regs) 435static irqreturn_t sgiseeq_interrupt(int irq, void *dev_id)
436{ 436{
437 struct net_device *dev = (struct net_device *) dev_id; 437 struct net_device *dev = (struct net_device *) dev_id;
438 struct sgiseeq_private *sp = netdev_priv(dev); 438 struct sgiseeq_private *sp = netdev_priv(dev);
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index e8f26b79bbaf..aaba458584fb 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -713,7 +713,7 @@ static void sis190_tx_interrupt(struct net_device *dev,
713 * The interrupt handler does all of the Rx thread work and cleans up after 713 * The interrupt handler does all of the Rx thread work and cleans up after
714 * the Tx thread. 714 * the Tx thread.
715 */ 715 */
716static irqreturn_t sis190_interrupt(int irq, void *__dev, struct pt_regs *regs) 716static irqreturn_t sis190_interrupt(int irq, void *__dev)
717{ 717{
718 struct net_device *dev = __dev; 718 struct net_device *dev = __dev;
719 struct sis190_private *tp = netdev_priv(dev); 719 struct sis190_private *tp = netdev_priv(dev);
@@ -758,7 +758,7 @@ static void sis190_netpoll(struct net_device *dev)
758 struct pci_dev *pdev = tp->pci_dev; 758 struct pci_dev *pdev = tp->pci_dev;
759 759
760 disable_irq(pdev->irq); 760 disable_irq(pdev->irq);
761 sis190_interrupt(pdev->irq, dev, NULL); 761 sis190_interrupt(pdev->irq, dev);
762 enable_irq(pdev->irq); 762 enable_irq(pdev->irq);
763} 763}
764#endif 764#endif
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index 28606e20df1c..fb2b53051635 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -218,7 +218,7 @@ static void sis900_init_rx_ring(struct net_device *net_dev);
218static int sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev); 218static int sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev);
219static int sis900_rx(struct net_device *net_dev); 219static int sis900_rx(struct net_device *net_dev);
220static void sis900_finish_xmit (struct net_device *net_dev); 220static void sis900_finish_xmit (struct net_device *net_dev);
221static irqreturn_t sis900_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 221static irqreturn_t sis900_interrupt(int irq, void *dev_instance);
222static int sis900_close(struct net_device *net_dev); 222static int sis900_close(struct net_device *net_dev);
223static int mii_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd); 223static int mii_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd);
224static struct net_device_stats *sis900_get_stats(struct net_device *net_dev); 224static struct net_device_stats *sis900_get_stats(struct net_device *net_dev);
@@ -988,7 +988,7 @@ static u16 sis900_reset_phy(struct net_device *net_dev, int phy_addr)
988static void sis900_poll(struct net_device *dev) 988static void sis900_poll(struct net_device *dev)
989{ 989{
990 disable_irq(dev->irq); 990 disable_irq(dev->irq);
991 sis900_interrupt(dev->irq, dev, NULL); 991 sis900_interrupt(dev->irq, dev);
992 enable_irq(dev->irq); 992 enable_irq(dev->irq);
993} 993}
994#endif 994#endif
@@ -1642,7 +1642,7 @@ sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev)
1642 * and cleans up after the Tx thread 1642 * and cleans up after the Tx thread
1643 */ 1643 */
1644 1644
1645static irqreturn_t sis900_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1645static irqreturn_t sis900_interrupt(int irq, void *dev_instance)
1646{ 1646{
1647 struct net_device *net_dev = dev_instance; 1647 struct net_device *net_dev = dev_instance;
1648 struct sis900_private *sis_priv = net_dev->priv; 1648 struct sis900_private *sis_priv = net_dev->priv;
diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c
index 99e92627642c..d4913c3de2a1 100644
--- a/drivers/net/sk98lin/skge.c
+++ b/drivers/net/sk98lin/skge.c
@@ -196,8 +196,8 @@ static SK_BOOL BoardAllocMem(SK_AC *pAC);
196static void BoardFreeMem(SK_AC *pAC); 196static void BoardFreeMem(SK_AC *pAC);
197static void BoardInitMem(SK_AC *pAC); 197static void BoardInitMem(SK_AC *pAC);
198static void SetupRing(SK_AC*, void*, uintptr_t, RXD**, RXD**, RXD**, int*, SK_BOOL); 198static void SetupRing(SK_AC*, void*, uintptr_t, RXD**, RXD**, RXD**, int*, SK_BOOL);
199static SkIsrRetVar SkGeIsr(int irq, void *dev_id, struct pt_regs *ptregs); 199static SkIsrRetVar SkGeIsr(int irq, void *dev_id);
200static SkIsrRetVar SkGeIsrOnePort(int irq, void *dev_id, struct pt_regs *ptregs); 200static SkIsrRetVar SkGeIsrOnePort(int irq, void *dev_id);
201static int SkGeOpen(struct SK_NET_DEVICE *dev); 201static int SkGeOpen(struct SK_NET_DEVICE *dev);
202static int SkGeClose(struct SK_NET_DEVICE *dev); 202static int SkGeClose(struct SK_NET_DEVICE *dev);
203static int SkGeXmit(struct sk_buff *skb, struct SK_NET_DEVICE *dev); 203static int SkGeXmit(struct sk_buff *skb, struct SK_NET_DEVICE *dev);
@@ -880,7 +880,7 @@ int PortIndex) /* index of the port for which to re-init */
880 * Returns: N/A 880 * Returns: N/A
881 * 881 *
882 */ 882 */
883static SkIsrRetVar SkGeIsr(int irq, void *dev_id, struct pt_regs *ptregs) 883static SkIsrRetVar SkGeIsr(int irq, void *dev_id)
884{ 884{
885struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id; 885struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id;
886DEV_NET *pNet; 886DEV_NET *pNet;
@@ -1029,7 +1029,7 @@ SK_U32 IntSrc; /* interrupts source register contents */
1029 * Returns: N/A 1029 * Returns: N/A
1030 * 1030 *
1031 */ 1031 */
1032static SkIsrRetVar SkGeIsrOnePort(int irq, void *dev_id, struct pt_regs *ptregs) 1032static SkIsrRetVar SkGeIsrOnePort(int irq, void *dev_id)
1033{ 1033{
1034struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id; 1034struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id;
1035DEV_NET *pNet; 1035DEV_NET *pNet;
@@ -1140,7 +1140,7 @@ SK_U32 IntSrc; /* interrupts source register contents */
1140static void SkGePollController(struct net_device *dev) 1140static void SkGePollController(struct net_device *dev)
1141{ 1141{
1142 disable_irq(dev->irq); 1142 disable_irq(dev->irq);
1143 SkGeIsr(dev->irq, dev, NULL); 1143 SkGeIsr(dev->irq, dev);
1144 enable_irq(dev->irq); 1144 enable_irq(dev->irq);
1145} 1145}
1146#endif 1146#endif
diff --git a/drivers/net/sk_mca.c b/drivers/net/sk_mca.c
index 37b88da1abe5..96e06c51b75d 100644
--- a/drivers/net/sk_mca.c
+++ b/drivers/net/sk_mca.c
@@ -732,7 +732,7 @@ static u16 irqtx_handler(struct net_device *dev, u16 oldcsr0)
732 732
733/* general interrupt entry */ 733/* general interrupt entry */
734 734
735static irqreturn_t irq_handler(int irq, void *device, struct pt_regs *regs) 735static irqreturn_t irq_handler(int irq, void *device)
736{ 736{
737 struct net_device *dev = (struct net_device *) device; 737 struct net_device *dev = (struct net_device *) device;
738 u16 csr0val; 738 u16 csr0val;
diff --git a/drivers/net/skfp/skfddi.c b/drivers/net/skfp/skfddi.c
index 8e4d18440a56..9733a11c6146 100644
--- a/drivers/net/skfp/skfddi.c
+++ b/drivers/net/skfp/skfddi.c
@@ -101,7 +101,7 @@ static const char * const boot_msg =
101static int skfp_driver_init(struct net_device *dev); 101static int skfp_driver_init(struct net_device *dev);
102static int skfp_open(struct net_device *dev); 102static int skfp_open(struct net_device *dev);
103static int skfp_close(struct net_device *dev); 103static int skfp_close(struct net_device *dev);
104static irqreturn_t skfp_interrupt(int irq, void *dev_id, struct pt_regs *regs); 104static irqreturn_t skfp_interrupt(int irq, void *dev_id);
105static struct net_device_stats *skfp_ctl_get_stats(struct net_device *dev); 105static struct net_device_stats *skfp_ctl_get_stats(struct net_device *dev);
106static void skfp_ctl_set_multicast_list(struct net_device *dev); 106static void skfp_ctl_set_multicast_list(struct net_device *dev);
107static void skfp_ctl_set_multicast_list_wo_lock(struct net_device *dev); 107static void skfp_ctl_set_multicast_list_wo_lock(struct net_device *dev);
@@ -593,7 +593,6 @@ static int skfp_close(struct net_device *dev)
593 * Arguments: 593 * Arguments:
594 * irq - interrupt vector 594 * irq - interrupt vector
595 * dev_id - pointer to device information 595 * dev_id - pointer to device information
596 * regs - pointer to registers structure
597 * 596 *
598 * Functional Description: 597 * Functional Description:
599 * This routine calls the interrupt processing routine for this adapter. It 598 * This routine calls the interrupt processing routine for this adapter. It
@@ -615,17 +614,12 @@ static int skfp_close(struct net_device *dev)
615 * Interrupts are disabled, then reenabled at the adapter. 614 * Interrupts are disabled, then reenabled at the adapter.
616 */ 615 */
617 616
618irqreturn_t skfp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 617irqreturn_t skfp_interrupt(int irq, void *dev_id)
619{ 618{
620 struct net_device *dev = (struct net_device *) dev_id; 619 struct net_device *dev = dev_id;
621 struct s_smc *smc; /* private board structure pointer */ 620 struct s_smc *smc; /* private board structure pointer */
622 skfddi_priv *bp; 621 skfddi_priv *bp;
623 622
624 if (dev == NULL) {
625 printk("%s: irq %d for unknown device\n", dev->name, irq);
626 return IRQ_NONE;
627 }
628
629 smc = netdev_priv(dev); 623 smc = netdev_priv(dev);
630 bp = &smc->os; 624 bp = &smc->os;
631 625
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 705e9a8fa30f..a4a58e4e93a1 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -3051,7 +3051,7 @@ static void skge_extirq(void *arg)
3051 spin_unlock_irq(&hw->hw_lock); 3051 spin_unlock_irq(&hw->hw_lock);
3052} 3052}
3053 3053
3054static irqreturn_t skge_intr(int irq, void *dev_id, struct pt_regs *regs) 3054static irqreturn_t skge_intr(int irq, void *dev_id)
3055{ 3055{
3056 struct skge_hw *hw = dev_id; 3056 struct skge_hw *hw = dev_id;
3057 u32 status; 3057 u32 status;
@@ -3125,7 +3125,7 @@ static void skge_netpoll(struct net_device *dev)
3125 struct skge_port *skge = netdev_priv(dev); 3125 struct skge_port *skge = netdev_priv(dev);
3126 3126
3127 disable_irq(dev->irq); 3127 disable_irq(dev->irq);
3128 skge_intr(dev->irq, skge->hw, NULL); 3128 skge_intr(dev->irq, skge->hw);
3129 enable_irq(dev->irq); 3129 enable_irq(dev->irq);
3130} 3130}
3131#endif 3131#endif
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 68515150ff3b..5a5289b7a885 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -2364,7 +2364,7 @@ static int sky2_poll(struct net_device *dev0, int *budget)
2364 } 2364 }
2365} 2365}
2366 2366
2367static irqreturn_t sky2_intr(int irq, void *dev_id, struct pt_regs *regs) 2367static irqreturn_t sky2_intr(int irq, void *dev_id)
2368{ 2368{
2369 struct sky2_hw *hw = dev_id; 2369 struct sky2_hw *hw = dev_id;
2370 struct net_device *dev0 = hw->dev[0]; 2370 struct net_device *dev0 = hw->dev[0];
@@ -3298,8 +3298,7 @@ static void __devinit sky2_show_addr(struct net_device *dev)
3298} 3298}
3299 3299
3300/* Handle software interrupt used during MSI test */ 3300/* Handle software interrupt used during MSI test */
3301static irqreturn_t __devinit sky2_test_intr(int irq, void *dev_id, 3301static irqreturn_t __devinit sky2_test_intr(int irq, void *dev_id)
3302 struct pt_regs *regs)
3303{ 3302{
3304 struct sky2_hw *hw = dev_id; 3303 struct sky2_hw *hw = dev_id;
3305 u32 status = sky2_read32(hw, B0_Y2_SP_ISRC2); 3304 u32 status = sky2_read32(hw, B0_Y2_SP_ISRC2);
diff --git a/drivers/net/smc-ultra.c b/drivers/net/smc-ultra.c
index 7986514883ac..889ef0d7c374 100644
--- a/drivers/net/smc-ultra.c
+++ b/drivers/net/smc-ultra.c
@@ -127,7 +127,7 @@ MODULE_DEVICE_TABLE(isapnp, ultra_device_ids);
127static void ultra_poll(struct net_device *dev) 127static void ultra_poll(struct net_device *dev)
128{ 128{
129 disable_irq(dev->irq); 129 disable_irq(dev->irq);
130 ei_interrupt(dev->irq, dev, NULL); 130 ei_interrupt(dev->irq, dev);
131 enable_irq(dev->irq); 131 enable_irq(dev->irq);
132} 132}
133#endif 133#endif
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index a621b17456e5..2c4343395a4d 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -1074,7 +1074,7 @@ static void smc911x_phy_interrupt(struct net_device *dev)
1074 * This is the main routine of the driver, to handle the device when 1074 * This is the main routine of the driver, to handle the device when
1075 * it needs some attention. 1075 * it needs some attention.
1076 */ 1076 */
1077static irqreturn_t smc911x_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1077static irqreturn_t smc911x_interrupt(int irq, void *dev_id)
1078{ 1078{
1079 struct net_device *dev = dev_id; 1079 struct net_device *dev = dev_id;
1080 unsigned long ioaddr = dev->base_addr; 1080 unsigned long ioaddr = dev->base_addr;
@@ -1251,7 +1251,7 @@ static irqreturn_t smc911x_interrupt(int irq, void *dev_id, struct pt_regs *regs
1251 1251
1252#ifdef SMC_USE_DMA 1252#ifdef SMC_USE_DMA
1253static void 1253static void
1254smc911x_tx_dma_irq(int dma, void *data, struct pt_regs *regs) 1254smc911x_tx_dma_irq(int dma, void *data)
1255{ 1255{
1256 struct net_device *dev = (struct net_device *)data; 1256 struct net_device *dev = (struct net_device *)data;
1257 struct smc911x_local *lp = netdev_priv(dev); 1257 struct smc911x_local *lp = netdev_priv(dev);
@@ -1285,7 +1285,7 @@ smc911x_tx_dma_irq(int dma, void *data, struct pt_regs *regs)
1285 "%s: TX DMA irq completed\n", dev->name); 1285 "%s: TX DMA irq completed\n", dev->name);
1286} 1286}
1287static void 1287static void
1288smc911x_rx_dma_irq(int dma, void *data, struct pt_regs *regs) 1288smc911x_rx_dma_irq(int dma, void *data)
1289{ 1289{
1290 struct net_device *dev = (struct net_device *)data; 1290 struct net_device *dev = (struct net_device *)data;
1291 unsigned long ioaddr = dev->base_addr; 1291 unsigned long ioaddr = dev->base_addr;
diff --git a/drivers/net/smc9194.c b/drivers/net/smc9194.c
index 5506a0d3efe2..c0d13d650913 100644
--- a/drivers/net/smc9194.c
+++ b/drivers/net/smc9194.c
@@ -270,7 +270,7 @@ static void smc_set_multicast_list(struct net_device *dev);
270/* 270/*
271 . Handles the actual interrupt 271 . Handles the actual interrupt
272*/ 272*/
273static irqreturn_t smc_interrupt(int irq, void *, struct pt_regs *regs); 273static irqreturn_t smc_interrupt(int irq, void *);
274/* 274/*
275 . This is a separate procedure to handle the receipt of a packet, to 275 . This is a separate procedure to handle the receipt of a packet, to
276 . leave the interrupt code looking slightly cleaner 276 . leave the interrupt code looking slightly cleaner
@@ -1391,7 +1391,7 @@ static void smc_tx( struct net_device * dev )
1391 . 1391 .
1392 ---------------------------------------------------------------------*/ 1392 ---------------------------------------------------------------------*/
1393 1393
1394static irqreturn_t smc_interrupt(int irq, void * dev_id, struct pt_regs * regs) 1394static irqreturn_t smc_interrupt(int irq, void * dev_id)
1395{ 1395{
1396 struct net_device *dev = dev_id; 1396 struct net_device *dev = dev_id;
1397 int ioaddr = dev->base_addr; 1397 int ioaddr = dev->base_addr;
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index d7e56438b5d6..95b6478f55c6 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -1284,7 +1284,7 @@ static void smc_eph_interrupt(struct net_device *dev)
1284 * This is the main routine of the driver, to handle the device when 1284 * This is the main routine of the driver, to handle the device when
1285 * it needs some attention. 1285 * it needs some attention.
1286 */ 1286 */
1287static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1287static irqreturn_t smc_interrupt(int irq, void *dev_id)
1288{ 1288{
1289 struct net_device *dev = dev_id; 1289 struct net_device *dev = dev_id;
1290 struct smc_local *lp = netdev_priv(dev); 1290 struct smc_local *lp = netdev_priv(dev);
@@ -1400,7 +1400,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1400static void smc_poll_controller(struct net_device *dev) 1400static void smc_poll_controller(struct net_device *dev)
1401{ 1401{
1402 disable_irq(dev->irq); 1402 disable_irq(dev->irq);
1403 smc_interrupt(dev->irq, dev, NULL); 1403 smc_interrupt(dev->irq, dev);
1404 enable_irq(dev->irq); 1404 enable_irq(dev->irq);
1405} 1405}
1406#endif 1406#endif
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h
index fedd1a37bc3e..636dbfcdf8cb 100644
--- a/drivers/net/smc91x.h
+++ b/drivers/net/smc91x.h
@@ -507,7 +507,7 @@ smc_pxa_dma_insw(void __iomem *ioaddr, u_long physaddr, int reg, int dma,
507#endif 507#endif
508 508
509static void 509static void
510smc_pxa_dma_irq(int dma, void *dummy, struct pt_regs *regs) 510smc_pxa_dma_irq(int dma, void *dummy)
511{ 511{
512 DCSR(dma) = 0; 512 DCSR(dma) = 0;
513} 513}
diff --git a/drivers/net/sonic.c b/drivers/net/sonic.c
index 870cf6b07389..ed7aa0a5acca 100644
--- a/drivers/net/sonic.c
+++ b/drivers/net/sonic.c
@@ -293,17 +293,12 @@ static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev)
293 * The typical workload of the driver: 293 * The typical workload of the driver:
294 * Handle the network interface interrupts. 294 * Handle the network interface interrupts.
295 */ 295 */
296static irqreturn_t sonic_interrupt(int irq, void *dev_id, struct pt_regs *regs) 296static irqreturn_t sonic_interrupt(int irq, void *dev_id)
297{ 297{
298 struct net_device *dev = (struct net_device *) dev_id; 298 struct net_device *dev = dev_id;
299 struct sonic_local *lp = netdev_priv(dev); 299 struct sonic_local *lp = netdev_priv(dev);
300 int status; 300 int status;
301 301
302 if (dev == NULL) {
303 printk(KERN_ERR "sonic_interrupt: irq %d for unknown device.\n", irq);
304 return IRQ_NONE;
305 }
306
307 if (!(status = SONIC_READ(SONIC_ISR) & SONIC_IMR_DEFAULT)) 302 if (!(status = SONIC_READ(SONIC_ISR) & SONIC_IMR_DEFAULT))
308 return IRQ_NONE; 303 return IRQ_NONE;
309 304
diff --git a/drivers/net/sonic.h b/drivers/net/sonic.h
index 7f886e8ae28f..7db13e4a7ea5 100644
--- a/drivers/net/sonic.h
+++ b/drivers/net/sonic.h
@@ -328,7 +328,7 @@ struct sonic_local {
328 328
329static int sonic_open(struct net_device *dev); 329static int sonic_open(struct net_device *dev);
330static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev); 330static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev);
331static irqreturn_t sonic_interrupt(int irq, void *dev_id, struct pt_regs *regs); 331static irqreturn_t sonic_interrupt(int irq, void *dev_id);
332static void sonic_rx(struct net_device *dev); 332static void sonic_rx(struct net_device *dev);
333static int sonic_close(struct net_device *dev); 333static int sonic_close(struct net_device *dev);
334static struct net_device_stats *sonic_get_stats(struct net_device *dev); 334static struct net_device_stats *sonic_get_stats(struct net_device *dev);
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index 1397fc55cf68..46a009085f7c 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1445,7 +1445,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg)
1445 * interrupts for this device and makes the stack poll the driver 1445 * interrupts for this device and makes the stack poll the driver
1446 */ 1446 */
1447static irqreturn_t 1447static irqreturn_t
1448spider_net_interrupt(int irq, void *ptr, struct pt_regs *regs) 1448spider_net_interrupt(int irq, void *ptr)
1449{ 1449{
1450 struct net_device *netdev = ptr; 1450 struct net_device *netdev = ptr;
1451 struct spider_net_card *card = netdev_priv(netdev); 1451 struct spider_net_card *card = netdev_priv(netdev);
@@ -1481,7 +1481,7 @@ static void
1481spider_net_poll_controller(struct net_device *netdev) 1481spider_net_poll_controller(struct net_device *netdev)
1482{ 1482{
1483 disable_irq(netdev->irq); 1483 disable_irq(netdev->irq);
1484 spider_net_interrupt(netdev->irq, netdev, NULL); 1484 spider_net_interrupt(netdev->irq, netdev);
1485 enable_irq(netdev->irq); 1485 enable_irq(netdev->irq);
1486} 1486}
1487#endif /* CONFIG_NET_POLL_CONTROLLER */ 1487#endif /* CONFIG_NET_POLL_CONTROLLER */
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c
index 3d617e8f54b5..7a0aee6c869d 100644
--- a/drivers/net/starfire.c
+++ b/drivers/net/starfire.c
@@ -632,7 +632,7 @@ static void check_duplex(struct net_device *dev);
632static void tx_timeout(struct net_device *dev); 632static void tx_timeout(struct net_device *dev);
633static void init_ring(struct net_device *dev); 633static void init_ring(struct net_device *dev);
634static int start_tx(struct sk_buff *skb, struct net_device *dev); 634static int start_tx(struct sk_buff *skb, struct net_device *dev);
635static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs); 635static irqreturn_t intr_handler(int irq, void *dev_instance);
636static void netdev_error(struct net_device *dev, int intr_status); 636static void netdev_error(struct net_device *dev, int intr_status);
637static int __netdev_rx(struct net_device *dev, int *quota); 637static int __netdev_rx(struct net_device *dev, int *quota);
638static void refill_rx_ring(struct net_device *dev); 638static void refill_rx_ring(struct net_device *dev);
@@ -1307,7 +1307,7 @@ static int start_tx(struct sk_buff *skb, struct net_device *dev)
1307 1307
1308/* The interrupt handler does all of the Rx thread work and cleans up 1308/* The interrupt handler does all of the Rx thread work and cleans up
1309 after the Tx thread. */ 1309 after the Tx thread. */
1310static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs) 1310static irqreturn_t intr_handler(int irq, void *dev_instance)
1311{ 1311{
1312 struct net_device *dev = dev_instance; 1312 struct net_device *dev = dev_instance;
1313 struct netdev_private *np = netdev_priv(dev); 1313 struct netdev_private *np = netdev_priv(dev);
diff --git a/drivers/net/sun3_82586.c b/drivers/net/sun3_82586.c
index 0605461bc56d..d1d1885b0295 100644
--- a/drivers/net/sun3_82586.c
+++ b/drivers/net/sun3_82586.c
@@ -122,7 +122,7 @@ sizeof(nop_cmd) = 8;
122 DELAY_16(); DELAY_16(); } } 122 DELAY_16(); DELAY_16(); } }
123 123
124static int sun3_82586_probe1(struct net_device *dev,int ioaddr); 124static int sun3_82586_probe1(struct net_device *dev,int ioaddr);
125static irqreturn_t sun3_82586_interrupt(int irq,void *dev_id,struct pt_regs *reg_ptr); 125static irqreturn_t sun3_82586_interrupt(int irq,void *dev_id);
126static int sun3_82586_open(struct net_device *dev); 126static int sun3_82586_open(struct net_device *dev);
127static int sun3_82586_close(struct net_device *dev); 127static int sun3_82586_close(struct net_device *dev);
128static int sun3_82586_send_packet(struct sk_buff *,struct net_device *); 128static int sun3_82586_send_packet(struct sk_buff *,struct net_device *);
@@ -678,7 +678,7 @@ static void *alloc_rfa(struct net_device *dev,void *ptr)
678 * Interrupt Handler ... 678 * Interrupt Handler ...
679 */ 679 */
680 680
681static irqreturn_t sun3_82586_interrupt(int irq,void *dev_id,struct pt_regs *reg_ptr) 681static irqreturn_t sun3_82586_interrupt(int irq,void *dev_id)
682{ 682{
683 struct net_device *dev = dev_id; 683 struct net_device *dev = dev_id;
684 unsigned short stat; 684 unsigned short stat;
diff --git a/drivers/net/sun3lance.c b/drivers/net/sun3lance.c
index 61a832ce7ccf..91c76544e4dd 100644
--- a/drivers/net/sun3lance.c
+++ b/drivers/net/sun3lance.c
@@ -237,7 +237,7 @@ static int lance_probe( struct net_device *dev);
237static int lance_open( struct net_device *dev ); 237static int lance_open( struct net_device *dev );
238static void lance_init_ring( struct net_device *dev ); 238static void lance_init_ring( struct net_device *dev );
239static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev ); 239static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev );
240static irqreturn_t lance_interrupt( int irq, void *dev_id, struct pt_regs *fp ); 240static irqreturn_t lance_interrupt( int irq, void *dev_id);
241static int lance_rx( struct net_device *dev ); 241static int lance_rx( struct net_device *dev );
242static int lance_close( struct net_device *dev ); 242static int lance_close( struct net_device *dev );
243static struct net_device_stats *lance_get_stats( struct net_device *dev ); 243static struct net_device_stats *lance_get_stats( struct net_device *dev );
@@ -642,7 +642,7 @@ static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev )
642 642
643/* The LANCE interrupt handler. */ 643/* The LANCE interrupt handler. */
644 644
645static irqreturn_t lance_interrupt( int irq, void *dev_id, struct pt_regs *fp) 645static irqreturn_t lance_interrupt( int irq, void *dev_id)
646{ 646{
647 struct net_device *dev = dev_id; 647 struct net_device *dev = dev_id;
648 struct lance_private *lp = netdev_priv(dev); 648 struct lance_private *lp = netdev_priv(dev);
diff --git a/drivers/net/sunbmac.c b/drivers/net/sunbmac.c
index 9e4be86495a0..6439b0cef1e4 100644
--- a/drivers/net/sunbmac.c
+++ b/drivers/net/sunbmac.c
@@ -888,7 +888,7 @@ static void bigmac_rx(struct bigmac *bp)
888 printk(KERN_NOTICE "%s: Memory squeeze, deferring packet.\n", bp->dev->name); 888 printk(KERN_NOTICE "%s: Memory squeeze, deferring packet.\n", bp->dev->name);
889} 889}
890 890
891static irqreturn_t bigmac_interrupt(int irq, void *dev_id, struct pt_regs *regs) 891static irqreturn_t bigmac_interrupt(int irq, void *dev_id)
892{ 892{
893 struct bigmac *bp = (struct bigmac *) dev_id; 893 struct bigmac *bp = (struct bigmac *) dev_id;
894 u32 qec_status, bmac_status; 894 u32 qec_status, bmac_status;
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index 6b8f4baf87fd..41c503d8bac4 100644
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -420,7 +420,7 @@ static void tx_timeout(struct net_device *dev);
420static void init_ring(struct net_device *dev); 420static void init_ring(struct net_device *dev);
421static int start_tx(struct sk_buff *skb, struct net_device *dev); 421static int start_tx(struct sk_buff *skb, struct net_device *dev);
422static int reset_tx (struct net_device *dev); 422static int reset_tx (struct net_device *dev);
423static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs); 423static irqreturn_t intr_handler(int irq, void *dev_instance);
424static void rx_poll(unsigned long data); 424static void rx_poll(unsigned long data);
425static void tx_poll(unsigned long data); 425static void tx_poll(unsigned long data);
426static void refill_rx (struct net_device *dev); 426static void refill_rx (struct net_device *dev);
@@ -1102,7 +1102,7 @@ reset_tx (struct net_device *dev)
1102 1102
1103/* The interrupt handler cleans up after the Tx thread, 1103/* The interrupt handler cleans up after the Tx thread,
1104 and schedule a Rx thread work */ 1104 and schedule a Rx thread work */
1105static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs) 1105static irqreturn_t intr_handler(int irq, void *dev_instance)
1106{ 1106{
1107 struct net_device *dev = (struct net_device *)dev_instance; 1107 struct net_device *dev = (struct net_device *)dev_instance;
1108 struct netdev_private *np = netdev_priv(dev); 1108 struct netdev_private *np = netdev_priv(dev);
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index 0975695ae31b..253e96e7ad20 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -932,7 +932,7 @@ static int gem_poll(struct net_device *dev, int *budget)
932 return 0; 932 return 0;
933} 933}
934 934
935static irqreturn_t gem_interrupt(int irq, void *dev_id, struct pt_regs *regs) 935static irqreturn_t gem_interrupt(int irq, void *dev_id)
936{ 936{
937 struct net_device *dev = dev_id; 937 struct net_device *dev = dev_id;
938 struct gem *gp = dev->priv; 938 struct gem *gp = dev->priv;
@@ -975,7 +975,7 @@ static void gem_poll_controller(struct net_device *dev)
975 /* gem_interrupt is safe to reentrance so no need 975 /* gem_interrupt is safe to reentrance so no need
976 * to disable_irq here. 976 * to disable_irq here.
977 */ 977 */
978 gem_interrupt(dev->irq, dev, NULL); 978 gem_interrupt(dev->irq, dev);
979} 979}
980#endif 980#endif
981 981
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index f05eea53623b..9d7cd130c19d 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2093,10 +2093,10 @@ static void happy_meal_rx(struct happy_meal *hp, struct net_device *dev)
2093 RXD((">")); 2093 RXD((">"));
2094} 2094}
2095 2095
2096static irqreturn_t happy_meal_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2096static irqreturn_t happy_meal_interrupt(int irq, void *dev_id)
2097{ 2097{
2098 struct net_device *dev = (struct net_device *) dev_id; 2098 struct net_device *dev = dev_id;
2099 struct happy_meal *hp = dev->priv; 2099 struct happy_meal *hp = netdev_priv(dev);
2100 u32 happy_status = hme_read32(hp, hp->gregs + GREG_STAT); 2100 u32 happy_status = hme_read32(hp, hp->gregs + GREG_STAT);
2101 2101
2102 HMD(("happy_meal_interrupt: status=%08x ", happy_status)); 2102 HMD(("happy_meal_interrupt: status=%08x ", happy_status));
@@ -2132,7 +2132,7 @@ out:
2132} 2132}
2133 2133
2134#ifdef CONFIG_SBUS 2134#ifdef CONFIG_SBUS
2135static irqreturn_t quattro_sbus_interrupt(int irq, void *cookie, struct pt_regs *ptregs) 2135static irqreturn_t quattro_sbus_interrupt(int irq, void *cookie)
2136{ 2136{
2137 struct quattro *qp = (struct quattro *) cookie; 2137 struct quattro *qp = (struct quattro *) cookie;
2138 int i; 2138 int i;
diff --git a/drivers/net/sunlance.c b/drivers/net/sunlance.c
index feb42db10ee1..5b00d79b5573 100644
--- a/drivers/net/sunlance.c
+++ b/drivers/net/sunlance.c
@@ -820,9 +820,9 @@ out:
820 spin_unlock(&lp->lock); 820 spin_unlock(&lp->lock);
821} 821}
822 822
823static irqreturn_t lance_interrupt(int irq, void *dev_id, struct pt_regs *regs) 823static irqreturn_t lance_interrupt(int irq, void *dev_id)
824{ 824{
825 struct net_device *dev = (struct net_device *)dev_id; 825 struct net_device *dev = dev_id;
826 struct lance_private *lp = netdev_priv(dev); 826 struct lance_private *lp = netdev_priv(dev);
827 int csr0; 827 int csr0;
828 828
diff --git a/drivers/net/sunqe.c b/drivers/net/sunqe.c
index 9202a1c369dd..7874eb1ef043 100644
--- a/drivers/net/sunqe.c
+++ b/drivers/net/sunqe.c
@@ -466,9 +466,9 @@ static void qe_tx_reclaim(struct sunqe *qep);
466 * so we just run through each qe and check to see who is signaling 466 * so we just run through each qe and check to see who is signaling
467 * and thus needs to be serviced. 467 * and thus needs to be serviced.
468 */ 468 */
469static irqreturn_t qec_interrupt(int irq, void *dev_id, struct pt_regs *regs) 469static irqreturn_t qec_interrupt(int irq, void *dev_id)
470{ 470{
471 struct sunqec *qecp = (struct sunqec *) dev_id; 471 struct sunqec *qecp = dev_id;
472 u32 qec_status; 472 u32 qec_status;
473 int channel = 0; 473 int channel = 0;
474 474
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c
index 60f026509487..81ed82f0b520 100644
--- a/drivers/net/tc35815.c
+++ b/drivers/net/tc35815.c
@@ -453,7 +453,7 @@ static int __devinit tc35815_probe1(struct pci_dev *pdev, unsigned int base_addr
453static int tc35815_open(struct net_device *dev); 453static int tc35815_open(struct net_device *dev);
454static int tc35815_send_packet(struct sk_buff *skb, struct net_device *dev); 454static int tc35815_send_packet(struct sk_buff *skb, struct net_device *dev);
455static void tc35815_tx_timeout(struct net_device *dev); 455static void tc35815_tx_timeout(struct net_device *dev);
456static irqreturn_t tc35815_interrupt(int irq, void *dev_id, struct pt_regs *regs); 456static irqreturn_t tc35815_interrupt(int irq, void *dev_id);
457static void tc35815_rx(struct net_device *dev); 457static void tc35815_rx(struct net_device *dev);
458static void tc35815_txdone(struct net_device *dev); 458static void tc35815_txdone(struct net_device *dev);
459static int tc35815_close(struct net_device *dev); 459static int tc35815_close(struct net_device *dev);
@@ -1044,7 +1044,7 @@ static void tc35815_fatal_error_interrupt(struct net_device *dev, int status)
1044 * The typical workload of the driver: 1044 * The typical workload of the driver:
1045 * Handle the network interface interrupts. 1045 * Handle the network interface interrupts.
1046 */ 1046 */
1047static irqreturn_t tc35815_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1047static irqreturn_t tc35815_interrupt(int irq, void *dev_id)
1048{ 1048{
1049 struct net_device *dev = dev_id; 1049 struct net_device *dev = dev_id;
1050 struct tc35815_regs *tr; 1050 struct tc35815_regs *tr;
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index c25ba273b745..327836b1014e 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -3481,7 +3481,7 @@ static inline void tg3_full_unlock(struct tg3 *tp)
3481/* One-shot MSI handler - Chip automatically disables interrupt 3481/* One-shot MSI handler - Chip automatically disables interrupt
3482 * after sending MSI so driver doesn't have to do it. 3482 * after sending MSI so driver doesn't have to do it.
3483 */ 3483 */
3484static irqreturn_t tg3_msi_1shot(int irq, void *dev_id, struct pt_regs *regs) 3484static irqreturn_t tg3_msi_1shot(int irq, void *dev_id)
3485{ 3485{
3486 struct net_device *dev = dev_id; 3486 struct net_device *dev = dev_id;
3487 struct tg3 *tp = netdev_priv(dev); 3487 struct tg3 *tp = netdev_priv(dev);
@@ -3499,7 +3499,7 @@ static irqreturn_t tg3_msi_1shot(int irq, void *dev_id, struct pt_regs *regs)
3499 * flush status block and interrupt mailbox. PCI ordering rules 3499 * flush status block and interrupt mailbox. PCI ordering rules
3500 * guarantee that MSI will arrive after the status block. 3500 * guarantee that MSI will arrive after the status block.
3501 */ 3501 */
3502static irqreturn_t tg3_msi(int irq, void *dev_id, struct pt_regs *regs) 3502static irqreturn_t tg3_msi(int irq, void *dev_id)
3503{ 3503{
3504 struct net_device *dev = dev_id; 3504 struct net_device *dev = dev_id;
3505 struct tg3 *tp = netdev_priv(dev); 3505 struct tg3 *tp = netdev_priv(dev);
@@ -3520,7 +3520,7 @@ static irqreturn_t tg3_msi(int irq, void *dev_id, struct pt_regs *regs)
3520 return IRQ_RETVAL(1); 3520 return IRQ_RETVAL(1);
3521} 3521}
3522 3522
3523static irqreturn_t tg3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3523static irqreturn_t tg3_interrupt(int irq, void *dev_id)
3524{ 3524{
3525 struct net_device *dev = dev_id; 3525 struct net_device *dev = dev_id;
3526 struct tg3 *tp = netdev_priv(dev); 3526 struct tg3 *tp = netdev_priv(dev);
@@ -3563,7 +3563,7 @@ out:
3563 return IRQ_RETVAL(handled); 3563 return IRQ_RETVAL(handled);
3564} 3564}
3565 3565
3566static irqreturn_t tg3_interrupt_tagged(int irq, void *dev_id, struct pt_regs *regs) 3566static irqreturn_t tg3_interrupt_tagged(int irq, void *dev_id)
3567{ 3567{
3568 struct net_device *dev = dev_id; 3568 struct net_device *dev = dev_id;
3569 struct tg3 *tp = netdev_priv(dev); 3569 struct tg3 *tp = netdev_priv(dev);
@@ -3606,8 +3606,7 @@ out:
3606} 3606}
3607 3607
3608/* ISR for interrupt test */ 3608/* ISR for interrupt test */
3609static irqreturn_t tg3_test_isr(int irq, void *dev_id, 3609static irqreturn_t tg3_test_isr(int irq, void *dev_id)
3610 struct pt_regs *regs)
3611{ 3610{
3612 struct net_device *dev = dev_id; 3611 struct net_device *dev = dev_id;
3613 struct tg3 *tp = netdev_priv(dev); 3612 struct tg3 *tp = netdev_priv(dev);
@@ -3651,7 +3650,7 @@ static void tg3_poll_controller(struct net_device *dev)
3651{ 3650{
3652 struct tg3 *tp = netdev_priv(dev); 3651 struct tg3 *tp = netdev_priv(dev);
3653 3652
3654 tg3_interrupt(tp->pdev->irq, dev, NULL); 3653 tg3_interrupt(tp->pdev->irq, dev);
3655} 3654}
3656#endif 3655#endif
3657 3656
@@ -6838,7 +6837,7 @@ restart_timer:
6838 6837
6839static int tg3_request_irq(struct tg3 *tp) 6838static int tg3_request_irq(struct tg3 *tp)
6840{ 6839{
6841 irqreturn_t (*fn)(int, void *, struct pt_regs *); 6840 irq_handler_t fn;
6842 unsigned long flags; 6841 unsigned long flags;
6843 struct net_device *dev = tp->dev; 6842 struct net_device *dev = tp->dev;
6844 6843
diff --git a/drivers/net/tlan.c b/drivers/net/tlan.c
index 8d807bf603a0..e14f5a00f65a 100644
--- a/drivers/net/tlan.c
+++ b/drivers/net/tlan.c
@@ -289,7 +289,7 @@ static void TLan_Eisa_Cleanup( void );
289static int TLan_Init( struct net_device * ); 289static int TLan_Init( struct net_device * );
290static int TLan_Open( struct net_device *dev ); 290static int TLan_Open( struct net_device *dev );
291static int TLan_StartTx( struct sk_buff *, struct net_device *); 291static int TLan_StartTx( struct sk_buff *, struct net_device *);
292static irqreturn_t TLan_HandleInterrupt( int, void *, struct pt_regs *); 292static irqreturn_t TLan_HandleInterrupt( int, void *);
293static int TLan_Close( struct net_device *); 293static int TLan_Close( struct net_device *);
294static struct net_device_stats *TLan_GetStats( struct net_device *); 294static struct net_device_stats *TLan_GetStats( struct net_device *);
295static void TLan_SetMulticastList( struct net_device *); 295static void TLan_SetMulticastList( struct net_device *);
@@ -824,7 +824,7 @@ static void __init TLan_EisaProbe (void)
824static void TLan_Poll(struct net_device *dev) 824static void TLan_Poll(struct net_device *dev)
825{ 825{
826 disable_irq(dev->irq); 826 disable_irq(dev->irq);
827 TLan_HandleInterrupt(dev->irq, dev, NULL); 827 TLan_HandleInterrupt(dev->irq, dev);
828 enable_irq(dev->irq); 828 enable_irq(dev->irq);
829} 829}
830#endif 830#endif
@@ -1151,7 +1151,6 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
1151 * occurred. 1151 * occurred.
1152 * dev_id A pointer to the device assigned to 1152 * dev_id A pointer to the device assigned to
1153 * this irq line. 1153 * this irq line.
1154 * regs ???
1155 * 1154 *
1156 * This function handles an interrupt generated by its 1155 * This function handles an interrupt generated by its
1157 * assigned TLAN adapter. The function deactivates 1156 * assigned TLAN adapter. The function deactivates
@@ -1162,7 +1161,7 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
1162 * 1161 *
1163 **************************************************************/ 1162 **************************************************************/
1164 1163
1165static irqreturn_t TLan_HandleInterrupt(int irq, void *dev_id, struct pt_regs *regs) 1164static irqreturn_t TLan_HandleInterrupt(int irq, void *dev_id)
1166{ 1165{
1167 u32 ack; 1166 u32 ack;
1168 struct net_device *dev; 1167 struct net_device *dev;
diff --git a/drivers/net/tokenring/3c359.c b/drivers/net/tokenring/3c359.c
index 412390ba142e..7580bdeacadc 100644
--- a/drivers/net/tokenring/3c359.c
+++ b/drivers/net/tokenring/3c359.c
@@ -130,7 +130,7 @@ static int xl_xmit(struct sk_buff *skb, struct net_device *dev);
130static void xl_dn_comp(struct net_device *dev); 130static void xl_dn_comp(struct net_device *dev);
131static int xl_close(struct net_device *dev); 131static int xl_close(struct net_device *dev);
132static void xl_set_rx_mode(struct net_device *dev); 132static void xl_set_rx_mode(struct net_device *dev);
133static irqreturn_t xl_interrupt(int irq, void *dev_id, struct pt_regs *regs); 133static irqreturn_t xl_interrupt(int irq, void *dev_id);
134static struct net_device_stats * xl_get_stats(struct net_device *dev); 134static struct net_device_stats * xl_get_stats(struct net_device *dev);
135static int xl_set_mac_address(struct net_device *dev, void *addr) ; 135static int xl_set_mac_address(struct net_device *dev, void *addr) ;
136static void xl_arb_cmd(struct net_device *dev); 136static void xl_arb_cmd(struct net_device *dev);
@@ -1042,7 +1042,7 @@ static void xl_freemem(struct net_device *dev)
1042 return ; 1042 return ;
1043} 1043}
1044 1044
1045static irqreturn_t xl_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1045static irqreturn_t xl_interrupt(int irq, void *dev_id)
1046{ 1046{
1047 struct net_device *dev = (struct net_device *)dev_id; 1047 struct net_device *dev = (struct net_device *)dev_id;
1048 struct xl_private *xl_priv =(struct xl_private *)dev->priv; 1048 struct xl_private *xl_priv =(struct xl_private *)dev->priv;
diff --git a/drivers/net/tokenring/ibmtr.c b/drivers/net/tokenring/ibmtr.c
index 4470025ff7f8..bfe59865b1dd 100644
--- a/drivers/net/tokenring/ibmtr.c
+++ b/drivers/net/tokenring/ibmtr.c
@@ -197,7 +197,7 @@ static void open_sap(unsigned char type, struct net_device *dev);
197static void tok_set_multicast_list(struct net_device *dev); 197static void tok_set_multicast_list(struct net_device *dev);
198static int tok_send_packet(struct sk_buff *skb, struct net_device *dev); 198static int tok_send_packet(struct sk_buff *skb, struct net_device *dev);
199static int tok_close(struct net_device *dev); 199static int tok_close(struct net_device *dev);
200static irqreturn_t tok_interrupt(int irq, void *dev_id, struct pt_regs *regs); 200static irqreturn_t tok_interrupt(int irq, void *dev_id);
201static void initial_tok_int(struct net_device *dev); 201static void initial_tok_int(struct net_device *dev);
202static void tr_tx(struct net_device *dev); 202static void tr_tx(struct net_device *dev);
203static void tr_rx(struct net_device *dev); 203static void tr_rx(struct net_device *dev);
@@ -1166,7 +1166,7 @@ static void dir_open_adapter (struct net_device *dev)
1166 1166
1167/******************************************************************************/ 1167/******************************************************************************/
1168 1168
1169static irqreturn_t tok_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1169static irqreturn_t tok_interrupt(int irq, void *dev_id)
1170{ 1170{
1171 unsigned char status; 1171 unsigned char status;
1172 /* unsigned char status_even ; */ 1172 /* unsigned char status_even ; */
@@ -1178,7 +1178,7 @@ static irqreturn_t tok_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1178 1178
1179 dev = dev_id; 1179 dev = dev_id;
1180#if TR_VERBOSE 1180#if TR_VERBOSE
1181 DPRINTK("Int from tok_driver, dev : %p irq%d regs=%p\n", dev,irq,regs); 1181 DPRINTK("Int from tok_driver, dev : %p irq%d\n", dev,irq);
1182#endif 1182#endif
1183 ti = (struct tok_info *) dev->priv; 1183 ti = (struct tok_info *) dev->priv;
1184 if (ti->sram_phys & 1) 1184 if (ti->sram_phys & 1)
diff --git a/drivers/net/tokenring/lanstreamer.c b/drivers/net/tokenring/lanstreamer.c
index bfc8c3eae9a1..e999feb8c0bb 100644
--- a/drivers/net/tokenring/lanstreamer.c
+++ b/drivers/net/tokenring/lanstreamer.c
@@ -206,8 +206,7 @@ static int streamer_open(struct net_device *dev);
206static int streamer_xmit(struct sk_buff *skb, struct net_device *dev); 206static int streamer_xmit(struct sk_buff *skb, struct net_device *dev);
207static int streamer_close(struct net_device *dev); 207static int streamer_close(struct net_device *dev);
208static void streamer_set_rx_mode(struct net_device *dev); 208static void streamer_set_rx_mode(struct net_device *dev);
209static irqreturn_t streamer_interrupt(int irq, void *dev_id, 209static irqreturn_t streamer_interrupt(int irq, void *dev_id);
210 struct pt_regs *regs);
211static struct net_device_stats *streamer_get_stats(struct net_device *dev); 210static struct net_device_stats *streamer_get_stats(struct net_device *dev);
212static int streamer_set_mac_address(struct net_device *dev, void *addr); 211static int streamer_set_mac_address(struct net_device *dev, void *addr);
213static void streamer_arb_cmd(struct net_device *dev); 212static void streamer_arb_cmd(struct net_device *dev);
@@ -1028,7 +1027,7 @@ static void streamer_rx(struct net_device *dev)
1028 } /* end for all completed rx descriptors */ 1027 } /* end for all completed rx descriptors */
1029} 1028}
1030 1029
1031static irqreturn_t streamer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1030static irqreturn_t streamer_interrupt(int irq, void *dev_id)
1032{ 1031{
1033 struct net_device *dev = (struct net_device *) dev_id; 1032 struct net_device *dev = (struct net_device *) dev_id;
1034 struct streamer_private *streamer_priv = 1033 struct streamer_private *streamer_priv =
diff --git a/drivers/net/tokenring/madgemc.c b/drivers/net/tokenring/madgemc.c
index 666bbaaae82f..ed274d6909d0 100644
--- a/drivers/net/tokenring/madgemc.c
+++ b/drivers/net/tokenring/madgemc.c
@@ -70,7 +70,7 @@ static void madgemc_setregpage(struct net_device *dev, int page);
70static void madgemc_setsifsel(struct net_device *dev, int val); 70static void madgemc_setsifsel(struct net_device *dev, int val);
71static void madgemc_setint(struct net_device *dev, int val); 71static void madgemc_setint(struct net_device *dev, int val);
72 72
73static irqreturn_t madgemc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 73static irqreturn_t madgemc_interrupt(int irq, void *dev_id);
74 74
75/* 75/*
76 * These work around paging, however they don't guarentee you're on the 76 * These work around paging, however they don't guarentee you're on the
@@ -417,7 +417,7 @@ getout:
417 * exhausted all contiguous interrupts. 417 * exhausted all contiguous interrupts.
418 * 418 *
419 */ 419 */
420static irqreturn_t madgemc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 420static irqreturn_t madgemc_interrupt(int irq, void *dev_id)
421{ 421{
422 int pending,reg1; 422 int pending,reg1;
423 struct net_device *dev; 423 struct net_device *dev;
@@ -451,7 +451,7 @@ static irqreturn_t madgemc_interrupt(int irq, void *dev_id, struct pt_regs *regs
451 outb(reg1, dev->base_addr + MC_CONTROL_REG1); 451 outb(reg1, dev->base_addr + MC_CONTROL_REG1);
452 452
453 /* Continue handling as normal */ 453 /* Continue handling as normal */
454 tms380tr_interrupt(irq, dev_id, regs); 454 tms380tr_interrupt(irq, dev_id);
455 455
456 pending = SIFREADW(SIFSTS); /* restart - the SIF way */ 456 pending = SIFREADW(SIFSTS); /* restart - the SIF way */
457 457
diff --git a/drivers/net/tokenring/olympic.c b/drivers/net/tokenring/olympic.c
index 85831484bc40..cd142d0302bc 100644
--- a/drivers/net/tokenring/olympic.c
+++ b/drivers/net/tokenring/olympic.c
@@ -185,7 +185,7 @@ static int olympic_xmit(struct sk_buff *skb, struct net_device *dev);
185static int olympic_close(struct net_device *dev); 185static int olympic_close(struct net_device *dev);
186static void olympic_set_rx_mode(struct net_device *dev); 186static void olympic_set_rx_mode(struct net_device *dev);
187static void olympic_freemem(struct net_device *dev) ; 187static void olympic_freemem(struct net_device *dev) ;
188static irqreturn_t olympic_interrupt(int irq, void *dev_id, struct pt_regs *regs); 188static irqreturn_t olympic_interrupt(int irq, void *dev_id);
189static struct net_device_stats * olympic_get_stats(struct net_device *dev); 189static struct net_device_stats * olympic_get_stats(struct net_device *dev);
190static int olympic_set_mac_address(struct net_device *dev, void *addr) ; 190static int olympic_set_mac_address(struct net_device *dev, void *addr) ;
191static void olympic_arb_cmd(struct net_device *dev); 191static void olympic_arb_cmd(struct net_device *dev);
@@ -925,7 +925,7 @@ static void olympic_freemem(struct net_device *dev)
925 return ; 925 return ;
926} 926}
927 927
928static irqreturn_t olympic_interrupt(int irq, void *dev_id, struct pt_regs *regs) 928static irqreturn_t olympic_interrupt(int irq, void *dev_id)
929{ 929{
930 struct net_device *dev= (struct net_device *)dev_id; 930 struct net_device *dev= (struct net_device *)dev_id;
931 struct olympic_private *olympic_priv=(struct olympic_private *)dev->priv; 931 struct olympic_private *olympic_priv=(struct olympic_private *)dev->priv;
diff --git a/drivers/net/tokenring/smctr.c b/drivers/net/tokenring/smctr.c
index 85a7f797d343..46dabdb12071 100644
--- a/drivers/net/tokenring/smctr.c
+++ b/drivers/net/tokenring/smctr.c
@@ -141,7 +141,7 @@ static int smctr_init_shared_memory(struct net_device *dev);
141static int smctr_init_tx_bdbs(struct net_device *dev); 141static int smctr_init_tx_bdbs(struct net_device *dev);
142static int smctr_init_tx_fcbs(struct net_device *dev); 142static int smctr_init_tx_fcbs(struct net_device *dev);
143static int smctr_internal_self_test(struct net_device *dev); 143static int smctr_internal_self_test(struct net_device *dev);
144static irqreturn_t smctr_interrupt(int irq, void *dev_id, struct pt_regs *regs); 144static irqreturn_t smctr_interrupt(int irq, void *dev_id);
145static int smctr_issue_enable_int_cmd(struct net_device *dev, 145static int smctr_issue_enable_int_cmd(struct net_device *dev,
146 __u16 interrupt_enable_mask); 146 __u16 interrupt_enable_mask);
147static int smctr_issue_int_ack(struct net_device *dev, __u16 iack_code, 147static int smctr_issue_int_ack(struct net_device *dev, __u16 iack_code,
@@ -1980,7 +1980,7 @@ static int smctr_internal_self_test(struct net_device *dev)
1980/* 1980/*
1981 * The typical workload of the driver: Handle the network interface interrupts. 1981 * The typical workload of the driver: Handle the network interface interrupts.
1982 */ 1982 */
1983static irqreturn_t smctr_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1983static irqreturn_t smctr_interrupt(int irq, void *dev_id)
1984{ 1984{
1985 struct net_device *dev = dev_id; 1985 struct net_device *dev = dev_id;
1986 struct net_local *tp; 1986 struct net_local *tp;
@@ -1990,15 +1990,8 @@ static irqreturn_t smctr_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1990 __u8 isb_type, isb_subtype; 1990 __u8 isb_type, isb_subtype;
1991 __u16 isb_index; 1991 __u16 isb_index;
1992 1992
1993 if(dev == NULL)
1994 {
1995 printk(KERN_CRIT "%s: irq %d for unknown device.\n", dev->name, irq);
1996 return IRQ_NONE;
1997 }
1998
1999 ioaddr = dev->base_addr; 1993 ioaddr = dev->base_addr;
2000 tp = netdev_priv(dev); 1994 tp = netdev_priv(dev);
2001
2002 1995
2003 if(tp->status == NOT_INITIALIZED) 1996 if(tp->status == NOT_INITIALIZED)
2004 return IRQ_NONE; 1997 return IRQ_NONE;
diff --git a/drivers/net/tokenring/tms380tr.c b/drivers/net/tokenring/tms380tr.c
index c1925590a0e1..ea797ca2b988 100644
--- a/drivers/net/tokenring/tms380tr.c
+++ b/drivers/net/tokenring/tms380tr.c
@@ -744,18 +744,13 @@ static void tms380tr_timer_chk(unsigned long data)
744/* 744/*
745 * The typical workload of the driver: Handle the network interface interrupts. 745 * The typical workload of the driver: Handle the network interface interrupts.
746 */ 746 */
747irqreturn_t tms380tr_interrupt(int irq, void *dev_id, struct pt_regs *regs) 747irqreturn_t tms380tr_interrupt(int irq, void *dev_id)
748{ 748{
749 struct net_device *dev = dev_id; 749 struct net_device *dev = dev_id;
750 struct net_local *tp; 750 struct net_local *tp;
751 unsigned short irq_type; 751 unsigned short irq_type;
752 int handled = 0; 752 int handled = 0;
753 753
754 if(dev == NULL) {
755 printk(KERN_INFO "%s: irq %d for unknown device.\n", dev->name, irq);
756 return IRQ_NONE;
757 }
758
759 tp = netdev_priv(dev); 754 tp = netdev_priv(dev);
760 755
761 irq_type = SIFREADW(SIFSTS); 756 irq_type = SIFREADW(SIFSTS);
diff --git a/drivers/net/tokenring/tms380tr.h b/drivers/net/tokenring/tms380tr.h
index 30452c67bb68..2a16078ac3fd 100644
--- a/drivers/net/tokenring/tms380tr.h
+++ b/drivers/net/tokenring/tms380tr.h
@@ -16,7 +16,7 @@
16/* module prototypes */ 16/* module prototypes */
17int tms380tr_open(struct net_device *dev); 17int tms380tr_open(struct net_device *dev);
18int tms380tr_close(struct net_device *dev); 18int tms380tr_close(struct net_device *dev);
19irqreturn_t tms380tr_interrupt(int irq, void *dev_id, struct pt_regs *regs); 19irqreturn_t tms380tr_interrupt(int irq, void *dev_id);
20int tmsdev_init(struct net_device *dev, struct device *pdev); 20int tmsdev_init(struct net_device *dev, struct device *pdev);
21void tmsdev_term(struct net_device *dev); 21void tmsdev_term(struct net_device *dev);
22void tms380tr_wait(unsigned long time); 22void tms380tr_wait(unsigned long time);
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c
index e1b48bd86646..2cfd9634895a 100644
--- a/drivers/net/tulip/de2104x.c
+++ b/drivers/net/tulip/de2104x.c
@@ -484,7 +484,7 @@ rx_next:
484 de->rx_tail = rx_tail; 484 de->rx_tail = rx_tail;
485} 485}
486 486
487static irqreturn_t de_interrupt (int irq, void *dev_instance, struct pt_regs *regs) 487static irqreturn_t de_interrupt (int irq, void *dev_instance)
488{ 488{
489 struct net_device *dev = dev_instance; 489 struct net_device *dev = dev_instance;
490 struct de_private *de = dev->priv; 490 struct de_private *de = dev->priv;
diff --git a/drivers/net/tulip/de4x5.c b/drivers/net/tulip/de4x5.c
index fb5fa7d68888..3f4b6408b755 100644
--- a/drivers/net/tulip/de4x5.c
+++ b/drivers/net/tulip/de4x5.c
@@ -896,7 +896,7 @@ static struct {
896*/ 896*/
897static int de4x5_open(struct net_device *dev); 897static int de4x5_open(struct net_device *dev);
898static int de4x5_queue_pkt(struct sk_buff *skb, struct net_device *dev); 898static int de4x5_queue_pkt(struct sk_buff *skb, struct net_device *dev);
899static irqreturn_t de4x5_interrupt(int irq, void *dev_id, struct pt_regs *regs); 899static irqreturn_t de4x5_interrupt(int irq, void *dev_id);
900static int de4x5_close(struct net_device *dev); 900static int de4x5_close(struct net_device *dev);
901static struct net_device_stats *de4x5_get_stats(struct net_device *dev); 901static struct net_device_stats *de4x5_get_stats(struct net_device *dev);
902static void de4x5_local_stats(struct net_device *dev, char *buf, int pkt_len); 902static void de4x5_local_stats(struct net_device *dev, char *buf, int pkt_len);
@@ -1538,18 +1538,14 @@ de4x5_queue_pkt(struct sk_buff *skb, struct net_device *dev)
1538** interrupt is asserted and this routine entered. 1538** interrupt is asserted and this routine entered.
1539*/ 1539*/
1540static irqreturn_t 1540static irqreturn_t
1541de4x5_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1541de4x5_interrupt(int irq, void *dev_id)
1542{ 1542{
1543 struct net_device *dev = (struct net_device *)dev_id; 1543 struct net_device *dev = dev_id;
1544 struct de4x5_private *lp; 1544 struct de4x5_private *lp;
1545 s32 imr, omr, sts, limit; 1545 s32 imr, omr, sts, limit;
1546 u_long iobase; 1546 u_long iobase;
1547 unsigned int handled = 0; 1547 unsigned int handled = 0;
1548 1548
1549 if (dev == NULL) {
1550 printk ("de4x5_interrupt(): irq %d for unknown device.\n", irq);
1551 return IRQ_NONE;
1552 }
1553 lp = netdev_priv(dev); 1549 lp = netdev_priv(dev);
1554 spin_lock(&lp->lock); 1550 spin_lock(&lp->lock);
1555 iobase = dev->base_addr; 1551 iobase = dev->base_addr;
diff --git a/drivers/net/tulip/dmfe.c b/drivers/net/tulip/dmfe.c
index ccf2c225f084..4dd8a0bae860 100644
--- a/drivers/net/tulip/dmfe.c
+++ b/drivers/net/tulip/dmfe.c
@@ -300,7 +300,7 @@ static struct net_device_stats * dmfe_get_stats(struct DEVICE *);
300static void dmfe_set_filter_mode(struct DEVICE *); 300static void dmfe_set_filter_mode(struct DEVICE *);
301static const struct ethtool_ops netdev_ethtool_ops; 301static const struct ethtool_ops netdev_ethtool_ops;
302static u16 read_srom_word(long ,int); 302static u16 read_srom_word(long ,int);
303static irqreturn_t dmfe_interrupt(int , void *, struct pt_regs *); 303static irqreturn_t dmfe_interrupt(int , void *);
304#ifdef CONFIG_NET_POLL_CONTROLLER 304#ifdef CONFIG_NET_POLL_CONTROLLER
305static void poll_dmfe (struct net_device *dev); 305static void poll_dmfe (struct net_device *dev);
306#endif 306#endif
@@ -735,7 +735,7 @@ static int dmfe_stop(struct DEVICE *dev)
735 * receive the packet to upper layer, free the transmitted packet 735 * receive the packet to upper layer, free the transmitted packet
736 */ 736 */
737 737
738static irqreturn_t dmfe_interrupt(int irq, void *dev_id, struct pt_regs *regs) 738static irqreturn_t dmfe_interrupt(int irq, void *dev_id)
739{ 739{
740 struct DEVICE *dev = dev_id; 740 struct DEVICE *dev = dev_id;
741 struct dmfe_board_info *db = netdev_priv(dev); 741 struct dmfe_board_info *db = netdev_priv(dev);
@@ -806,7 +806,7 @@ static void poll_dmfe (struct net_device *dev)
806 /* disable_irq here is not very nice, but with the lockless 806 /* disable_irq here is not very nice, but with the lockless
807 interrupt handler we have no other choice. */ 807 interrupt handler we have no other choice. */
808 disable_irq(dev->irq); 808 disable_irq(dev->irq);
809 dmfe_interrupt (dev->irq, dev, NULL); 809 dmfe_interrupt (dev->irq, dev);
810 enable_irq(dev->irq); 810 enable_irq(dev->irq);
811} 811}
812#endif 812#endif
diff --git a/drivers/net/tulip/interrupt.c b/drivers/net/tulip/interrupt.c
index 7f8f5d42a761..e3488d7b8ede 100644
--- a/drivers/net/tulip/interrupt.c
+++ b/drivers/net/tulip/interrupt.c
@@ -496,7 +496,7 @@ static inline unsigned int phy_interrupt (struct net_device *dev)
496 496
497/* The interrupt handler does all of the Rx thread work and cleans up 497/* The interrupt handler does all of the Rx thread work and cleans up
498 after the Tx thread. */ 498 after the Tx thread. */
499irqreturn_t tulip_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 499irqreturn_t tulip_interrupt(int irq, void *dev_instance)
500{ 500{
501 struct net_device *dev = (struct net_device *)dev_instance; 501 struct net_device *dev = (struct net_device *)dev_instance;
502 struct tulip_private *tp = netdev_priv(dev); 502 struct tulip_private *tp = netdev_priv(dev);
diff --git a/drivers/net/tulip/tulip.h b/drivers/net/tulip/tulip.h
index 25668ddb1f7e..ad107f45c7b1 100644
--- a/drivers/net/tulip/tulip.h
+++ b/drivers/net/tulip/tulip.h
@@ -424,7 +424,7 @@ int tulip_read_eeprom(struct net_device *dev, int location, int addr_len);
424/* interrupt.c */ 424/* interrupt.c */
425extern unsigned int tulip_max_interrupt_work; 425extern unsigned int tulip_max_interrupt_work;
426extern int tulip_rx_copybreak; 426extern int tulip_rx_copybreak;
427irqreturn_t tulip_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 427irqreturn_t tulip_interrupt(int irq, void *dev_instance);
428int tulip_refill_rx(struct net_device *dev); 428int tulip_refill_rx(struct net_device *dev);
429#ifdef CONFIG_TULIP_NAPI 429#ifdef CONFIG_TULIP_NAPI
430int tulip_poll(struct net_device *dev, int *budget); 430int tulip_poll(struct net_device *dev, int *budget);
diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c
index 831919a81918..0aee618f883c 100644
--- a/drivers/net/tulip/tulip_core.c
+++ b/drivers/net/tulip/tulip_core.c
@@ -1823,7 +1823,7 @@ static void poll_tulip (struct net_device *dev)
1823 /* disable_irq here is not very nice, but with the lockless 1823 /* disable_irq here is not very nice, but with the lockless
1824 interrupt handler we have no other choice. */ 1824 interrupt handler we have no other choice. */
1825 disable_irq(dev->irq); 1825 disable_irq(dev->irq);
1826 tulip_interrupt (dev->irq, dev, NULL); 1826 tulip_interrupt (dev->irq, dev);
1827 enable_irq(dev->irq); 1827 enable_irq(dev->irq);
1828} 1828}
1829#endif 1829#endif
diff --git a/drivers/net/tulip/uli526x.c b/drivers/net/tulip/uli526x.c
index 0b176be51eb3..229158e8e4be 100644
--- a/drivers/net/tulip/uli526x.c
+++ b/drivers/net/tulip/uli526x.c
@@ -224,7 +224,7 @@ static struct net_device_stats * uli526x_get_stats(struct net_device *);
224static void uli526x_set_filter_mode(struct net_device *); 224static void uli526x_set_filter_mode(struct net_device *);
225static const struct ethtool_ops netdev_ethtool_ops; 225static const struct ethtool_ops netdev_ethtool_ops;
226static u16 read_srom_word(long, int); 226static u16 read_srom_word(long, int);
227static irqreturn_t uli526x_interrupt(int, void *, struct pt_regs *); 227static irqreturn_t uli526x_interrupt(int, void *);
228static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long); 228static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long);
229static void allocate_rx_buffer(struct uli526x_board_info *); 229static void allocate_rx_buffer(struct uli526x_board_info *);
230static void update_cr6(u32, unsigned long); 230static void update_cr6(u32, unsigned long);
@@ -659,7 +659,7 @@ static int uli526x_stop(struct net_device *dev)
659 * receive the packet to upper layer, free the transmitted packet 659 * receive the packet to upper layer, free the transmitted packet
660 */ 660 */
661 661
662static irqreturn_t uli526x_interrupt(int irq, void *dev_id, struct pt_regs *regs) 662static irqreturn_t uli526x_interrupt(int irq, void *dev_id)
663{ 663{
664 struct net_device *dev = dev_id; 664 struct net_device *dev = dev_id;
665 struct uli526x_board_info *db = netdev_priv(dev); 665 struct uli526x_board_info *db = netdev_priv(dev);
diff --git a/drivers/net/tulip/winbond-840.c b/drivers/net/tulip/winbond-840.c
index 2fca1ee24f5a..002a05e0722f 100644
--- a/drivers/net/tulip/winbond-840.c
+++ b/drivers/net/tulip/winbond-840.c
@@ -332,7 +332,7 @@ static void tx_timeout(struct net_device *dev);
332static int alloc_ringdesc(struct net_device *dev); 332static int alloc_ringdesc(struct net_device *dev);
333static void free_ringdesc(struct netdev_private *np); 333static void free_ringdesc(struct netdev_private *np);
334static int start_tx(struct sk_buff *skb, struct net_device *dev); 334static int start_tx(struct sk_buff *skb, struct net_device *dev);
335static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs); 335static irqreturn_t intr_handler(int irq, void *dev_instance);
336static void netdev_error(struct net_device *dev, int intr_status); 336static void netdev_error(struct net_device *dev, int intr_status);
337static int netdev_rx(struct net_device *dev); 337static int netdev_rx(struct net_device *dev);
338static u32 __set_rx_mode(struct net_device *dev); 338static u32 __set_rx_mode(struct net_device *dev);
@@ -1110,7 +1110,7 @@ static void netdev_tx_done(struct net_device *dev)
1110 1110
1111/* The interrupt handler does all of the Rx thread work and cleans up 1111/* The interrupt handler does all of the Rx thread work and cleans up
1112 after the Tx thread. */ 1112 after the Tx thread. */
1113static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs) 1113static irqreturn_t intr_handler(int irq, void *dev_instance)
1114{ 1114{
1115 struct net_device *dev = (struct net_device *)dev_instance; 1115 struct net_device *dev = (struct net_device *)dev_instance;
1116 struct netdev_private *np = netdev_priv(dev); 1116 struct netdev_private *np = netdev_priv(dev);
diff --git a/drivers/net/tulip/xircom_cb.c b/drivers/net/tulip/xircom_cb.c
index 629eac645289..61d313049dd0 100644
--- a/drivers/net/tulip/xircom_cb.c
+++ b/drivers/net/tulip/xircom_cb.c
@@ -114,7 +114,7 @@ struct xircom_private {
114/* Function prototypes */ 114/* Function prototypes */
115static int xircom_probe(struct pci_dev *pdev, const struct pci_device_id *id); 115static int xircom_probe(struct pci_dev *pdev, const struct pci_device_id *id);
116static void xircom_remove(struct pci_dev *pdev); 116static void xircom_remove(struct pci_dev *pdev);
117static irqreturn_t xircom_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 117static irqreturn_t xircom_interrupt(int irq, void *dev_instance);
118static int xircom_start_xmit(struct sk_buff *skb, struct net_device *dev); 118static int xircom_start_xmit(struct sk_buff *skb, struct net_device *dev);
119static int xircom_open(struct net_device *dev); 119static int xircom_open(struct net_device *dev);
120static int xircom_close(struct net_device *dev); 120static int xircom_close(struct net_device *dev);
@@ -334,7 +334,7 @@ static void __devexit xircom_remove(struct pci_dev *pdev)
334 leave("xircom_remove"); 334 leave("xircom_remove");
335} 335}
336 336
337static irqreturn_t xircom_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 337static irqreturn_t xircom_interrupt(int irq, void *dev_instance)
338{ 338{
339 struct net_device *dev = (struct net_device *) dev_instance; 339 struct net_device *dev = (struct net_device *) dev_instance;
340 struct xircom_private *card = netdev_priv(dev); 340 struct xircom_private *card = netdev_priv(dev);
@@ -513,7 +513,7 @@ static struct net_device_stats *xircom_get_stats(struct net_device *dev)
513static void xircom_poll_controller(struct net_device *dev) 513static void xircom_poll_controller(struct net_device *dev)
514{ 514{
515 disable_irq(dev->irq); 515 disable_irq(dev->irq);
516 xircom_interrupt(dev->irq, dev, NULL); 516 xircom_interrupt(dev->irq, dev);
517 enable_irq(dev->irq); 517 enable_irq(dev->irq);
518} 518}
519#endif 519#endif
diff --git a/drivers/net/tulip/xircom_tulip_cb.c b/drivers/net/tulip/xircom_tulip_cb.c
index 312788caa4c6..a998c5d0ae9c 100644
--- a/drivers/net/tulip/xircom_tulip_cb.c
+++ b/drivers/net/tulip/xircom_tulip_cb.c
@@ -328,7 +328,7 @@ static void xircom_init_ring(struct net_device *dev);
328static int xircom_start_xmit(struct sk_buff *skb, struct net_device *dev); 328static int xircom_start_xmit(struct sk_buff *skb, struct net_device *dev);
329static int xircom_rx(struct net_device *dev); 329static int xircom_rx(struct net_device *dev);
330static void xircom_media_change(struct net_device *dev); 330static void xircom_media_change(struct net_device *dev);
331static irqreturn_t xircom_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 331static irqreturn_t xircom_interrupt(int irq, void *dev_instance);
332static int xircom_close(struct net_device *dev); 332static int xircom_close(struct net_device *dev);
333static struct net_device_stats *xircom_get_stats(struct net_device *dev); 333static struct net_device_stats *xircom_get_stats(struct net_device *dev);
334static int xircom_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 334static int xircom_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -1044,7 +1044,7 @@ static void check_duplex(struct net_device *dev)
1044 1044
1045/* The interrupt handler does all of the Rx thread work and cleans up 1045/* The interrupt handler does all of the Rx thread work and cleans up
1046 after the Tx thread. */ 1046 after the Tx thread. */
1047static irqreturn_t xircom_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1047static irqreturn_t xircom_interrupt(int irq, void *dev_instance)
1048{ 1048{
1049 struct net_device *dev = dev_instance; 1049 struct net_device *dev = dev_instance;
1050 struct xircom_private *tp = netdev_priv(dev); 1050 struct xircom_private *tp = netdev_priv(dev);
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index d5c32e9caa97..3bf9e630404f 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -1826,7 +1826,7 @@ typhoon_poll(struct net_device *dev, int *total_budget)
1826} 1826}
1827 1827
1828static irqreturn_t 1828static irqreturn_t
1829typhoon_interrupt(int irq, void *dev_instance, struct pt_regs *rgs) 1829typhoon_interrupt(int irq, void *dev_instance)
1830{ 1830{
1831 struct net_device *dev = (struct net_device *) dev_instance; 1831 struct net_device *dev = (struct net_device *) dev_instance;
1832 struct typhoon *tp = dev->priv; 1832 struct typhoon *tp = dev->priv;
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 700ebd7d1457..12cd7b561f35 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3844,8 +3844,7 @@ static int ucc_geth_poll(struct net_device *dev, int *budget)
3844} 3844}
3845#endif /* CONFIG_UGETH_NAPI */ 3845#endif /* CONFIG_UGETH_NAPI */
3846 3846
3847static irqreturn_t ucc_geth_irq_handler(int irq, void *info, 3847static irqreturn_t ucc_geth_irq_handler(int irq, void *info)
3848 struct pt_regs *regs)
3849{ 3848{
3850 struct net_device *dev = (struct net_device *)info; 3849 struct net_device *dev = (struct net_device *)info;
3851 ucc_geth_private_t *ugeth = netdev_priv(dev); 3850 ucc_geth_private_t *ugeth = netdev_priv(dev);
@@ -3910,7 +3909,7 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void *info,
3910 return IRQ_HANDLED; 3909 return IRQ_HANDLED;
3911} 3910}
3912 3911
3913static irqreturn_t phy_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3912static irqreturn_t phy_interrupt(int irq, void *dev_id)
3914{ 3913{
3915 struct net_device *dev = (struct net_device *)dev_id; 3914 struct net_device *dev = (struct net_device *)dev_id;
3916 ucc_geth_private_t *ugeth = netdev_priv(dev); 3915 ucc_geth_private_t *ugeth = netdev_priv(dev);
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index cbebf1b96e9d..ebbda1d8f542 100644
--- a/drivers/net/via-rhine.c
+++ b/drivers/net/via-rhine.c
@@ -404,7 +404,7 @@ static void mdio_write(struct net_device *dev, int phy_id, int location, int val
404static int rhine_open(struct net_device *dev); 404static int rhine_open(struct net_device *dev);
405static void rhine_tx_timeout(struct net_device *dev); 405static void rhine_tx_timeout(struct net_device *dev);
406static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev); 406static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev);
407static irqreturn_t rhine_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 407static irqreturn_t rhine_interrupt(int irq, void *dev_instance);
408static void rhine_tx(struct net_device *dev); 408static void rhine_tx(struct net_device *dev);
409static int rhine_rx(struct net_device *dev, int limit); 409static int rhine_rx(struct net_device *dev, int limit);
410static void rhine_error(struct net_device *dev, int intr_status); 410static void rhine_error(struct net_device *dev, int intr_status);
@@ -569,7 +569,7 @@ static void __devinit rhine_reload_eeprom(long pioaddr, struct net_device *dev)
569static void rhine_poll(struct net_device *dev) 569static void rhine_poll(struct net_device *dev)
570{ 570{
571 disable_irq(dev->irq); 571 disable_irq(dev->irq);
572 rhine_interrupt(dev->irq, (void *)dev, NULL); 572 rhine_interrupt(dev->irq, (void *)dev);
573 enable_irq(dev->irq); 573 enable_irq(dev->irq);
574} 574}
575#endif 575#endif
@@ -1290,7 +1290,7 @@ static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev)
1290 1290
1291/* The interrupt handler does all of the Rx thread work and cleans up 1291/* The interrupt handler does all of the Rx thread work and cleans up
1292 after the Tx thread. */ 1292 after the Tx thread. */
1293static irqreturn_t rhine_interrupt(int irq, void *dev_instance, struct pt_regs *rgs) 1293static irqreturn_t rhine_interrupt(int irq, void *dev_instance)
1294{ 1294{
1295 struct net_device *dev = dev_instance; 1295 struct net_device *dev = dev_instance;
1296 struct rhine_private *rp = netdev_priv(dev); 1296 struct rhine_private *rp = netdev_priv(dev);
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index 7d8808ce541f..74f894795a1b 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -236,7 +236,7 @@ static void velocity_print_info(struct velocity_info *vptr);
236static int velocity_open(struct net_device *dev); 236static int velocity_open(struct net_device *dev);
237static int velocity_change_mtu(struct net_device *dev, int mtu); 237static int velocity_change_mtu(struct net_device *dev, int mtu);
238static int velocity_xmit(struct sk_buff *skb, struct net_device *dev); 238static int velocity_xmit(struct sk_buff *skb, struct net_device *dev);
239static int velocity_intr(int irq, void *dev_instance, struct pt_regs *regs); 239static int velocity_intr(int irq, void *dev_instance);
240static void velocity_set_multi(struct net_device *dev); 240static void velocity_set_multi(struct net_device *dev);
241static struct net_device_stats *velocity_get_stats(struct net_device *dev); 241static struct net_device_stats *velocity_get_stats(struct net_device *dev);
242static int velocity_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 242static int velocity_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -2036,7 +2036,6 @@ static int velocity_xmit(struct sk_buff *skb, struct net_device *dev)
2036 * velocity_intr - interrupt callback 2036 * velocity_intr - interrupt callback
2037 * @irq: interrupt number 2037 * @irq: interrupt number
2038 * @dev_instance: interrupting device 2038 * @dev_instance: interrupting device
2039 * @pt_regs: CPU register state at interrupt
2040 * 2039 *
2041 * Called whenever an interrupt is generated by the velocity 2040 * Called whenever an interrupt is generated by the velocity
2042 * adapter IRQ line. We may not be the source of the interrupt 2041 * adapter IRQ line. We may not be the source of the interrupt
@@ -2044,7 +2043,7 @@ static int velocity_xmit(struct sk_buff *skb, struct net_device *dev)
2044 * efficiently as possible. 2043 * efficiently as possible.
2045 */ 2044 */
2046 2045
2047static int velocity_intr(int irq, void *dev_instance, struct pt_regs *regs) 2046static int velocity_intr(int irq, void *dev_instance)
2048{ 2047{
2049 struct net_device *dev = dev_instance; 2048 struct net_device *dev = dev_instance;
2050 struct velocity_info *vptr = netdev_priv(dev); 2049 struct velocity_info *vptr = netdev_priv(dev);
diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c
index 1f95b4864ea1..e1bf8b93f958 100644
--- a/drivers/net/wan/cosa.c
+++ b/drivers/net/wan/cosa.c
@@ -345,7 +345,7 @@ static void put_driver_status(struct cosa_data *cosa);
345static void put_driver_status_nolock(struct cosa_data *cosa); 345static void put_driver_status_nolock(struct cosa_data *cosa);
346 346
347/* Interrupt handling */ 347/* Interrupt handling */
348static irqreturn_t cosa_interrupt(int irq, void *cosa, struct pt_regs *regs); 348static irqreturn_t cosa_interrupt(int irq, void *cosa);
349 349
350/* I/O ops debugging */ 350/* I/O ops debugging */
351#ifdef DEBUG_IO 351#ifdef DEBUG_IO
@@ -1972,7 +1972,7 @@ out:
1972 spin_unlock_irqrestore(&cosa->lock, flags); 1972 spin_unlock_irqrestore(&cosa->lock, flags);
1973} 1973}
1974 1974
1975static irqreturn_t cosa_interrupt(int irq, void *cosa_, struct pt_regs *regs) 1975static irqreturn_t cosa_interrupt(int irq, void *cosa_)
1976{ 1976{
1977 unsigned status; 1977 unsigned status;
1978 int count = 0; 1978 int count = 0;
diff --git a/drivers/net/wan/cycx_main.c b/drivers/net/wan/cycx_main.c
index a5e7ce1bd16a..6e5f1c898517 100644
--- a/drivers/net/wan/cycx_main.c
+++ b/drivers/net/wan/cycx_main.c
@@ -74,7 +74,7 @@ static int cycx_wan_setup(struct wan_device *wandev, wandev_conf_t *conf);
74static int cycx_wan_shutdown(struct wan_device *wandev); 74static int cycx_wan_shutdown(struct wan_device *wandev);
75 75
76/* Miscellaneous functions */ 76/* Miscellaneous functions */
77static irqreturn_t cycx_isr(int irq, void *dev_id, struct pt_regs *regs); 77static irqreturn_t cycx_isr(int irq, void *dev_id);
78 78
79/* Global Data 79/* Global Data
80 * Note: All data must be explicitly initialized!!! 80 * Note: All data must be explicitly initialized!!!
@@ -301,11 +301,11 @@ out: return ret;
301 * o acknowledge Cyclom 2X hardware interrupt. 301 * o acknowledge Cyclom 2X hardware interrupt.
302 * o call protocol-specific interrupt service routine, if any. 302 * o call protocol-specific interrupt service routine, if any.
303 */ 303 */
304static irqreturn_t cycx_isr(int irq, void *dev_id, struct pt_regs *regs) 304static irqreturn_t cycx_isr(int irq, void *dev_id)
305{ 305{
306 struct cycx_device *card = (struct cycx_device *)dev_id; 306 struct cycx_device *card = dev_id;
307 307
308 if (!card || card->wandev.state == WAN_UNCONFIGURED) 308 if (card->wandev.state == WAN_UNCONFIGURED)
309 goto out; 309 goto out;
310 310
311 if (card->in_isr) { 311 if (card->in_isr) {
diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c
index af4d4155905b..25021a7992a9 100644
--- a/drivers/net/wan/dscc4.c
+++ b/drivers/net/wan/dscc4.c
@@ -365,7 +365,7 @@ static int dscc4_init_ring(struct net_device *);
365static void dscc4_release_ring(struct dscc4_dev_priv *); 365static void dscc4_release_ring(struct dscc4_dev_priv *);
366static void dscc4_timer(unsigned long); 366static void dscc4_timer(unsigned long);
367static void dscc4_tx_timeout(struct net_device *); 367static void dscc4_tx_timeout(struct net_device *);
368static irqreturn_t dscc4_irq(int irq, void *dev_id, struct pt_regs *ptregs); 368static irqreturn_t dscc4_irq(int irq, void *dev_id);
369static int dscc4_hdlc_attach(struct net_device *, unsigned short, unsigned short); 369static int dscc4_hdlc_attach(struct net_device *, unsigned short, unsigned short);
370static int dscc4_set_iface(struct dscc4_dev_priv *, struct net_device *); 370static int dscc4_set_iface(struct dscc4_dev_priv *, struct net_device *);
371#ifdef DSCC4_POLLING 371#ifdef DSCC4_POLLING
@@ -1476,7 +1476,7 @@ static int dscc4_set_iface(struct dscc4_dev_priv *dpriv, struct net_device *dev)
1476 return ret; 1476 return ret;
1477} 1477}
1478 1478
1479static irqreturn_t dscc4_irq(int irq, void *token, struct pt_regs *ptregs) 1479static irqreturn_t dscc4_irq(int irq, void *token)
1480{ 1480{
1481 struct dscc4_dev_priv *root = token; 1481 struct dscc4_dev_priv *root = token;
1482 struct dscc4_pci_priv *priv; 1482 struct dscc4_pci_priv *priv;
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c
index 564351aafa41..c45d6a83339d 100644
--- a/drivers/net/wan/farsync.c
+++ b/drivers/net/wan/farsync.c
@@ -1498,7 +1498,7 @@ do_bottom_half_rx(struct fst_card_info *card)
1498 * Dev_id is our fst_card_info pointer 1498 * Dev_id is our fst_card_info pointer
1499 */ 1499 */
1500static irqreturn_t 1500static irqreturn_t
1501fst_intr(int irq, void *dev_id, struct pt_regs *regs) 1501fst_intr(int irq, void *dev_id)
1502{ 1502{
1503 struct fst_card_info *card; 1503 struct fst_card_info *card;
1504 struct fst_port_info *port; 1504 struct fst_port_info *port;
diff --git a/drivers/net/wan/hd6457x.c b/drivers/net/wan/hd6457x.c
index dce2bb317b82..8d0a1f2f00e5 100644
--- a/drivers/net/wan/hd6457x.c
+++ b/drivers/net/wan/hd6457x.c
@@ -424,7 +424,7 @@ static inline void sca_tx_intr(port_t *port)
424 424
425 425
426 426
427static irqreturn_t sca_intr(int irq, void* dev_id, struct pt_regs *regs) 427static irqreturn_t sca_intr(int irq, void* dev_id)
428{ 428{
429 card_t *card = dev_id; 429 card_t *card = dev_id;
430 int i; 430 int i;
diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c
index 7b5d81deb028..2b54f1bc3a0d 100644
--- a/drivers/net/wan/lmc/lmc_main.c
+++ b/drivers/net/wan/lmc/lmc_main.c
@@ -100,7 +100,7 @@ static int lmc_rx (struct net_device *dev);
100static int lmc_open(struct net_device *dev); 100static int lmc_open(struct net_device *dev);
101static int lmc_close(struct net_device *dev); 101static int lmc_close(struct net_device *dev);
102static struct net_device_stats *lmc_get_stats(struct net_device *dev); 102static struct net_device_stats *lmc_get_stats(struct net_device *dev);
103static irqreturn_t lmc_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 103static irqreturn_t lmc_interrupt(int irq, void *dev_instance);
104static void lmc_initcsrs(lmc_softc_t * const sc, lmc_csrptr_t csr_base, size_t csr_size); 104static void lmc_initcsrs(lmc_softc_t * const sc, lmc_csrptr_t csr_base, size_t csr_size);
105static void lmc_softreset(lmc_softc_t * const); 105static void lmc_softreset(lmc_softc_t * const);
106static void lmc_running_reset(struct net_device *dev); 106static void lmc_running_reset(struct net_device *dev);
@@ -1273,7 +1273,7 @@ static int lmc_ifdown (struct net_device *dev) /*fold00*/
1273/* Interrupt handling routine. This will take an incoming packet, or clean 1273/* Interrupt handling routine. This will take an incoming packet, or clean
1274 * up after a trasmit. 1274 * up after a trasmit.
1275 */ 1275 */
1276static irqreturn_t lmc_interrupt (int irq, void *dev_instance, struct pt_regs *regs) /*fold00*/ 1276static irqreturn_t lmc_interrupt (int irq, void *dev_instance) /*fold00*/
1277{ 1277{
1278 struct net_device *dev = (struct net_device *) dev_instance; 1278 struct net_device *dev = (struct net_device *) dev_instance;
1279 lmc_softc_t *sc; 1279 lmc_softc_t *sc;
diff --git a/drivers/net/wan/pc300_drv.c b/drivers/net/wan/pc300_drv.c
index 8d9b959bf15b..5823e3bca178 100644
--- a/drivers/net/wan/pc300_drv.c
+++ b/drivers/net/wan/pc300_drv.c
@@ -284,7 +284,7 @@ static void rx_dma_buf_pt_init(pc300_t *, int);
284static void rx_dma_buf_init(pc300_t *, int); 284static void rx_dma_buf_init(pc300_t *, int);
285static void tx_dma_buf_check(pc300_t *, int); 285static void tx_dma_buf_check(pc300_t *, int);
286static void rx_dma_buf_check(pc300_t *, int); 286static void rx_dma_buf_check(pc300_t *, int);
287static irqreturn_t cpc_intr(int, void *, struct pt_regs *); 287static irqreturn_t cpc_intr(int, void *);
288static struct net_device_stats *cpc_get_stats(struct net_device *); 288static struct net_device_stats *cpc_get_stats(struct net_device *);
289static int clock_rate_calc(uclong, uclong, int *); 289static int clock_rate_calc(uclong, uclong, int *);
290static uclong detect_ram(pc300_t *); 290static uclong detect_ram(pc300_t *);
@@ -2363,7 +2363,7 @@ static void falc_intr(pc300_t * card)
2363 } 2363 }
2364} 2364}
2365 2365
2366static irqreturn_t cpc_intr(int irq, void *dev_id, struct pt_regs *regs) 2366static irqreturn_t cpc_intr(int irq, void *dev_id)
2367{ 2367{
2368 pc300_t *card; 2368 pc300_t *card;
2369 volatile ucchar plx_status; 2369 volatile ucchar plx_status;
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index fc75bec19029..fc5c0c611ffd 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -119,7 +119,7 @@ static int sbni_ioctl( struct net_device *, struct ifreq *, int );
119static struct net_device_stats *sbni_get_stats( struct net_device * ); 119static struct net_device_stats *sbni_get_stats( struct net_device * );
120static void set_multicast_list( struct net_device * ); 120static void set_multicast_list( struct net_device * );
121 121
122static irqreturn_t sbni_interrupt( int, void *, struct pt_regs * ); 122static irqreturn_t sbni_interrupt( int, void * );
123static void handle_channel( struct net_device * ); 123static void handle_channel( struct net_device * );
124static int recv_frame( struct net_device * ); 124static int recv_frame( struct net_device * );
125static void send_frame( struct net_device * ); 125static void send_frame( struct net_device * );
@@ -501,7 +501,7 @@ sbni_start_xmit( struct sk_buff *skb, struct net_device *dev )
501 */ 501 */
502 502
503static irqreturn_t 503static irqreturn_t
504sbni_interrupt( int irq, void *dev_id, struct pt_regs *regs ) 504sbni_interrupt( int irq, void *dev_id )
505{ 505{
506 struct net_device *dev = (struct net_device *) dev_id; 506 struct net_device *dev = (struct net_device *) dev_id;
507 struct net_local *nl = (struct net_local *) dev->priv; 507 struct net_local *nl = (struct net_local *) dev->priv;
diff --git a/drivers/net/wan/sdla.c b/drivers/net/wan/sdla.c
index 0ba018f8382b..6a485f0556f4 100644
--- a/drivers/net/wan/sdla.c
+++ b/drivers/net/wan/sdla.c
@@ -867,7 +867,7 @@ static void sdla_receive(struct net_device *dev)
867 spin_unlock_irqrestore(&sdla_lock, flags); 867 spin_unlock_irqrestore(&sdla_lock, flags);
868} 868}
869 869
870static irqreturn_t sdla_isr(int irq, void *dev_id, struct pt_regs * regs) 870static irqreturn_t sdla_isr(int irq, void *dev_id)
871{ 871{
872 struct net_device *dev; 872 struct net_device *dev;
873 struct frad_local *flp; 873 struct frad_local *flp;
@@ -875,13 +875,7 @@ static irqreturn_t sdla_isr(int irq, void *dev_id, struct pt_regs * regs)
875 875
876 dev = dev_id; 876 dev = dev_id;
877 877
878 if (dev == NULL) 878 flp = netdev_priv(dev);
879 {
880 printk(KERN_WARNING "sdla_isr(): irq %d for unknown device.\n", irq);
881 return IRQ_NONE;
882 }
883
884 flp = dev->priv;
885 879
886 if (!flp->initialized) 880 if (!flp->initialized)
887 { 881 {
diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c
index ec68f7dfd93f..c73601574334 100644
--- a/drivers/net/wan/wanxl.c
+++ b/drivers/net/wan/wanxl.c
@@ -244,7 +244,7 @@ static inline void wanxl_rx_intr(card_t *card)
244 244
245 245
246 246
247static irqreturn_t wanxl_intr(int irq, void* dev_id, struct pt_regs *regs) 247static irqreturn_t wanxl_intr(int irq, void* dev_id)
248{ 248{
249 card_t *card = dev_id; 249 card_t *card = dev_id;
250 int i; 250 int i;
diff --git a/drivers/net/wan/z85230.c b/drivers/net/wan/z85230.c
index caa48f12fd0f..59ddd21c3958 100644
--- a/drivers/net/wan/z85230.c
+++ b/drivers/net/wan/z85230.c
@@ -728,7 +728,7 @@ EXPORT_SYMBOL(z8530_nop);
728 * channel). c->lock for both channels points to dev->lock 728 * channel). c->lock for both channels points to dev->lock
729 */ 729 */
730 730
731irqreturn_t z8530_interrupt(int irq, void *dev_id, struct pt_regs *regs) 731irqreturn_t z8530_interrupt(int irq, void *dev_id)
732{ 732{
733 struct z8530_dev *dev=dev_id; 733 struct z8530_dev *dev=dev_id;
734 u8 intr; 734 u8 intr;
diff --git a/drivers/net/wan/z85230.h b/drivers/net/wan/z85230.h
index 77e53208045f..158aea7b8eac 100644
--- a/drivers/net/wan/z85230.h
+++ b/drivers/net/wan/z85230.h
@@ -396,7 +396,7 @@ struct z8530_dev
396extern u8 z8530_dead_port[]; 396extern u8 z8530_dead_port[];
397extern u8 z8530_hdlc_kilostream_85230[]; 397extern u8 z8530_hdlc_kilostream_85230[];
398extern u8 z8530_hdlc_kilostream[]; 398extern u8 z8530_hdlc_kilostream[];
399extern irqreturn_t z8530_interrupt(int, void *, struct pt_regs *); 399extern irqreturn_t z8530_interrupt(int, void *);
400extern void z8530_describe(struct z8530_dev *, char *mapping, unsigned long io); 400extern void z8530_describe(struct z8530_dev *, char *mapping, unsigned long io);
401extern int z8530_init(struct z8530_dev *); 401extern int z8530_init(struct z8530_dev *);
402extern int z8530_shutdown(struct z8530_dev *); 402extern int z8530_shutdown(struct z8530_dev *);
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index 39d09345027c..0a33c8a56e13 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -1120,8 +1120,7 @@ static void mpi_receive_802_3(struct airo_info *ai);
1120static void mpi_receive_802_11(struct airo_info *ai); 1120static void mpi_receive_802_11(struct airo_info *ai);
1121static int waitbusy (struct airo_info *ai); 1121static int waitbusy (struct airo_info *ai);
1122 1122
1123static irqreturn_t airo_interrupt( int irq, void* dev_id, struct pt_regs 1123static irqreturn_t airo_interrupt( int irq, void* dev_id);
1124 *regs);
1125static int airo_thread(void *data); 1124static int airo_thread(void *data);
1126static void timer_func( struct net_device *dev ); 1125static void timer_func( struct net_device *dev );
1127static int airo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 1126static int airo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -3151,7 +3150,7 @@ static int airo_thread(void *data) {
3151 return 0; 3150 return 0;
3152} 3151}
3153 3152
3154static irqreturn_t airo_interrupt ( int irq, void* dev_id, struct pt_regs *regs) { 3153static irqreturn_t airo_interrupt ( int irq, void* dev_id) {
3155 struct net_device *dev = (struct net_device *)dev_id; 3154 struct net_device *dev = (struct net_device *)dev_id;
3156 u16 status; 3155 u16 status;
3157 u16 fid; 3156 u16 fid;
diff --git a/drivers/net/wireless/arlan-main.c b/drivers/net/wireless/arlan-main.c
index bb6bea4f3233..4688e56b69c7 100644
--- a/drivers/net/wireless/arlan-main.c
+++ b/drivers/net/wireless/arlan-main.c
@@ -78,7 +78,7 @@ static int arlans_found;
78 78
79static int arlan_open(struct net_device *dev); 79static int arlan_open(struct net_device *dev);
80static int arlan_tx(struct sk_buff *skb, struct net_device *dev); 80static int arlan_tx(struct sk_buff *skb, struct net_device *dev);
81static irqreturn_t arlan_interrupt(int irq, void *dev_id, struct pt_regs *regs); 81static irqreturn_t arlan_interrupt(int irq, void *dev_id);
82static int arlan_close(struct net_device *dev); 82static int arlan_close(struct net_device *dev);
83static struct net_device_stats * 83static struct net_device_stats *
84 arlan_statistics (struct net_device *dev); 84 arlan_statistics (struct net_device *dev);
@@ -1651,7 +1651,7 @@ end_int_process:
1651 return; 1651 return;
1652} 1652}
1653 1653
1654static irqreturn_t arlan_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1654static irqreturn_t arlan_interrupt(int irq, void *dev_id)
1655{ 1655{
1656 struct net_device *dev = dev_id; 1656 struct net_device *dev = dev_id;
1657 struct arlan_private *priv = netdev_priv(dev); 1657 struct arlan_private *priv = netdev_priv(dev);
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index 0fc267d626dc..31eed85de60f 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -1145,7 +1145,7 @@ next:
1145 } 1145 }
1146} 1146}
1147 1147
1148static irqreturn_t service_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1148static irqreturn_t service_interrupt(int irq, void *dev_id)
1149{ 1149{
1150 struct net_device *dev = (struct net_device *) dev_id; 1150 struct net_device *dev = (struct net_device *) dev_id;
1151 struct atmel_private *priv = netdev_priv(dev); 1151 struct atmel_private *priv = netdev_priv(dev);
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
index eb65db7393ba..bad3452ea893 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
@@ -1834,7 +1834,7 @@ static void bcm43xx_interrupt_ack(struct bcm43xx_private *bcm, u32 reason)
1834} 1834}
1835 1835
1836/* Interrupt handler top-half */ 1836/* Interrupt handler top-half */
1837static irqreturn_t bcm43xx_interrupt_handler(int irq, void *dev_id, struct pt_regs *regs) 1837static irqreturn_t bcm43xx_interrupt_handler(int irq, void *dev_id)
1838{ 1838{
1839 irqreturn_t ret = IRQ_HANDLED; 1839 irqreturn_t ret = IRQ_HANDLED;
1840 struct bcm43xx_private *bcm = dev_id; 1840 struct bcm43xx_private *bcm = dev_id;
@@ -3963,7 +3963,7 @@ static void bcm43xx_net_poll_controller(struct net_device *net_dev)
3963 3963
3964 local_irq_save(flags); 3964 local_irq_save(flags);
3965 if (bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED) 3965 if (bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED)
3966 bcm43xx_interrupt_handler(bcm->irq, bcm, NULL); 3966 bcm43xx_interrupt_handler(bcm->irq, bcm);
3967 local_irq_restore(flags); 3967 local_irq_restore(flags);
3968} 3968}
3969#endif /* CONFIG_NET_POLL_CONTROLLER */ 3969#endif /* CONFIG_NET_POLL_CONTROLLER */
diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
index d500012fdc7a..ed00ebb6e7f4 100644
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
@@ -2622,7 +2622,7 @@ static void prism2_check_magic(local_info_t *local)
2622 2622
2623 2623
2624/* Called only from hardware IRQ */ 2624/* Called only from hardware IRQ */
2625static irqreturn_t prism2_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2625static irqreturn_t prism2_interrupt(int irq, void *dev_id)
2626{ 2626{
2627 struct net_device *dev = (struct net_device *) dev_id; 2627 struct net_device *dev = (struct net_device *) dev_id;
2628 struct hostap_interface *iface; 2628 struct hostap_interface *iface;
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index 599e2fe76188..4e4eaa2a99ca 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -3255,7 +3255,7 @@ static void ipw2100_irq_tasklet(struct ipw2100_priv *priv)
3255 IPW_DEBUG_ISR("exit\n"); 3255 IPW_DEBUG_ISR("exit\n");
3256} 3256}
3257 3257
3258static irqreturn_t ipw2100_interrupt(int irq, void *data, struct pt_regs *regs) 3258static irqreturn_t ipw2100_interrupt(int irq, void *data)
3259{ 3259{
3260 struct ipw2100_priv *priv = data; 3260 struct ipw2100_priv *priv = data;
3261 u32 inta, inta_mask; 3261 u32 inta, inta_mask;
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index 5685d7ba55bb..1f742814a01c 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -10467,7 +10467,7 @@ static const struct ethtool_ops ipw_ethtool_ops = {
10467 .set_eeprom = ipw_ethtool_set_eeprom, 10467 .set_eeprom = ipw_ethtool_set_eeprom,
10468}; 10468};
10469 10469
10470static irqreturn_t ipw_isr(int irq, void *data, struct pt_regs *regs) 10470static irqreturn_t ipw_isr(int irq, void *data)
10471{ 10471{
10472 struct ipw_priv *priv = data; 10472 struct ipw_priv *priv = data;
10473 u32 inta, inta_mask; 10473 u32 inta, inta_mask;
diff --git a/drivers/net/wireless/netwave_cs.c b/drivers/net/wireless/netwave_cs.c
index 36b5e004305e..6714e0dfa8d6 100644
--- a/drivers/net/wireless/netwave_cs.c
+++ b/drivers/net/wireless/netwave_cs.c
@@ -207,7 +207,7 @@ static int netwave_start_xmit( struct sk_buff *skb, struct net_device *dev);
207static int netwave_rx( struct net_device *dev); 207static int netwave_rx( struct net_device *dev);
208 208
209/* Interrupt routines */ 209/* Interrupt routines */
210static irqreturn_t netwave_interrupt(int irq, void *dev_id, struct pt_regs *regs); 210static irqreturn_t netwave_interrupt(int irq, void *dev_id);
211static void netwave_watchdog(struct net_device *); 211static void netwave_watchdog(struct net_device *);
212 212
213/* Statistics */ 213/* Statistics */
@@ -1072,7 +1072,7 @@ static int netwave_start_xmit(struct sk_buff *skb, struct net_device *dev) {
1072} /* netwave_start_xmit */ 1072} /* netwave_start_xmit */
1073 1073
1074/* 1074/*
1075 * Function netwave_interrupt (irq, dev_id, regs) 1075 * Function netwave_interrupt (irq, dev_id)
1076 * 1076 *
1077 * This function is the interrupt handler for the Netwave card. This 1077 * This function is the interrupt handler for the Netwave card. This
1078 * routine will be called whenever: 1078 * routine will be called whenever:
@@ -1081,7 +1081,7 @@ static int netwave_start_xmit(struct sk_buff *skb, struct net_device *dev) {
1081 * ready to transmit another packet. 1081 * ready to transmit another packet.
1082 * 3. A command has completed execution. 1082 * 3. A command has completed execution.
1083 */ 1083 */
1084static irqreturn_t netwave_interrupt(int irq, void* dev_id, struct pt_regs *regs) 1084static irqreturn_t netwave_interrupt(int irq, void* dev_id)
1085{ 1085{
1086 kio_addr_t iobase; 1086 kio_addr_t iobase;
1087 u_char __iomem *ramBase; 1087 u_char __iomem *ramBase;
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 9e19a963febc..b779c7dcc1a8 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -1952,9 +1952,9 @@ static void __orinoco_ev_wterr(struct net_device *dev, hermes_t *hw)
1952 dev->name); 1952 dev->name);
1953} 1953}
1954 1954
1955irqreturn_t orinoco_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1955irqreturn_t orinoco_interrupt(int irq, void *dev_id)
1956{ 1956{
1957 struct net_device *dev = (struct net_device *)dev_id; 1957 struct net_device *dev = dev_id;
1958 struct orinoco_private *priv = netdev_priv(dev); 1958 struct orinoco_private *priv = netdev_priv(dev);
1959 hermes_t *hw = &priv->hw; 1959 hermes_t *hw = &priv->hw;
1960 int count = MAX_IRQLOOPS_PER_IRQ; 1960 int count = MAX_IRQLOOPS_PER_IRQ;
diff --git a/drivers/net/wireless/orinoco.h b/drivers/net/wireless/orinoco.h
index fb5700d6c454..4720fb20d66d 100644
--- a/drivers/net/wireless/orinoco.h
+++ b/drivers/net/wireless/orinoco.h
@@ -128,7 +128,7 @@ extern void free_orinocodev(struct net_device *dev);
128extern int __orinoco_up(struct net_device *dev); 128extern int __orinoco_up(struct net_device *dev);
129extern int __orinoco_down(struct net_device *dev); 129extern int __orinoco_down(struct net_device *dev);
130extern int orinoco_reinit_firmware(struct net_device *dev); 130extern int orinoco_reinit_firmware(struct net_device *dev);
131extern irqreturn_t orinoco_interrupt(int irq, void * dev_id, struct pt_regs *regs); 131extern irqreturn_t orinoco_interrupt(int irq, void * dev_id);
132 132
133/********************************************************************/ 133/********************************************************************/
134/* Locking and synchronization functions */ 134/* Locking and synchronization functions */
diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c
index ab3c5a27efd9..ec1c00f19eb3 100644
--- a/drivers/net/wireless/prism54/islpci_dev.c
+++ b/drivers/net/wireless/prism54/islpci_dev.c
@@ -182,7 +182,7 @@ isl_upload_firmware(islpci_private *priv)
182******************************************************************************/ 182******************************************************************************/
183 183
184irqreturn_t 184irqreturn_t
185islpci_interrupt(int irq, void *config, struct pt_regs *regs) 185islpci_interrupt(int irq, void *config)
186{ 186{
187 u32 reg; 187 u32 reg;
188 islpci_private *priv = config; 188 islpci_private *priv = config;
diff --git a/drivers/net/wireless/prism54/islpci_dev.h b/drivers/net/wireless/prism54/islpci_dev.h
index 5049f37455b1..2f7e525d0cf6 100644
--- a/drivers/net/wireless/prism54/islpci_dev.h
+++ b/drivers/net/wireless/prism54/islpci_dev.h
@@ -198,7 +198,7 @@ islpci_state_t islpci_set_state(islpci_private *priv, islpci_state_t new_state);
198 198
199#define ISLPCI_TX_TIMEOUT (2*HZ) 199#define ISLPCI_TX_TIMEOUT (2*HZ)
200 200
201irqreturn_t islpci_interrupt(int, void *, struct pt_regs *); 201irqreturn_t islpci_interrupt(int, void *);
202 202
203int prism54_post_setup(islpci_private *, int); 203int prism54_post_setup(islpci_private *, int);
204int islpci_reset(islpci_private *, int); 204int islpci_reset(islpci_private *, int);
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index e82548ea609a..0b381d77015c 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -130,7 +130,7 @@ static void ray_update_parm(struct net_device *dev, UCHAR objid, UCHAR *value, i
130static void verify_dl_startup(u_long); 130static void verify_dl_startup(u_long);
131 131
132/* Prototypes for interrpt time functions **********************************/ 132/* Prototypes for interrpt time functions **********************************/
133static irqreturn_t ray_interrupt (int reg, void *dev_id, struct pt_regs *regs); 133static irqreturn_t ray_interrupt (int reg, void *dev_id);
134static void clear_interrupt(ray_dev_t *local); 134static void clear_interrupt(ray_dev_t *local);
135static void rx_deauthenticate(ray_dev_t *local, struct rcs __iomem *prcs, 135static void rx_deauthenticate(ray_dev_t *local, struct rcs __iomem *prcs,
136 unsigned int pkt_addr, int rx_len); 136 unsigned int pkt_addr, int rx_len);
@@ -1940,7 +1940,7 @@ static void set_multicast_list(struct net_device *dev)
1940/*============================================================================= 1940/*=============================================================================
1941 * All routines below here are run at interrupt time. 1941 * All routines below here are run at interrupt time.
1942=============================================================================*/ 1942=============================================================================*/
1943static irqreturn_t ray_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1943static irqreturn_t ray_interrupt(int irq, void *dev_id)
1944{ 1944{
1945 struct net_device *dev = (struct net_device *)dev_id; 1945 struct net_device *dev = (struct net_device *)dev_id;
1946 struct pcmcia_device *link; 1946 struct pcmcia_device *link;
diff --git a/drivers/net/wireless/wavelan.c b/drivers/net/wireless/wavelan.c
index 5b69befdab74..24221e476cd3 100644
--- a/drivers/net/wireless/wavelan.c
+++ b/drivers/net/wireless/wavelan.c
@@ -3768,7 +3768,7 @@ static int wv_check_ioaddr(unsigned long ioaddr, u8 * mac)
3768 * This function is the interrupt handler for the WaveLAN card. This 3768 * This function is the interrupt handler for the WaveLAN card. This
3769 * routine will be called whenever: 3769 * routine will be called whenever:
3770 */ 3770 */
3771static irqreturn_t wavelan_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3771static irqreturn_t wavelan_interrupt(int irq, void *dev_id)
3772{ 3772{
3773 struct net_device *dev; 3773 struct net_device *dev;
3774 unsigned long ioaddr; 3774 unsigned long ioaddr;
diff --git a/drivers/net/wireless/wavelan.p.h b/drivers/net/wireless/wavelan.p.h
index 5cb0bc8bb128..72b646c77d5a 100644
--- a/drivers/net/wireless/wavelan.p.h
+++ b/drivers/net/wireless/wavelan.p.h
@@ -642,8 +642,7 @@ static int
642/* ---------------------- INTERRUPT HANDLING ---------------------- */ 642/* ---------------------- INTERRUPT HANDLING ---------------------- */
643static irqreturn_t 643static irqreturn_t
644 wavelan_interrupt(int, /* interrupt handler */ 644 wavelan_interrupt(int, /* interrupt handler */
645 void *, 645 void *);
646 struct pt_regs *);
647static void 646static void
648 wavelan_watchdog(struct net_device *); /* transmission watchdog */ 647 wavelan_watchdog(struct net_device *); /* transmission watchdog */
649/* ------------------- CONFIGURATION CALLBACKS ------------------- */ 648/* ------------------- CONFIGURATION CALLBACKS ------------------- */
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c
index 0065f057bb1c..aafb301041b1 100644
--- a/drivers/net/wireless/wavelan_cs.c
+++ b/drivers/net/wireless/wavelan_cs.c
@@ -4117,24 +4117,14 @@ wv_pcmcia_release(struct pcmcia_device *link)
4117 */ 4117 */
4118static irqreturn_t 4118static irqreturn_t
4119wavelan_interrupt(int irq, 4119wavelan_interrupt(int irq,
4120 void * dev_id, 4120 void * dev_id)
4121 struct pt_regs * regs)
4122{ 4121{
4123 struct net_device * dev; 4122 struct net_device * dev = dev_id;
4124 net_local * lp; 4123 net_local * lp;
4125 kio_addr_t base; 4124 kio_addr_t base;
4126 int status0; 4125 int status0;
4127 u_int tx_status; 4126 u_int tx_status;
4128 4127
4129 if ((dev = dev_id) == NULL)
4130 {
4131#ifdef DEBUG_INTERRUPT_ERROR
4132 printk(KERN_WARNING "wavelan_interrupt(): irq %d for unknown device.\n",
4133 irq);
4134#endif
4135 return IRQ_NONE;
4136 }
4137
4138#ifdef DEBUG_INTERRUPT_TRACE 4128#ifdef DEBUG_INTERRUPT_TRACE
4139 printk(KERN_DEBUG "%s: ->wavelan_interrupt()\n", dev->name); 4129 printk(KERN_DEBUG "%s: ->wavelan_interrupt()\n", dev->name);
4140#endif 4130#endif
diff --git a/drivers/net/wireless/wavelan_cs.p.h b/drivers/net/wireless/wavelan_cs.p.h
index f34a36b0c7b0..4d1c4905c749 100644
--- a/drivers/net/wireless/wavelan_cs.p.h
+++ b/drivers/net/wireless/wavelan_cs.p.h
@@ -738,8 +738,7 @@ static void
738/* ---------------------- INTERRUPT HANDLING ---------------------- */ 738/* ---------------------- INTERRUPT HANDLING ---------------------- */
739static irqreturn_t 739static irqreturn_t
740 wavelan_interrupt(int, /* Interrupt handler */ 740 wavelan_interrupt(int, /* Interrupt handler */
741 void *, 741 void *);
742 struct pt_regs *);
743static void 742static void
744 wavelan_watchdog(struct net_device *); /* Transmission watchdog */ 743 wavelan_watchdog(struct net_device *); /* Transmission watchdog */
745/* ------------------- CONFIGURATION CALLBACKS ------------------- */ 744/* ------------------- CONFIGURATION CALLBACKS ------------------- */
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index e3ae5f60d5be..5b98a7876982 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -1145,7 +1145,6 @@ static inline void wl3501_ack_interrupt(struct wl3501_card *this)
1145 * wl3501_interrupt - Hardware interrupt from card. 1145 * wl3501_interrupt - Hardware interrupt from card.
1146 * @irq - Interrupt number 1146 * @irq - Interrupt number
1147 * @dev_id - net_device 1147 * @dev_id - net_device
1148 * @regs - registers
1149 * 1148 *
1150 * We must acknowledge the interrupt as soon as possible, and block the 1149 * We must acknowledge the interrupt as soon as possible, and block the
1151 * interrupt from the same card immediately to prevent re-entry. 1150 * interrupt from the same card immediately to prevent re-entry.
@@ -1154,27 +1153,20 @@ static inline void wl3501_ack_interrupt(struct wl3501_card *this)
1154 * On the other hand, to prevent SUTRO from malfunctioning, we must 1153 * On the other hand, to prevent SUTRO from malfunctioning, we must
1155 * unlock the SUTRO as soon as possible. 1154 * unlock the SUTRO as soon as possible.
1156 */ 1155 */
1157static irqreturn_t wl3501_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1156static irqreturn_t wl3501_interrupt(int irq, void *dev_id)
1158{ 1157{
1159 struct net_device *dev = (struct net_device *)dev_id; 1158 struct net_device *dev = dev_id;
1160 struct wl3501_card *this; 1159 struct wl3501_card *this;
1161 int handled = 1;
1162 1160
1163 if (!dev) 1161 this = netdev_priv(dev);
1164 goto unknown;
1165 this = dev->priv;
1166 spin_lock(&this->lock); 1162 spin_lock(&this->lock);
1167 wl3501_ack_interrupt(this); 1163 wl3501_ack_interrupt(this);
1168 wl3501_block_interrupt(this); 1164 wl3501_block_interrupt(this);
1169 wl3501_rx_interrupt(dev); 1165 wl3501_rx_interrupt(dev);
1170 wl3501_unblock_interrupt(this); 1166 wl3501_unblock_interrupt(this);
1171 spin_unlock(&this->lock); 1167 spin_unlock(&this->lock);
1172out: 1168
1173 return IRQ_RETVAL(handled); 1169 return IRQ_HANDLED;
1174unknown:
1175 handled = 0;
1176 printk(KERN_ERR "%s: irq %d for unknown device.\n", __FUNCTION__, irq);
1177 goto out;
1178} 1170}
1179 1171
1180static int wl3501_reset_board(struct wl3501_card *this) 1172static int wl3501_reset_board(struct wl3501_card *this)
diff --git a/drivers/net/wireless/zd1201.c b/drivers/net/wireless/zd1201.c
index 80af9a9fcbb3..30057a335a7b 100644
--- a/drivers/net/wireless/zd1201.c
+++ b/drivers/net/wireless/zd1201.c
@@ -112,7 +112,7 @@ exit:
112 return err; 112 return err;
113} 113}
114 114
115static void zd1201_usbfree(struct urb *urb, struct pt_regs *regs) 115static void zd1201_usbfree(struct urb *urb)
116{ 116{
117 struct zd1201 *zd = urb->context; 117 struct zd1201 *zd = urb->context;
118 118
@@ -177,7 +177,7 @@ static int zd1201_docmd(struct zd1201 *zd, int cmd, int parm0,
177} 177}
178 178
179/* Callback after sending out a packet */ 179/* Callback after sending out a packet */
180static void zd1201_usbtx(struct urb *urb, struct pt_regs *regs) 180static void zd1201_usbtx(struct urb *urb)
181{ 181{
182 struct zd1201 *zd = urb->context; 182 struct zd1201 *zd = urb->context;
183 netif_wake_queue(zd->dev); 183 netif_wake_queue(zd->dev);
@@ -185,7 +185,7 @@ static void zd1201_usbtx(struct urb *urb, struct pt_regs *regs)
185} 185}
186 186
187/* Incoming data */ 187/* Incoming data */
188static void zd1201_usbrx(struct urb *urb, struct pt_regs *regs) 188static void zd1201_usbrx(struct urb *urb)
189{ 189{
190 struct zd1201 *zd = urb->context; 190 struct zd1201 *zd = urb->context;
191 int free = 0; 191 int free = 0;
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
index 5c265ad0485a..3faaeb2b7c89 100644
--- a/drivers/net/wireless/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/zd1211rw/zd_usb.c
@@ -408,7 +408,7 @@ static inline void handle_retry_failed_int(struct urb *urb)
408} 408}
409 409
410 410
411static void int_urb_complete(struct urb *urb, struct pt_regs *pt_regs) 411static void int_urb_complete(struct urb *urb)
412{ 412{
413 int r; 413 int r;
414 struct usb_int_header *hdr; 414 struct usb_int_header *hdr;
@@ -609,7 +609,7 @@ static void handle_rx_packet(struct zd_usb *usb, const u8 *buffer,
609 } 609 }
610} 610}
611 611
612static void rx_urb_complete(struct urb *urb, struct pt_regs *pt_regs) 612static void rx_urb_complete(struct urb *urb)
613{ 613{
614 struct zd_usb *usb; 614 struct zd_usb *usb;
615 struct zd_usb_rx *rx; 615 struct zd_usb_rx *rx;
@@ -779,7 +779,7 @@ void zd_usb_disable_rx(struct zd_usb *usb)
779 spin_unlock_irqrestore(&rx->lock, flags); 779 spin_unlock_irqrestore(&rx->lock, flags);
780} 780}
781 781
782static void tx_urb_complete(struct urb *urb, struct pt_regs *pt_regs) 782static void tx_urb_complete(struct urb *urb)
783{ 783{
784 int r; 784 int r;
785 785
diff --git a/drivers/net/yellowfin.c b/drivers/net/yellowfin.c
index a4c4953f1365..2412ce4917f2 100644
--- a/drivers/net/yellowfin.c
+++ b/drivers/net/yellowfin.c
@@ -350,7 +350,7 @@ static void yellowfin_timer(unsigned long data);
350static void yellowfin_tx_timeout(struct net_device *dev); 350static void yellowfin_tx_timeout(struct net_device *dev);
351static void yellowfin_init_ring(struct net_device *dev); 351static void yellowfin_init_ring(struct net_device *dev);
352static int yellowfin_start_xmit(struct sk_buff *skb, struct net_device *dev); 352static int yellowfin_start_xmit(struct sk_buff *skb, struct net_device *dev);
353static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 353static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance);
354static int yellowfin_rx(struct net_device *dev); 354static int yellowfin_rx(struct net_device *dev);
355static void yellowfin_error(struct net_device *dev, int intr_status); 355static void yellowfin_error(struct net_device *dev, int intr_status);
356static int yellowfin_close(struct net_device *dev); 356static int yellowfin_close(struct net_device *dev);
@@ -888,7 +888,7 @@ static int yellowfin_start_xmit(struct sk_buff *skb, struct net_device *dev)
888 888
889/* The interrupt handler does all of the Rx thread work and cleans up 889/* The interrupt handler does all of the Rx thread work and cleans up
890 after the Tx thread. */ 890 after the Tx thread. */
891static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 891static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance)
892{ 892{
893 struct net_device *dev = dev_instance; 893 struct net_device *dev = dev_instance;
894 struct yellowfin_private *yp; 894 struct yellowfin_private *yp;
@@ -896,13 +896,6 @@ static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance, struct pt_re
896 int boguscnt = max_interrupt_work; 896 int boguscnt = max_interrupt_work;
897 unsigned int handled = 0; 897 unsigned int handled = 0;
898 898
899#ifndef final_version /* Can never occur. */
900 if (dev == NULL) {
901 printk (KERN_ERR "yellowfin_interrupt(): irq %d for unknown device.\n", irq);
902 return IRQ_NONE;
903 }
904#endif
905
906 yp = netdev_priv(dev); 899 yp = netdev_priv(dev);
907 ioaddr = yp->base; 900 ioaddr = yp->base;
908 901
diff --git a/drivers/net/znet.c b/drivers/net/znet.c
index 656d5a02908b..b24b0727108c 100644
--- a/drivers/net/znet.c
+++ b/drivers/net/znet.c
@@ -158,7 +158,7 @@ struct netidblk {
158 158
159static int znet_open(struct net_device *dev); 159static int znet_open(struct net_device *dev);
160static int znet_send_packet(struct sk_buff *skb, struct net_device *dev); 160static int znet_send_packet(struct sk_buff *skb, struct net_device *dev);
161static irqreturn_t znet_interrupt(int irq, void *dev_id, struct pt_regs *regs); 161static irqreturn_t znet_interrupt(int irq, void *dev_id);
162static void znet_rx(struct net_device *dev); 162static void znet_rx(struct net_device *dev);
163static int znet_close(struct net_device *dev); 163static int znet_close(struct net_device *dev);
164static struct net_device_stats *net_get_stats(struct net_device *dev); 164static struct net_device_stats *net_get_stats(struct net_device *dev);
@@ -602,7 +602,7 @@ static int znet_send_packet(struct sk_buff *skb, struct net_device *dev)
602} 602}
603 603
604/* The ZNET interrupt handler. */ 604/* The ZNET interrupt handler. */
605static irqreturn_t znet_interrupt(int irq, void *dev_id, struct pt_regs * regs) 605static irqreturn_t znet_interrupt(int irq, void *dev_id)
606{ 606{
607 struct net_device *dev = dev_id; 607 struct net_device *dev = dev_id;
608 struct znet_private *znet = dev->priv; 608 struct znet_private *znet = dev->priv;
@@ -610,11 +610,6 @@ static irqreturn_t znet_interrupt(int irq, void *dev_id, struct pt_regs * regs)
610 int boguscnt = 20; 610 int boguscnt = 20;
611 int handled = 0; 611 int handled = 0;
612 612
613 if (dev == NULL) {
614 printk(KERN_WARNING "znet_interrupt(): IRQ %d for unknown device.\n", irq);
615 return IRQ_NONE;
616 }
617
618 spin_lock (&znet->lock); 613 spin_lock (&znet->lock);
619 614
620 ioaddr = dev->base_addr; 615 ioaddr = dev->base_addr;