aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-10-05 21:03:43 -0400
committerJeff Garzik <jeff@garzik.org>2006-10-05 21:03:43 -0400
commit4ad99f15c6a3cadf36928c399459ea4fdb3d49f9 (patch)
treed0536e4da737900fa27b235f175a3d179d692200
parent46767aeba58ca9357a2309765201bad38d8f5e9b (diff)
parent44aefd2706bb6f5b65ba2c38cd89e7609e2b43d3 (diff)
Merge branch 'master' into upstream-fixes
-rw-r--r--MAINTAINERS2
-rw-r--r--arch/frv/kernel/dma.c5
-rw-r--r--arch/frv/kernel/irq-mb93091.c4
-rw-r--r--arch/frv/kernel/irq-mb93093.c4
-rw-r--r--arch/frv/kernel/irq-mb93493.c4
-rw-r--r--arch/frv/kernel/irq.c2
-rw-r--r--arch/frv/kernel/time.c8
-rw-r--r--arch/i386/defconfig41
-rw-r--r--arch/i386/kernel/apic.c18
-rw-r--r--arch/i386/kernel/i8259.c4
-rw-r--r--arch/i386/kernel/irq.c12
-rw-r--r--arch/i386/kernel/process.c6
-rw-r--r--arch/i386/kernel/smp.c6
-rw-r--r--arch/i386/kernel/time.c6
-rw-r--r--arch/i386/kernel/time_hpet.c4
-rw-r--r--arch/i386/kernel/vm86.c2
-rw-r--r--arch/i386/lib/semaphore.S3
-rw-r--r--arch/i386/mach-visws/visws_apic.c4
-rw-r--r--arch/i386/mach-voyager/voyager_basic.c2
-rw-r--r--arch/i386/mach-voyager/voyager_smp.c28
-rw-r--r--arch/i386/pci/direct.c2
-rw-r--r--arch/i386/pci/init.c4
-rw-r--r--arch/ia64/kernel/irq_ia64.c4
-rw-r--r--arch/ia64/kernel/machvec.c2
-rw-r--r--arch/ia64/kernel/mca.c32
-rw-r--r--arch/ia64/kernel/time.c8
-rw-r--r--arch/ia64/sn/pci/tioca_provider.c3
-rw-r--r--arch/ia64/sn/pci/tioce_provider.c3
-rw-r--r--arch/mips/kernel/irq.c4
-rw-r--r--arch/mips/kernel/time.c24
-rw-r--r--arch/mips/sgi-ip22/ip22-reset.c2
-rw-r--r--arch/mips/sgi-ip22/ip22-time.c4
-rw-r--r--arch/powerpc/kernel/irq.c6
-rw-r--r--arch/powerpc/kernel/misc_64.S6
-rw-r--r--arch/powerpc/kernel/smp.c6
-rw-r--r--arch/powerpc/kernel/time.c6
-rw-r--r--arch/powerpc/platforms/cell/interrupt.c4
-rw-r--r--arch/powerpc/platforms/cell/spider-pic.c5
-rw-r--r--arch/powerpc/platforms/powermac/low_i2c.c2
-rw-r--r--arch/powerpc/platforms/powermac/pfunc_base.c2
-rw-r--r--arch/powerpc/platforms/powermac/pic.c7
-rw-r--r--arch/powerpc/platforms/pseries/ras.c14
-rw-r--r--arch/powerpc/platforms/pseries/setup.c7
-rw-r--r--arch/powerpc/platforms/pseries/xics.c18
-rw-r--r--arch/powerpc/platforms/pseries/xics.h3
-rw-r--r--arch/powerpc/sysdev/mpic.c4
-rw-r--r--arch/powerpc/xmon/xmon.c6
-rw-r--r--arch/x86_64/defconfig43
-rw-r--r--arch/x86_64/kernel/apic.c12
-rw-r--r--arch/x86_64/kernel/entry.S8
-rw-r--r--arch/x86_64/kernel/irq.c7
-rw-r--r--arch/x86_64/kernel/pci-calgary.c36
-rw-r--r--arch/x86_64/kernel/process.c7
-rw-r--r--arch/x86_64/kernel/time.c20
-rw-r--r--arch/x86_64/kernel/traps.c2
-rw-r--r--drivers/acorn/block/mfmhd.c2
-rw-r--r--drivers/acpi/osl.c2
-rw-r--r--drivers/ata/ahci.c4
-rw-r--r--drivers/ata/libata-core.c3
-rw-r--r--drivers/ata/pdc_adma.c5
-rw-r--r--drivers/ata/sata_mv.c6
-rw-r--r--drivers/ata/sata_nv.c18
-rw-r--r--drivers/ata/sata_promise.c4
-rw-r--r--drivers/ata/sata_qstor.c4
-rw-r--r--drivers/ata/sata_sil.c6
-rw-r--r--drivers/ata/sata_sil24.c4
-rw-r--r--drivers/ata/sata_sx4.c4
-rw-r--r--drivers/ata/sata_vsc.c3
-rw-r--r--drivers/atm/ambassador.c4
-rw-r--r--drivers/atm/eni.c2
-rw-r--r--drivers/atm/firestream.c2
-rw-r--r--drivers/atm/fore200e.c2
-rw-r--r--drivers/atm/he.c4
-rw-r--r--drivers/atm/horizon.c4
-rw-r--r--drivers/atm/idt77252.c2
-rw-r--r--drivers/atm/iphase.c2
-rw-r--r--drivers/atm/lanai.c4
-rw-r--r--drivers/atm/nicstar.c4
-rw-r--r--drivers/atm/zatm.c2
-rw-r--r--drivers/block/DAC960.c24
-rw-r--r--drivers/block/DAC960.h14
-rw-r--r--drivers/block/acsi.c4
-rw-r--r--drivers/block/acsi_slm.c4
-rw-r--r--drivers/block/amiflop.c4
-rw-r--r--drivers/block/ataflop.c4
-rw-r--r--drivers/block/cciss.c6
-rw-r--r--drivers/block/cpqarray.c4
-rw-r--r--drivers/block/floppy.c4
-rw-r--r--drivers/block/ps2esdi.c6
-rw-r--r--drivers/block/swim3.c8
-rw-r--r--drivers/block/swim_iop.c4
-rw-r--r--drivers/block/sx8.c2
-rw-r--r--drivers/block/ub.c6
-rw-r--r--drivers/block/umem.c2
-rw-r--r--drivers/block/xd.c3
-rw-r--r--drivers/block/xd.h3
-rw-r--r--drivers/bluetooth/bcm203x.c2
-rw-r--r--drivers/bluetooth/bfusb.c8
-rw-r--r--drivers/bluetooth/bluecard_cs.c2
-rw-r--r--drivers/bluetooth/bpa10x.c2
-rw-r--r--drivers/bluetooth/bt3c_cs.c2
-rw-r--r--drivers/bluetooth/btuart_cs.c2
-rw-r--r--drivers/bluetooth/dtl1_cs.c2
-rw-r--r--drivers/bluetooth/hci_usb.c8
-rw-r--r--drivers/cdrom/cdu31a.c2
-rw-r--r--drivers/cdrom/cm206.c2
-rw-r--r--drivers/cdrom/mcdx.c2
-rw-r--r--drivers/cdrom/sonycd535.c2
-rw-r--r--drivers/char/amiserial.c6
-rw-r--r--drivers/char/applicom.c4
-rw-r--r--drivers/char/cyclades.c4
-rw-r--r--drivers/char/drm/drm_os_linux.h2
-rw-r--r--drivers/char/ec3104_keyb.c2
-rw-r--r--drivers/char/esp.c3
-rw-r--r--drivers/char/ftape/lowlevel/fdc-io.c2
-rw-r--r--drivers/char/hangcheck-timer.c2
-rw-r--r--drivers/char/hpet.c2
-rw-r--r--drivers/char/hvc_console.c4
-rw-r--r--drivers/char/hvcs.c6
-rw-r--r--drivers/char/hvsi.c6
-rw-r--r--drivers/char/ip2/ip2main.c9
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c6
-rw-r--r--drivers/char/ipmi/ipmi_watchdog.c2
-rw-r--r--drivers/char/isicom.c2
-rw-r--r--drivers/char/keyboard.c135
-rw-r--r--drivers/char/mbcs.c3
-rw-r--r--drivers/char/mmtimer.c3
-rw-r--r--drivers/char/mwave/tp3780i.c4
-rw-r--r--drivers/char/mxser.c4
-rw-r--r--drivers/char/nwbutton.c2
-rw-r--r--drivers/char/nwbutton.h2
-rw-r--r--drivers/char/pcmcia/synclink_cs.c5
-rw-r--r--drivers/char/ppdev.c2
-rw-r--r--drivers/char/qtronix.c4
-rw-r--r--drivers/char/rio/rio_linux.c4
-rw-r--r--drivers/char/riscom8.c2
-rw-r--r--drivers/char/rtc.c8
-rw-r--r--drivers/char/ser_a2232.c4
-rw-r--r--drivers/char/serial167.c8
-rw-r--r--drivers/char/snsc.c2
-rw-r--r--drivers/char/snsc_event.c2
-rw-r--r--drivers/char/sonypi.c2
-rw-r--r--drivers/char/specialix.c4
-rw-r--r--drivers/char/stallion.c5
-rw-r--r--drivers/char/sx.c4
-rw-r--r--drivers/char/synclink.c3
-rw-r--r--drivers/char/synclink_gt.c5
-rw-r--r--drivers/char/synclinkmp.c3
-rw-r--r--drivers/char/sysrq.c62
-rw-r--r--drivers/char/tlclk.c4
-rw-r--r--drivers/char/tpm/tpm_tis.c4
-rw-r--r--drivers/char/vme_scc.c18
-rw-r--r--drivers/char/vr41xx_giu.c2
-rw-r--r--drivers/char/watchdog/eurotechwdt.c2
-rw-r--r--drivers/char/watchdog/mpcore_wdt.c2
-rw-r--r--drivers/char/watchdog/pcwd_usb.c2
-rw-r--r--drivers/char/watchdog/s3c2410_wdt.c3
-rw-r--r--drivers/char/watchdog/wdt.c3
-rw-r--r--drivers/char/watchdog/wdt285.c2
-rw-r--r--drivers/char/watchdog/wdt_pci.c3
-rw-r--r--drivers/dma/ioatdma.c2
-rw-r--r--drivers/fc4/soc.c2
-rw-r--r--drivers/fc4/socal.c2
-rw-r--r--drivers/i2c/busses/i2c-elektor.c2
-rw-r--r--drivers/i2c/busses/i2c-ibm_iic.c2
-rw-r--r--drivers/i2c/busses/i2c-iop3xx.c2
-rw-r--r--drivers/i2c/busses/i2c-ite.c3
-rw-r--r--drivers/i2c/busses/i2c-mpc.c2
-rw-r--r--drivers/i2c/busses/i2c-mv64xxx.c2
-rw-r--r--drivers/i2c/busses/i2c-ocores.c2
-rw-r--r--drivers/i2c/busses/i2c-omap.c4
-rw-r--r--drivers/i2c/busses/i2c-pca-isa.c2
-rw-r--r--drivers/i2c/busses/i2c-pxa.c2
-rw-r--r--drivers/i2c/busses/i2c-rpx.c4
-rw-r--r--drivers/i2c/busses/i2c-s3c2410.c3
-rw-r--r--drivers/i2c/chips/isp1301_omap.c4
-rw-r--r--drivers/i2c/chips/tps65010.c2
-rw-r--r--drivers/ide/ide-io.c2
-rw-r--r--drivers/ide/legacy/hd.c2
-rw-r--r--drivers/ide/legacy/macide.c2
-rw-r--r--drivers/ieee1394/ohci1394.c3
-rw-r--r--drivers/ieee1394/pcilynx.c3
-rw-r--r--drivers/infiniband/hw/amso1100/c2.c4
-rw-r--r--drivers/infiniband/hw/ehca/ehca_irq.c4
-rw-r--r--drivers/infiniband/hw/ehca/ehca_irq.h4
-rw-r--r--drivers/infiniband/hw/ipath/ipath_intr.c2
-rw-r--r--drivers/infiniband/hw/ipath/ipath_kernel.h2
-rw-r--r--drivers/infiniband/hw/mthca/mthca_eq.c10
-rw-r--r--drivers/input/joystick/amijoy.c4
-rw-r--r--drivers/input/joystick/iforce/iforce-packets.c6
-rw-r--r--drivers/input/joystick/iforce/iforce-serio.c4
-rw-r--r--drivers/input/joystick/iforce/iforce-usb.c8
-rw-r--r--drivers/input/joystick/iforce/iforce.h2
-rw-r--r--drivers/input/joystick/magellan.c8
-rw-r--r--drivers/input/joystick/spaceball.c8
-rw-r--r--drivers/input/joystick/spaceorb.c8
-rw-r--r--drivers/input/joystick/stinger.c8
-rw-r--r--drivers/input/joystick/twidjoy.c8
-rw-r--r--drivers/input/joystick/warrior.c10
-rw-r--r--drivers/input/keyboard/amikbd.c4
-rw-r--r--drivers/input/keyboard/atkbd.c4
-rw-r--r--drivers/input/keyboard/corgikbd.c9
-rw-r--r--drivers/input/keyboard/hil_kbd.c2
-rw-r--r--drivers/input/keyboard/hilkbd.c2
-rw-r--r--drivers/input/keyboard/lkkbd.c5
-rw-r--r--drivers/input/keyboard/locomokbd.c8
-rw-r--r--drivers/input/keyboard/newtonkbd.c3
-rw-r--r--drivers/input/keyboard/omap-keypad.c3
-rw-r--r--drivers/input/keyboard/spitzkbd.c10
-rw-r--r--drivers/input/keyboard/stowaway.c3
-rw-r--r--drivers/input/keyboard/sunkbd.c3
-rw-r--r--drivers/input/keyboard/xtkbd.c3
-rw-r--r--drivers/input/misc/ixp4xx-beeper.c2
-rw-r--r--drivers/input/mouse/alps.c10
-rw-r--r--drivers/input/mouse/amimouse.c4
-rw-r--r--drivers/input/mouse/hil_ptr.c2
-rw-r--r--drivers/input/mouse/inport.c4
-rw-r--r--drivers/input/mouse/lifebook.c4
-rw-r--r--drivers/input/mouse/logibm.c3
-rw-r--r--drivers/input/mouse/logips2pp.c4
-rw-r--r--drivers/input/mouse/pc110pad.c9
-rw-r--r--drivers/input/mouse/psmouse-base.c16
-rw-r--r--drivers/input/mouse/psmouse.h2
-rw-r--r--drivers/input/mouse/rpcmouse.c4
-rw-r--r--drivers/input/mouse/sermouse.c14
-rw-r--r--drivers/input/mouse/synaptics.c15
-rw-r--r--drivers/input/mouse/vsxxxaa.c22
-rw-r--r--drivers/input/serio/ambakmi.c4
-rw-r--r--drivers/input/serio/ct82c710.c4
-rw-r--r--drivers/input/serio/gscps2.c6
-rw-r--r--drivers/input/serio/hp_sdc.c4
-rw-r--r--drivers/input/serio/i8042.c12
-rw-r--r--drivers/input/serio/maceps2.c5
-rw-r--r--drivers/input/serio/parkbd.c4
-rw-r--r--drivers/input/serio/pcips2.c4
-rw-r--r--drivers/input/serio/q40kbd.c4
-rw-r--r--drivers/input/serio/rpckbd.c6
-rw-r--r--drivers/input/serio/sa1111ps2.c6
-rw-r--r--drivers/input/serio/serio.c4
-rw-r--r--drivers/input/serio/serio_raw.c2
-rw-r--r--drivers/input/serio/serport.c5
-rw-r--r--drivers/input/touchscreen/ads7846.c2
-rw-r--r--drivers/input/touchscreen/corgi_ts.c13
-rw-r--r--drivers/input/touchscreen/elo.c17
-rw-r--r--drivers/input/touchscreen/gunze.c7
-rw-r--r--drivers/input/touchscreen/h3600_ts_input.c14
-rw-r--r--drivers/input/touchscreen/hp680_ts_input.c2
-rw-r--r--drivers/input/touchscreen/mk712.c3
-rw-r--r--drivers/input/touchscreen/mtouch.c11
-rw-r--r--drivers/input/touchscreen/penmount.c3
-rw-r--r--drivers/input/touchscreen/touchright.c3
-rw-r--r--drivers/input/touchscreen/touchwin.c3
-rw-r--r--drivers/isdn/act2000/act2000_isa.c2
-rw-r--r--drivers/isdn/gigaset/bas-gigaset.c12
-rw-r--r--drivers/isdn/gigaset/usb-gigaset.c4
-rw-r--r--drivers/isdn/hardware/avm/avmcard.h4
-rw-r--r--drivers/isdn/hardware/avm/b1.c2
-rw-r--r--drivers/isdn/hardware/avm/b1dma.c2
-rw-r--r--drivers/isdn/hardware/avm/c4.c2
-rw-r--r--drivers/isdn/hardware/avm/t1isa.c2
-rw-r--r--drivers/isdn/hardware/eicon/diva.c4
-rw-r--r--drivers/isdn/hardware/eicon/divasmain.c3
-rw-r--r--drivers/isdn/hisax/amd7930_fn.c2
-rw-r--r--drivers/isdn/hisax/asuscom.c4
-rw-r--r--drivers/isdn/hisax/avm_a1.c2
-rw-r--r--drivers/isdn/hisax/avm_a1p.c2
-rw-r--r--drivers/isdn/hisax/avm_pci.c2
-rw-r--r--drivers/isdn/hisax/bkm_a4t.c2
-rw-r--r--drivers/isdn/hisax/bkm_a8.c2
-rw-r--r--drivers/isdn/hisax/diva.c8
-rw-r--r--drivers/isdn/hisax/elsa.c4
-rw-r--r--drivers/isdn/hisax/enternow_pci.c2
-rw-r--r--drivers/isdn/hisax/gazel.c4
-rw-r--r--drivers/isdn/hisax/hfc4s8s_l1.c2
-rw-r--r--drivers/isdn/hisax/hfc_pci.c2
-rw-r--r--drivers/isdn/hisax/hfc_sx.c2
-rw-r--r--drivers/isdn/hisax/hfc_usb.c8
-rw-r--r--drivers/isdn/hisax/hfcscard.c2
-rw-r--r--drivers/isdn/hisax/hisax.h2
-rw-r--r--drivers/isdn/hisax/hisax_fcpcipnp.c4
-rw-r--r--drivers/isdn/hisax/icc.c2
-rw-r--r--drivers/isdn/hisax/isac.c2
-rw-r--r--drivers/isdn/hisax/isurf.c2
-rw-r--r--drivers/isdn/hisax/ix1_micro.c2
-rw-r--r--drivers/isdn/hisax/mic.c2
-rw-r--r--drivers/isdn/hisax/netjet.h2
-rw-r--r--drivers/isdn/hisax/niccy.c3
-rw-r--r--drivers/isdn/hisax/nj_s.c2
-rw-r--r--drivers/isdn/hisax/nj_u.c2
-rw-r--r--drivers/isdn/hisax/s0box.c2
-rw-r--r--drivers/isdn/hisax/saphir.c2
-rw-r--r--drivers/isdn/hisax/sedlbauer.c6
-rw-r--r--drivers/isdn/hisax/sportster.c2
-rw-r--r--drivers/isdn/hisax/st5481_b.c2
-rw-r--r--drivers/isdn/hisax/st5481_d.c2
-rw-r--r--drivers/isdn/hisax/st5481_usb.c6
-rw-r--r--drivers/isdn/hisax/teleint.c2
-rw-r--r--drivers/isdn/hisax/teles0.c2
-rw-r--r--drivers/isdn/hisax/teles3.c2
-rw-r--r--drivers/isdn/hisax/telespci.c2
-rw-r--r--drivers/isdn/hisax/w6692.c4
-rw-r--r--drivers/isdn/hysdn/boardergo.c2
-rw-r--r--drivers/isdn/pcbit/layer2.c2
-rw-r--r--drivers/isdn/pcbit/layer2.h2
-rw-r--r--drivers/isdn/sc/init.c2
-rw-r--r--drivers/isdn/sc/interrupt.c2
-rw-r--r--drivers/macintosh/adb-iop.c8
-rw-r--r--drivers/macintosh/adb.c10
-rw-r--r--drivers/macintosh/adbhid.c20
-rw-r--r--drivers/macintosh/macio-adb.c7
-rw-r--r--drivers/macintosh/smu.c6
-rw-r--r--drivers/macintosh/via-cuda.c12
-rw-r--r--drivers/macintosh/via-macii.c7
-rw-r--r--drivers/macintosh/via-maciisi.c12
-rw-r--r--drivers/macintosh/via-pmu.c32
-rw-r--r--drivers/macintosh/via-pmu68k.c13
-rw-r--r--drivers/media/common/saa7146_core.c2
-rw-r--r--drivers/media/dvb/b2c2/flexcop-pci.c2
-rw-r--r--drivers/media/dvb/b2c2/flexcop-usb.c2
-rw-r--r--drivers/media/dvb/bt8xx/bt878.c2
-rw-r--r--drivers/media/dvb/cinergyT2/cinergyT2.c4
-rw-r--r--drivers/media/dvb/dvb-usb/usb-urb.c2
-rw-r--r--drivers/media/dvb/pluto2/pluto2.c2
-rw-r--r--drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c2
-rw-r--r--drivers/media/dvb/ttusb-dec/ttusb_dec.c4
-rw-r--r--drivers/media/video/arv.c2
-rw-r--r--drivers/media/video/bt8xx/bttv-driver.c2
-rw-r--r--drivers/media/video/cpia2/cpia2_usb.c4
-rw-r--r--drivers/media/video/cpia_usb.c2
-rw-r--r--drivers/media/video/cx88/cx88-alsa.c2
-rw-r--r--drivers/media/video/cx88/cx88-mpeg.c2
-rw-r--r--drivers/media/video/cx88/cx88-video.c2
-rw-r--r--drivers/media/video/dabusb.c2
-rw-r--r--drivers/media/video/em28xx/em28xx-core.c6
-rw-r--r--drivers/media/video/et61x251/et61x251_core.c2
-rw-r--r--drivers/media/video/meye.c2
-rw-r--r--drivers/media/video/ov511.c2
-rw-r--r--drivers/media/video/planb.c4
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.c4
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-io.c2
-rw-r--r--drivers/media/video/pwc/pwc-if.c2
-rw-r--r--drivers/media/video/saa7134/saa7134-alsa.c2
-rw-r--r--drivers/media/video/saa7134/saa7134-core.c2
-rw-r--r--drivers/media/video/saa7134/saa7134-oss.c2
-rw-r--r--drivers/media/video/se401.c4
-rw-r--r--drivers/media/video/sn9c102/sn9c102_core.c2
-rw-r--r--drivers/media/video/stradis.c2
-rw-r--r--drivers/media/video/stv680.c2
-rw-r--r--drivers/media/video/usbvideo/konicawc.c2
-rw-r--r--drivers/media/video/usbvideo/quickcam_messenger.c4
-rw-r--r--drivers/media/video/usbvideo/usbvideo.c2
-rw-r--r--drivers/media/video/vino.c2
-rw-r--r--drivers/media/video/w9968cf.c4
-rw-r--r--drivers/media/video/zc0301/zc0301_core.c2
-rw-r--r--drivers/media/video/zoran_device.c3
-rw-r--r--drivers/media/video/zoran_device.h4
-rw-r--r--drivers/media/video/zr36120.c4
-rw-r--r--drivers/message/fusion/mptbase.c5
-rw-r--r--drivers/message/i2o/pci.c3
-rw-r--r--drivers/mfd/ucb1x00-core.c2
-rw-r--r--drivers/misc/ibmasm/ibmasm.h4
-rw-r--r--drivers/misc/ibmasm/lowlevel.c4
-rw-r--r--drivers/misc/ibmasm/remote.c14
-rw-r--r--drivers/misc/lkdtm.c5
-rw-r--r--drivers/misc/tifm_7xx1.c2
-rw-r--r--drivers/mmc/at91_mci.c4
-rw-r--r--drivers/mmc/au1xmmc.c2
-rw-r--r--drivers/mmc/imxmmc.c4
-rw-r--r--drivers/mmc/mmci.c4
-rw-r--r--drivers/mmc/omap.c4
-rw-r--r--drivers/mmc/pxamci.c6
-rw-r--r--drivers/mmc/sdhci.c2
-rw-r--r--drivers/mmc/wbsd.c2
-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.c6
-rw-r--r--drivers/net/3c515.c6
-rw-r--r--drivers/net/3c523.c6
-rw-r--r--drivers/net/3c527.c4
-rw-r--r--drivers/net/3c59x.c14
-rw-r--r--drivers/net/7990.c2
-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.c5
-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.c5
-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/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.c2
-rw-r--r--drivers/net/de600.h2
-rw-r--r--drivers/net/de620.c4
-rw-r--r--drivers/net/declance.c6
-rw-r--r--drivers/net/defxx.c6
-rw-r--r--drivers/net/depca.c4
-rw-r--r--drivers/net/dgrs.c2
-rw-r--r--drivers/net/dl2k.c4
-rw-r--r--drivers/net/dm9000.c4
-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.c4
-rw-r--r--drivers/net/eepro100.c6
-rw-r--r--drivers/net/eexpress.c4
-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.c3
-rw-r--r--drivers/net/irda/au1k_ir.c4
-rw-r--r--drivers/net/irda/donauboe.c4
-rw-r--r--drivers/net/irda/irda-usb.c12
-rw-r--r--drivers/net/irda/irport.c8
-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.c3
-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.c3
-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.c5
-rw-r--r--drivers/net/lasi_82596.c6
-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.c3
-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.c12
-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.c6
-rw-r--r--drivers/net/phy/phy.c2
-rw-r--r--drivers/net/plip.c6
-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.h8
-rw-r--r--drivers/net/saa9730.c3
-rw-r--r--drivers/net/sb1000.c4
-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.c5
-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.c2
-rw-r--r--drivers/net/smc91x.h2
-rw-r--r--drivers/net/sonic.c2
-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.c4
-rw-r--r--drivers/net/sunlance.c2
-rw-r--r--drivers/net/sunqe.c2
-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.c4
-rw-r--r--drivers/net/tokenring/tms380tr.c2
-rw-r--r--drivers/net/tokenring/tms380tr.h2
-rw-r--r--drivers/net/tulip/de2104x.c2
-rw-r--r--drivers/net/tulip/de4x5.c4
-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.c4
-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.c2
-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.c2
-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.c3
-rw-r--r--drivers/net/wireless/wavelan_cs.p.h3
-rw-r--r--drivers/net/wireless/wl3501_cs.c3
-rw-r--r--drivers/net/wireless/zd1201.c6
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.c6
-rw-r--r--drivers/net/yellowfin.c4
-rw-r--r--drivers/net/znet.c4
-rw-r--r--drivers/parisc/dino.c3
-rw-r--r--drivers/parisc/eisa.c4
-rw-r--r--drivers/parisc/gsc.c4
-rw-r--r--drivers/parisc/gsc.h2
-rw-r--r--drivers/parisc/power.c2
-rw-r--r--drivers/parisc/superio.c4
-rw-r--r--drivers/parport/daisy.c2
-rw-r--r--drivers/parport/ieee1284.c2
-rw-r--r--drivers/parport/parport_amiga.c4
-rw-r--r--drivers/parport/parport_atari.c4
-rw-r--r--drivers/parport/parport_ax88796.c4
-rw-r--r--drivers/parport/parport_gsc.c4
-rw-r--r--drivers/parport/parport_ip32.c11
-rw-r--r--drivers/parport/parport_mfc3.c2
-rw-r--r--drivers/parport/parport_pc.c4
-rw-r--r--drivers/parport/parport_sunbpp.c2
-rw-r--r--drivers/parport/share.c2
-rw-r--r--drivers/pci/hotplug/cpci_hotplug_core.c2
-rw-r--r--drivers/pci/hotplug/cpqphp.h2
-rw-r--r--drivers/pci/hotplug/cpqphp_ctrl.c2
-rw-r--r--drivers/pci/hotplug/pciehp_hpc.c6
-rw-r--r--drivers/pci/hotplug/shpchp_hpc.c6
-rw-r--r--drivers/pci/pcie/aer/aerdrv.c3
-rw-r--r--drivers/pcmcia/at91_cf.c2
-rw-r--r--drivers/pcmcia/hd64465_ss.c2
-rw-r--r--drivers/pcmcia/i82092.c2
-rw-r--r--drivers/pcmcia/i82092aa.h2
-rw-r--r--drivers/pcmcia/i82365.c9
-rw-r--r--drivers/pcmcia/m32r_cfc.c7
-rw-r--r--drivers/pcmcia/m32r_pcc.c4
-rw-r--r--drivers/pcmcia/m8xx_pcmcia.c4
-rw-r--r--drivers/pcmcia/omap_cf.c2
-rw-r--r--drivers/pcmcia/pcmcia_resource.c2
-rw-r--r--drivers/pcmcia/pd6729.c6
-rw-r--r--drivers/pcmcia/soc_common.c2
-rw-r--r--drivers/pcmcia/tcic.c10
-rw-r--r--drivers/pcmcia/vrc4171_card.c2
-rw-r--r--drivers/pcmcia/vrc4173_cardu.c2
-rw-r--r--drivers/pcmcia/yenta_socket.c6
-rw-r--r--drivers/pnp/resource.c2
-rw-r--r--drivers/rtc/rtc-at91.c3
-rw-r--r--drivers/rtc/rtc-ds1553.c3
-rw-r--r--drivers/rtc/rtc-pl031.c2
-rw-r--r--drivers/rtc/rtc-s3c.c4
-rw-r--r--drivers/rtc/rtc-sa1100.c6
-rw-r--r--drivers/rtc/rtc-sh.c4
-rw-r--r--drivers/rtc/rtc-vr41xx.c4
-rw-r--r--drivers/sbus/char/aurora.c4
-rw-r--r--drivers/sbus/char/bbc_i2c.c2
-rw-r--r--drivers/sbus/char/cpwatchdog.c4
-rw-r--r--drivers/sbus/char/uctrl.c2
-rw-r--r--drivers/scsi/3w-9xxx.c2
-rw-r--r--drivers/scsi/3w-xxxx.c3
-rw-r--r--drivers/scsi/53c700.c2
-rw-r--r--drivers/scsi/53c700.h2
-rw-r--r--drivers/scsi/53c7xx.c6
-rw-r--r--drivers/scsi/BusLogic.c2
-rw-r--r--drivers/scsi/BusLogic.h2
-rw-r--r--drivers/scsi/NCR5380.c6
-rw-r--r--drivers/scsi/NCR5380.h2
-rw-r--r--drivers/scsi/NCR53C9x.c6
-rw-r--r--drivers/scsi/NCR53C9x.h2
-rw-r--r--drivers/scsi/NCR53c406a.c11
-rw-r--r--drivers/scsi/NCR_D700.c4
-rw-r--r--drivers/scsi/NCR_Q720.c4
-rw-r--r--drivers/scsi/a100u2w.c2
-rw-r--r--drivers/scsi/a2091.c2
-rw-r--r--drivers/scsi/a3000.c2
-rw-r--r--drivers/scsi/aacraid/rx.c4
-rw-r--r--drivers/scsi/aacraid/sa.c2
-rw-r--r--drivers/scsi/advansys.c4
-rw-r--r--drivers/scsi/aha152x.c6
-rw-r--r--drivers/scsi/aha1542.c12
-rw-r--r--drivers/scsi/aha1740.c3
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.c2
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.h2
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_osm.c2
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_osm.h2
-rw-r--r--drivers/scsi/aic7xxx_old.c12
-rw-r--r--drivers/scsi/aic94xx/aic94xx_hwi.c3
-rw-r--r--drivers/scsi/aic94xx/aic94xx_hwi.h2
-rw-r--r--drivers/scsi/amiga7xx.h2
-rw-r--r--drivers/scsi/arcmsr/arcmsr_hba.c3
-rw-r--r--drivers/scsi/arm/acornscsi.c5
-rw-r--r--drivers/scsi/arm/cumana_2.c3
-rw-r--r--drivers/scsi/arm/eesox.c3
-rw-r--r--drivers/scsi/arm/powertec.c4
-rw-r--r--drivers/scsi/atari_NCR5380.c2
-rw-r--r--drivers/scsi/atari_dma_emul.c4
-rw-r--r--drivers/scsi/atari_scsi.c10
-rw-r--r--drivers/scsi/atp870u.c2
-rw-r--r--drivers/scsi/bvme6000.h2
-rw-r--r--drivers/scsi/dc395x.c3
-rw-r--r--drivers/scsi/dec_esp.c12
-rw-r--r--drivers/scsi/dpt_i2o.c2
-rw-r--r--drivers/scsi/dpti.h2
-rw-r--r--drivers/scsi/eata.c5
-rw-r--r--drivers/scsi/eata_pio.c7
-rw-r--r--drivers/scsi/esp.c4
-rw-r--r--drivers/scsi/fd_mcs.c4
-rw-r--r--drivers/scsi/fdomain.c6
-rw-r--r--drivers/scsi/gdth.c6
-rw-r--r--drivers/scsi/gvp11.c2
-rw-r--r--drivers/scsi/hptiop.c2
-rw-r--r--drivers/scsi/ibmmca.c3
-rw-r--r--drivers/scsi/ibmvscsi/rpa_vscsi.c5
-rw-r--r--drivers/scsi/in2000.c2
-rw-r--r--drivers/scsi/initio.c2
-rw-r--r--drivers/scsi/ipr.c3
-rw-r--r--drivers/scsi/ips.c4
-rw-r--r--drivers/scsi/lpfc/lpfc_crtn.h2
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c2
-rw-r--r--drivers/scsi/mac53c94.c10
-rw-r--r--drivers/scsi/mac_esp.c14
-rw-r--r--drivers/scsi/megaraid.c6
-rw-r--r--drivers/scsi/megaraid.h4
-rw-r--r--drivers/scsi/megaraid/megaraid_mbox.c4
-rw-r--r--drivers/scsi/megaraid/megaraid_sas.c2
-rw-r--r--drivers/scsi/mesh.c8
-rw-r--r--drivers/scsi/mvme147.c2
-rw-r--r--drivers/scsi/mvme16x.h2
-rw-r--r--drivers/scsi/ncr53c8xx.c2
-rw-r--r--drivers/scsi/ncr53c8xx.h2
-rw-r--r--drivers/scsi/nsp32.c4
-rw-r--r--drivers/scsi/pcmcia/nsp_cs.c2
-rw-r--r--drivers/scsi/pcmcia/nsp_cs.h2
-rw-r--r--drivers/scsi/pcmcia/sym53c500_cs.c2
-rw-r--r--drivers/scsi/psi240i.c7
-rw-r--r--drivers/scsi/qla1280.c2
-rw-r--r--drivers/scsi/qla2xxx/qla_dbg.h14
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h2
-rw-r--r--drivers/scsi/qla2xxx/qla_gbl.h8
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c2
-rw-r--r--drivers/scsi/qla2xxx/qla_inline.h2
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c9
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c8
-rw-r--r--drivers/scsi/qla4xxx/ql4_dbg.h4
-rw-r--r--drivers/scsi/qla4xxx/ql4_glbl.h4
-rw-r--r--drivers/scsi/qla4xxx/ql4_isr.c3
-rw-r--r--drivers/scsi/qla4xxx/ql4_mbx.c2
-rw-r--r--drivers/scsi/qla4xxx/ql4_os.c8
-rw-r--r--drivers/scsi/qlogicfas408.c6
-rw-r--r--drivers/scsi/qlogicfas408.h2
-rw-r--r--drivers/scsi/qlogicpti.c4
-rw-r--r--drivers/scsi/seagate.c11
-rw-r--r--drivers/scsi/sgiwd93.c2
-rw-r--r--drivers/scsi/stex.c2
-rw-r--r--drivers/scsi/sun3_NCR5380.c2
-rw-r--r--drivers/scsi/sun3_scsi.c6
-rw-r--r--drivers/scsi/sun3_scsi_vme.c6
-rw-r--r--drivers/scsi/sym53c416.c3
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_glue.c2
-rw-r--r--drivers/scsi/tmscsim.c6
-rw-r--r--drivers/scsi/u14-34f.c5
-rw-r--r--drivers/scsi/ultrastor.c13
-rw-r--r--drivers/scsi/wd7000.c2
-rw-r--r--drivers/serial/21285.c4
-rw-r--r--drivers/serial/68328serial.c9
-rw-r--r--drivers/serial/68360serial.c2
-rw-r--r--drivers/serial/8250.c14
-rw-r--r--drivers/serial/amba-pl010.c15
-rw-r--r--drivers/serial/amba-pl011.c15
-rw-r--r--drivers/serial/atmel_serial.c8
-rw-r--r--drivers/serial/clps711x.c6
-rw-r--r--drivers/serial/cpm_uart/cpm_uart_core.c16
-rw-r--r--drivers/serial/crisv10.c6
-rw-r--r--drivers/serial/dz.c2
-rw-r--r--drivers/serial/icom.c3
-rw-r--r--drivers/serial/imx.c8
-rw-r--r--drivers/serial/ioc3_serial.c10
-rw-r--r--drivers/serial/ioc4_serial.c3
-rw-r--r--drivers/serial/ip22zilog.c18
-rw-r--r--drivers/serial/jsm/jsm.h2
-rw-r--r--drivers/serial/jsm/jsm_neo.c2
-rw-r--r--drivers/serial/m32r_sio.c14
-rw-r--r--drivers/serial/mcfserial.c2
-rw-r--r--drivers/serial/mpc52xx_uart.c10
-rw-r--r--drivers/serial/mpsc.c8
-rw-r--r--drivers/serial/netx-serial.c8
-rw-r--r--drivers/serial/pmac_zilog.c17
-rw-r--r--drivers/serial/pxa.c10
-rw-r--r--drivers/serial/s3c2410.c6
-rw-r--r--drivers/serial/sa1100.c8
-rw-r--r--drivers/serial/serial_lh7a40x.c16
-rw-r--r--drivers/serial/serial_txx9.c8
-rw-r--r--drivers/serial/sh-sci.c33
-rw-r--r--drivers/serial/sn_console.c11
-rw-r--r--drivers/serial/sunhv.c10
-rw-r--r--drivers/serial/sunsab.c13
-rw-r--r--drivers/serial/sunsu.c19
-rw-r--r--drivers/serial/sunzilog.c31
-rw-r--r--drivers/serial/v850e_uart.c4
-rw-r--r--drivers/serial/vr41xx_siu.c9
-rw-r--r--drivers/sn/ioc3.c12
-rw-r--r--drivers/spi/pxa2xx_spi.c4
-rw-r--r--drivers/spi/spi_mpc83xx.c3
-rw-r--r--drivers/spi/spi_s3c24xx.c2
-rw-r--r--drivers/tc/zs.c6
-rw-r--r--drivers/usb/atm/cxacru.c2
-rw-r--r--drivers/usb/atm/speedtch.c2
-rw-r--r--drivers/usb/atm/ueagle-atm.c2
-rw-r--r--drivers/usb/atm/usbatm.c2
-rw-r--r--drivers/usb/class/cdc-acm.c6
-rw-r--r--drivers/usb/class/usblp.c4
-rw-r--r--drivers/usb/core/devio.c2
-rw-r--r--drivers/usb/core/hcd.c15
-rw-r--r--drivers/usb/core/hcd.h9
-rw-r--r--drivers/usb/core/hub.c2
-rw-r--r--drivers/usb/core/message.c4
-rw-r--r--drivers/usb/gadget/at91_udc.c4
-rw-r--r--drivers/usb/gadget/goku_udc.c2
-rw-r--r--drivers/usb/gadget/lh7a40x_udc.c2
-rw-r--r--drivers/usb/gadget/net2280.c2
-rw-r--r--drivers/usb/gadget/omap_udc.c9
-rw-r--r--drivers/usb/gadget/pxa2xx_udc.c11
-rw-r--r--drivers/usb/host/ehci-hcd.c26
-rw-r--r--drivers/usb/host/ehci-hub.c4
-rw-r--r--drivers/usb/host/ehci-pci.c4
-rw-r--r--drivers/usb/host/ehci-q.c21
-rw-r--r--drivers/usb/host/ehci-sched.c21
-rw-r--r--drivers/usb/host/hc_crisv10.c12
-rw-r--r--drivers/usb/host/isp116x-hcd.c16
-rw-r--r--drivers/usb/host/ohci-hcd.c14
-rw-r--r--drivers/usb/host/ohci-hub.c8
-rw-r--r--drivers/usb/host/ohci-q.c16
-rw-r--r--drivers/usb/host/sl811-hcd.c21
-rw-r--r--drivers/usb/host/u132-hcd.c8
-rw-r--r--drivers/usb/host/uhci-hcd.c8
-rw-r--r--drivers/usb/host/uhci-hub.c2
-rw-r--r--drivers/usb/host/uhci-q.c15
-rw-r--r--drivers/usb/image/mdc800.c6
-rw-r--r--drivers/usb/image/microtek.c10
-rw-r--r--drivers/usb/input/acecad.c2
-rw-r--r--drivers/usb/input/aiptek.c13
-rw-r--r--drivers/usb/input/appletouch.c2
-rw-r--r--drivers/usb/input/ati_remote.c17
-rw-r--r--drivers/usb/input/ati_remote2.c14
-rw-r--r--drivers/usb/input/hid-core.c28
-rw-r--r--drivers/usb/input/hid-input.c4
-rw-r--r--drivers/usb/input/hid.h4
-rw-r--r--drivers/usb/input/hiddev.c2
-rw-r--r--drivers/usb/input/itmtouch.c4
-rw-r--r--drivers/usb/input/kbtab.c2
-rw-r--r--drivers/usb/input/keyspan_remote.c7
-rw-r--r--drivers/usb/input/mtouchusb.c3
-rw-r--r--drivers/usb/input/powermate.c7
-rw-r--r--drivers/usb/input/touchkitusb.c15
-rw-r--r--drivers/usb/input/usbkbd.c6
-rw-r--r--drivers/usb/input/usbmouse.c4
-rw-r--r--drivers/usb/input/usbtouchscreen.c15
-rw-r--r--drivers/usb/input/wacom.h4
-rw-r--r--drivers/usb/input/wacom_sys.c9
-rw-r--r--drivers/usb/input/wacom_wac.c9
-rw-r--r--drivers/usb/input/xpad.c8
-rw-r--r--drivers/usb/input/yealink.c9
-rw-r--r--drivers/usb/misc/adutux.c4
-rw-r--r--drivers/usb/misc/appledisplay.c2
-rw-r--r--drivers/usb/misc/auerswald.c30
-rw-r--r--drivers/usb/misc/ftdi-elan.c2
-rw-r--r--drivers/usb/misc/ldusb.c4
-rw-r--r--drivers/usb/misc/legousbtower.c8
-rw-r--r--drivers/usb/misc/phidgetkit.c2
-rw-r--r--drivers/usb/misc/phidgetmotorcontrol.c2
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb.c4
-rw-r--r--drivers/usb/misc/usblcd.c2
-rw-r--r--drivers/usb/misc/usbtest.c8
-rw-r--r--drivers/usb/misc/uss720.c4
-rw-r--r--drivers/usb/net/asix.c2
-rw-r--r--drivers/usb/net/catc.c8
-rw-r--r--drivers/usb/net/gl620a.c2
-rw-r--r--drivers/usb/net/kaweth.c10
-rw-r--r--drivers/usb/net/net1080.c2
-rw-r--r--drivers/usb/net/pegasus.c14
-rw-r--r--drivers/usb/net/rtl8150.c12
-rw-r--r--drivers/usb/net/usbnet.c10
-rw-r--r--drivers/usb/serial/aircable.c4
-rw-r--r--drivers/usb/serial/airprime.c4
-rw-r--r--drivers/usb/serial/belkin_sa.c4
-rw-r--r--drivers/usb/serial/cyberjack.c12
-rw-r--r--drivers/usb/serial/cypress_m8.c8
-rw-r--r--drivers/usb/serial/digi_acceleport.c8
-rw-r--r--drivers/usb/serial/empeg.c8
-rw-r--r--drivers/usb/serial/ftdi_sio.c8
-rw-r--r--drivers/usb/serial/garmin_gps.c6
-rw-r--r--drivers/usb/serial/generic.c4
-rw-r--r--drivers/usb/serial/io_edgeport.c16
-rw-r--r--drivers/usb/serial/io_ti.c6
-rw-r--r--drivers/usb/serial/ipaq.c8
-rw-r--r--drivers/usb/serial/ipw.c4
-rw-r--r--drivers/usb/serial/ir-usb.c8
-rw-r--r--drivers/usb/serial/keyspan.c52
-rw-r--r--drivers/usb/serial/keyspan_pda.c4
-rw-r--r--drivers/usb/serial/kl5kusb105.c8
-rw-r--r--drivers/usb/serial/kobil_sct.c8
-rw-r--r--drivers/usb/serial/mct_u232.c4
-rw-r--r--drivers/usb/serial/mos7840.c9
-rw-r--r--drivers/usb/serial/navman.c2
-rw-r--r--drivers/usb/serial/omninet.c8
-rw-r--r--drivers/usb/serial/option.c10
-rw-r--r--drivers/usb/serial/pl2303.c6
-rw-r--r--drivers/usb/serial/safe_serial.c2
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.c12
-rw-r--r--drivers/usb/serial/visor.c12
-rw-r--r--drivers/usb/serial/whiteheat.c16
-rw-r--r--drivers/usb/storage/onetouch.c3
-rw-r--r--drivers/usb/storage/transport.c2
-rw-r--r--drivers/usb/usb-skeleton.c2
-rw-r--r--drivers/video/amifb.c4
-rw-r--r--drivers/video/arcfb.c3
-rw-r--r--drivers/video/atafb.c2
-rw-r--r--drivers/video/aty/atyfb_base.c2
-rw-r--r--drivers/video/au1200fb.c2
-rw-r--r--drivers/video/console/fbcon.c4
-rw-r--r--drivers/video/intelfb/intelfbhw.c2
-rw-r--r--drivers/video/matrox/matroxfb_base.c2
-rw-r--r--drivers/video/pvr2fb.c4
-rw-r--r--drivers/video/pxafb.c2
-rw-r--r--drivers/video/s3c2410fb.c2
-rw-r--r--drivers/video/sa1100fb.c2
-rw-r--r--fs/proc/proc_misc.c2
-rw-r--r--fs/udf/super.c3
-rw-r--r--include/asm-frv/dma.h5
-rw-r--r--include/asm-frv/irq_regs.h27
-rw-r--r--include/asm-frv/ptrace.h1
-rw-r--r--include/asm-generic/irq_regs.h37
-rw-r--r--include/asm-i386/apic.h4
-rw-r--r--include/asm-i386/arch_hooks.h2
-rw-r--r--include/asm-i386/floppy.h6
-rw-r--r--include/asm-i386/hpet.h2
-rw-r--r--include/asm-i386/hw_irq.h2
-rw-r--r--include/asm-i386/irq_regs.h1
-rw-r--r--include/asm-i386/mach-default/do_timer.h8
-rw-r--r--include/asm-i386/mach-visws/do_timer.h8
-rw-r--r--include/asm-i386/mach-voyager/do_timer.h6
-rw-r--r--include/asm-i386/voyager.h4
-rw-r--r--include/asm-ia64/irq_regs.h1
-rw-r--r--include/asm-ia64/machvec.h4
-rw-r--r--include/asm-mips/irq_regs.h1
-rw-r--r--include/asm-mips/time.h4
-rw-r--r--include/asm-powerpc/irq.h2
-rw-r--r--include/asm-powerpc/irq_regs.h2
-rw-r--r--include/asm-powerpc/smp.h3
-rw-r--r--include/asm-x86_64/apic.h2
-rw-r--r--include/asm-x86_64/floppy.h6
-rw-r--r--include/asm-x86_64/irq_regs.h1
-rw-r--r--include/asm-x86_64/proto.h4
-rw-r--r--include/linux/adb.h4
-rw-r--r--include/linux/arcdevice.h2
-rw-r--r--include/linux/hiddev.h4
-rw-r--r--include/linux/ide.h2
-rw-r--r--include/linux/input.h7
-rw-r--r--include/linux/interrupt.h9
-rw-r--r--include/linux/ioc3.h2
-rw-r--r--include/linux/irq.h66
-rw-r--r--include/linux/libata.h4
-rw-r--r--include/linux/parport.h16
-rw-r--r--include/linux/profile.h2
-rw-r--r--include/linux/rtc.h2
-rw-r--r--include/linux/serial_core.h7
-rw-r--r--include/linux/serio.h5
-rw-r--r--include/linux/sysrq.h6
-rw-r--r--include/linux/usb.h3
-rw-r--r--include/linux/usb/serial.h12
-rw-r--r--include/sound/cs4231.h2
-rw-r--r--include/sound/emu10k1.h2
-rw-r--r--include/sound/gus.h2
-rw-r--r--include/sound/initval.h2
-rw-r--r--include/sound/mpu401.h6
-rw-r--r--include/sound/sb.h6
-rw-r--r--include/sound/vx_core.h2
-rw-r--r--kernel/irq/chip.c48
-rw-r--r--kernel/irq/handle.c19
-rw-r--r--kernel/irq/manage.c4
-rw-r--r--kernel/irq/spurious.c10
-rw-r--r--kernel/power/poweroff.c3
-rw-r--r--kernel/profile.c5
-rw-r--r--lib/Makefile2
-rw-r--r--lib/irq_regs.c15
-rw-r--r--sound/aoa/core/snd-aoa-gpio-feature.c4
-rw-r--r--sound/aoa/soundbus/i2sbus/i2sbus-core.c5
-rw-r--r--sound/aoa/soundbus/i2sbus/i2sbus-pcm.c4
-rw-r--r--sound/aoa/soundbus/i2sbus/i2sbus.h4
-rw-r--r--sound/arm/aaci.c2
-rw-r--r--sound/arm/pxa2xx-ac97.c2
-rw-r--r--sound/arm/pxa2xx-pcm.c2
-rw-r--r--sound/drivers/mpu401/mpu401_uart.c8
-rw-r--r--sound/drivers/mtpav.c2
-rw-r--r--sound/drivers/mts64.c2
-rw-r--r--sound/drivers/serial-u16550.c2
-rw-r--r--sound/drivers/vx/vx_core.c2
-rw-r--r--sound/isa/ad1816a/ad1816a_lib.c2
-rw-r--r--sound/isa/ad1848/ad1848_lib.c2
-rw-r--r--sound/isa/cs423x/cs4231_lib.c2
-rw-r--r--sound/isa/es1688/es1688_lib.c2
-rw-r--r--sound/isa/es18xx.c4
-rw-r--r--sound/isa/gus/gus_irq.c2
-rw-r--r--sound/isa/gus/gusmax.c6
-rw-r--r--sound/isa/gus/interwave.c6
-rw-r--r--sound/isa/opl3sa2.c6
-rw-r--r--sound/isa/opti9xx/opti92x-ad1848.c2
-rw-r--r--sound/isa/sb/es968.c3
-rw-r--r--sound/isa/sb/sb16_main.c4
-rw-r--r--sound/isa/sb/sb8.c2
-rw-r--r--sound/isa/sb/sb_common.c2
-rw-r--r--sound/isa/sgalaxy.c2
-rw-r--r--sound/isa/wavefront/wavefront.c4
-rw-r--r--sound/mips/au1x00.c2
-rw-r--r--sound/oss/ad1816.c2
-rw-r--r--sound/oss/ad1848.c4
-rw-r--r--sound/oss/ad1889.c2
-rw-r--r--sound/oss/btaudio.c2
-rw-r--r--sound/oss/cs46xx.c2
-rw-r--r--sound/oss/dmasound/dmasound_atari.c4
-rw-r--r--sound/oss/dmasound/dmasound_awacs.c14
-rw-r--r--sound/oss/dmasound/dmasound_paula.c4
-rw-r--r--sound/oss/dmasound/dmasound_q40.c8
-rw-r--r--sound/oss/emu10k1/irqmgr.c2
-rw-r--r--sound/oss/emu10k1/main.c2
-rw-r--r--sound/oss/es1371.c2
-rw-r--r--sound/oss/hal2.c2
-rw-r--r--sound/oss/i810_audio.c2
-rw-r--r--sound/oss/mpu401.c2
-rw-r--r--sound/oss/mpu401.h3
-rw-r--r--sound/oss/msnd_pinnacle.c2
-rw-r--r--sound/oss/nec_vrc5477.c2
-rw-r--r--sound/oss/nm256.h2
-rw-r--r--sound/oss/nm256_audio.c8
-rw-r--r--sound/oss/pas2_card.c2
-rw-r--r--sound/oss/sb_common.c4
-rw-r--r--sound/oss/sh_dac_audio.c2
-rw-r--r--sound/oss/swarm_cs4297a.c2
-rw-r--r--sound/oss/trident.c2
-rw-r--r--sound/oss/uart401.c2
-rw-r--r--sound/oss/uart6850.c2
-rw-r--r--sound/oss/via82cxxx_audio.c6
-rw-r--r--sound/oss/vidc.h2
-rw-r--r--sound/oss/vwsnd.c4
-rw-r--r--sound/oss/waveartist.c2
-rw-r--r--sound/parisc/harmony.c2
-rw-r--r--sound/pci/ad1889.c4
-rw-r--r--sound/pci/ali5451/ali5451.c4
-rw-r--r--sound/pci/als300.c6
-rw-r--r--sound/pci/als4000.c4
-rw-r--r--sound/pci/atiixp.c2
-rw-r--r--sound/pci/atiixp_modem.c2
-rw-r--r--sound/pci/au88x0/au88x0.h3
-rw-r--r--sound/pci/au88x0/au88x0_core.c4
-rw-r--r--sound/pci/azt3328.c4
-rw-r--r--sound/pci/bt87x.c2
-rw-r--r--sound/pci/ca0106/ca0106_main.c3
-rw-r--r--sound/pci/cmipci.c4
-rw-r--r--sound/pci/cs4281.c4
-rw-r--r--sound/pci/cs46xx/cs46xx_lib.c2
-rw-r--r--sound/pci/cs5535audio/cs5535audio.c3
-rw-r--r--sound/pci/echoaudio/echoaudio.c3
-rw-r--r--sound/pci/emu10k1/emu10k1x.c3
-rw-r--r--sound/pci/emu10k1/irq.c2
-rw-r--r--sound/pci/ens1370.c4
-rw-r--r--sound/pci/es1938.c6
-rw-r--r--sound/pci/es1968.c6
-rw-r--r--sound/pci/fm801.c4
-rw-r--r--sound/pci/hda/hda_intel.c2
-rw-r--r--sound/pci/ice1712/ice1712.c6
-rw-r--r--sound/pci/ice1712/ice1724.c4
-rw-r--r--sound/pci/intel8x0.c2
-rw-r--r--sound/pci/intel8x0m.c2
-rw-r--r--sound/pci/korg1212/korg1212.c2
-rw-r--r--sound/pci/maestro3.c3
-rw-r--r--sound/pci/mixart/mixart_core.c2
-rw-r--r--sound/pci/mixart/mixart_core.h2
-rw-r--r--sound/pci/nm256/nm256.c6
-rw-r--r--sound/pci/pcxhr/pcxhr_core.c2
-rw-r--r--sound/pci/pcxhr/pcxhr_core.h2
-rw-r--r--sound/pci/riptide/riptide.c5
-rw-r--r--sound/pci/rme32.c3
-rw-r--r--sound/pci/rme96.c3
-rw-r--r--sound/pci/rme9652/hdsp.c2
-rw-r--r--sound/pci/rme9652/hdspm.c3
-rw-r--r--sound/pci/rme9652/rme9652.c2
-rw-r--r--sound/pci/sonicvibes.c4
-rw-r--r--sound/pci/trident/trident_main.c7
-rw-r--r--sound/pci/via82xx.c6
-rw-r--r--sound/pci/via82xx_modem.c2
-rw-r--r--sound/pci/ymfpci/ymfpci_main.c4
-rw-r--r--sound/pcmcia/pdaudiocf/pdaudiocf.h2
-rw-r--r--sound/pcmcia/pdaudiocf/pdaudiocf_irq.c4
-rw-r--r--sound/ppc/pmac.c6
-rw-r--r--sound/ppc/tumbler.c2
-rw-r--r--sound/sparc/amd7930.c2
-rw-r--r--sound/sparc/cs4231.c2
-rw-r--r--sound/sparc/dbri.c3
-rw-r--r--sound/usb/usbaudio.c4
-rw-r--r--sound/usb/usbmidi.c4
-rw-r--r--sound/usb/usbmixer.c5
-rw-r--r--sound/usb/usx2y/usbusx2y.c4
-rw-r--r--sound/usb/usx2y/usbusx2yaudio.c10
-rw-r--r--sound/usb/usx2y/usx2yhwdeppcm.c6
1098 files changed, 2780 insertions, 3063 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 17becb9b1a96..84a018ee4556 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -641,7 +641,7 @@ CALGARY x86-64 IOMMU
641P: Muli Ben-Yehuda 641P: Muli Ben-Yehuda
642M: muli@il.ibm.com 642M: muli@il.ibm.com
643P: Jon D. Mason 643P: Jon D. Mason
644M: jdmason@us.ibm.com 644M: jdmason@kudzu.us
645L: linux-kernel@vger.kernel.org 645L: linux-kernel@vger.kernel.org
646L: discuss@x86-64.org 646L: discuss@x86-64.org
647S: Maintained 647S: Maintained
diff --git a/arch/frv/kernel/dma.c b/arch/frv/kernel/dma.c
index f5de6cf7df4e..156184e17e57 100644
--- a/arch/frv/kernel/dma.c
+++ b/arch/frv/kernel/dma.c
@@ -121,15 +121,14 @@ unsigned long frv_dma_inprogress;
121/* 121/*
122 * DMA irq handler - determine channel involved, grab status and call real handler 122 * DMA irq handler - determine channel involved, grab status and call real handler
123 */ 123 */
124static irqreturn_t dma_irq_handler(int irq, void *_channel, struct pt_regs *regs) 124static irqreturn_t dma_irq_handler(int irq, void *_channel)
125{ 125{
126 struct frv_dma_channel *channel = _channel; 126 struct frv_dma_channel *channel = _channel;
127 127
128 frv_clear_dma_inprogress(channel - frv_dma_channels); 128 frv_clear_dma_inprogress(channel - frv_dma_channels);
129 return channel->handler(channel - frv_dma_channels, 129 return channel->handler(channel - frv_dma_channels,
130 __get_DMAC(channel->ioaddr, CSTR), 130 __get_DMAC(channel->ioaddr, CSTR),
131 channel->data, 131 channel->data);
132 regs);
133 132
134} /* end dma_irq_handler() */ 133} /* end dma_irq_handler() */
135 134
diff --git a/arch/frv/kernel/irq-mb93091.c b/arch/frv/kernel/irq-mb93091.c
index 369bc0a7443d..ad753c1e9b8f 100644
--- a/arch/frv/kernel/irq-mb93091.c
+++ b/arch/frv/kernel/irq-mb93091.c
@@ -80,7 +80,7 @@ static struct irq_chip frv_fpga_pic = {
80/* 80/*
81 * FPGA PIC interrupt handler 81 * FPGA PIC interrupt handler
82 */ 82 */
83static irqreturn_t fpga_interrupt(int irq, void *_mask, struct pt_regs *regs) 83static irqreturn_t fpga_interrupt(int irq, void *_mask)
84{ 84{
85 uint16_t imr, mask = (unsigned long) _mask; 85 uint16_t imr, mask = (unsigned long) _mask;
86 86
@@ -95,7 +95,7 @@ static irqreturn_t fpga_interrupt(int irq, void *_mask, struct pt_regs *regs)
95 irq = 31 - irq; 95 irq = 31 - irq;
96 mask &= ~(1 << irq); 96 mask &= ~(1 << irq);
97 97
98 generic_handle_irq(IRQ_BASE_FPGA + irq, regs); 98 generic_handle_irq(IRQ_BASE_FPGA + irq);
99 } 99 }
100 100
101 return IRQ_HANDLED; 101 return IRQ_HANDLED;
diff --git a/arch/frv/kernel/irq-mb93093.c b/arch/frv/kernel/irq-mb93093.c
index a43a22158956..e0983f6926ed 100644
--- a/arch/frv/kernel/irq-mb93093.c
+++ b/arch/frv/kernel/irq-mb93093.c
@@ -79,7 +79,7 @@ static struct irq_chip frv_fpga_pic = {
79/* 79/*
80 * FPGA PIC interrupt handler 80 * FPGA PIC interrupt handler
81 */ 81 */
82static irqreturn_t fpga_interrupt(int irq, void *_mask, struct pt_regs *regs) 82static irqreturn_t fpga_interrupt(int irq, void *_mask)
83{ 83{
84 uint16_t imr, mask = (unsigned long) _mask; 84 uint16_t imr, mask = (unsigned long) _mask;
85 85
@@ -94,7 +94,7 @@ static irqreturn_t fpga_interrupt(int irq, void *_mask, struct pt_regs *regs)
94 irq = 31 - irq; 94 irq = 31 - irq;
95 mask &= ~(1 << irq); 95 mask &= ~(1 << irq);
96 96
97 generic_irq_handle(IRQ_BASE_FPGA + irq, regs); 97 generic_irq_handle(IRQ_BASE_FPGA + irq);
98 } 98 }
99 99
100 return IRQ_HANDLED; 100 return IRQ_HANDLED;
diff --git a/arch/frv/kernel/irq-mb93493.c b/arch/frv/kernel/irq-mb93493.c
index 39c0188a3498..c157eeff871d 100644
--- a/arch/frv/kernel/irq-mb93493.c
+++ b/arch/frv/kernel/irq-mb93493.c
@@ -90,7 +90,7 @@ static struct irq_chip frv_mb93493_pic = {
90/* 90/*
91 * MB93493 PIC interrupt handler 91 * MB93493 PIC interrupt handler
92 */ 92 */
93static irqreturn_t mb93493_interrupt(int irq, void *_piqsr, struct pt_regs *regs) 93static irqreturn_t mb93493_interrupt(int irq, void *_piqsr)
94{ 94{
95 volatile void *piqsr = _piqsr; 95 volatile void *piqsr = _piqsr;
96 uint32_t iqsr; 96 uint32_t iqsr;
@@ -106,7 +106,7 @@ static irqreturn_t mb93493_interrupt(int irq, void *_piqsr, struct pt_regs *regs
106 irq = 31 - irq; 106 irq = 31 - irq;
107 iqsr &= ~(1 << irq); 107 iqsr &= ~(1 << irq);
108 108
109 generic_handle_irq(IRQ_BASE_MB93493 + irq, regs); 109 generic_handle_irq(IRQ_BASE_MB93493 + irq);
110 } 110 }
111 111
112 return IRQ_HANDLED; 112 return IRQ_HANDLED;
diff --git a/arch/frv/kernel/irq.c b/arch/frv/kernel/irq.c
index 5ac041c7c0a4..87f360a4ea27 100644
--- a/arch/frv/kernel/irq.c
+++ b/arch/frv/kernel/irq.c
@@ -143,7 +143,7 @@ static struct irq_chip frv_cpu_pic = {
143asmlinkage void do_IRQ(void) 143asmlinkage void do_IRQ(void)
144{ 144{
145 irq_enter(); 145 irq_enter();
146 generic_handle_irq(__get_IRL(), __frame); 146 generic_handle_irq(__get_IRL());
147 irq_exit(); 147 irq_exit();
148} 148}
149 149
diff --git a/arch/frv/kernel/time.c b/arch/frv/kernel/time.c
index 44a9aebc4f5a..ed588d73d7d8 100644
--- a/arch/frv/kernel/time.c
+++ b/arch/frv/kernel/time.c
@@ -40,7 +40,7 @@ unsigned long __nongprelbss __dsu_clock_speed_HZ;
40unsigned long __nongprelbss __serial_clock_speed_HZ; 40unsigned long __nongprelbss __serial_clock_speed_HZ;
41unsigned long __delay_loops_MHz; 41unsigned long __delay_loops_MHz;
42 42
43static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs *regs); 43static irqreturn_t timer_interrupt(int irq, void *dummy);
44 44
45static struct irqaction timer_irq = { 45static struct irqaction timer_irq = {
46 timer_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "timer", NULL, NULL 46 timer_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "timer", NULL, NULL
@@ -55,7 +55,7 @@ static inline int set_rtc_mmss(unsigned long nowtime)
55 * timer_interrupt() needs to keep up the real-time clock, 55 * timer_interrupt() needs to keep up the real-time clock,
56 * as well as call the "do_timer()" routine every clocktick 56 * as well as call the "do_timer()" routine every clocktick
57 */ 57 */
58static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs) 58static irqreturn_t timer_interrupt(int irq, void *dummy)
59{ 59{
60 /* last time the cmos clock got updated */ 60 /* last time the cmos clock got updated */
61 static long last_rtc_update = 0; 61 static long last_rtc_update = 0;
@@ -70,8 +70,8 @@ static irqreturn_t timer_interrupt(int irq, void *dummy, struct pt_regs * regs)
70 write_seqlock(&xtime_lock); 70 write_seqlock(&xtime_lock);
71 71
72 do_timer(1); 72 do_timer(1);
73 update_process_times(user_mode(regs)); 73 update_process_times(user_mode(get_irq_regs()));
74 profile_tick(CPU_PROFILING, regs); 74 profile_tick(CPU_PROFILING);
75 75
76 /* 76 /*
77 * If we have an externally synchronized Linux clock, then update 77 * If we have an externally synchronized Linux clock, then update
diff --git a/arch/i386/defconfig b/arch/i386/defconfig
index ee2d79bd8af7..60c0c02574f0 100644
--- a/arch/i386/defconfig
+++ b/arch/i386/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-git7 3# Linux kernel version: 2.6.19-rc1
4# Wed Sep 27 21:53:10 2006 4# Thu Oct 5 13:04:53 2006
5# 5#
6CONFIG_X86_32=y 6CONFIG_X86_32=y
7CONFIG_GENERIC_TIME=y 7CONFIG_GENERIC_TIME=y
@@ -31,9 +31,11 @@ CONFIG_LOCALVERSION=""
31CONFIG_LOCALVERSION_AUTO=y 31CONFIG_LOCALVERSION_AUTO=y
32CONFIG_SWAP=y 32CONFIG_SWAP=y
33CONFIG_SYSVIPC=y 33CONFIG_SYSVIPC=y
34# CONFIG_IPC_NS is not set
34CONFIG_POSIX_MQUEUE=y 35CONFIG_POSIX_MQUEUE=y
35# CONFIG_BSD_PROCESS_ACCT is not set 36# CONFIG_BSD_PROCESS_ACCT is not set
36# CONFIG_TASKSTATS is not set 37# CONFIG_TASKSTATS is not set
38# CONFIG_UTS_NS is not set
37# CONFIG_AUDIT is not set 39# CONFIG_AUDIT is not set
38CONFIG_IKCONFIG=y 40CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y 41CONFIG_IKCONFIG_PROC=y
@@ -41,9 +43,10 @@ CONFIG_IKCONFIG_PROC=y
41# CONFIG_RELAY is not set 43# CONFIG_RELAY is not set
42CONFIG_INITRAMFS_SOURCE="" 44CONFIG_INITRAMFS_SOURCE=""
43CONFIG_CC_OPTIMIZE_FOR_SIZE=y 45CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SYSCTL=y
44# CONFIG_EMBEDDED is not set 47# CONFIG_EMBEDDED is not set
45CONFIG_UID16=y 48CONFIG_UID16=y
46CONFIG_SYSCTL=y 49# CONFIG_SYSCTL_SYSCALL is not set
47CONFIG_KALLSYMS=y 50CONFIG_KALLSYMS=y
48CONFIG_KALLSYMS_ALL=y 51CONFIG_KALLSYMS_ALL=y
49# CONFIG_KALLSYMS_EXTRA_PASS is not set 52# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -76,6 +79,7 @@ CONFIG_STOP_MACHINE=y
76# 79#
77# Block layer 80# Block layer
78# 81#
82CONFIG_BLOCK=y
79CONFIG_LBD=y 83CONFIG_LBD=y
80# CONFIG_BLK_DEV_IO_TRACE is not set 84# CONFIG_BLK_DEV_IO_TRACE is not set
81# CONFIG_LSF is not set 85# CONFIG_LSF is not set
@@ -163,6 +167,7 @@ CONFIG_VM86=y
163# CONFIG_I8K is not set 167# CONFIG_I8K is not set
164# CONFIG_X86_REBOOTFIXUPS is not set 168# CONFIG_X86_REBOOTFIXUPS is not set
165CONFIG_MICROCODE=y 169CONFIG_MICROCODE=y
170CONFIG_MICROCODE_OLD_INTERFACE=y
166CONFIG_X86_MSR=y 171CONFIG_X86_MSR=y
167CONFIG_X86_CPUID=y 172CONFIG_X86_CPUID=y
168 173
@@ -177,6 +182,7 @@ CONFIG_HIGHMEM4G=y
177# CONFIG_HIGHMEM64G is not set 182# CONFIG_HIGHMEM64G is not set
178CONFIG_PAGE_OFFSET=0xC0000000 183CONFIG_PAGE_OFFSET=0xC0000000
179CONFIG_HIGHMEM=y 184CONFIG_HIGHMEM=y
185CONFIG_ARCH_POPULATES_NODE_MAP=y
180CONFIG_SELECT_MEMORY_MODEL=y 186CONFIG_SELECT_MEMORY_MODEL=y
181CONFIG_FLATMEM_MANUAL=y 187CONFIG_FLATMEM_MANUAL=y
182# CONFIG_DISCONTIGMEM_MANUAL is not set 188# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -295,6 +301,7 @@ CONFIG_PCI_MMCONFIG=y
295CONFIG_PCI_MSI=y 301CONFIG_PCI_MSI=y
296# CONFIG_PCI_MULTITHREAD_PROBE is not set 302# CONFIG_PCI_MULTITHREAD_PROBE is not set
297# CONFIG_PCI_DEBUG is not set 303# CONFIG_PCI_DEBUG is not set
304# CONFIG_HT_IRQ is not set
298CONFIG_ISA_DMA_API=y 305CONFIG_ISA_DMA_API=y
299# CONFIG_ISA is not set 306# CONFIG_ISA is not set
300# CONFIG_MCA is not set 307# CONFIG_MCA is not set
@@ -354,6 +361,7 @@ CONFIG_IP_PNP_DHCP=y
354# CONFIG_INET_TUNNEL is not set 361# CONFIG_INET_TUNNEL is not set
355CONFIG_INET_XFRM_MODE_TRANSPORT=y 362CONFIG_INET_XFRM_MODE_TRANSPORT=y
356CONFIG_INET_XFRM_MODE_TUNNEL=y 363CONFIG_INET_XFRM_MODE_TUNNEL=y
364# CONFIG_INET_XFRM_MODE_BEET is not set
357CONFIG_INET_DIAG=y 365CONFIG_INET_DIAG=y
358CONFIG_INET_TCP_DIAG=y 366CONFIG_INET_TCP_DIAG=y
359# CONFIG_TCP_CONG_ADVANCED is not set 367# CONFIG_TCP_CONG_ADVANCED is not set
@@ -370,6 +378,7 @@ CONFIG_IPV6=y
370# CONFIG_INET6_TUNNEL is not set 378# CONFIG_INET6_TUNNEL is not set
371CONFIG_INET6_XFRM_MODE_TRANSPORT=y 379CONFIG_INET6_XFRM_MODE_TRANSPORT=y
372CONFIG_INET6_XFRM_MODE_TUNNEL=y 380CONFIG_INET6_XFRM_MODE_TUNNEL=y
381# CONFIG_INET6_XFRM_MODE_BEET is not set
373# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 382# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
374# CONFIG_IPV6_TUNNEL is not set 383# CONFIG_IPV6_TUNNEL is not set
375# CONFIG_IPV6_SUBTREES is not set 384# CONFIG_IPV6_SUBTREES is not set
@@ -519,6 +528,7 @@ CONFIG_BLK_DEV_AMD74XX=y
519# CONFIG_BLK_DEV_CS5535 is not set 528# CONFIG_BLK_DEV_CS5535 is not set
520# CONFIG_BLK_DEV_HPT34X is not set 529# CONFIG_BLK_DEV_HPT34X is not set
521# CONFIG_BLK_DEV_HPT366 is not set 530# CONFIG_BLK_DEV_HPT366 is not set
531# CONFIG_BLK_DEV_JMICRON is not set
522# CONFIG_BLK_DEV_SC1200 is not set 532# CONFIG_BLK_DEV_SC1200 is not set
523CONFIG_BLK_DEV_PIIX=y 533CONFIG_BLK_DEV_PIIX=y
524# CONFIG_BLK_DEV_IT821X is not set 534# CONFIG_BLK_DEV_IT821X is not set
@@ -615,6 +625,7 @@ CONFIG_AIC79XX_DEBUG_MASK=0
615# CONFIG_SCSI_IPR is not set 625# CONFIG_SCSI_IPR is not set
616# CONFIG_SCSI_QLOGIC_1280 is not set 626# CONFIG_SCSI_QLOGIC_1280 is not set
617# CONFIG_SCSI_QLA_FC is not set 627# CONFIG_SCSI_QLA_FC is not set
628# CONFIG_SCSI_QLA_ISCSI is not set
618# CONFIG_SCSI_LPFC is not set 629# CONFIG_SCSI_LPFC is not set
619# CONFIG_SCSI_DC395x is not set 630# CONFIG_SCSI_DC395x is not set
620# CONFIG_SCSI_DC390T is not set 631# CONFIG_SCSI_DC390T is not set
@@ -658,7 +669,6 @@ CONFIG_SATA_INTEL_COMBINED=y
658# CONFIG_PATA_HPT3X3 is not set 669# CONFIG_PATA_HPT3X3 is not set
659# CONFIG_PATA_IT821X is not set 670# CONFIG_PATA_IT821X is not set
660# CONFIG_PATA_JMICRON is not set 671# CONFIG_PATA_JMICRON is not set
661# CONFIG_PATA_LEGACY is not set
662# CONFIG_PATA_TRIFLEX is not set 672# CONFIG_PATA_TRIFLEX is not set
663# CONFIG_PATA_MPIIX is not set 673# CONFIG_PATA_MPIIX is not set
664# CONFIG_PATA_OLDPIIX is not set 674# CONFIG_PATA_OLDPIIX is not set
@@ -667,7 +677,6 @@ CONFIG_SATA_INTEL_COMBINED=y
667# CONFIG_PATA_OPTI is not set 677# CONFIG_PATA_OPTI is not set
668# CONFIG_PATA_OPTIDMA is not set 678# CONFIG_PATA_OPTIDMA is not set
669# CONFIG_PATA_PDC_OLD is not set 679# CONFIG_PATA_PDC_OLD is not set
670# CONFIG_PATA_QDI is not set
671# CONFIG_PATA_RADISYS is not set 680# CONFIG_PATA_RADISYS is not set
672# CONFIG_PATA_RZ1000 is not set 681# CONFIG_PATA_RZ1000 is not set
673# CONFIG_PATA_SC1200 is not set 682# CONFIG_PATA_SC1200 is not set
@@ -684,6 +693,7 @@ CONFIG_SATA_INTEL_COMBINED=y
684CONFIG_MD=y 693CONFIG_MD=y
685# CONFIG_BLK_DEV_MD is not set 694# CONFIG_BLK_DEV_MD is not set
686CONFIG_BLK_DEV_DM=y 695CONFIG_BLK_DEV_DM=y
696# CONFIG_DM_DEBUG is not set
687# CONFIG_DM_CRYPT is not set 697# CONFIG_DM_CRYPT is not set
688# CONFIG_DM_SNAPSHOT is not set 698# CONFIG_DM_SNAPSHOT is not set
689# CONFIG_DM_MIRROR is not set 699# CONFIG_DM_MIRROR is not set
@@ -874,6 +884,7 @@ CONFIG_NET_POLL_CONTROLLER=y
874# Input device support 884# Input device support
875# 885#
876CONFIG_INPUT=y 886CONFIG_INPUT=y
887# CONFIG_INPUT_FF_MEMLESS is not set
877 888
878# 889#
879# Userland interfaces 890# Userland interfaces
@@ -896,6 +907,7 @@ CONFIG_KEYBOARD_ATKBD=y
896# CONFIG_KEYBOARD_LKKBD is not set 907# CONFIG_KEYBOARD_LKKBD is not set
897# CONFIG_KEYBOARD_XTKBD is not set 908# CONFIG_KEYBOARD_XTKBD is not set
898# CONFIG_KEYBOARD_NEWTON is not set 909# CONFIG_KEYBOARD_NEWTON is not set
910# CONFIG_KEYBOARD_STOWAWAY is not set
899CONFIG_INPUT_MOUSE=y 911CONFIG_INPUT_MOUSE=y
900CONFIG_MOUSE_PS2=y 912CONFIG_MOUSE_PS2=y
901# CONFIG_MOUSE_SERIAL is not set 913# CONFIG_MOUSE_SERIAL is not set
@@ -1023,12 +1035,12 @@ CONFIG_HANGCHECK_TIMER=y
1023# Misc devices 1035# Misc devices
1024# 1036#
1025# CONFIG_IBM_ASM is not set 1037# CONFIG_IBM_ASM is not set
1038# CONFIG_TIFM_CORE is not set
1026 1039
1027# 1040#
1028# Multimedia devices 1041# Multimedia devices
1029# 1042#
1030# CONFIG_VIDEO_DEV is not set 1043# CONFIG_VIDEO_DEV is not set
1031CONFIG_VIDEO_V4L2=y
1032 1044
1033# 1045#
1034# Digital Video Broadcasting Devices 1046# Digital Video Broadcasting Devices
@@ -1134,6 +1146,7 @@ CONFIG_USB_STORAGE=y
1134# CONFIG_USB_STORAGE_SDDR55 is not set 1146# CONFIG_USB_STORAGE_SDDR55 is not set
1135# CONFIG_USB_STORAGE_JUMPSHOT is not set 1147# CONFIG_USB_STORAGE_JUMPSHOT is not set
1136# CONFIG_USB_STORAGE_ALAUDA is not set 1148# CONFIG_USB_STORAGE_ALAUDA is not set
1149# CONFIG_USB_STORAGE_KARMA is not set
1137# CONFIG_USB_LIBUSUAL is not set 1150# CONFIG_USB_LIBUSUAL is not set
1138 1151
1139# 1152#
@@ -1156,6 +1169,7 @@ CONFIG_USB_HIDINPUT=y
1156# CONFIG_USB_ATI_REMOTE2 is not set 1169# CONFIG_USB_ATI_REMOTE2 is not set
1157# CONFIG_USB_KEYSPAN_REMOTE is not set 1170# CONFIG_USB_KEYSPAN_REMOTE is not set
1158# CONFIG_USB_APPLETOUCH is not set 1171# CONFIG_USB_APPLETOUCH is not set
1172# CONFIG_USB_TRANCEVIBRATOR is not set
1159 1173
1160# 1174#
1161# USB Imaging devices 1175# USB Imaging devices
@@ -1187,6 +1201,7 @@ CONFIG_USB_MON=y
1187# 1201#
1188# CONFIG_USB_EMI62 is not set 1202# CONFIG_USB_EMI62 is not set
1189# CONFIG_USB_EMI26 is not set 1203# CONFIG_USB_EMI26 is not set
1204# CONFIG_USB_ADUTUX is not set
1190# CONFIG_USB_AUERSWALD is not set 1205# CONFIG_USB_AUERSWALD is not set
1191# CONFIG_USB_RIO500 is not set 1206# CONFIG_USB_RIO500 is not set
1192# CONFIG_USB_LEGOTOWER is not set 1207# CONFIG_USB_LEGOTOWER is not set
@@ -1194,9 +1209,9 @@ CONFIG_USB_MON=y
1194# CONFIG_USB_LED is not set 1209# CONFIG_USB_LED is not set
1195# CONFIG_USB_CYPRESS_CY7C63 is not set 1210# CONFIG_USB_CYPRESS_CY7C63 is not set
1196# CONFIG_USB_CYTHERM is not set 1211# CONFIG_USB_CYTHERM is not set
1197# CONFIG_USB_PHIDGETKIT is not set 1212# CONFIG_USB_PHIDGET is not set
1198# CONFIG_USB_PHIDGETSERVO is not set
1199# CONFIG_USB_IDMOUSE is not set 1213# CONFIG_USB_IDMOUSE is not set
1214# CONFIG_USB_FTDI_ELAN is not set
1200# CONFIG_USB_APPLEDISPLAY is not set 1215# CONFIG_USB_APPLEDISPLAY is not set
1201# CONFIG_USB_SISUSBVGA is not set 1216# CONFIG_USB_SISUSBVGA is not set
1202# CONFIG_USB_LD is not set 1217# CONFIG_USB_LD is not set
@@ -1281,6 +1296,7 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
1281# CONFIG_JFS_FS is not set 1296# CONFIG_JFS_FS is not set
1282CONFIG_FS_POSIX_ACL=y 1297CONFIG_FS_POSIX_ACL=y
1283# CONFIG_XFS_FS is not set 1298# CONFIG_XFS_FS is not set
1299# CONFIG_GFS2_FS is not set
1284# CONFIG_OCFS2_FS is not set 1300# CONFIG_OCFS2_FS is not set
1285# CONFIG_MINIX_FS is not set 1301# CONFIG_MINIX_FS is not set
1286# CONFIG_ROMFS_FS is not set 1302# CONFIG_ROMFS_FS is not set
@@ -1315,8 +1331,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1315# 1331#
1316CONFIG_PROC_FS=y 1332CONFIG_PROC_FS=y
1317CONFIG_PROC_KCORE=y 1333CONFIG_PROC_KCORE=y
1334CONFIG_PROC_SYSCTL=y
1318CONFIG_SYSFS=y 1335CONFIG_SYSFS=y
1319CONFIG_TMPFS=y 1336CONFIG_TMPFS=y
1337CONFIG_TMPFS_POSIX_ACL=y
1320CONFIG_HUGETLBFS=y 1338CONFIG_HUGETLBFS=y
1321CONFIG_HUGETLB_PAGE=y 1339CONFIG_HUGETLB_PAGE=y
1322CONFIG_RAMFS=y 1340CONFIG_RAMFS=y
@@ -1366,6 +1384,7 @@ CONFIG_SUNRPC=y
1366# CONFIG_CODA_FS is not set 1384# CONFIG_CODA_FS is not set
1367# CONFIG_AFS_FS is not set 1385# CONFIG_AFS_FS is not set
1368# CONFIG_9P_FS is not set 1386# CONFIG_9P_FS is not set
1387CONFIG_GENERIC_ACL=y
1369 1388
1370# 1389#
1371# Partition Types 1390# Partition Types
@@ -1418,6 +1437,10 @@ CONFIG_NLS_ISO8859_15=y
1418CONFIG_NLS_UTF8=y 1437CONFIG_NLS_UTF8=y
1419 1438
1420# 1439#
1440# Distributed Lock Manager
1441#
1442
1443#
1421# Instrumentation Support 1444# Instrumentation Support
1422# 1445#
1423CONFIG_PROFILING=y 1446CONFIG_PROFILING=y
@@ -1452,11 +1475,13 @@ CONFIG_DEBUG_BUGVERBOSE=y
1452# CONFIG_DEBUG_INFO is not set 1475# CONFIG_DEBUG_INFO is not set
1453# CONFIG_DEBUG_FS is not set 1476# CONFIG_DEBUG_FS is not set
1454# CONFIG_DEBUG_VM is not set 1477# CONFIG_DEBUG_VM is not set
1478# CONFIG_DEBUG_LIST is not set
1455# CONFIG_FRAME_POINTER is not set 1479# CONFIG_FRAME_POINTER is not set
1456CONFIG_UNWIND_INFO=y 1480CONFIG_UNWIND_INFO=y
1457CONFIG_STACK_UNWIND=y 1481CONFIG_STACK_UNWIND=y
1458# CONFIG_FORCED_INLINING is not set 1482# CONFIG_FORCED_INLINING is not set
1459# CONFIG_RCU_TORTURE_TEST is not set 1483# CONFIG_RCU_TORTURE_TEST is not set
1484# CONFIG_LKDTM is not set
1460CONFIG_EARLY_PRINTK=y 1485CONFIG_EARLY_PRINTK=y
1461CONFIG_DEBUG_STACKOVERFLOW=y 1486CONFIG_DEBUG_STACKOVERFLOW=y
1462# CONFIG_DEBUG_STACK_USAGE is not set 1487# CONFIG_DEBUG_STACK_USAGE is not set
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c
index 90faae5c5d30..7d500da0e63b 100644
--- a/arch/i386/kernel/apic.c
+++ b/arch/i386/kernel/apic.c
@@ -1193,11 +1193,11 @@ EXPORT_SYMBOL(switch_ipi_to_APIC_timer);
1193 * value into /proc/profile. 1193 * value into /proc/profile.
1194 */ 1194 */
1195 1195
1196inline void smp_local_timer_interrupt(struct pt_regs * regs) 1196inline void smp_local_timer_interrupt(void)
1197{ 1197{
1198 profile_tick(CPU_PROFILING, regs); 1198 profile_tick(CPU_PROFILING);
1199#ifdef CONFIG_SMP 1199#ifdef CONFIG_SMP
1200 update_process_times(user_mode_vm(regs)); 1200 update_process_times(user_mode_vm(irq_regs));
1201#endif 1201#endif
1202 1202
1203 /* 1203 /*
@@ -1223,6 +1223,7 @@ inline void smp_local_timer_interrupt(struct pt_regs * regs)
1223 1223
1224fastcall void smp_apic_timer_interrupt(struct pt_regs *regs) 1224fastcall void smp_apic_timer_interrupt(struct pt_regs *regs)
1225{ 1225{
1226 struct pt_regs *old_regs = set_irq_regs(regs);
1226 int cpu = smp_processor_id(); 1227 int cpu = smp_processor_id();
1227 1228
1228 /* 1229 /*
@@ -1241,12 +1242,13 @@ fastcall void smp_apic_timer_interrupt(struct pt_regs *regs)
1241 * interrupt lock, which is the WrongThing (tm) to do. 1242 * interrupt lock, which is the WrongThing (tm) to do.
1242 */ 1243 */
1243 irq_enter(); 1244 irq_enter();
1244 smp_local_timer_interrupt(regs); 1245 smp_local_timer_interrupt();
1245 irq_exit(); 1246 irq_exit();
1247 set_irq_regs(old_regs);
1246} 1248}
1247 1249
1248#ifndef CONFIG_SMP 1250#ifndef CONFIG_SMP
1249static void up_apic_timer_interrupt_call(struct pt_regs *regs) 1251static void up_apic_timer_interrupt_call(void)
1250{ 1252{
1251 int cpu = smp_processor_id(); 1253 int cpu = smp_processor_id();
1252 1254
@@ -1255,11 +1257,11 @@ static void up_apic_timer_interrupt_call(struct pt_regs *regs)
1255 */ 1257 */
1256 per_cpu(irq_stat, cpu).apic_timer_irqs++; 1258 per_cpu(irq_stat, cpu).apic_timer_irqs++;
1257 1259
1258 smp_local_timer_interrupt(regs); 1260 smp_local_timer_interrupt();
1259} 1261}
1260#endif 1262#endif
1261 1263
1262void smp_send_timer_broadcast_ipi(struct pt_regs *regs) 1264void smp_send_timer_broadcast_ipi(void)
1263{ 1265{
1264 cpumask_t mask; 1266 cpumask_t mask;
1265 1267
@@ -1272,7 +1274,7 @@ void smp_send_timer_broadcast_ipi(struct pt_regs *regs)
1272 * We can directly call the apic timer interrupt handler 1274 * We can directly call the apic timer interrupt handler
1273 * in UP case. Minus all irq related functions 1275 * in UP case. Minus all irq related functions
1274 */ 1276 */
1275 up_apic_timer_interrupt_call(regs); 1277 up_apic_timer_interrupt_call();
1276#endif 1278#endif
1277 } 1279 }
1278} 1280}
diff --git a/arch/i386/kernel/i8259.c b/arch/i386/kernel/i8259.c
index d07ed31f11e3..d53eafb6daa7 100644
--- a/arch/i386/kernel/i8259.c
+++ b/arch/i386/kernel/i8259.c
@@ -335,13 +335,13 @@ void init_8259A(int auto_eoi)
335 */ 335 */
336 336
337 337
338static irqreturn_t math_error_irq(int cpl, void *dev_id, struct pt_regs *regs) 338static irqreturn_t math_error_irq(int cpl, void *dev_id)
339{ 339{
340 extern void math_error(void __user *); 340 extern void math_error(void __user *);
341 outb(0,0xF0); 341 outb(0,0xF0);
342 if (ignore_fpu_irq || !boot_cpu_data.hard_math) 342 if (ignore_fpu_irq || !boot_cpu_data.hard_math)
343 return IRQ_NONE; 343 return IRQ_NONE;
344 math_error((void __user *)regs->eip); 344 math_error((void __user *)get_irq_regs()->eip);
345 return IRQ_HANDLED; 345 return IRQ_HANDLED;
346} 346}
347 347
diff --git a/arch/i386/kernel/irq.c b/arch/i386/kernel/irq.c
index 3dd2e180151b..8cfc7dbec7b9 100644
--- a/arch/i386/kernel/irq.c
+++ b/arch/i386/kernel/irq.c
@@ -53,6 +53,7 @@ static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly;
53 */ 53 */
54fastcall unsigned int do_IRQ(struct pt_regs *regs) 54fastcall unsigned int do_IRQ(struct pt_regs *regs)
55{ 55{
56 struct pt_regs *old_regs;
56 /* high bit used in ret_from_ code */ 57 /* high bit used in ret_from_ code */
57 int irq = ~regs->orig_eax; 58 int irq = ~regs->orig_eax;
58 struct irq_desc *desc = irq_desc + irq; 59 struct irq_desc *desc = irq_desc + irq;
@@ -67,6 +68,7 @@ fastcall unsigned int do_IRQ(struct pt_regs *regs)
67 BUG(); 68 BUG();
68 } 69 }
69 70
71 old_regs = set_irq_regs(regs);
70 irq_enter(); 72 irq_enter();
71#ifdef CONFIG_DEBUG_STACKOVERFLOW 73#ifdef CONFIG_DEBUG_STACKOVERFLOW
72 /* Debugging check for stack overflow: is there less than 1KB free? */ 74 /* Debugging check for stack overflow: is there less than 1KB free? */
@@ -95,7 +97,7 @@ fastcall unsigned int do_IRQ(struct pt_regs *regs)
95 * current stack (which is the irq stack already after all) 97 * current stack (which is the irq stack already after all)
96 */ 98 */
97 if (curctx != irqctx) { 99 if (curctx != irqctx) {
98 int arg1, arg2, arg3, ebx; 100 int arg1, arg2, ebx;
99 101
100 /* build the stack frame on the IRQ stack */ 102 /* build the stack frame on the IRQ stack */
101 isp = (u32*) ((char*)irqctx + sizeof(*irqctx)); 103 isp = (u32*) ((char*)irqctx + sizeof(*irqctx));
@@ -114,17 +116,17 @@ fastcall unsigned int do_IRQ(struct pt_regs *regs)
114 " xchgl %%ebx,%%esp \n" 116 " xchgl %%ebx,%%esp \n"
115 " call *%%edi \n" 117 " call *%%edi \n"
116 " movl %%ebx,%%esp \n" 118 " movl %%ebx,%%esp \n"
117 : "=a" (arg1), "=d" (arg2), "=c" (arg3), "=b" (ebx) 119 : "=a" (arg1), "=d" (arg2), "=b" (ebx)
118 : "0" (irq), "1" (desc), "2" (regs), "3" (isp), 120 : "0" (irq), "1" (desc), "2" (isp),
119 "D" (desc->handle_irq) 121 "D" (desc->handle_irq)
120 : "memory", "cc" 122 : "memory", "cc"
121 ); 123 );
122 } else 124 } else
123#endif 125#endif
124 desc->handle_irq(irq, desc, regs); 126 desc->handle_irq(irq, desc);
125 127
126 irq_exit(); 128 irq_exit();
127 129 set_irq_regs(old_regs);
128 return 1; 130 return 1;
129} 131}
130 132
diff --git a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c
index dad02a960e03..b0a07801d9df 100644
--- a/arch/i386/kernel/process.c
+++ b/arch/i386/kernel/process.c
@@ -328,6 +328,7 @@ extern void kernel_thread_helper(void);
328int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) 328int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
329{ 329{
330 struct pt_regs regs; 330 struct pt_regs regs;
331 int err;
331 332
332 memset(&regs, 0, sizeof(regs)); 333 memset(&regs, 0, sizeof(regs));
333 334
@@ -342,7 +343,10 @@ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
342 regs.eflags = X86_EFLAGS_IF | X86_EFLAGS_SF | X86_EFLAGS_PF | 0x2; 343 regs.eflags = X86_EFLAGS_IF | X86_EFLAGS_SF | X86_EFLAGS_PF | 0x2;
343 344
344 /* Ok, create the new process.. */ 345 /* Ok, create the new process.. */
345 return do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, &regs, 0, NULL, NULL); 346 err = do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, &regs, 0, NULL, NULL);
347 if (err == 0) /* terminate kernel stack */
348 task_pt_regs(current)->eip = 0;
349 return err;
346} 350}
347EXPORT_SYMBOL(kernel_thread); 351EXPORT_SYMBOL(kernel_thread);
348 352
diff --git a/arch/i386/kernel/smp.c b/arch/i386/kernel/smp.c
index 1b080ab8a49f..31e5c6573aae 100644
--- a/arch/i386/kernel/smp.c
+++ b/arch/i386/kernel/smp.c
@@ -321,6 +321,7 @@ static inline void leave_mm (unsigned long cpu)
321 321
322fastcall void smp_invalidate_interrupt(struct pt_regs *regs) 322fastcall void smp_invalidate_interrupt(struct pt_regs *regs)
323{ 323{
324 struct pt_regs *old_regs = set_irq_regs(regs);
324 unsigned long cpu; 325 unsigned long cpu;
325 326
326 cpu = get_cpu(); 327 cpu = get_cpu();
@@ -351,6 +352,7 @@ fastcall void smp_invalidate_interrupt(struct pt_regs *regs)
351 smp_mb__after_clear_bit(); 352 smp_mb__after_clear_bit();
352out: 353out:
353 put_cpu_no_resched(); 354 put_cpu_no_resched();
355 set_irq_regs(old_regs);
354} 356}
355 357
356static void flush_tlb_others(cpumask_t cpumask, struct mm_struct *mm, 358static void flush_tlb_others(cpumask_t cpumask, struct mm_struct *mm,
@@ -605,11 +607,14 @@ void smp_send_stop(void)
605 */ 607 */
606fastcall void smp_reschedule_interrupt(struct pt_regs *regs) 608fastcall void smp_reschedule_interrupt(struct pt_regs *regs)
607{ 609{
610 struct pt_regs *old_regs = set_irq_regs(regs);
608 ack_APIC_irq(); 611 ack_APIC_irq();
612 set_irq_regs(old_regs);
609} 613}
610 614
611fastcall void smp_call_function_interrupt(struct pt_regs *regs) 615fastcall void smp_call_function_interrupt(struct pt_regs *regs)
612{ 616{
617 struct pt_regs *old_regs = set_irq_regs(regs);
613 void (*func) (void *info) = call_data->func; 618 void (*func) (void *info) = call_data->func;
614 void *info = call_data->info; 619 void *info = call_data->info;
615 int wait = call_data->wait; 620 int wait = call_data->wait;
@@ -632,6 +637,7 @@ fastcall void smp_call_function_interrupt(struct pt_regs *regs)
632 mb(); 637 mb();
633 atomic_inc(&call_data->finished); 638 atomic_inc(&call_data->finished);
634 } 639 }
640 set_irq_regs(old_regs);
635} 641}
636 642
637/* 643/*
diff --git a/arch/i386/kernel/time.c b/arch/i386/kernel/time.c
index 58a2d5582419..3f221f5eb47e 100644
--- a/arch/i386/kernel/time.c
+++ b/arch/i386/kernel/time.c
@@ -161,7 +161,7 @@ EXPORT_SYMBOL(profile_pc);
161 * Time Stamp Counter value at the time of the timer interrupt, so that 161 * Time Stamp Counter value at the time of the timer interrupt, so that
162 * we later on can estimate the time of day more exactly. 162 * we later on can estimate the time of day more exactly.
163 */ 163 */
164irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 164irqreturn_t timer_interrupt(int irq, void *dev_id)
165{ 165{
166 /* 166 /*
167 * Here we are in the timer irq handler. We just have irqs locally 167 * Here we are in the timer irq handler. We just have irqs locally
@@ -188,7 +188,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
188 } 188 }
189#endif 189#endif
190 190
191 do_timer_interrupt_hook(regs); 191 do_timer_interrupt_hook();
192 192
193 193
194 if (MCA_bus) { 194 if (MCA_bus) {
@@ -209,7 +209,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
209 209
210#ifdef CONFIG_X86_LOCAL_APIC 210#ifdef CONFIG_X86_LOCAL_APIC
211 if (using_apic_timer) 211 if (using_apic_timer)
212 smp_send_timer_broadcast_ipi(regs); 212 smp_send_timer_broadcast_ipi();
213#endif 213#endif
214 214
215 return IRQ_HANDLED; 215 return IRQ_HANDLED;
diff --git a/arch/i386/kernel/time_hpet.c b/arch/i386/kernel/time_hpet.c
index 6bf14a4e995e..1a2a979cf6a3 100644
--- a/arch/i386/kernel/time_hpet.c
+++ b/arch/i386/kernel/time_hpet.c
@@ -441,7 +441,7 @@ int hpet_rtc_dropped_irq(void)
441 return 1; 441 return 1;
442} 442}
443 443
444irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 444irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id)
445{ 445{
446 struct rtc_time curr_time; 446 struct rtc_time curr_time;
447 unsigned long rtc_int_flag = 0; 447 unsigned long rtc_int_flag = 0;
@@ -480,7 +480,7 @@ irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
480 } 480 }
481 if (call_rtc_interrupt) { 481 if (call_rtc_interrupt) {
482 rtc_int_flag |= (RTC_IRQF | (RTC_NUM_INTS << 8)); 482 rtc_int_flag |= (RTC_IRQF | (RTC_NUM_INTS << 8));
483 rtc_interrupt(rtc_int_flag, dev_id, regs); 483 rtc_interrupt(rtc_int_flag, dev_id);
484 } 484 }
485 return IRQ_HANDLED; 485 return IRQ_HANDLED;
486} 486}
diff --git a/arch/i386/kernel/vm86.c b/arch/i386/kernel/vm86.c
index 8355d8d87d18..cbcd61d6120b 100644
--- a/arch/i386/kernel/vm86.c
+++ b/arch/i386/kernel/vm86.c
@@ -714,7 +714,7 @@ static int irqbits;
714 | (1 << SIGUSR1) | (1 << SIGUSR2) | (1 << SIGIO) | (1 << SIGURG) \ 714 | (1 << SIGUSR1) | (1 << SIGUSR2) | (1 << SIGIO) | (1 << SIGURG) \
715 | (1 << SIGUNUSED) ) 715 | (1 << SIGUNUSED) )
716 716
717static irqreturn_t irq_handler(int intno, void *dev_id, struct pt_regs * regs) 717static irqreturn_t irq_handler(int intno, void *dev_id)
718{ 718{
719 int irq_bit; 719 int irq_bit;
720 unsigned long flags; 720 unsigned long flags;
diff --git a/arch/i386/lib/semaphore.S b/arch/i386/lib/semaphore.S
index ef6ad9e1a609..c01eb39c0b43 100644
--- a/arch/i386/lib/semaphore.S
+++ b/arch/i386/lib/semaphore.S
@@ -152,6 +152,8 @@ ENTRY(__read_lock_failed)
152 152
153#endif 153#endif
154 154
155#ifdef CONFIG_RWSEM_XCHGADD_ALGORITHM
156
155/* Fix up special calling conventions */ 157/* Fix up special calling conventions */
156ENTRY(call_rwsem_down_read_failed) 158ENTRY(call_rwsem_down_read_failed)
157 CFI_STARTPROC 159 CFI_STARTPROC
@@ -214,3 +216,4 @@ ENTRY(call_rwsem_downgrade_wake)
214 CFI_ENDPROC 216 CFI_ENDPROC
215 END(call_rwsem_downgrade_wake) 217 END(call_rwsem_downgrade_wake)
216 218
219#endif
diff --git a/arch/i386/mach-visws/visws_apic.c b/arch/i386/mach-visws/visws_apic.c
index 5929f884d79b..07097ed48890 100644
--- a/arch/i386/mach-visws/visws_apic.c
+++ b/arch/i386/mach-visws/visws_apic.c
@@ -191,7 +191,7 @@ static struct hw_interrupt_type piix4_virtual_irq_type = {
191 * enable_irq gets the right irq. This 'master' irq is never directly 191 * enable_irq gets the right irq. This 'master' irq is never directly
192 * manipulated by any driver. 192 * manipulated by any driver.
193 */ 193 */
194static irqreturn_t piix4_master_intr(int irq, void *dev_id, struct pt_regs * regs) 194static irqreturn_t piix4_master_intr(int irq, void *dev_id)
195{ 195{
196 int realirq; 196 int realirq;
197 irq_desc_t *desc; 197 irq_desc_t *desc;
@@ -244,7 +244,7 @@ static irqreturn_t piix4_master_intr(int irq, void *dev_id, struct pt_regs * reg
244 kstat_cpu(smp_processor_id()).irqs[realirq]++; 244 kstat_cpu(smp_processor_id()).irqs[realirq]++;
245 245
246 if (likely(desc->action != NULL)) 246 if (likely(desc->action != NULL))
247 handle_IRQ_event(realirq, regs, desc->action); 247 handle_IRQ_event(realirq, desc->action);
248 248
249 if (!(desc->status & IRQ_DISABLED)) 249 if (!(desc->status & IRQ_DISABLED))
250 enable_8259A_irq(realirq); 250 enable_8259A_irq(realirq);
diff --git a/arch/i386/mach-voyager/voyager_basic.c b/arch/i386/mach-voyager/voyager_basic.c
index 80b7f2fc4f46..c639d30d8bdc 100644
--- a/arch/i386/mach-voyager/voyager_basic.c
+++ b/arch/i386/mach-voyager/voyager_basic.c
@@ -87,7 +87,7 @@ voyager_detect(struct voyager_bios_info *bios)
87} 87}
88 88
89void 89void
90voyager_system_interrupt(int cpl, void *dev_id, struct pt_regs *regs) 90voyager_system_interrupt(int cpl, void *dev_id)
91{ 91{
92 printk("Voyager: detected system interrupt\n"); 92 printk("Voyager: detected system interrupt\n");
93} 93}
diff --git a/arch/i386/mach-voyager/voyager_smp.c b/arch/i386/mach-voyager/voyager_smp.c
index 856c73fcb7e7..d42422fc4af3 100644
--- a/arch/i386/mach-voyager/voyager_smp.c
+++ b/arch/i386/mach-voyager/voyager_smp.c
@@ -126,10 +126,10 @@ send_QIC_CPI(__u32 cpuset, __u8 cpi)
126} 126}
127 127
128static inline void 128static inline void
129wrapper_smp_local_timer_interrupt(struct pt_regs *regs) 129wrapper_smp_local_timer_interrupt(void)
130{ 130{
131 irq_enter(); 131 irq_enter();
132 smp_local_timer_interrupt(regs); 132 smp_local_timer_interrupt();
133 irq_exit(); 133 irq_exit();
134} 134}
135 135
@@ -786,7 +786,7 @@ fastcall void
786smp_vic_sys_interrupt(struct pt_regs *regs) 786smp_vic_sys_interrupt(struct pt_regs *regs)
787{ 787{
788 ack_CPI(VIC_SYS_INT); 788 ack_CPI(VIC_SYS_INT);
789 printk("Voyager SYSTEM INTERRUPT\n"); 789 printk("Voyager SYSTEM INTERRUPT\n");
790} 790}
791 791
792/* Handle a voyager CMN_INT; These interrupts occur either because of 792/* Handle a voyager CMN_INT; These interrupts occur either because of
@@ -1135,7 +1135,9 @@ EXPORT_SYMBOL(smp_call_function);
1135fastcall void 1135fastcall void
1136smp_apic_timer_interrupt(struct pt_regs *regs) 1136smp_apic_timer_interrupt(struct pt_regs *regs)
1137{ 1137{
1138 wrapper_smp_local_timer_interrupt(regs); 1138 struct pt_regs *old_regs = set_irq_regs(regs);
1139 wrapper_smp_local_timer_interrupt();
1140 set_irq_regs(old_regs);
1139} 1141}
1140 1142
1141/* All of the QUAD interrupt GATES */ 1143/* All of the QUAD interrupt GATES */
@@ -1143,7 +1145,9 @@ fastcall void
1143smp_qic_timer_interrupt(struct pt_regs *regs) 1145smp_qic_timer_interrupt(struct pt_regs *regs)
1144{ 1146{
1145 ack_QIC_CPI(QIC_TIMER_CPI); 1147 ack_QIC_CPI(QIC_TIMER_CPI);
1146 wrapper_smp_local_timer_interrupt(regs); 1148 struct pt_regs *old_regs = set_irq_regs(regs);
1149 wrapper_smp_local_timer_interrupt(void);
1150 set_irq_regs(old_regs);
1147} 1151}
1148 1152
1149fastcall void 1153fastcall void
@@ -1177,6 +1181,7 @@ smp_qic_call_function_interrupt(struct pt_regs *regs)
1177fastcall void 1181fastcall void
1178smp_vic_cpi_interrupt(struct pt_regs *regs) 1182smp_vic_cpi_interrupt(struct pt_regs *regs)
1179{ 1183{
1184 struct pt_regs *old_regs = set_irq_regs(regs);
1180 __u8 cpu = smp_processor_id(); 1185 __u8 cpu = smp_processor_id();
1181 1186
1182 if(is_cpu_quad()) 1187 if(is_cpu_quad())
@@ -1185,7 +1190,7 @@ smp_vic_cpi_interrupt(struct pt_regs *regs)
1185 ack_VIC_CPI(VIC_CPI_LEVEL0); 1190 ack_VIC_CPI(VIC_CPI_LEVEL0);
1186 1191
1187 if(test_and_clear_bit(VIC_TIMER_CPI, &vic_cpi_mailbox[cpu])) 1192 if(test_and_clear_bit(VIC_TIMER_CPI, &vic_cpi_mailbox[cpu]))
1188 wrapper_smp_local_timer_interrupt(regs); 1193 wrapper_smp_local_timer_interrupt();
1189 if(test_and_clear_bit(VIC_INVALIDATE_CPI, &vic_cpi_mailbox[cpu])) 1194 if(test_and_clear_bit(VIC_INVALIDATE_CPI, &vic_cpi_mailbox[cpu]))
1190 smp_invalidate_interrupt(); 1195 smp_invalidate_interrupt();
1191 if(test_and_clear_bit(VIC_RESCHEDULE_CPI, &vic_cpi_mailbox[cpu])) 1196 if(test_and_clear_bit(VIC_RESCHEDULE_CPI, &vic_cpi_mailbox[cpu]))
@@ -1194,6 +1199,7 @@ smp_vic_cpi_interrupt(struct pt_regs *regs)
1194 smp_enable_irq_interrupt(); 1199 smp_enable_irq_interrupt();
1195 if(test_and_clear_bit(VIC_CALL_FUNCTION_CPI, &vic_cpi_mailbox[cpu])) 1200 if(test_and_clear_bit(VIC_CALL_FUNCTION_CPI, &vic_cpi_mailbox[cpu]))
1196 smp_call_function_interrupt(); 1201 smp_call_function_interrupt();
1202 set_irq_regs(old_regs);
1197} 1203}
1198 1204
1199static void 1205static void
@@ -1266,8 +1272,10 @@ smp_send_stop(void)
1266void 1272void
1267smp_vic_timer_interrupt(struct pt_regs *regs) 1273smp_vic_timer_interrupt(struct pt_regs *regs)
1268{ 1274{
1275 struct pt_regs *old_regs = set_irq_regs(regs);
1269 send_CPI_allbutself(VIC_TIMER_CPI); 1276 send_CPI_allbutself(VIC_TIMER_CPI);
1270 smp_local_timer_interrupt(regs); 1277 smp_local_timer_interrupt();
1278 set_irq_regs(old_regs);
1271} 1279}
1272 1280
1273/* local (per CPU) timer interrupt. It does both profiling and 1281/* local (per CPU) timer interrupt. It does both profiling and
@@ -1279,12 +1287,12 @@ smp_vic_timer_interrupt(struct pt_regs *regs)
1279 * value into /proc/profile. 1287 * value into /proc/profile.
1280 */ 1288 */
1281void 1289void
1282smp_local_timer_interrupt(struct pt_regs * regs) 1290smp_local_timer_interrupt(void)
1283{ 1291{
1284 int cpu = smp_processor_id(); 1292 int cpu = smp_processor_id();
1285 long weight; 1293 long weight;
1286 1294
1287 profile_tick(CPU_PROFILING, regs); 1295 profile_tick(CPU_PROFILING);
1288 if (--per_cpu(prof_counter, cpu) <= 0) { 1296 if (--per_cpu(prof_counter, cpu) <= 0) {
1289 /* 1297 /*
1290 * The multiplier may have changed since the last time we got 1298 * The multiplier may have changed since the last time we got
@@ -1302,7 +1310,7 @@ smp_local_timer_interrupt(struct pt_regs * regs)
1302 per_cpu(prof_counter, cpu); 1310 per_cpu(prof_counter, cpu);
1303 } 1311 }
1304 1312
1305 update_process_times(user_mode_vm(regs)); 1313 update_process_times(user_mode_vm(irq_regs));
1306 } 1314 }
1307 1315
1308 if( ((1<<cpu) & voyager_extended_vic_processors) == 0) 1316 if( ((1<<cpu) & voyager_extended_vic_processors) == 0)
diff --git a/arch/i386/pci/direct.c b/arch/i386/pci/direct.c
index 5acf0b4743cf..431c9a51b157 100644
--- a/arch/i386/pci/direct.c
+++ b/arch/i386/pci/direct.c
@@ -256,6 +256,8 @@ static int __init pci_check_type2(void)
256 256
257void __init pci_direct_init(int type) 257void __init pci_direct_init(int type)
258{ 258{
259 if (type == 0)
260 return;
259 printk(KERN_INFO "PCI: Using configuration type %d\n", type); 261 printk(KERN_INFO "PCI: Using configuration type %d\n", type);
260 if (type == 1) 262 if (type == 1)
261 raw_pci_ops = &pci_direct_conf1; 263 raw_pci_ops = &pci_direct_conf1;
diff --git a/arch/i386/pci/init.c b/arch/i386/pci/init.c
index d028e1b05c36..b21b6da8ab1d 100644
--- a/arch/i386/pci/init.c
+++ b/arch/i386/pci/init.c
@@ -28,6 +28,10 @@ static __init int pci_access_init(void)
28#ifdef CONFIG_PCI_DIRECT 28#ifdef CONFIG_PCI_DIRECT
29 pci_direct_init(type); 29 pci_direct_init(type);
30#endif 30#endif
31 if (!raw_pci_ops)
32 printk(KERN_ERR
33 "PCI: Fatal: No config space access function found\n");
34
31 return 0; 35 return 0;
32} 36}
33arch_initcall(pci_access_init); 37arch_initcall(pci_access_init);
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c
index ab2d19c3661f..7fd3ef9e064d 100644
--- a/arch/ia64/kernel/irq_ia64.c
+++ b/arch/ia64/kernel/irq_ia64.c
@@ -138,6 +138,7 @@ void destroy_irq(unsigned int irq)
138void 138void
139ia64_handle_irq (ia64_vector vector, struct pt_regs *regs) 139ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
140{ 140{
141 struct pt_regs *old_regs = set_irq_regs(regs);
141 unsigned long saved_tpr; 142 unsigned long saved_tpr;
142 143
143#if IRQ_DEBUG 144#if IRQ_DEBUG
@@ -183,7 +184,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
183 ia64_setreg(_IA64_REG_CR_TPR, vector); 184 ia64_setreg(_IA64_REG_CR_TPR, vector);
184 ia64_srlz_d(); 185 ia64_srlz_d();
185 186
186 __do_IRQ(local_vector_to_irq(vector), regs); 187 __do_IRQ(local_vector_to_irq(vector));
187 188
188 /* 189 /*
189 * Disable interrupts and send EOI: 190 * Disable interrupts and send EOI:
@@ -200,6 +201,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
200 * come through until ia64_eoi() has been done. 201 * come through until ia64_eoi() has been done.
201 */ 202 */
202 irq_exit(); 203 irq_exit();
204 set_irq_regs(old_regs);
203} 205}
204 206
205#ifdef CONFIG_HOTPLUG_CPU 207#ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/ia64/kernel/machvec.c b/arch/ia64/kernel/machvec.c
index d4a546aa5048..9620822270a6 100644
--- a/arch/ia64/kernel/machvec.c
+++ b/arch/ia64/kernel/machvec.c
@@ -60,7 +60,7 @@ machvec_setup (char **arg)
60EXPORT_SYMBOL(machvec_setup); 60EXPORT_SYMBOL(machvec_setup);
61 61
62void 62void
63machvec_timer_interrupt (int irq, void *dev_id, struct pt_regs *regs) 63machvec_timer_interrupt (int irq, void *dev_id)
64{ 64{
65} 65}
66EXPORT_SYMBOL(machvec_timer_interrupt); 66EXPORT_SYMBOL(machvec_timer_interrupt);
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index 663230183254..7cfa63a98cb3 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -499,7 +499,7 @@ int cpe_vector = -1;
499int ia64_cpe_irq = -1; 499int ia64_cpe_irq = -1;
500 500
501static irqreturn_t 501static irqreturn_t
502ia64_mca_cpe_int_handler (int cpe_irq, void *arg, struct pt_regs *ptregs) 502ia64_mca_cpe_int_handler (int cpe_irq, void *arg)
503{ 503{
504 static unsigned long cpe_history[CPE_HISTORY_LENGTH]; 504 static unsigned long cpe_history[CPE_HISTORY_LENGTH];
505 static int index; 505 static int index;
@@ -744,7 +744,7 @@ ia64_mca_wakeup_all(void)
744 * Outputs : None 744 * Outputs : None
745 */ 745 */
746static irqreturn_t 746static irqreturn_t
747ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs) 747ia64_mca_rendez_int_handler(int rendez_irq, void *arg)
748{ 748{
749 unsigned long flags; 749 unsigned long flags;
750 int cpu = smp_processor_id(); 750 int cpu = smp_processor_id();
@@ -753,8 +753,8 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs)
753 753
754 /* Mask all interrupts */ 754 /* Mask all interrupts */
755 local_irq_save(flags); 755 local_irq_save(flags);
756 if (notify_die(DIE_MCA_RENDZVOUS_ENTER, "MCA", regs, (long)&nd, 0, 0) 756 if (notify_die(DIE_MCA_RENDZVOUS_ENTER, "MCA", get_irq_regs(),
757 == NOTIFY_STOP) 757 (long)&nd, 0, 0) == NOTIFY_STOP)
758 ia64_mca_spin(__FUNCTION__); 758 ia64_mca_spin(__FUNCTION__);
759 759
760 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_DONE; 760 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_DONE;
@@ -763,16 +763,16 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs)
763 */ 763 */
764 ia64_sal_mc_rendez(); 764 ia64_sal_mc_rendez();
765 765
766 if (notify_die(DIE_MCA_RENDZVOUS_PROCESS, "MCA", regs, (long)&nd, 0, 0) 766 if (notify_die(DIE_MCA_RENDZVOUS_PROCESS, "MCA", get_irq_regs(),
767 == NOTIFY_STOP) 767 (long)&nd, 0, 0) == NOTIFY_STOP)
768 ia64_mca_spin(__FUNCTION__); 768 ia64_mca_spin(__FUNCTION__);
769 769
770 /* Wait for the monarch cpu to exit. */ 770 /* Wait for the monarch cpu to exit. */
771 while (monarch_cpu != -1) 771 while (monarch_cpu != -1)
772 cpu_relax(); /* spin until monarch leaves */ 772 cpu_relax(); /* spin until monarch leaves */
773 773
774 if (notify_die(DIE_MCA_RENDZVOUS_LEAVE, "MCA", regs, (long)&nd, 0, 0) 774 if (notify_die(DIE_MCA_RENDZVOUS_LEAVE, "MCA", get_irq_regs(),
775 == NOTIFY_STOP) 775 (long)&nd, 0, 0) == NOTIFY_STOP)
776 ia64_mca_spin(__FUNCTION__); 776 ia64_mca_spin(__FUNCTION__);
777 777
778 /* Enable all interrupts */ 778 /* Enable all interrupts */
@@ -791,12 +791,11 @@ ia64_mca_rendez_int_handler(int rendez_irq, void *arg, struct pt_regs *regs)
791 * 791 *
792 * Inputs : wakeup_irq (Wakeup-interrupt bit) 792 * Inputs : wakeup_irq (Wakeup-interrupt bit)
793 * arg (Interrupt handler specific argument) 793 * arg (Interrupt handler specific argument)
794 * ptregs (Exception frame at the time of the interrupt)
795 * Outputs : None 794 * Outputs : None
796 * 795 *
797 */ 796 */
798static irqreturn_t 797static irqreturn_t
799ia64_mca_wakeup_int_handler(int wakeup_irq, void *arg, struct pt_regs *ptregs) 798ia64_mca_wakeup_int_handler(int wakeup_irq, void *arg)
800{ 799{
801 return IRQ_HANDLED; 800 return IRQ_HANDLED;
802} 801}
@@ -1261,13 +1260,12 @@ static DECLARE_WORK(cmc_enable_work, ia64_mca_cmc_vector_enable_keventd, NULL);
1261 * Inputs 1260 * Inputs
1262 * interrupt number 1261 * interrupt number
1263 * client data arg ptr 1262 * client data arg ptr
1264 * saved registers ptr
1265 * 1263 *
1266 * Outputs 1264 * Outputs
1267 * None 1265 * None
1268 */ 1266 */
1269static irqreturn_t 1267static irqreturn_t
1270ia64_mca_cmc_int_handler(int cmc_irq, void *arg, struct pt_regs *ptregs) 1268ia64_mca_cmc_int_handler(int cmc_irq, void *arg)
1271{ 1269{
1272 static unsigned long cmc_history[CMC_HISTORY_LENGTH]; 1270 static unsigned long cmc_history[CMC_HISTORY_LENGTH];
1273 static int index; 1271 static int index;
@@ -1336,12 +1334,11 @@ out:
1336 * Inputs 1334 * Inputs
1337 * interrupt number 1335 * interrupt number
1338 * client data arg ptr 1336 * client data arg ptr
1339 * saved registers ptr
1340 * Outputs 1337 * Outputs
1341 * handled 1338 * handled
1342 */ 1339 */
1343static irqreturn_t 1340static irqreturn_t
1344ia64_mca_cmc_int_caller(int cmc_irq, void *arg, struct pt_regs *ptregs) 1341ia64_mca_cmc_int_caller(int cmc_irq, void *arg)
1345{ 1342{
1346 static int start_count = -1; 1343 static int start_count = -1;
1347 unsigned int cpuid; 1344 unsigned int cpuid;
@@ -1352,7 +1349,7 @@ ia64_mca_cmc_int_caller(int cmc_irq, void *arg, struct pt_regs *ptregs)
1352 if (start_count == -1) 1349 if (start_count == -1)
1353 start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CMC); 1350 start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CMC);
1354 1351
1355 ia64_mca_cmc_int_handler(cmc_irq, arg, ptregs); 1352 ia64_mca_cmc_int_handler(cmc_irq, arg);
1356 1353
1357 for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++); 1354 for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++);
1358 1355
@@ -1403,14 +1400,13 @@ ia64_mca_cmc_poll (unsigned long dummy)
1403 * Inputs 1400 * Inputs
1404 * interrupt number 1401 * interrupt number
1405 * client data arg ptr 1402 * client data arg ptr
1406 * saved registers ptr
1407 * Outputs 1403 * Outputs
1408 * handled 1404 * handled
1409 */ 1405 */
1410#ifdef CONFIG_ACPI 1406#ifdef CONFIG_ACPI
1411 1407
1412static irqreturn_t 1408static irqreturn_t
1413ia64_mca_cpe_int_caller(int cpe_irq, void *arg, struct pt_regs *ptregs) 1409ia64_mca_cpe_int_caller(int cpe_irq, void *arg)
1414{ 1410{
1415 static int start_count = -1; 1411 static int start_count = -1;
1416 static int poll_time = MIN_CPE_POLL_INTERVAL; 1412 static int poll_time = MIN_CPE_POLL_INTERVAL;
@@ -1422,7 +1418,7 @@ ia64_mca_cpe_int_caller(int cpe_irq, void *arg, struct pt_regs *ptregs)
1422 if (start_count == -1) 1418 if (start_count == -1)
1423 start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CPE); 1419 start_count = IA64_LOG_COUNT(SAL_INFO_TYPE_CPE);
1424 1420
1425 ia64_mca_cpe_int_handler(cpe_irq, arg, ptregs); 1421 ia64_mca_cpe_int_handler(cpe_irq, arg);
1426 1422
1427 for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++); 1423 for (++cpuid ; cpuid < NR_CPUS && !cpu_online(cpuid) ; cpuid++);
1428 1424
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 62e07f906e05..41169a9bc301 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -45,7 +45,7 @@ static struct time_interpolator itc_interpolator = {
45}; 45};
46 46
47static irqreturn_t 47static irqreturn_t
48timer_interrupt (int irq, void *dev_id, struct pt_regs *regs) 48timer_interrupt (int irq, void *dev_id)
49{ 49{
50 unsigned long new_itm; 50 unsigned long new_itm;
51 51
@@ -53,7 +53,7 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
53 return IRQ_HANDLED; 53 return IRQ_HANDLED;
54 } 54 }
55 55
56 platform_timer_interrupt(irq, dev_id, regs); 56 platform_timer_interrupt(irq, dev_id);
57 57
58 new_itm = local_cpu_data->itm_next; 58 new_itm = local_cpu_data->itm_next;
59 59
@@ -61,10 +61,10 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
61 printk(KERN_ERR "Oops: timer tick before it's due (itc=%lx,itm=%lx)\n", 61 printk(KERN_ERR "Oops: timer tick before it's due (itc=%lx,itm=%lx)\n",
62 ia64_get_itc(), new_itm); 62 ia64_get_itc(), new_itm);
63 63
64 profile_tick(CPU_PROFILING, regs); 64 profile_tick(CPU_PROFILING);
65 65
66 while (1) { 66 while (1) {
67 update_process_times(user_mode(regs)); 67 update_process_times(user_mode(get_irq_regs()));
68 68
69 new_itm += local_cpu_data->itm_delta; 69 new_itm += local_cpu_data->itm_delta;
70 70
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c
index c36b0f5affb3..8a2cb4e691fd 100644
--- a/arch/ia64/sn/pci/tioca_provider.c
+++ b/arch/ia64/sn/pci/tioca_provider.c
@@ -550,13 +550,12 @@ tioca_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags)
550 * tioca_error_intr_handler - SGI TIO CA error interrupt handler 550 * tioca_error_intr_handler - SGI TIO CA error interrupt handler
551 * @irq: unused 551 * @irq: unused
552 * @arg: pointer to tioca_common struct for the given CA 552 * @arg: pointer to tioca_common struct for the given CA
553 * @pt: unused
554 * 553 *
555 * Handle a CA error interrupt. Simply a wrapper around a SAL call which 554 * Handle a CA error interrupt. Simply a wrapper around a SAL call which
556 * defers processing to the SGI prom. 555 * defers processing to the SGI prom.
557 */ 556 */
558static irqreturn_t 557static irqreturn_t
559tioca_error_intr_handler(int irq, void *arg, struct pt_regs *pt) 558tioca_error_intr_handler(int irq, void *arg)
560{ 559{
561 struct tioca_common *soft = arg; 560 struct tioca_common *soft = arg;
562 struct ia64_sal_retval ret_stuff; 561 struct ia64_sal_retval ret_stuff;
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c
index af7171adcd2c..0e81f68aaf8e 100644
--- a/arch/ia64/sn/pci/tioce_provider.c
+++ b/arch/ia64/sn/pci/tioce_provider.c
@@ -666,12 +666,11 @@ tioce_dma_consistent(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma
666 * tioce_error_intr_handler - SGI TIO CE error interrupt handler 666 * tioce_error_intr_handler - SGI TIO CE error interrupt handler
667 * @irq: unused 667 * @irq: unused
668 * @arg: pointer to tioce_common struct for the given CE 668 * @arg: pointer to tioce_common struct for the given CE
669 * @pt: unused
670 * 669 *
671 * Handle a CE error interrupt. Simply a wrapper around a SAL call which 670 * Handle a CE error interrupt. Simply a wrapper around a SAL call which
672 * defers processing to the SGI prom. 671 * defers processing to the SGI prom.
673 */ static irqreturn_t 672 */ static irqreturn_t
674tioce_error_intr_handler(int irq, void *arg, struct pt_regs *pt) 673tioce_error_intr_handler(int irq, void *arg)
675{ 674{
676 struct tioce_common *soft = arg; 675 struct tioce_common *soft = arg;
677 struct ia64_sal_retval ret_stuff; 676 struct ia64_sal_retval ret_stuff;
diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
index d955aaefbb8e..a00b0e7ab9b1 100644
--- a/arch/mips/kernel/irq.c
+++ b/arch/mips/kernel/irq.c
@@ -55,13 +55,15 @@ unsigned long irq_hwmask[NR_IRQS];
55 */ 55 */
56asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs) 56asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs)
57{ 57{
58 struct pt_regs *old_regs = set_irq_regs(regs);
58 irq_enter(); 59 irq_enter();
59 60
60 __DO_IRQ_SMTC_HOOK(); 61 __DO_IRQ_SMTC_HOOK();
61 __do_IRQ(irq, regs); 62 __do_IRQ(irq);
62 63
63 irq_exit(); 64 irq_exit();
64 65
66 set_irq_regs(old_regs);
65 return 1; 67 return 1;
66} 68}
67 69
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index a8340802f2d7..d349eb9e4ffb 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -322,18 +322,18 @@ static long last_rtc_update;
322 * a broadcasted inter-processor interrupt which itself is triggered 322 * a broadcasted inter-processor interrupt which itself is triggered
323 * by the global timer interrupt. 323 * by the global timer interrupt.
324 */ 324 */
325void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 325void local_timer_interrupt(int irq, void *dev_id)
326{ 326{
327 if (current->pid) 327 if (current->pid)
328 profile_tick(CPU_PROFILING, regs); 328 profile_tick(CPU_PROFILING);
329 update_process_times(user_mode(regs)); 329 update_process_times(user_mode(get_irq_regs()));
330} 330}
331 331
332/* 332/*
333 * High-level timer interrupt service routines. This function 333 * High-level timer interrupt service routines. This function
334 * is set as irqaction->handler and is invoked through do_IRQ. 334 * is set as irqaction->handler and is invoked through do_IRQ.
335 */ 335 */
336irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 336irqreturn_t timer_interrupt(int irq, void *dev_id)
337{ 337{
338 unsigned long j; 338 unsigned long j;
339 unsigned int count; 339 unsigned int count;
@@ -419,23 +419,24 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
419 * In SMP mode, local_timer_interrupt() is invoked by appropriate 419 * In SMP mode, local_timer_interrupt() is invoked by appropriate
420 * low-level local timer interrupt handler. 420 * low-level local timer interrupt handler.
421 */ 421 */
422 local_timer_interrupt(irq, dev_id, regs); 422 local_timer_interrupt(irq, dev_id);
423 423
424 return IRQ_HANDLED; 424 return IRQ_HANDLED;
425} 425}
426 426
427int null_perf_irq(struct pt_regs *regs) 427int null_perf_irq(void)
428{ 428{
429 return 0; 429 return 0;
430} 430}
431 431
432int (*perf_irq)(struct pt_regs *regs) = null_perf_irq; 432int (*perf_irq)(void) = null_perf_irq;
433 433
434EXPORT_SYMBOL(null_perf_irq); 434EXPORT_SYMBOL(null_perf_irq);
435EXPORT_SYMBOL(perf_irq); 435EXPORT_SYMBOL(perf_irq);
436 436
437asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs) 437asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs)
438{ 438{
439 struct pt_regs *old_regs = set_irq_regs(regs);
439 int r2 = cpu_has_mips_r2; 440 int r2 = cpu_has_mips_r2;
440 441
441 irq_enter(); 442 irq_enter();
@@ -448,27 +449,30 @@ asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs)
448 * performance counter interrupt handler anyway. 449 * performance counter interrupt handler anyway.
449 */ 450 */
450 if (!r2 || (read_c0_cause() & (1 << 26))) 451 if (!r2 || (read_c0_cause() & (1 << 26)))
451 if (perf_irq(regs)) 452 if (perf_irq())
452 goto out; 453 goto out;
453 454
454 /* we keep interrupt disabled all the time */ 455 /* we keep interrupt disabled all the time */
455 if (!r2 || (read_c0_cause() & (1 << 30))) 456 if (!r2 || (read_c0_cause() & (1 << 30)))
456 timer_interrupt(irq, NULL, regs); 457 timer_interrupt(irq, NULL);
457 458
458out: 459out:
459 irq_exit(); 460 irq_exit();
461 set_irq_regs(old_regs);
460} 462}
461 463
462asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs) 464asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs)
463{ 465{
466 struct pt_regs *old_regs = set_irq_regs(regs);
464 irq_enter(); 467 irq_enter();
465 if (smp_processor_id() != 0) 468 if (smp_processor_id() != 0)
466 kstat_this_cpu.irqs[irq]++; 469 kstat_this_cpu.irqs[irq]++;
467 470
468 /* we keep interrupt disabled all the time */ 471 /* we keep interrupt disabled all the time */
469 local_timer_interrupt(irq, NULL, regs); 472 local_timer_interrupt(irq, NULL);
470 473
471 irq_exit(); 474 irq_exit();
475 set_irq_regs(old_regs);
472} 476}
473 477
474/* 478/*
diff --git a/arch/mips/sgi-ip22/ip22-reset.c b/arch/mips/sgi-ip22/ip22-reset.c
index 7a941ecff3bb..66df5ac8f089 100644
--- a/arch/mips/sgi-ip22/ip22-reset.c
+++ b/arch/mips/sgi-ip22/ip22-reset.c
@@ -169,7 +169,7 @@ static inline void volume_down_button(unsigned long data)
169 } 169 }
170} 170}
171 171
172static irqreturn_t panel_int(int irq, void *dev_id, struct pt_regs *regs) 172static irqreturn_t panel_int(int irq, void *dev_id)
173{ 173{
174 unsigned int buttons; 174 unsigned int buttons;
175 175
diff --git a/arch/mips/sgi-ip22/ip22-time.c b/arch/mips/sgi-ip22/ip22-time.c
index 0e061890f797..3462b0d98def 100644
--- a/arch/mips/sgi-ip22/ip22-time.c
+++ b/arch/mips/sgi-ip22/ip22-time.c
@@ -191,12 +191,14 @@ void indy_8254timer_irq(struct pt_regs *regs)
191 191
192void indy_r4k_timer_interrupt(struct pt_regs *regs) 192void indy_r4k_timer_interrupt(struct pt_regs *regs)
193{ 193{
194 struct pt_regs *old_regs = set_irq_regs(regs);
194 int irq = SGI_TIMER_IRQ; 195 int irq = SGI_TIMER_IRQ;
195 196
196 irq_enter(); 197 irq_enter();
197 kstat_this_cpu.irqs[irq]++; 198 kstat_this_cpu.irqs[irq]++;
198 timer_interrupt(irq, NULL, regs); 199 timer_interrupt(irq, NULL);
199 irq_exit(); 200 irq_exit();
201 set_irq_regs(old_regs);
200} 202}
201 203
202void __init plat_timer_setup(struct irqaction *irq) 204void __init plat_timer_setup(struct irqaction *irq)
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index c3f58f2f9f52..5deaab3090b4 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -187,6 +187,7 @@ void fixup_irqs(cpumask_t map)
187 187
188void do_IRQ(struct pt_regs *regs) 188void do_IRQ(struct pt_regs *regs)
189{ 189{
190 struct pt_regs *old_regs = set_irq_regs(regs);
190 unsigned int irq; 191 unsigned int irq;
191#ifdef CONFIG_IRQSTACKS 192#ifdef CONFIG_IRQSTACKS
192 struct thread_info *curtp, *irqtp; 193 struct thread_info *curtp, *irqtp;
@@ -230,18 +231,19 @@ void do_IRQ(struct pt_regs *regs)
230 handler = &__do_IRQ; 231 handler = &__do_IRQ;
231 irqtp->task = curtp->task; 232 irqtp->task = curtp->task;
232 irqtp->flags = 0; 233 irqtp->flags = 0;
233 call_handle_irq(irq, desc, regs, irqtp, handler); 234 call_handle_irq(irq, desc, irqtp, handler);
234 irqtp->task = NULL; 235 irqtp->task = NULL;
235 if (irqtp->flags) 236 if (irqtp->flags)
236 set_bits(irqtp->flags, &curtp->flags); 237 set_bits(irqtp->flags, &curtp->flags);
237 } else 238 } else
238#endif 239#endif
239 generic_handle_irq(irq, regs); 240 generic_handle_irq(irq);
240 } else if (irq != NO_IRQ_IGNORE) 241 } else if (irq != NO_IRQ_IGNORE)
241 /* That's not SMP safe ... but who cares ? */ 242 /* That's not SMP safe ... but who cares ? */
242 ppc_spurious_interrupts++; 243 ppc_spurious_interrupts++;
243 244
244 irq_exit(); 245 irq_exit();
246 set_irq_regs(old_regs);
245 247
246#ifdef CONFIG_PPC_ISERIES 248#ifdef CONFIG_PPC_ISERIES
247 if (get_lppaca()->int_dword.fields.decr_int) { 249 if (get_lppaca()->int_dword.fields.decr_int) {
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S
index 41521b30c3cd..c70e20708a1f 100644
--- a/arch/powerpc/kernel/misc_64.S
+++ b/arch/powerpc/kernel/misc_64.S
@@ -52,12 +52,12 @@ _GLOBAL(call_do_softirq)
52 blr 52 blr
53 53
54_GLOBAL(call_handle_irq) 54_GLOBAL(call_handle_irq)
55 ld r8,0(r7) 55 ld r8,0(r6)
56 mflr r0 56 mflr r0
57 std r0,16(r1) 57 std r0,16(r1)
58 mtctr r8 58 mtctr r8
59 stdu r1,THREAD_SIZE-112(r6) 59 stdu r1,THREAD_SIZE-112(r5)
60 mr r1,r6 60 mr r1,r5
61 bctrl 61 bctrl
62 ld r1,0(r1) 62 ld r1,0(r1)
63 ld r0,16(r1) 63 ld r0,16(r1)
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 6a9bc9ce54e0..35c6309bdb76 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -115,7 +115,7 @@ void __devinit smp_generic_kick_cpu(int nr)
115} 115}
116#endif 116#endif
117 117
118void smp_message_recv(int msg, struct pt_regs *regs) 118void smp_message_recv(int msg)
119{ 119{
120 switch(msg) { 120 switch(msg) {
121 case PPC_MSG_CALL_FUNCTION: 121 case PPC_MSG_CALL_FUNCTION:
@@ -127,11 +127,11 @@ void smp_message_recv(int msg, struct pt_regs *regs)
127 break; 127 break;
128 case PPC_MSG_DEBUGGER_BREAK: 128 case PPC_MSG_DEBUGGER_BREAK:
129 if (crash_ipi_function_ptr) { 129 if (crash_ipi_function_ptr) {
130 crash_ipi_function_ptr(regs); 130 crash_ipi_function_ptr(get_irq_regs());
131 break; 131 break;
132 } 132 }
133#ifdef CONFIG_DEBUGGER 133#ifdef CONFIG_DEBUGGER
134 debugger_ipi(regs); 134 debugger_ipi(get_irq_regs());
135 break; 135 break;
136#endif /* CONFIG_DEBUGGER */ 136#endif /* CONFIG_DEBUGGER */
137 /* FALLTHROUGH */ 137 /* FALLTHROUGH */
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 85b9244a098c..d210d0a5006b 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -51,6 +51,7 @@
51#include <linux/rtc.h> 51#include <linux/rtc.h>
52#include <linux/jiffies.h> 52#include <linux/jiffies.h>
53#include <linux/posix-timers.h> 53#include <linux/posix-timers.h>
54#include <linux/irq.h>
54 55
55#include <asm/io.h> 56#include <asm/io.h>
56#include <asm/processor.h> 57#include <asm/processor.h>
@@ -643,6 +644,7 @@ static void iSeries_tb_recal(void)
643 */ 644 */
644void timer_interrupt(struct pt_regs * regs) 645void timer_interrupt(struct pt_regs * regs)
645{ 646{
647 struct pt_regs *old_regs;
646 int next_dec; 648 int next_dec;
647 int cpu = smp_processor_id(); 649 int cpu = smp_processor_id();
648 unsigned long ticks; 650 unsigned long ticks;
@@ -653,9 +655,10 @@ void timer_interrupt(struct pt_regs * regs)
653 do_IRQ(regs); 655 do_IRQ(regs);
654#endif 656#endif
655 657
658 old_regs = set_irq_regs(regs);
656 irq_enter(); 659 irq_enter();
657 660
658 profile_tick(CPU_PROFILING, regs); 661 profile_tick(CPU_PROFILING);
659 calculate_steal_time(); 662 calculate_steal_time();
660 663
661#ifdef CONFIG_PPC_ISERIES 664#ifdef CONFIG_PPC_ISERIES
@@ -715,6 +718,7 @@ void timer_interrupt(struct pt_regs * regs)
715#endif 718#endif
716 719
717 irq_exit(); 720 irq_exit();
721 set_irq_regs(old_regs);
718} 722}
719 723
720void wakeup_decrementer(void) 724void wakeup_decrementer(void)
diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c
index 8533f13a5ed1..434fb934dd20 100644
--- a/arch/powerpc/platforms/cell/interrupt.c
+++ b/arch/powerpc/platforms/cell/interrupt.c
@@ -190,11 +190,11 @@ struct irq_host *iic_get_irq_host(int node)
190EXPORT_SYMBOL_GPL(iic_get_irq_host); 190EXPORT_SYMBOL_GPL(iic_get_irq_host);
191 191
192 192
193static irqreturn_t iic_ipi_action(int irq, void *dev_id, struct pt_regs *regs) 193static irqreturn_t iic_ipi_action(int irq, void *dev_id)
194{ 194{
195 int ipi = (int)(long)dev_id; 195 int ipi = (int)(long)dev_id;
196 196
197 smp_message_recv(ipi, regs); 197 smp_message_recv(ipi);
198 198
199 return IRQ_HANDLED; 199 return IRQ_HANDLED;
200} 200}
diff --git a/arch/powerpc/platforms/cell/spider-pic.c b/arch/powerpc/platforms/cell/spider-pic.c
index b0e95d594c51..21a9ebd4978e 100644
--- a/arch/powerpc/platforms/cell/spider-pic.c
+++ b/arch/powerpc/platforms/cell/spider-pic.c
@@ -213,8 +213,7 @@ static struct irq_host_ops spider_host_ops = {
213 .xlate = spider_host_xlate, 213 .xlate = spider_host_xlate,
214}; 214};
215 215
216static void spider_irq_cascade(unsigned int irq, struct irq_desc *desc, 216static void spider_irq_cascade(unsigned int irq, struct irq_desc *desc)
217 struct pt_regs *regs)
218{ 217{
219 struct spider_pic *pic = desc->handler_data; 218 struct spider_pic *pic = desc->handler_data;
220 unsigned int cs, virq; 219 unsigned int cs, virq;
@@ -225,7 +224,7 @@ static void spider_irq_cascade(unsigned int irq, struct irq_desc *desc,
225 else 224 else
226 virq = irq_linear_revmap(pic->host, cs); 225 virq = irq_linear_revmap(pic->host, cs);
227 if (virq != NO_IRQ) 226 if (virq != NO_IRQ)
228 generic_handle_irq(virq, regs); 227 generic_handle_irq(virq);
229 desc->chip->eoi(irq); 228 desc->chip->eoi(irq);
230} 229}
231 230
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
index c2c7cf75dd5f..bfc4829162f1 100644
--- a/arch/powerpc/platforms/powermac/low_i2c.c
+++ b/arch/powerpc/platforms/powermac/low_i2c.c
@@ -342,7 +342,7 @@ static void kw_i2c_handle_interrupt(struct pmac_i2c_host_kw *host, u8 isr)
342} 342}
343 343
344/* Interrupt handler */ 344/* Interrupt handler */
345static irqreturn_t kw_i2c_irq(int irq, void *dev_id, struct pt_regs *regs) 345static irqreturn_t kw_i2c_irq(int irq, void *dev_id)
346{ 346{
347 struct pmac_i2c_host_kw *host = dev_id; 347 struct pmac_i2c_host_kw *host = dev_id;
348 unsigned long flags; 348 unsigned long flags;
diff --git a/arch/powerpc/platforms/powermac/pfunc_base.c b/arch/powerpc/platforms/powermac/pfunc_base.c
index ee3b223ab17a..5c6c15c5f9a3 100644
--- a/arch/powerpc/platforms/powermac/pfunc_base.c
+++ b/arch/powerpc/platforms/powermac/pfunc_base.c
@@ -15,7 +15,7 @@
15#define DBG(fmt...) 15#define DBG(fmt...)
16#endif 16#endif
17 17
18static irqreturn_t macio_gpio_irq(int irq, void *data, struct pt_regs *regs) 18static irqreturn_t macio_gpio_irq(int irq, void *data)
19{ 19{
20 pmf_do_irq(data); 20 pmf_do_irq(data);
21 21
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index 39f7ddb554ea..e93a115961aa 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -440,14 +440,13 @@ static void __init pmac_pic_probe_oldstyle(void)
440} 440}
441#endif /* CONFIG_PPC32 */ 441#endif /* CONFIG_PPC32 */
442 442
443static void pmac_u3_cascade(unsigned int irq, struct irq_desc *desc, 443static void pmac_u3_cascade(unsigned int irq, struct irq_desc *desc)
444 struct pt_regs *regs)
445{ 444{
446 struct mpic *mpic = desc->handler_data; 445 struct mpic *mpic = desc->handler_data;
447 446
448 unsigned int cascade_irq = mpic_get_one_irq(mpic, regs); 447 unsigned int cascade_irq = mpic_get_one_irq(mpic, get_irq_regs());
449 if (cascade_irq != NO_IRQ) 448 if (cascade_irq != NO_IRQ)
450 generic_handle_irq(cascade_irq, regs); 449 generic_handle_irq(cascade_irq);
451 desc->chip->eoi(irq); 450 desc->chip->eoi(irq);
452} 451}
453 452
diff --git a/arch/powerpc/platforms/pseries/ras.c b/arch/powerpc/platforms/pseries/ras.c
index 311ed1993fc0..b1d3d161249e 100644
--- a/arch/powerpc/platforms/pseries/ras.c
+++ b/arch/powerpc/platforms/pseries/ras.c
@@ -65,16 +65,14 @@ static int ras_check_exception_token;
65#define EPOW_SENSOR_INDEX 0 65#define EPOW_SENSOR_INDEX 0
66#define RAS_VECTOR_OFFSET 0x500 66#define RAS_VECTOR_OFFSET 0x500
67 67
68static irqreturn_t ras_epow_interrupt(int irq, void *dev_id, 68static irqreturn_t ras_epow_interrupt(int irq, void *dev_id);
69 struct pt_regs * regs); 69static irqreturn_t ras_error_interrupt(int irq, void *dev_id);
70static irqreturn_t ras_error_interrupt(int irq, void *dev_id,
71 struct pt_regs * regs);
72 70
73/* #define DEBUG */ 71/* #define DEBUG */
74 72
75 73
76static void request_ras_irqs(struct device_node *np, 74static void request_ras_irqs(struct device_node *np,
77 irqreturn_t (*handler)(int, void *, struct pt_regs *), 75 irq_handler_t handler,
78 const char *name) 76 const char *name)
79{ 77{
80 int i, index, count = 0; 78 int i, index, count = 0;
@@ -166,8 +164,7 @@ __initcall(init_ras_IRQ);
166 * to examine the type of power failure and take appropriate action where 164 * to examine the type of power failure and take appropriate action where
167 * the time horizon permits something useful to be done. 165 * the time horizon permits something useful to be done.
168 */ 166 */
169static irqreturn_t 167static irqreturn_t ras_epow_interrupt(int irq, void *dev_id)
170ras_epow_interrupt(int irq, void *dev_id, struct pt_regs * regs)
171{ 168{
172 int status = 0xdeadbeef; 169 int status = 0xdeadbeef;
173 int state = 0; 170 int state = 0;
@@ -210,8 +207,7 @@ ras_epow_interrupt(int irq, void *dev_id, struct pt_regs * regs)
210 * For nonrecoverable errors, an error is logged and we stop all processing 207 * For nonrecoverable errors, an error is logged and we stop all processing
211 * as quickly as possible in order to prevent propagation of the failure. 208 * as quickly as possible in order to prevent propagation of the failure.
212 */ 209 */
213static irqreturn_t 210static irqreturn_t ras_error_interrupt(int irq, void *dev_id)
214ras_error_interrupt(int irq, void *dev_id, struct pt_regs * regs)
215{ 211{
216 struct rtas_error_log *rtas_elog; 212 struct rtas_error_log *rtas_elog;
217 int status = 0xdeadbeef; 213 int status = 0xdeadbeef;
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index f82b13e531a3..ad9aec2c6fee 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -121,12 +121,11 @@ static void __init fwnmi_init(void)
121 fwnmi_active = 1; 121 fwnmi_active = 1;
122} 122}
123 123
124void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc, 124void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc)
125 struct pt_regs *regs)
126{ 125{
127 unsigned int cascade_irq = i8259_irq(regs); 126 unsigned int cascade_irq = i8259_irq(get_irq_regs());
128 if (cascade_irq != NO_IRQ) 127 if (cascade_irq != NO_IRQ)
129 generic_handle_irq(cascade_irq, regs); 128 generic_handle_irq(cascade_irq);
130 desc->chip->eoi(irq); 129 desc->chip->eoi(irq);
131} 130}
132 131
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c
index 253972e5479f..f6bd2f285153 100644
--- a/arch/powerpc/platforms/pseries/xics.c
+++ b/arch/powerpc/platforms/pseries/xics.c
@@ -324,7 +324,7 @@ static unsigned int xics_get_irq_lpar(struct pt_regs *regs)
324 324
325#ifdef CONFIG_SMP 325#ifdef CONFIG_SMP
326 326
327static irqreturn_t xics_ipi_dispatch(int cpu, struct pt_regs *regs) 327static irqreturn_t xics_ipi_dispatch(int cpu)
328{ 328{
329 WARN_ON(cpu_is_offline(cpu)); 329 WARN_ON(cpu_is_offline(cpu));
330 330
@@ -332,47 +332,47 @@ static irqreturn_t xics_ipi_dispatch(int cpu, struct pt_regs *regs)
332 if (test_and_clear_bit(PPC_MSG_CALL_FUNCTION, 332 if (test_and_clear_bit(PPC_MSG_CALL_FUNCTION,
333 &xics_ipi_message[cpu].value)) { 333 &xics_ipi_message[cpu].value)) {
334 mb(); 334 mb();
335 smp_message_recv(PPC_MSG_CALL_FUNCTION, regs); 335 smp_message_recv(PPC_MSG_CALL_FUNCTION);
336 } 336 }
337 if (test_and_clear_bit(PPC_MSG_RESCHEDULE, 337 if (test_and_clear_bit(PPC_MSG_RESCHEDULE,
338 &xics_ipi_message[cpu].value)) { 338 &xics_ipi_message[cpu].value)) {
339 mb(); 339 mb();
340 smp_message_recv(PPC_MSG_RESCHEDULE, regs); 340 smp_message_recv(PPC_MSG_RESCHEDULE);
341 } 341 }
342#if 0 342#if 0
343 if (test_and_clear_bit(PPC_MSG_MIGRATE_TASK, 343 if (test_and_clear_bit(PPC_MSG_MIGRATE_TASK,
344 &xics_ipi_message[cpu].value)) { 344 &xics_ipi_message[cpu].value)) {
345 mb(); 345 mb();
346 smp_message_recv(PPC_MSG_MIGRATE_TASK, regs); 346 smp_message_recv(PPC_MSG_MIGRATE_TASK);
347 } 347 }
348#endif 348#endif
349#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC) 349#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)
350 if (test_and_clear_bit(PPC_MSG_DEBUGGER_BREAK, 350 if (test_and_clear_bit(PPC_MSG_DEBUGGER_BREAK,
351 &xics_ipi_message[cpu].value)) { 351 &xics_ipi_message[cpu].value)) {
352 mb(); 352 mb();
353 smp_message_recv(PPC_MSG_DEBUGGER_BREAK, regs); 353 smp_message_recv(PPC_MSG_DEBUGGER_BREAK);
354 } 354 }
355#endif 355#endif
356 } 356 }
357 return IRQ_HANDLED; 357 return IRQ_HANDLED;
358} 358}
359 359
360static irqreturn_t xics_ipi_action_direct(int irq, void *dev_id, struct pt_regs *regs) 360static irqreturn_t xics_ipi_action_direct(int irq, void *dev_id)
361{ 361{
362 int cpu = smp_processor_id(); 362 int cpu = smp_processor_id();
363 363
364 direct_qirr_info(cpu, 0xff); 364 direct_qirr_info(cpu, 0xff);
365 365
366 return xics_ipi_dispatch(cpu, regs); 366 return xics_ipi_dispatch(cpu);
367} 367}
368 368
369static irqreturn_t xics_ipi_action_lpar(int irq, void *dev_id, struct pt_regs *regs) 369static irqreturn_t xics_ipi_action_lpar(int irq, void *dev_id)
370{ 370{
371 int cpu = smp_processor_id(); 371 int cpu = smp_processor_id();
372 372
373 lpar_qirr_info(cpu, 0xff); 373 lpar_qirr_info(cpu, 0xff);
374 374
375 return xics_ipi_dispatch(cpu, regs); 375 return xics_ipi_dispatch(cpu);
376} 376}
377 377
378void xics_cause_IPI(int cpu) 378void xics_cause_IPI(int cpu)
diff --git a/arch/powerpc/platforms/pseries/xics.h b/arch/powerpc/platforms/pseries/xics.h
index 6ee1055b0ffb..db0ec3ba3ae2 100644
--- a/arch/powerpc/platforms/pseries/xics.h
+++ b/arch/powerpc/platforms/pseries/xics.h
@@ -31,7 +31,6 @@ struct xics_ipi_struct {
31extern struct xics_ipi_struct xics_ipi_message[NR_CPUS] __cacheline_aligned; 31extern struct xics_ipi_struct xics_ipi_message[NR_CPUS] __cacheline_aligned;
32 32
33struct irq_desc; 33struct irq_desc;
34extern void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc, 34extern void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc);
35 struct pt_regs *regs);
36 35
37#endif /* _POWERPC_KERNEL_XICS_H */ 36#endif /* _POWERPC_KERNEL_XICS_H */
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 3ee03a9a98fa..195215560fd7 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -489,9 +489,9 @@ static inline void mpic_eoi(struct mpic *mpic)
489} 489}
490 490
491#ifdef CONFIG_SMP 491#ifdef CONFIG_SMP
492static irqreturn_t mpic_ipi_action(int irq, void *dev_id, struct pt_regs *regs) 492static irqreturn_t mpic_ipi_action(int irq, void *dev_id)
493{ 493{
494 smp_message_recv(mpic_irq_to_hw(irq) - MPIC_VEC_IPI_0, regs); 494 smp_message_recv(mpic_irq_to_hw(irq) - MPIC_VEC_IPI_0);
495 return IRQ_HANDLED; 495 return IRQ_HANDLED;
496} 496}
497#endif /* CONFIG_SMP */ 497#endif /* CONFIG_SMP */
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 708236f34746..5a854f36383c 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -21,6 +21,7 @@
21#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/sysrq.h> 22#include <linux/sysrq.h>
23#include <linux/interrupt.h> 23#include <linux/interrupt.h>
24#include <linux/irq.h>
24 25
25#include <asm/ptrace.h> 26#include <asm/ptrace.h>
26#include <asm/string.h> 27#include <asm/string.h>
@@ -2577,12 +2578,11 @@ void xmon_init(int enable)
2577} 2578}
2578 2579
2579#ifdef CONFIG_MAGIC_SYSRQ 2580#ifdef CONFIG_MAGIC_SYSRQ
2580static void sysrq_handle_xmon(int key, struct pt_regs *pt_regs, 2581static void sysrq_handle_xmon(int key, struct tty_struct *tty)
2581 struct tty_struct *tty)
2582{ 2582{
2583 /* ensure xmon is enabled */ 2583 /* ensure xmon is enabled */
2584 xmon_init(1); 2584 xmon_init(1);
2585 debugger(pt_regs); 2585 debugger(get_irq_regs());
2586} 2586}
2587 2587
2588static struct sysrq_key_op sysrq_xmon_op = 2588static struct sysrq_key_op sysrq_xmon_op =
diff --git a/arch/x86_64/defconfig b/arch/x86_64/defconfig
index 4844b543bed0..47bfba6e9dc4 100644
--- a/arch/x86_64/defconfig
+++ b/arch/x86_64/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-git7 3# Linux kernel version: 2.6.19-rc1
4# Wed Sep 27 21:53:10 2006 4# Thu Oct 5 13:04:43 2006
5# 5#
6CONFIG_X86_64=y 6CONFIG_X86_64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -19,6 +19,7 @@ CONFIG_EARLY_PRINTK=y
19CONFIG_GENERIC_ISA_DMA=y 19CONFIG_GENERIC_ISA_DMA=y
20CONFIG_GENERIC_IOMAP=y 20CONFIG_GENERIC_IOMAP=y
21CONFIG_ARCH_MAY_HAVE_PC_FDC=y 21CONFIG_ARCH_MAY_HAVE_PC_FDC=y
22CONFIG_ARCH_POPULATES_NODE_MAP=y
22CONFIG_DMI=y 23CONFIG_DMI=y
23CONFIG_AUDIT_ARCH=y 24CONFIG_AUDIT_ARCH=y
24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 25CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -37,9 +38,11 @@ CONFIG_LOCALVERSION=""
37CONFIG_LOCALVERSION_AUTO=y 38CONFIG_LOCALVERSION_AUTO=y
38CONFIG_SWAP=y 39CONFIG_SWAP=y
39CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
41# CONFIG_IPC_NS is not set
40CONFIG_POSIX_MQUEUE=y 42CONFIG_POSIX_MQUEUE=y
41# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
45# CONFIG_UTS_NS is not set
43# CONFIG_AUDIT is not set 46# CONFIG_AUDIT is not set
44CONFIG_IKCONFIG=y 47CONFIG_IKCONFIG=y
45CONFIG_IKCONFIG_PROC=y 48CONFIG_IKCONFIG_PROC=y
@@ -47,9 +50,10 @@ CONFIG_IKCONFIG_PROC=y
47# CONFIG_RELAY is not set 50# CONFIG_RELAY is not set
48CONFIG_INITRAMFS_SOURCE="" 51CONFIG_INITRAMFS_SOURCE=""
49CONFIG_CC_OPTIMIZE_FOR_SIZE=y 52CONFIG_CC_OPTIMIZE_FOR_SIZE=y
53CONFIG_SYSCTL=y
50# CONFIG_EMBEDDED is not set 54# CONFIG_EMBEDDED is not set
51CONFIG_UID16=y 55CONFIG_UID16=y
52CONFIG_SYSCTL=y 56# CONFIG_SYSCTL_SYSCALL is not set
53CONFIG_KALLSYMS=y 57CONFIG_KALLSYMS=y
54CONFIG_KALLSYMS_ALL=y 58CONFIG_KALLSYMS_ALL=y
55# CONFIG_KALLSYMS_EXTRA_PASS is not set 59# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -82,6 +86,7 @@ CONFIG_STOP_MACHINE=y
82# 86#
83# Block layer 87# Block layer
84# 88#
89CONFIG_BLOCK=y
85CONFIG_LBD=y 90CONFIG_LBD=y
86# CONFIG_BLK_DEV_IO_TRACE is not set 91# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set 92# CONFIG_LSF is not set
@@ -252,9 +257,11 @@ CONFIG_PCI=y
252CONFIG_PCI_DIRECT=y 257CONFIG_PCI_DIRECT=y
253CONFIG_PCI_MMCONFIG=y 258CONFIG_PCI_MMCONFIG=y
254CONFIG_PCIEPORTBUS=y 259CONFIG_PCIEPORTBUS=y
260CONFIG_PCIEAER=y
255CONFIG_PCI_MSI=y 261CONFIG_PCI_MSI=y
256# CONFIG_PCI_MULTITHREAD_PROBE is not set 262# CONFIG_PCI_MULTITHREAD_PROBE is not set
257# CONFIG_PCI_DEBUG is not set 263# CONFIG_PCI_DEBUG is not set
264# CONFIG_HT_IRQ is not set
258 265
259# 266#
260# PCCARD (PCMCIA/CardBus) support 267# PCCARD (PCMCIA/CardBus) support
@@ -309,6 +316,7 @@ CONFIG_IP_PNP_DHCP=y
309# CONFIG_INET_TUNNEL is not set 316# CONFIG_INET_TUNNEL is not set
310# CONFIG_INET_XFRM_MODE_TRANSPORT is not set 317# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
311# CONFIG_INET_XFRM_MODE_TUNNEL is not set 318# CONFIG_INET_XFRM_MODE_TUNNEL is not set
319# CONFIG_INET_XFRM_MODE_BEET is not set
312CONFIG_INET_DIAG=y 320CONFIG_INET_DIAG=y
313CONFIG_INET_TCP_DIAG=y 321CONFIG_INET_TCP_DIAG=y
314# CONFIG_TCP_CONG_ADVANCED is not set 322# CONFIG_TCP_CONG_ADVANCED is not set
@@ -325,6 +333,7 @@ CONFIG_IPV6=y
325# CONFIG_INET6_TUNNEL is not set 333# CONFIG_INET6_TUNNEL is not set
326# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set 334# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
327# CONFIG_INET6_XFRM_MODE_TUNNEL is not set 335# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
336# CONFIG_INET6_XFRM_MODE_BEET is not set
328# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 337# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
329# CONFIG_IPV6_TUNNEL is not set 338# CONFIG_IPV6_TUNNEL is not set
330# CONFIG_IPV6_SUBTREES is not set 339# CONFIG_IPV6_SUBTREES is not set
@@ -473,6 +482,7 @@ CONFIG_BLK_DEV_ATIIXP=y
473# CONFIG_BLK_DEV_CS5530 is not set 482# CONFIG_BLK_DEV_CS5530 is not set
474# CONFIG_BLK_DEV_HPT34X is not set 483# CONFIG_BLK_DEV_HPT34X is not set
475# CONFIG_BLK_DEV_HPT366 is not set 484# CONFIG_BLK_DEV_HPT366 is not set
485# CONFIG_BLK_DEV_JMICRON is not set
476# CONFIG_BLK_DEV_SC1200 is not set 486# CONFIG_BLK_DEV_SC1200 is not set
477CONFIG_BLK_DEV_PIIX=y 487CONFIG_BLK_DEV_PIIX=y
478# CONFIG_BLK_DEV_IT821X is not set 488# CONFIG_BLK_DEV_IT821X is not set
@@ -564,6 +574,7 @@ CONFIG_MEGARAID_SAS=y
564# CONFIG_SCSI_IPR is not set 574# CONFIG_SCSI_IPR is not set
565# CONFIG_SCSI_QLOGIC_1280 is not set 575# CONFIG_SCSI_QLOGIC_1280 is not set
566# CONFIG_SCSI_QLA_FC is not set 576# CONFIG_SCSI_QLA_FC is not set
577# CONFIG_SCSI_QLA_ISCSI is not set
567# CONFIG_SCSI_LPFC is not set 578# CONFIG_SCSI_LPFC is not set
568# CONFIG_SCSI_DC395x is not set 579# CONFIG_SCSI_DC395x is not set
569# CONFIG_SCSI_DC390T is not set 580# CONFIG_SCSI_DC390T is not set
@@ -605,7 +616,6 @@ CONFIG_SATA_INTEL_COMBINED=y
605# CONFIG_PATA_HPT3X3 is not set 616# CONFIG_PATA_HPT3X3 is not set
606# CONFIG_PATA_IT821X is not set 617# CONFIG_PATA_IT821X is not set
607# CONFIG_PATA_JMICRON is not set 618# CONFIG_PATA_JMICRON is not set
608# CONFIG_PATA_LEGACY is not set
609# CONFIG_PATA_TRIFLEX is not set 619# CONFIG_PATA_TRIFLEX is not set
610# CONFIG_PATA_MPIIX is not set 620# CONFIG_PATA_MPIIX is not set
611# CONFIG_PATA_OLDPIIX is not set 621# CONFIG_PATA_OLDPIIX is not set
@@ -614,7 +624,6 @@ CONFIG_SATA_INTEL_COMBINED=y
614# CONFIG_PATA_OPTI is not set 624# CONFIG_PATA_OPTI is not set
615# CONFIG_PATA_OPTIDMA is not set 625# CONFIG_PATA_OPTIDMA is not set
616# CONFIG_PATA_PDC_OLD is not set 626# CONFIG_PATA_PDC_OLD is not set
617# CONFIG_PATA_QDI is not set
618# CONFIG_PATA_RADISYS is not set 627# CONFIG_PATA_RADISYS is not set
619# CONFIG_PATA_RZ1000 is not set 628# CONFIG_PATA_RZ1000 is not set
620# CONFIG_PATA_SC1200 is not set 629# CONFIG_PATA_SC1200 is not set
@@ -631,6 +640,7 @@ CONFIG_SATA_INTEL_COMBINED=y
631CONFIG_MD=y 640CONFIG_MD=y
632# CONFIG_BLK_DEV_MD is not set 641# CONFIG_BLK_DEV_MD is not set
633CONFIG_BLK_DEV_DM=y 642CONFIG_BLK_DEV_DM=y
643# CONFIG_DM_DEBUG is not set
634# CONFIG_DM_CRYPT is not set 644# CONFIG_DM_CRYPT is not set
635# CONFIG_DM_SNAPSHOT is not set 645# CONFIG_DM_SNAPSHOT is not set
636# CONFIG_DM_MIRROR is not set 646# CONFIG_DM_MIRROR is not set
@@ -819,6 +829,7 @@ CONFIG_NET_POLL_CONTROLLER=y
819# Input device support 829# Input device support
820# 830#
821CONFIG_INPUT=y 831CONFIG_INPUT=y
832# CONFIG_INPUT_FF_MEMLESS is not set
822 833
823# 834#
824# Userland interfaces 835# Userland interfaces
@@ -841,6 +852,7 @@ CONFIG_KEYBOARD_ATKBD=y
841# CONFIG_KEYBOARD_LKKBD is not set 852# CONFIG_KEYBOARD_LKKBD is not set
842# CONFIG_KEYBOARD_XTKBD is not set 853# CONFIG_KEYBOARD_XTKBD is not set
843# CONFIG_KEYBOARD_NEWTON is not set 854# CONFIG_KEYBOARD_NEWTON is not set
855# CONFIG_KEYBOARD_STOWAWAY is not set
844CONFIG_INPUT_MOUSE=y 856CONFIG_INPUT_MOUSE=y
845CONFIG_MOUSE_PS2=y 857CONFIG_MOUSE_PS2=y
846# CONFIG_MOUSE_SERIAL is not set 858# CONFIG_MOUSE_SERIAL is not set
@@ -1008,6 +1020,7 @@ CONFIG_HWMON=y
1008# CONFIG_SENSORS_ADM1026 is not set 1020# CONFIG_SENSORS_ADM1026 is not set
1009# CONFIG_SENSORS_ADM1031 is not set 1021# CONFIG_SENSORS_ADM1031 is not set
1010# CONFIG_SENSORS_ADM9240 is not set 1022# CONFIG_SENSORS_ADM9240 is not set
1023# CONFIG_SENSORS_K8TEMP is not set
1011# CONFIG_SENSORS_ASB100 is not set 1024# CONFIG_SENSORS_ASB100 is not set
1012# CONFIG_SENSORS_ATXP1 is not set 1025# CONFIG_SENSORS_ATXP1 is not set
1013# CONFIG_SENSORS_DS1621 is not set 1026# CONFIG_SENSORS_DS1621 is not set
@@ -1034,6 +1047,7 @@ CONFIG_HWMON=y
1034# CONFIG_SENSORS_SMSC47M192 is not set 1047# CONFIG_SENSORS_SMSC47M192 is not set
1035CONFIG_SENSORS_SMSC47B397=m 1048CONFIG_SENSORS_SMSC47B397=m
1036# CONFIG_SENSORS_VIA686A is not set 1049# CONFIG_SENSORS_VIA686A is not set
1050# CONFIG_SENSORS_VT1211 is not set
1037# CONFIG_SENSORS_VT8231 is not set 1051# CONFIG_SENSORS_VT8231 is not set
1038# CONFIG_SENSORS_W83781D is not set 1052# CONFIG_SENSORS_W83781D is not set
1039# CONFIG_SENSORS_W83791D is not set 1053# CONFIG_SENSORS_W83791D is not set
@@ -1048,12 +1062,12 @@ CONFIG_SENSORS_SMSC47B397=m
1048# Misc devices 1062# Misc devices
1049# 1063#
1050# CONFIG_IBM_ASM is not set 1064# CONFIG_IBM_ASM is not set
1065# CONFIG_TIFM_CORE is not set
1051 1066
1052# 1067#
1053# Multimedia devices 1068# Multimedia devices
1054# 1069#
1055# CONFIG_VIDEO_DEV is not set 1070# CONFIG_VIDEO_DEV is not set
1056CONFIG_VIDEO_V4L2=y
1057 1071
1058# 1072#
1059# Digital Video Broadcasting Devices 1073# Digital Video Broadcasting Devices
@@ -1159,6 +1173,7 @@ CONFIG_USB_STORAGE=y
1159# CONFIG_USB_STORAGE_SDDR55 is not set 1173# CONFIG_USB_STORAGE_SDDR55 is not set
1160# CONFIG_USB_STORAGE_JUMPSHOT is not set 1174# CONFIG_USB_STORAGE_JUMPSHOT is not set
1161# CONFIG_USB_STORAGE_ALAUDA is not set 1175# CONFIG_USB_STORAGE_ALAUDA is not set
1176# CONFIG_USB_STORAGE_KARMA is not set
1162# CONFIG_USB_LIBUSUAL is not set 1177# CONFIG_USB_LIBUSUAL is not set
1163 1178
1164# 1179#
@@ -1181,6 +1196,7 @@ CONFIG_USB_HIDINPUT=y
1181# CONFIG_USB_ATI_REMOTE2 is not set 1196# CONFIG_USB_ATI_REMOTE2 is not set
1182# CONFIG_USB_KEYSPAN_REMOTE is not set 1197# CONFIG_USB_KEYSPAN_REMOTE is not set
1183# CONFIG_USB_APPLETOUCH is not set 1198# CONFIG_USB_APPLETOUCH is not set
1199# CONFIG_USB_TRANCEVIBRATOR is not set
1184 1200
1185# 1201#
1186# USB Imaging devices 1202# USB Imaging devices
@@ -1212,6 +1228,7 @@ CONFIG_USB_MON=y
1212# 1228#
1213# CONFIG_USB_EMI62 is not set 1229# CONFIG_USB_EMI62 is not set
1214# CONFIG_USB_EMI26 is not set 1230# CONFIG_USB_EMI26 is not set
1231# CONFIG_USB_ADUTUX is not set
1215# CONFIG_USB_AUERSWALD is not set 1232# CONFIG_USB_AUERSWALD is not set
1216# CONFIG_USB_RIO500 is not set 1233# CONFIG_USB_RIO500 is not set
1217# CONFIG_USB_LEGOTOWER is not set 1234# CONFIG_USB_LEGOTOWER is not set
@@ -1219,9 +1236,9 @@ CONFIG_USB_MON=y
1219# CONFIG_USB_LED is not set 1236# CONFIG_USB_LED is not set
1220# CONFIG_USB_CYPRESS_CY7C63 is not set 1237# CONFIG_USB_CYPRESS_CY7C63 is not set
1221# CONFIG_USB_CYTHERM is not set 1238# CONFIG_USB_CYTHERM is not set
1222# CONFIG_USB_PHIDGETKIT is not set 1239# CONFIG_USB_PHIDGET is not set
1223# CONFIG_USB_PHIDGETSERVO is not set
1224# CONFIG_USB_IDMOUSE is not set 1240# CONFIG_USB_IDMOUSE is not set
1241# CONFIG_USB_FTDI_ELAN is not set
1225# CONFIG_USB_APPLEDISPLAY is not set 1242# CONFIG_USB_APPLEDISPLAY is not set
1226# CONFIG_USB_SISUSBVGA is not set 1243# CONFIG_USB_SISUSBVGA is not set
1227# CONFIG_USB_LD is not set 1244# CONFIG_USB_LD is not set
@@ -1313,6 +1330,7 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
1313# CONFIG_JFS_FS is not set 1330# CONFIG_JFS_FS is not set
1314CONFIG_FS_POSIX_ACL=y 1331CONFIG_FS_POSIX_ACL=y
1315# CONFIG_XFS_FS is not set 1332# CONFIG_XFS_FS is not set
1333# CONFIG_GFS2_FS is not set
1316# CONFIG_OCFS2_FS is not set 1334# CONFIG_OCFS2_FS is not set
1317# CONFIG_MINIX_FS is not set 1335# CONFIG_MINIX_FS is not set
1318# CONFIG_ROMFS_FS is not set 1336# CONFIG_ROMFS_FS is not set
@@ -1347,8 +1365,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1347# 1365#
1348CONFIG_PROC_FS=y 1366CONFIG_PROC_FS=y
1349CONFIG_PROC_KCORE=y 1367CONFIG_PROC_KCORE=y
1368CONFIG_PROC_SYSCTL=y
1350CONFIG_SYSFS=y 1369CONFIG_SYSFS=y
1351CONFIG_TMPFS=y 1370CONFIG_TMPFS=y
1371CONFIG_TMPFS_POSIX_ACL=y
1352CONFIG_HUGETLBFS=y 1372CONFIG_HUGETLBFS=y
1353CONFIG_HUGETLB_PAGE=y 1373CONFIG_HUGETLB_PAGE=y
1354CONFIG_RAMFS=y 1374CONFIG_RAMFS=y
@@ -1398,6 +1418,7 @@ CONFIG_SUNRPC=y
1398# CONFIG_CODA_FS is not set 1418# CONFIG_CODA_FS is not set
1399# CONFIG_AFS_FS is not set 1419# CONFIG_AFS_FS is not set
1400# CONFIG_9P_FS is not set 1420# CONFIG_9P_FS is not set
1421CONFIG_GENERIC_ACL=y
1401 1422
1402# 1423#
1403# Partition Types 1424# Partition Types
@@ -1450,6 +1471,10 @@ CONFIG_NLS_ISO8859_15=y
1450CONFIG_NLS_UTF8=y 1471CONFIG_NLS_UTF8=y
1451 1472
1452# 1473#
1474# Distributed Lock Manager
1475#
1476
1477#
1453# Instrumentation Support 1478# Instrumentation Support
1454# 1479#
1455CONFIG_PROFILING=y 1480CONFIG_PROFILING=y
@@ -1482,11 +1507,13 @@ CONFIG_DETECT_SOFTLOCKUP=y
1482# CONFIG_DEBUG_INFO is not set 1507# CONFIG_DEBUG_INFO is not set
1483CONFIG_DEBUG_FS=y 1508CONFIG_DEBUG_FS=y
1484# CONFIG_DEBUG_VM is not set 1509# CONFIG_DEBUG_VM is not set
1510# CONFIG_DEBUG_LIST is not set
1485# CONFIG_FRAME_POINTER is not set 1511# CONFIG_FRAME_POINTER is not set
1486CONFIG_UNWIND_INFO=y 1512CONFIG_UNWIND_INFO=y
1487CONFIG_STACK_UNWIND=y 1513CONFIG_STACK_UNWIND=y
1488# CONFIG_FORCED_INLINING is not set 1514# CONFIG_FORCED_INLINING is not set
1489# CONFIG_RCU_TORTURE_TEST is not set 1515# CONFIG_RCU_TORTURE_TEST is not set
1516# CONFIG_LKDTM is not set
1490# CONFIG_DEBUG_RODATA is not set 1517# CONFIG_DEBUG_RODATA is not set
1491# CONFIG_IOMMU_DEBUG is not set 1518# CONFIG_IOMMU_DEBUG is not set
1492CONFIG_DEBUG_STACKOVERFLOW=y 1519CONFIG_DEBUG_STACKOVERFLOW=y
diff --git a/arch/x86_64/kernel/apic.c b/arch/x86_64/kernel/apic.c
index 6472e321cad7..af4a1c71a80d 100644
--- a/arch/x86_64/kernel/apic.c
+++ b/arch/x86_64/kernel/apic.c
@@ -885,14 +885,14 @@ void setup_APIC_extened_lvt(unsigned char lvt_off, unsigned char vector,
885 * value into /proc/profile. 885 * value into /proc/profile.
886 */ 886 */
887 887
888void smp_local_timer_interrupt(struct pt_regs *regs) 888void smp_local_timer_interrupt(void)
889{ 889{
890 profile_tick(CPU_PROFILING, regs); 890 profile_tick(CPU_PROFILING);
891#ifdef CONFIG_SMP 891#ifdef CONFIG_SMP
892 update_process_times(user_mode(regs)); 892 update_process_times(user_mode(get_irq_regs()));
893#endif 893#endif
894 if (apic_runs_main_timer > 1 && smp_processor_id() == boot_cpu_id) 894 if (apic_runs_main_timer > 1 && smp_processor_id() == boot_cpu_id)
895 main_timer_handler(regs); 895 main_timer_handler();
896 /* 896 /*
897 * We take the 'long' return path, and there every subsystem 897 * We take the 'long' return path, and there every subsystem
898 * grabs the appropriate locks (kernel lock/ irq lock). 898 * grabs the appropriate locks (kernel lock/ irq lock).
@@ -913,7 +913,7 @@ void smp_local_timer_interrupt(struct pt_regs *regs)
913 * [ if a single-CPU system runs an SMP kernel then we call the local 913 * [ if a single-CPU system runs an SMP kernel then we call the local
914 * interrupt as well. Thus we cannot inline the local irq ... ] 914 * interrupt as well. Thus we cannot inline the local irq ... ]
915 */ 915 */
916void smp_apic_timer_interrupt(struct pt_regs *regs) 916void smp_apic_timer_interrupt(void)
917{ 917{
918 /* 918 /*
919 * the NMI deadlock-detector uses this. 919 * the NMI deadlock-detector uses this.
@@ -932,7 +932,7 @@ void smp_apic_timer_interrupt(struct pt_regs *regs)
932 */ 932 */
933 exit_idle(); 933 exit_idle();
934 irq_enter(); 934 irq_enter();
935 smp_local_timer_interrupt(regs); 935 smp_local_timer_interrupt();
936 irq_exit(); 936 irq_exit();
937} 937}
938 938
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S
index b8285cf1a9c3..38a7b2d528e2 100644
--- a/arch/x86_64/kernel/entry.S
+++ b/arch/x86_64/kernel/entry.S
@@ -535,6 +535,8 @@ END(stub_rt_sigreturn)
5351: incl %gs:pda_irqcount 5351: incl %gs:pda_irqcount
536 cmoveq %gs:pda_irqstackptr,%rsp 536 cmoveq %gs:pda_irqstackptr,%rsp
537 push %rbp # backlink for old unwinder 537 push %rbp # backlink for old unwinder
538 CFI_ADJUST_CFA_OFFSET 8
539 CFI_REL_OFFSET rbp,0
538 /* 540 /*
539 * We entered an interrupt context - irqs are off: 541 * We entered an interrupt context - irqs are off:
540 */ 542 */
@@ -978,6 +980,11 @@ ENTRY(kernel_thread)
978 call do_fork 980 call do_fork
979 movq %rax,RAX(%rsp) 981 movq %rax,RAX(%rsp)
980 xorl %edi,%edi 982 xorl %edi,%edi
983 test %rax,%rax
984 jnz 1f
985 /* terminate stack in child */
986 movq %rdi,RIP(%rsp)
9871:
981 988
982 /* 989 /*
983 * It isn't worth to check for reschedule here, 990 * It isn't worth to check for reschedule here,
@@ -1169,6 +1176,7 @@ ENTRY(call_softirq)
1169 incl %gs:pda_irqcount 1176 incl %gs:pda_irqcount
1170 cmove %gs:pda_irqstackptr,%rsp 1177 cmove %gs:pda_irqstackptr,%rsp
1171 push %rbp # backlink for old unwinder 1178 push %rbp # backlink for old unwinder
1179 CFI_ADJUST_CFA_OFFSET 8
1172 call __do_softirq 1180 call __do_softirq
1173 leaveq 1181 leaveq
1174 CFI_DEF_CFA_REGISTER rsp 1182 CFI_DEF_CFA_REGISTER rsp
diff --git a/arch/x86_64/kernel/irq.c b/arch/x86_64/kernel/irq.c
index 506f27c85ca5..b8a407fcd5d5 100644
--- a/arch/x86_64/kernel/irq.c
+++ b/arch/x86_64/kernel/irq.c
@@ -103,7 +103,9 @@ skip:
103 * handlers). 103 * handlers).
104 */ 104 */
105asmlinkage unsigned int do_IRQ(struct pt_regs *regs) 105asmlinkage unsigned int do_IRQ(struct pt_regs *regs)
106{ 106{
107 struct pt_regs *old_regs = set_irq_regs(regs);
108
107 /* high bit used in ret_from_ code */ 109 /* high bit used in ret_from_ code */
108 unsigned vector = ~regs->orig_rax; 110 unsigned vector = ~regs->orig_rax;
109 unsigned irq; 111 unsigned irq;
@@ -121,9 +123,10 @@ asmlinkage unsigned int do_IRQ(struct pt_regs *regs)
121#ifdef CONFIG_DEBUG_STACKOVERFLOW 123#ifdef CONFIG_DEBUG_STACKOVERFLOW
122 stack_overflow_check(regs); 124 stack_overflow_check(regs);
123#endif 125#endif
124 generic_handle_irq(irq, regs); 126 generic_handle_irq(irq);
125 irq_exit(); 127 irq_exit();
126 128
129 set_irq_regs(old_regs);
127 return 1; 130 return 1;
128} 131}
129 132
diff --git a/arch/x86_64/kernel/pci-calgary.c b/arch/x86_64/kernel/pci-calgary.c
index f760045d6d35..b3296cc2f2f2 100644
--- a/arch/x86_64/kernel/pci-calgary.c
+++ b/arch/x86_64/kernel/pci-calgary.c
@@ -2,8 +2,9 @@
2 * Derived from arch/powerpc/kernel/iommu.c 2 * Derived from arch/powerpc/kernel/iommu.c
3 * 3 *
4 * Copyright (C) IBM Corporation, 2006 4 * Copyright (C) IBM Corporation, 2006
5 * Copyright (C) 2006 Jon Mason <jdmason@kudzu.us>
5 * 6 *
6 * Author: Jon Mason <jdmason@us.ibm.com> 7 * Author: Jon Mason <jdmason@kudzu.us>
7 * Author: Muli Ben-Yehuda <muli@il.ibm.com> 8 * Author: Muli Ben-Yehuda <muli@il.ibm.com>
8 9
9 * This program is free software; you can redistribute it and/or modify 10 * This program is free software; you can redistribute it and/or modify
@@ -714,7 +715,7 @@ static void calgary_watchdog(unsigned long data)
714 715
715 /* If no error, the agent ID in the CSR is not valid */ 716 /* If no error, the agent ID in the CSR is not valid */
716 if (val32 & CSR_AGENT_MASK) { 717 if (val32 & CSR_AGENT_MASK) {
717 printk(KERN_EMERG "calgary_watchdog: DMA error on bus %d, " 718 printk(KERN_EMERG "calgary_watchdog: DMA error on PHB %#x, "
718 "CSR = %#x\n", dev->bus->number, val32); 719 "CSR = %#x\n", dev->bus->number, val32);
719 writel(0, target); 720 writel(0, target);
720 721
@@ -748,7 +749,7 @@ static void __init calgary_enable_translation(struct pci_dev *dev)
748 val32 = be32_to_cpu(readl(target)); 749 val32 = be32_to_cpu(readl(target));
749 val32 |= PHB_TCE_ENABLE | PHB_DAC_DISABLE | PHB_MCSR_ENABLE; 750 val32 |= PHB_TCE_ENABLE | PHB_DAC_DISABLE | PHB_MCSR_ENABLE;
750 751
751 printk(KERN_INFO "Calgary: enabling translation on PHB %d\n", busnum); 752 printk(KERN_INFO "Calgary: enabling translation on PHB %#x\n", busnum);
752 printk(KERN_INFO "Calgary: errant DMAs will now be prevented on this " 753 printk(KERN_INFO "Calgary: errant DMAs will now be prevented on this "
753 "bus.\n"); 754 "bus.\n");
754 755
@@ -778,7 +779,7 @@ static void __init calgary_disable_translation(struct pci_dev *dev)
778 val32 = be32_to_cpu(readl(target)); 779 val32 = be32_to_cpu(readl(target));
779 val32 &= ~(PHB_TCE_ENABLE | PHB_DAC_DISABLE | PHB_MCSR_ENABLE); 780 val32 &= ~(PHB_TCE_ENABLE | PHB_DAC_DISABLE | PHB_MCSR_ENABLE);
780 781
781 printk(KERN_INFO "Calgary: disabling translation on PHB %d!\n", busnum); 782 printk(KERN_INFO "Calgary: disabling translation on PHB %#x!\n", busnum);
782 writel(cpu_to_be32(val32), target); 783 writel(cpu_to_be32(val32), target);
783 readl(target); /* flush */ 784 readl(target); /* flush */
784 785
@@ -790,7 +791,16 @@ static inline unsigned int __init locate_register_space(struct pci_dev *dev)
790 int rionodeid; 791 int rionodeid;
791 u32 address; 792 u32 address;
792 793
793 rionodeid = (dev->bus->number % 15 > 4) ? 3 : 2; 794 /*
795 * Each Calgary has four busses. The first four busses (first Calgary)
796 * have RIO node ID 2, then the next four (second Calgary) have RIO
797 * node ID 3, the next four (third Calgary) have node ID 2 again, etc.
798 * We use a gross hack - relying on the dev->bus->number ordering,
799 * modulo 14 - to decide which Calgary a given bus is on. Busses 0, 1,
800 * 2 and 4 are on the first Calgary (id 2), 6, 8, a and c are on the
801 * second (id 3), and then it repeats modulo 14.
802 */
803 rionodeid = (dev->bus->number % 14 > 4) ? 3 : 2;
794 /* 804 /*
795 * register space address calculation as follows: 805 * register space address calculation as follows:
796 * FE0MB-8MB*OneBasedChassisNumber+1MB*(RioNodeId-ChassisBase) 806 * FE0MB-8MB*OneBasedChassisNumber+1MB*(RioNodeId-ChassisBase)
@@ -798,7 +808,7 @@ static inline unsigned int __init locate_register_space(struct pci_dev *dev)
798 * RioNodeId is 2 for first Calgary, 3 for second Calgary 808 * RioNodeId is 2 for first Calgary, 3 for second Calgary
799 */ 809 */
800 address = START_ADDRESS - 810 address = START_ADDRESS -
801 (0x800000 * (ONE_BASED_CHASSIS_NUM + dev->bus->number / 15)) + 811 (0x800000 * (ONE_BASED_CHASSIS_NUM + dev->bus->number / 14)) +
802 (0x100000) * (rionodeid - CHASSIS_BASE); 812 (0x100000) * (rionodeid - CHASSIS_BASE);
803 return address; 813 return address;
804} 814}
@@ -816,6 +826,8 @@ static int __init calgary_init_one(struct pci_dev *dev)
816 void __iomem *bbar; 826 void __iomem *bbar;
817 int ret; 827 int ret;
818 828
829 BUG_ON(dev->bus->number >= MAX_PHB_BUS_NUM);
830
819 address = locate_register_space(dev); 831 address = locate_register_space(dev);
820 /* map entire 1MB of Calgary config space */ 832 /* map entire 1MB of Calgary config space */
821 bbar = ioremap_nocache(address, 1024 * 1024); 833 bbar = ioremap_nocache(address, 1024 * 1024);
@@ -842,10 +854,10 @@ done:
842 854
843static int __init calgary_init(void) 855static int __init calgary_init(void)
844{ 856{
845 int i, ret = -ENODEV; 857 int ret = -ENODEV;
846 struct pci_dev *dev = NULL; 858 struct pci_dev *dev = NULL;
847 859
848 for (i = 0; i < MAX_PHB_BUS_NUM; i++) { 860 do {
849 dev = pci_get_device(PCI_VENDOR_ID_IBM, 861 dev = pci_get_device(PCI_VENDOR_ID_IBM,
850 PCI_DEVICE_ID_IBM_CALGARY, 862 PCI_DEVICE_ID_IBM_CALGARY,
851 dev); 863 dev);
@@ -861,12 +873,12 @@ static int __init calgary_init(void)
861 ret = calgary_init_one(dev); 873 ret = calgary_init_one(dev);
862 if (ret) 874 if (ret)
863 goto error; 875 goto error;
864 } 876 } while (1);
865 877
866 return ret; 878 return ret;
867 879
868error: 880error:
869 for (i--; i >= 0; i--) { 881 do {
870 dev = pci_find_device_reverse(PCI_VENDOR_ID_IBM, 882 dev = pci_find_device_reverse(PCI_VENDOR_ID_IBM,
871 PCI_DEVICE_ID_IBM_CALGARY, 883 PCI_DEVICE_ID_IBM_CALGARY,
872 dev); 884 dev);
@@ -882,7 +894,7 @@ error:
882 calgary_disable_translation(dev); 894 calgary_disable_translation(dev);
883 calgary_free_bus(dev); 895 calgary_free_bus(dev);
884 pci_dev_put(dev); /* Undo calgary_init_one()'s pci_dev_get() */ 896 pci_dev_put(dev); /* Undo calgary_init_one()'s pci_dev_get() */
885 } 897 } while (1);
886 898
887 return ret; 899 return ret;
888} 900}
@@ -1052,7 +1064,7 @@ static int __init calgary_parse_options(char *p)
1052 1064
1053 if (bridge < MAX_PHB_BUS_NUM) { 1065 if (bridge < MAX_PHB_BUS_NUM) {
1054 printk(KERN_INFO "Calgary: disabling " 1066 printk(KERN_INFO "Calgary: disabling "
1055 "translation for PHB 0x%x\n", bridge); 1067 "translation for PHB %#x\n", bridge);
1056 bus_info[bridge].translation_disabled = 1; 1068 bus_info[bridge].translation_disabled = 1;
1057 } 1069 }
1058 } 1070 }
diff --git a/arch/x86_64/kernel/process.c b/arch/x86_64/kernel/process.c
index de10cb8a2c97..5e95b257ee26 100644
--- a/arch/x86_64/kernel/process.c
+++ b/arch/x86_64/kernel/process.c
@@ -615,6 +615,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
615 prev->gsindex = gsindex; 615 prev->gsindex = gsindex;
616 } 616 }
617 617
618 /* Must be after DS reload */
619 unlazy_fpu(prev_p);
620
618 /* 621 /*
619 * Switch the PDA and FPU contexts. 622 * Switch the PDA and FPU contexts.
620 */ 623 */
@@ -622,10 +625,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
622 write_pda(oldrsp, next->userrsp); 625 write_pda(oldrsp, next->userrsp);
623 write_pda(pcurrent, next_p); 626 write_pda(pcurrent, next_p);
624 627
625 /* This must be here to ensure both math_state_restore() and
626 kernel_fpu_begin() work consistently.
627 And the AMD workaround requires it to be after DS reload. */
628 unlazy_fpu(prev_p);
629 write_pda(kernelstack, 628 write_pda(kernelstack,
630 (unsigned long)task_stack_page(next_p) + THREAD_SIZE - PDA_STACKOFFSET); 629 (unsigned long)task_stack_page(next_p) + THREAD_SIZE - PDA_STACKOFFSET);
631#ifdef CONFIG_CC_STACKPROTECTOR 630#ifdef CONFIG_CC_STACKPROTECTOR
diff --git a/arch/x86_64/kernel/time.c b/arch/x86_64/kernel/time.c
index 557e92af7bea..1ba5a442ac32 100644
--- a/arch/x86_64/kernel/time.c
+++ b/arch/x86_64/kernel/time.c
@@ -302,20 +302,20 @@ unsigned long long monotonic_clock(void)
302} 302}
303EXPORT_SYMBOL(monotonic_clock); 303EXPORT_SYMBOL(monotonic_clock);
304 304
305static noinline void handle_lost_ticks(int lost, struct pt_regs *regs) 305static noinline void handle_lost_ticks(int lost)
306{ 306{
307 static long lost_count; 307 static long lost_count;
308 static int warned; 308 static int warned;
309 if (report_lost_ticks) { 309 if (report_lost_ticks) {
310 printk(KERN_WARNING "time.c: Lost %d timer tick(s)! ", lost); 310 printk(KERN_WARNING "time.c: Lost %d timer tick(s)! ", lost);
311 print_symbol("rip %s)\n", regs->rip); 311 print_symbol("rip %s)\n", get_irq_regs()->rip);
312 } 312 }
313 313
314 if (lost_count == 1000 && !warned) { 314 if (lost_count == 1000 && !warned) {
315 printk(KERN_WARNING "warning: many lost ticks.\n" 315 printk(KERN_WARNING "warning: many lost ticks.\n"
316 KERN_WARNING "Your time source seems to be instable or " 316 KERN_WARNING "Your time source seems to be instable or "
317 "some driver is hogging interupts\n"); 317 "some driver is hogging interupts\n");
318 print_symbol("rip %s\n", regs->rip); 318 print_symbol("rip %s\n", get_irq_regs()->rip);
319 if (vxtime.mode == VXTIME_TSC && vxtime.hpet_address) { 319 if (vxtime.mode == VXTIME_TSC && vxtime.hpet_address) {
320 printk(KERN_WARNING "Falling back to HPET\n"); 320 printk(KERN_WARNING "Falling back to HPET\n");
321 if (hpet_use_timer) 321 if (hpet_use_timer)
@@ -339,7 +339,7 @@ static noinline void handle_lost_ticks(int lost, struct pt_regs *regs)
339#endif 339#endif
340} 340}
341 341
342void main_timer_handler(struct pt_regs *regs) 342void main_timer_handler(void)
343{ 343{
344 static unsigned long rtc_update = 0; 344 static unsigned long rtc_update = 0;
345 unsigned long tsc; 345 unsigned long tsc;
@@ -411,7 +411,7 @@ void main_timer_handler(struct pt_regs *regs)
411 } 411 }
412 412
413 if (lost > 0) 413 if (lost > 0)
414 handle_lost_ticks(lost, regs); 414 handle_lost_ticks(lost);
415 else 415 else
416 lost = 0; 416 lost = 0;
417 417
@@ -421,7 +421,7 @@ void main_timer_handler(struct pt_regs *regs)
421 421
422 do_timer(lost + 1); 422 do_timer(lost + 1);
423#ifndef CONFIG_SMP 423#ifndef CONFIG_SMP
424 update_process_times(user_mode(regs)); 424 update_process_times(user_mode(get_irq_regs()));
425#endif 425#endif
426 426
427/* 427/*
@@ -431,7 +431,7 @@ void main_timer_handler(struct pt_regs *regs)
431 */ 431 */
432 432
433 if (!using_apic_timer) 433 if (!using_apic_timer)
434 smp_local_timer_interrupt(regs); 434 smp_local_timer_interrupt();
435 435
436/* 436/*
437 * If we have an externally synchronized Linux clock, then update CMOS clock 437 * If we have an externally synchronized Linux clock, then update CMOS clock
@@ -450,11 +450,11 @@ void main_timer_handler(struct pt_regs *regs)
450 write_sequnlock(&xtime_lock); 450 write_sequnlock(&xtime_lock);
451} 451}
452 452
453static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 453static irqreturn_t timer_interrupt(int irq, void *dev_id)
454{ 454{
455 if (apic_runs_main_timer > 1) 455 if (apic_runs_main_timer > 1)
456 return IRQ_HANDLED; 456 return IRQ_HANDLED;
457 main_timer_handler(regs); 457 main_timer_handler();
458 if (using_apic_timer) 458 if (using_apic_timer)
459 smp_send_timer_broadcast_ipi(); 459 smp_send_timer_broadcast_ipi();
460 return IRQ_HANDLED; 460 return IRQ_HANDLED;
@@ -1337,7 +1337,7 @@ irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1337 } 1337 }
1338 if (call_rtc_interrupt) { 1338 if (call_rtc_interrupt) {
1339 rtc_int_flag |= (RTC_IRQF | (RTC_NUM_INTS << 8)); 1339 rtc_int_flag |= (RTC_IRQF | (RTC_NUM_INTS << 8));
1340 rtc_interrupt(rtc_int_flag, dev_id, regs); 1340 rtc_interrupt(rtc_int_flag, dev_id);
1341 } 1341 }
1342 return IRQ_HANDLED; 1342 return IRQ_HANDLED;
1343} 1343}
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c
index 01f2a8d254c2..7819022a8db5 100644
--- a/arch/x86_64/kernel/traps.c
+++ b/arch/x86_64/kernel/traps.c
@@ -23,6 +23,7 @@
23#include <linux/delay.h> 23#include <linux/delay.h>
24#include <linux/spinlock.h> 24#include <linux/spinlock.h>
25#include <linux/interrupt.h> 25#include <linux/interrupt.h>
26#include <linux/kallsyms.h>
26#include <linux/module.h> 27#include <linux/module.h>
27#include <linux/moduleparam.h> 28#include <linux/moduleparam.h>
28#include <linux/nmi.h> 29#include <linux/nmi.h>
@@ -115,7 +116,6 @@ static int call_trace = 1;
115#endif 116#endif
116 117
117#ifdef CONFIG_KALLSYMS 118#ifdef CONFIG_KALLSYMS
118# include <linux/kallsyms.h>
119void printk_address(unsigned long address) 119void printk_address(unsigned long address)
120{ 120{
121 unsigned long offset = 0, symsize; 121 unsigned long offset = 0, symsize;
diff --git a/drivers/acorn/block/mfmhd.c b/drivers/acorn/block/mfmhd.c
index 1bace29f4b6a..7fde8f4daebf 100644
--- a/drivers/acorn/block/mfmhd.c
+++ b/drivers/acorn/block/mfmhd.c
@@ -938,7 +938,7 @@ static void do_mfm_request(request_queue_t *q)
938 mfm_request(); 938 mfm_request();
939} 939}
940 940
941static void mfm_interrupt_handler(int unused, void *dev_id, struct pt_regs *regs) 941static void mfm_interrupt_handler(int unused, void *dev_id)
942{ 942{
943 void (*handler) (void) = do_mfm; 943 void (*handler) (void) = do_mfm;
944 944
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 20beea778ea2..068fe4f100b0 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -237,7 +237,7 @@ acpi_os_table_override(struct acpi_table_header * existing_table,
237 return AE_OK; 237 return AE_OK;
238} 238}
239 239
240static irqreturn_t acpi_irq(int irq, void *dev_id, struct pt_regs *regs) 240static irqreturn_t acpi_irq(int irq, void *dev_id)
241{ 241{
242 return (*acpi_irq_handler) (acpi_irq_context) ? IRQ_HANDLED : IRQ_NONE; 242 return (*acpi_irq_handler) (acpi_irq_context) ? IRQ_HANDLED : IRQ_NONE;
243} 243}
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 54e1f38ce301..25929123ffff 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -204,7 +204,7 @@ static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg);
204static void ahci_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val); 204static void ahci_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
205static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); 205static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
206static unsigned int ahci_qc_issue(struct ata_queued_cmd *qc); 206static unsigned int ahci_qc_issue(struct ata_queued_cmd *qc);
207static irqreturn_t ahci_interrupt (int irq, void *dev_instance, struct pt_regs *regs); 207static irqreturn_t ahci_interrupt (int irq, void *dev_instance);
208static void ahci_irq_clear(struct ata_port *ap); 208static void ahci_irq_clear(struct ata_port *ap);
209static int ahci_port_start(struct ata_port *ap); 209static int ahci_port_start(struct ata_port *ap);
210static void ahci_port_stop(struct ata_port *ap); 210static void ahci_port_stop(struct ata_port *ap);
@@ -1059,7 +1059,7 @@ static void ahci_irq_clear(struct ata_port *ap)
1059 /* TODO */ 1059 /* TODO */
1060} 1060}
1061 1061
1062static irqreturn_t ahci_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1062static irqreturn_t ahci_interrupt(int irq, void *dev_instance)
1063{ 1063{
1064 struct ata_host *host = dev_instance; 1064 struct ata_host *host = dev_instance;
1065 struct ahci_host_priv *hpriv; 1065 struct ahci_host_priv *hpriv;
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index ad8e2c64c867..83728a9457ad 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4861,7 +4861,6 @@ idle_irq:
4861 * ata_interrupt - Default ATA host interrupt handler 4861 * ata_interrupt - Default ATA host interrupt handler
4862 * @irq: irq line (unused) 4862 * @irq: irq line (unused)
4863 * @dev_instance: pointer to our ata_host information structure 4863 * @dev_instance: pointer to our ata_host information structure
4864 * @regs: unused
4865 * 4864 *
4866 * Default interrupt handler for PCI IDE devices. Calls 4865 * Default interrupt handler for PCI IDE devices. Calls
4867 * ata_host_intr() for each port that is not disabled. 4866 * ata_host_intr() for each port that is not disabled.
@@ -4873,7 +4872,7 @@ idle_irq:
4873 * IRQ_NONE or IRQ_HANDLED. 4872 * IRQ_NONE or IRQ_HANDLED.
4874 */ 4873 */
4875 4874
4876irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs) 4875irqreturn_t ata_interrupt (int irq, void *dev_instance)
4877{ 4876{
4878 struct ata_host *host = dev_instance; 4877 struct ata_host *host = dev_instance;
4879 unsigned int i; 4878 unsigned int i;
diff --git a/drivers/ata/pdc_adma.c b/drivers/ata/pdc_adma.c
index 81f3d219e70e..9021e34d2096 100644
--- a/drivers/ata/pdc_adma.c
+++ b/drivers/ata/pdc_adma.c
@@ -124,8 +124,7 @@ struct adma_port_priv {
124 124
125static int adma_ata_init_one (struct pci_dev *pdev, 125static int adma_ata_init_one (struct pci_dev *pdev,
126 const struct pci_device_id *ent); 126 const struct pci_device_id *ent);
127static irqreturn_t adma_intr (int irq, void *dev_instance, 127static irqreturn_t adma_intr (int irq, void *dev_instance);
128 struct pt_regs *regs);
129static int adma_port_start(struct ata_port *ap); 128static int adma_port_start(struct ata_port *ap);
130static void adma_host_stop(struct ata_host *host); 129static void adma_host_stop(struct ata_host *host);
131static void adma_port_stop(struct ata_port *ap); 130static void adma_port_stop(struct ata_port *ap);
@@ -508,7 +507,7 @@ static inline unsigned int adma_intr_mmio(struct ata_host *host)
508 return handled; 507 return handled;
509} 508}
510 509
511static irqreturn_t adma_intr(int irq, void *dev_instance, struct pt_regs *regs) 510static irqreturn_t adma_intr(int irq, void *dev_instance)
512{ 511{
513 struct ata_host *host = dev_instance; 512 struct ata_host *host = dev_instance;
514 unsigned int handled = 0; 513 unsigned int handled = 0;
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index e6aa1a86d5cf..1b8e0eb9e032 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -348,8 +348,7 @@ static void mv_port_stop(struct ata_port *ap);
348static void mv_qc_prep(struct ata_queued_cmd *qc); 348static void mv_qc_prep(struct ata_queued_cmd *qc);
349static void mv_qc_prep_iie(struct ata_queued_cmd *qc); 349static void mv_qc_prep_iie(struct ata_queued_cmd *qc);
350static unsigned int mv_qc_issue(struct ata_queued_cmd *qc); 350static unsigned int mv_qc_issue(struct ata_queued_cmd *qc);
351static irqreturn_t mv_interrupt(int irq, void *dev_instance, 351static irqreturn_t mv_interrupt(int irq, void *dev_instance);
352 struct pt_regs *regs);
353static void mv_eng_timeout(struct ata_port *ap); 352static void mv_eng_timeout(struct ata_port *ap);
354static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent); 353static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
355 354
@@ -1448,8 +1447,7 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
1448 * This routine holds the host lock while processing pending 1447 * This routine holds the host lock while processing pending
1449 * interrupts. 1448 * interrupts.
1450 */ 1449 */
1451static irqreturn_t mv_interrupt(int irq, void *dev_instance, 1450static irqreturn_t mv_interrupt(int irq, void *dev_instance)
1452 struct pt_regs *regs)
1453{ 1451{
1454 struct ata_host *host = dev_instance; 1452 struct ata_host *host = dev_instance;
1455 unsigned int hc, handled = 0, n_hcs; 1453 unsigned int hc, handled = 0, n_hcs;
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index d09d20a17790..323b60710806 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -82,12 +82,9 @@ enum {
82 82
83static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); 83static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
84static void nv_ck804_host_stop(struct ata_host *host); 84static void nv_ck804_host_stop(struct ata_host *host);
85static irqreturn_t nv_generic_interrupt(int irq, void *dev_instance, 85static irqreturn_t nv_generic_interrupt(int irq, void *dev_instance);
86 struct pt_regs *regs); 86static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance);
87static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance, 87static irqreturn_t nv_ck804_interrupt(int irq, void *dev_instance);
88 struct pt_regs *regs);
89static irqreturn_t nv_ck804_interrupt(int irq, void *dev_instance,
90 struct pt_regs *regs);
91static u32 nv_scr_read (struct ata_port *ap, unsigned int sc_reg); 88static u32 nv_scr_read (struct ata_port *ap, unsigned int sc_reg);
92static void nv_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val); 89static void nv_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
93 90
@@ -276,8 +273,7 @@ MODULE_LICENSE("GPL");
276MODULE_DEVICE_TABLE(pci, nv_pci_tbl); 273MODULE_DEVICE_TABLE(pci, nv_pci_tbl);
277MODULE_VERSION(DRV_VERSION); 274MODULE_VERSION(DRV_VERSION);
278 275
279static irqreturn_t nv_generic_interrupt(int irq, void *dev_instance, 276static irqreturn_t nv_generic_interrupt(int irq, void *dev_instance)
280 struct pt_regs *regs)
281{ 277{
282 struct ata_host *host = dev_instance; 278 struct ata_host *host = dev_instance;
283 unsigned int i; 279 unsigned int i;
@@ -357,8 +353,7 @@ static irqreturn_t nv_do_interrupt(struct ata_host *host, u8 irq_stat)
357 return IRQ_RETVAL(handled); 353 return IRQ_RETVAL(handled);
358} 354}
359 355
360static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance, 356static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance)
361 struct pt_regs *regs)
362{ 357{
363 struct ata_host *host = dev_instance; 358 struct ata_host *host = dev_instance;
364 u8 irq_stat; 359 u8 irq_stat;
@@ -372,8 +367,7 @@ static irqreturn_t nv_nf2_interrupt(int irq, void *dev_instance,
372 return ret; 367 return ret;
373} 368}
374 369
375static irqreturn_t nv_ck804_interrupt(int irq, void *dev_instance, 370static irqreturn_t nv_ck804_interrupt(int irq, void *dev_instance)
376 struct pt_regs *regs)
377{ 371{
378 struct ata_host *host = dev_instance; 372 struct ata_host *host = dev_instance;
379 u8 irq_stat; 373 u8 irq_stat;
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c
index 15c9437710fc..d636ede064aa 100644
--- a/drivers/ata/sata_promise.c
+++ b/drivers/ata/sata_promise.c
@@ -93,7 +93,7 @@ struct pdc_host_priv {
93static u32 pdc_sata_scr_read (struct ata_port *ap, unsigned int sc_reg); 93static u32 pdc_sata_scr_read (struct ata_port *ap, unsigned int sc_reg);
94static void pdc_sata_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val); 94static void pdc_sata_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
95static int pdc_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); 95static int pdc_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
96static irqreturn_t pdc_interrupt (int irq, void *dev_instance, struct pt_regs *regs); 96static irqreturn_t pdc_interrupt (int irq, void *dev_instance);
97static void pdc_eng_timeout(struct ata_port *ap); 97static void pdc_eng_timeout(struct ata_port *ap);
98static int pdc_port_start(struct ata_port *ap); 98static int pdc_port_start(struct ata_port *ap);
99static void pdc_port_stop(struct ata_port *ap); 99static void pdc_port_stop(struct ata_port *ap);
@@ -498,7 +498,7 @@ static void pdc_irq_clear(struct ata_port *ap)
498 readl(mmio + PDC_INT_SEQMASK); 498 readl(mmio + PDC_INT_SEQMASK);
499} 499}
500 500
501static irqreturn_t pdc_interrupt (int irq, void *dev_instance, struct pt_regs *regs) 501static irqreturn_t pdc_interrupt (int irq, void *dev_instance)
502{ 502{
503 struct ata_host *host = dev_instance; 503 struct ata_host *host = dev_instance;
504 struct ata_port *ap; 504 struct ata_port *ap;
diff --git a/drivers/ata/sata_qstor.c b/drivers/ata/sata_qstor.c
index 7f6cc3c07de5..710909df4eaf 100644
--- a/drivers/ata/sata_qstor.c
+++ b/drivers/ata/sata_qstor.c
@@ -114,7 +114,7 @@ struct qs_port_priv {
114static u32 qs_scr_read (struct ata_port *ap, unsigned int sc_reg); 114static u32 qs_scr_read (struct ata_port *ap, unsigned int sc_reg);
115static void qs_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val); 115static void qs_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
116static int qs_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); 116static int qs_ata_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
117static irqreturn_t qs_intr (int irq, void *dev_instance, struct pt_regs *regs); 117static irqreturn_t qs_intr (int irq, void *dev_instance);
118static int qs_port_start(struct ata_port *ap); 118static int qs_port_start(struct ata_port *ap);
119static void qs_host_stop(struct ata_host *host); 119static void qs_host_stop(struct ata_host *host);
120static void qs_port_stop(struct ata_port *ap); 120static void qs_port_stop(struct ata_port *ap);
@@ -454,7 +454,7 @@ static inline unsigned int qs_intr_mmio(struct ata_host *host)
454 return handled; 454 return handled;
455} 455}
456 456
457static irqreturn_t qs_intr(int irq, void *dev_instance, struct pt_regs *regs) 457static irqreturn_t qs_intr(int irq, void *dev_instance)
458{ 458{
459 struct ata_host *host = dev_instance; 459 struct ata_host *host = dev_instance;
460 unsigned int handled = 0; 460 unsigned int handled = 0;
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index 3d9fa1cc834d..ae5edb80ea9a 100644
--- a/drivers/ata/sata_sil.c
+++ b/drivers/ata/sata_sil.c
@@ -116,8 +116,7 @@ static void sil_dev_config(struct ata_port *ap, struct ata_device *dev);
116static u32 sil_scr_read (struct ata_port *ap, unsigned int sc_reg); 116static u32 sil_scr_read (struct ata_port *ap, unsigned int sc_reg);
117static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val); 117static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
118static void sil_post_set_mode (struct ata_port *ap); 118static void sil_post_set_mode (struct ata_port *ap);
119static irqreturn_t sil_interrupt(int irq, void *dev_instance, 119static irqreturn_t sil_interrupt(int irq, void *dev_instance);
120 struct pt_regs *regs);
121static void sil_freeze(struct ata_port *ap); 120static void sil_freeze(struct ata_port *ap);
122static void sil_thaw(struct ata_port *ap); 121static void sil_thaw(struct ata_port *ap);
123 122
@@ -437,8 +436,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2)
437 ata_port_freeze(ap); 436 ata_port_freeze(ap);
438} 437}
439 438
440static irqreturn_t sil_interrupt(int irq, void *dev_instance, 439static irqreturn_t sil_interrupt(int irq, void *dev_instance)
441 struct pt_regs *regs)
442{ 440{
443 struct ata_host *host = dev_instance; 441 struct ata_host *host = dev_instance;
444 void __iomem *mmio_base = host->mmio_base; 442 void __iomem *mmio_base = host->mmio_base;
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c
index a951f40c2f21..169e200a6a71 100644
--- a/drivers/ata/sata_sil24.c
+++ b/drivers/ata/sata_sil24.c
@@ -330,7 +330,7 @@ static void sil24_tf_read(struct ata_port *ap, struct ata_taskfile *tf);
330static void sil24_qc_prep(struct ata_queued_cmd *qc); 330static void sil24_qc_prep(struct ata_queued_cmd *qc);
331static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc); 331static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc);
332static void sil24_irq_clear(struct ata_port *ap); 332static void sil24_irq_clear(struct ata_port *ap);
333static irqreturn_t sil24_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 333static irqreturn_t sil24_interrupt(int irq, void *dev_instance);
334static void sil24_freeze(struct ata_port *ap); 334static void sil24_freeze(struct ata_port *ap);
335static void sil24_thaw(struct ata_port *ap); 335static void sil24_thaw(struct ata_port *ap);
336static void sil24_error_handler(struct ata_port *ap); 336static void sil24_error_handler(struct ata_port *ap);
@@ -870,7 +870,7 @@ static inline void sil24_host_intr(struct ata_port *ap)
870 slot_stat, ap->active_tag, ap->sactive); 870 slot_stat, ap->active_tag, ap->sactive);
871} 871}
872 872
873static irqreturn_t sil24_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 873static irqreturn_t sil24_interrupt(int irq, void *dev_instance)
874{ 874{
875 struct ata_host *host = dev_instance; 875 struct ata_host *host = dev_instance;
876 struct sil24_host_priv *hpriv = host->private_data; 876 struct sil24_host_priv *hpriv = host->private_data;
diff --git a/drivers/ata/sata_sx4.c b/drivers/ata/sata_sx4.c
index 8c74f2ff4344..ae7992de4b08 100644
--- a/drivers/ata/sata_sx4.c
+++ b/drivers/ata/sata_sx4.c
@@ -152,7 +152,7 @@ struct pdc_host_priv {
152 152
153 153
154static int pdc_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); 154static int pdc_sata_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
155static irqreturn_t pdc20621_interrupt (int irq, void *dev_instance, struct pt_regs *regs); 155static irqreturn_t pdc20621_interrupt (int irq, void *dev_instance);
156static void pdc_eng_timeout(struct ata_port *ap); 156static void pdc_eng_timeout(struct ata_port *ap);
157static void pdc_20621_phy_reset (struct ata_port *ap); 157static void pdc_20621_phy_reset (struct ata_port *ap);
158static int pdc_port_start(struct ata_port *ap); 158static int pdc_port_start(struct ata_port *ap);
@@ -788,7 +788,7 @@ static void pdc20621_irq_clear(struct ata_port *ap)
788 readl(mmio + PDC_20621_SEQMASK); 788 readl(mmio + PDC_20621_SEQMASK);
789} 789}
790 790
791static irqreturn_t pdc20621_interrupt (int irq, void *dev_instance, struct pt_regs *regs) 791static irqreturn_t pdc20621_interrupt (int irq, void *dev_instance)
792{ 792{
793 struct ata_host *host = dev_instance; 793 struct ata_host *host = dev_instance;
794 struct ata_port *ap; 794 struct ata_port *ap;
diff --git a/drivers/ata/sata_vsc.c b/drivers/ata/sata_vsc.c
index 273d88fcf980..e654b990b905 100644
--- a/drivers/ata/sata_vsc.c
+++ b/drivers/ata/sata_vsc.c
@@ -203,8 +203,7 @@ static void vsc_sata_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
203 * 203 *
204 * Read the interrupt register and process for the devices that have them pending. 204 * Read the interrupt register and process for the devices that have them pending.
205 */ 205 */
206static irqreturn_t vsc_sata_interrupt (int irq, void *dev_instance, 206static irqreturn_t vsc_sata_interrupt (int irq, void *dev_instance)
207 struct pt_regs *regs)
208{ 207{
209 struct ata_host *host = dev_instance; 208 struct ata_host *host = dev_instance;
210 unsigned int i; 209 unsigned int i;
diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c
index da599e6e9d34..8ff5c4e50823 100644
--- a/drivers/atm/ambassador.c
+++ b/drivers/atm/ambassador.c
@@ -861,10 +861,8 @@ static inline void interrupts_off (amb_dev * dev) {
861 861
862/********** interrupt handling **********/ 862/********** interrupt handling **********/
863 863
864static irqreturn_t interrupt_handler(int irq, void *dev_id, 864static irqreturn_t interrupt_handler(int irq, void *dev_id) {
865 struct pt_regs *pt_regs) {
866 amb_dev * dev = (amb_dev *) dev_id; 865 amb_dev * dev = (amb_dev *) dev_id;
867 (void) pt_regs;
868 866
869 PRINTD (DBG_IRQ|DBG_FLOW, "interrupt_handler: %p", dev_id); 867 PRINTD (DBG_IRQ|DBG_FLOW, "interrupt_handler: %p", dev_id);
870 868
diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c
index df359a6c14f6..bc1b13c8f5d7 100644
--- a/drivers/atm/eni.c
+++ b/drivers/atm/eni.c
@@ -1488,7 +1488,7 @@ static void bug_int(struct atm_dev *dev,unsigned long reason)
1488} 1488}
1489 1489
1490 1490
1491static irqreturn_t eni_int(int irq,void *dev_id,struct pt_regs *regs) 1491static irqreturn_t eni_int(int irq,void *dev_id)
1492{ 1492{
1493 struct atm_dev *dev; 1493 struct atm_dev *dev;
1494 struct eni_dev *eni_dev; 1494 struct eni_dev *eni_dev;
diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c
index 5f25e5efefcd..40ab9b65fae9 100644
--- a/drivers/atm/firestream.c
+++ b/drivers/atm/firestream.c
@@ -1546,7 +1546,7 @@ static void __devexit free_freepool (struct fs_dev *dev, struct freepool *fp)
1546 1546
1547 1547
1548 1548
1549static irqreturn_t fs_irq (int irq, void *dev_id, struct pt_regs * pt_regs) 1549static irqreturn_t fs_irq (int irq, void *dev_id)
1550{ 1550{
1551 int i; 1551 int i;
1552 u32 status; 1552 u32 status;
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
index 98622130de5b..3a7b21ff30a5 100644
--- a/drivers/atm/fore200e.c
+++ b/drivers/atm/fore200e.c
@@ -1328,7 +1328,7 @@ fore200e_irq(struct fore200e* fore200e)
1328 1328
1329 1329
1330static irqreturn_t 1330static irqreturn_t
1331fore200e_interrupt(int irq, void* dev, struct pt_regs* regs) 1331fore200e_interrupt(int irq, void* dev)
1332{ 1332{
1333 struct fore200e* fore200e = FORE200E_DEV((struct atm_dev*)dev); 1333 struct fore200e* fore200e = FORE200E_DEV((struct atm_dev*)dev);
1334 1334
diff --git a/drivers/atm/he.c b/drivers/atm/he.c
index b22a9142b240..c7314a79da0f 100644
--- a/drivers/atm/he.c
+++ b/drivers/atm/he.c
@@ -109,7 +109,7 @@ static int he_open(struct atm_vcc *vcc);
109static void he_close(struct atm_vcc *vcc); 109static void he_close(struct atm_vcc *vcc);
110static int he_send(struct atm_vcc *vcc, struct sk_buff *skb); 110static int he_send(struct atm_vcc *vcc, struct sk_buff *skb);
111static int he_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg); 111static int he_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg);
112static irqreturn_t he_irq_handler(int irq, void *dev_id, struct pt_regs *regs); 112static irqreturn_t he_irq_handler(int irq, void *dev_id);
113static void he_tasklet(unsigned long data); 113static void he_tasklet(unsigned long data);
114static int he_proc_read(struct atm_dev *dev,loff_t *pos,char *page); 114static int he_proc_read(struct atm_dev *dev,loff_t *pos,char *page);
115static int he_start(struct atm_dev *dev); 115static int he_start(struct atm_dev *dev);
@@ -2216,7 +2216,7 @@ he_tasklet(unsigned long data)
2216} 2216}
2217 2217
2218static irqreturn_t 2218static irqreturn_t
2219he_irq_handler(int irq, void *dev_id, struct pt_regs *regs) 2219he_irq_handler(int irq, void *dev_id)
2220{ 2220{
2221 unsigned long flags; 2221 unsigned long flags;
2222 struct he_dev *he_dev = (struct he_dev * )dev_id; 2222 struct he_dev *he_dev = (struct he_dev * )dev_id;
diff --git a/drivers/atm/horizon.c b/drivers/atm/horizon.c
index 209dba1c70da..33e9ee47392b 100644
--- a/drivers/atm/horizon.c
+++ b/drivers/atm/horizon.c
@@ -1382,12 +1382,10 @@ static inline void rx_data_av_handler (hrz_dev * dev) {
1382 1382
1383/********** interrupt handler **********/ 1383/********** interrupt handler **********/
1384 1384
1385static irqreturn_t interrupt_handler(int irq, void *dev_id, 1385static irqreturn_t interrupt_handler(int irq, void *dev_id) {
1386 struct pt_regs *pt_regs) {
1387 hrz_dev * dev = (hrz_dev *) dev_id; 1386 hrz_dev * dev = (hrz_dev *) dev_id;
1388 u32 int_source; 1387 u32 int_source;
1389 unsigned int irq_ok; 1388 unsigned int irq_ok;
1390 (void) pt_regs;
1391 1389
1392 PRINTD (DBG_FLOW, "interrupt_handler: %p", dev_id); 1390 PRINTD (DBG_FLOW, "interrupt_handler: %p", dev_id);
1393 1391
diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c
index 7487f0ad68e9..87b17c33b3f9 100644
--- a/drivers/atm/idt77252.c
+++ b/drivers/atm/idt77252.c
@@ -2774,7 +2774,7 @@ idt77252_collect_stat(struct idt77252_dev *card)
2774} 2774}
2775 2775
2776static irqreturn_t 2776static irqreturn_t
2777idt77252_interrupt(int irq, void *dev_id, struct pt_regs *ptregs) 2777idt77252_interrupt(int irq, void *dev_id)
2778{ 2778{
2779 struct idt77252_dev *card = dev_id; 2779 struct idt77252_dev *card = dev_id;
2780 u32 stat; 2780 u32 stat;
diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
index f20b0b2c06c6..9ed1c60048f0 100644
--- a/drivers/atm/iphase.c
+++ b/drivers/atm/iphase.c
@@ -2195,7 +2195,7 @@ err_out:
2195 return -ENOMEM; 2195 return -ENOMEM;
2196} 2196}
2197 2197
2198static irqreturn_t ia_int(int irq, void *dev_id, struct pt_regs *regs) 2198static irqreturn_t ia_int(int irq, void *dev_id)
2199{ 2199{
2200 struct atm_dev *dev; 2200 struct atm_dev *dev;
2201 IADEV *iadev; 2201 IADEV *iadev;
diff --git a/drivers/atm/lanai.c b/drivers/atm/lanai.c
index b9568e10965a..8895f026bea7 100644
--- a/drivers/atm/lanai.c
+++ b/drivers/atm/lanai.c
@@ -1890,12 +1890,12 @@ static inline void lanai_int_1(struct lanai_dev *lanai, u32 reason)
1890 reg_write(lanai, ack, IntAck_Reg); 1890 reg_write(lanai, ack, IntAck_Reg);
1891} 1891}
1892 1892
1893static irqreturn_t lanai_int(int irq, void *devid, struct pt_regs *regs) 1893static irqreturn_t lanai_int(int irq, void *devid)
1894{ 1894{
1895 struct lanai_dev *lanai = (struct lanai_dev *) devid; 1895 struct lanai_dev *lanai = (struct lanai_dev *) devid;
1896 u32 reason; 1896 u32 reason;
1897 1897
1898 (void) irq; (void) regs; /* unused variables */ 1898 (void) irq; /* unused variables */
1899 1899
1900#ifdef USE_POWERDOWN 1900#ifdef USE_POWERDOWN
1901 /* 1901 /*
diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c
index b8036899e56f..632ede552761 100644
--- a/drivers/atm/nicstar.c
+++ b/drivers/atm/nicstar.c
@@ -214,7 +214,7 @@ static void __devinit ns_init_card_error(ns_dev *card, int error);
214static scq_info *get_scq(int size, u32 scd); 214static scq_info *get_scq(int size, u32 scd);
215static void free_scq(scq_info *scq, struct atm_vcc *vcc); 215static void free_scq(scq_info *scq, struct atm_vcc *vcc);
216static void push_rxbufs(ns_dev *, struct sk_buff *); 216static void push_rxbufs(ns_dev *, struct sk_buff *);
217static irqreturn_t ns_irq_handler(int irq, void *dev_id, struct pt_regs *regs); 217static irqreturn_t ns_irq_handler(int irq, void *dev_id);
218static int ns_open(struct atm_vcc *vcc); 218static int ns_open(struct atm_vcc *vcc);
219static void ns_close(struct atm_vcc *vcc); 219static void ns_close(struct atm_vcc *vcc);
220static void fill_tst(ns_dev *card, int n, vc_map *vc); 220static void fill_tst(ns_dev *card, int n, vc_map *vc);
@@ -1194,7 +1194,7 @@ static void push_rxbufs(ns_dev *card, struct sk_buff *skb)
1194 1194
1195 1195
1196 1196
1197static irqreturn_t ns_irq_handler(int irq, void *dev_id, struct pt_regs *regs) 1197static irqreturn_t ns_irq_handler(int irq, void *dev_id)
1198{ 1198{
1199 u32 stat_r; 1199 u32 stat_r;
1200 ns_dev *card; 1200 ns_dev *card;
diff --git a/drivers/atm/zatm.c b/drivers/atm/zatm.c
index 083c5d3f2e18..7df0f373188e 100644
--- a/drivers/atm/zatm.c
+++ b/drivers/atm/zatm.c
@@ -1012,7 +1012,7 @@ static int start_tx(struct atm_dev *dev)
1012/*------------------------------- interrupts --------------------------------*/ 1012/*------------------------------- interrupts --------------------------------*/
1013 1013
1014 1014
1015static irqreturn_t zatm_int(int irq,void *dev_id,struct pt_regs *regs) 1015static irqreturn_t zatm_int(int irq,void *dev_id)
1016{ 1016{
1017 struct atm_dev *dev; 1017 struct atm_dev *dev;
1018 struct zatm_dev *zatm_dev; 1018 struct zatm_dev *zatm_dev;
diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c
index b3f639fbf220..3e8ab84b9447 100644
--- a/drivers/block/DAC960.c
+++ b/drivers/block/DAC960.c
@@ -2698,8 +2698,7 @@ DAC960_DetectController(struct pci_dev *PCI_Device,
2698{ 2698{
2699 struct DAC960_privdata *privdata = 2699 struct DAC960_privdata *privdata =
2700 (struct DAC960_privdata *)entry->driver_data; 2700 (struct DAC960_privdata *)entry->driver_data;
2701 irqreturn_t (*InterruptHandler)(int, void *, struct pt_regs *) = 2701 irq_handler_t InterruptHandler = privdata->InterruptHandler;
2702 privdata->InterruptHandler;
2703 unsigned int MemoryWindowSize = privdata->MemoryWindowSize; 2702 unsigned int MemoryWindowSize = privdata->MemoryWindowSize;
2704 DAC960_Controller_T *Controller = NULL; 2703 DAC960_Controller_T *Controller = NULL;
2705 unsigned char DeviceFunction = PCI_Device->devfn; 2704 unsigned char DeviceFunction = PCI_Device->devfn;
@@ -5253,8 +5252,7 @@ static void DAC960_V2_ProcessCompletedCommand(DAC960_Command_T *Command)
5253*/ 5252*/
5254 5253
5255static irqreturn_t DAC960_GEM_InterruptHandler(int IRQ_Channel, 5254static irqreturn_t DAC960_GEM_InterruptHandler(int IRQ_Channel,
5256 void *DeviceIdentifier, 5255 void *DeviceIdentifier)
5257 struct pt_regs *InterruptRegisters)
5258{ 5256{
5259 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier; 5257 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
5260 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5258 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
@@ -5295,8 +5293,7 @@ static irqreturn_t DAC960_GEM_InterruptHandler(int IRQ_Channel,
5295*/ 5293*/
5296 5294
5297static irqreturn_t DAC960_BA_InterruptHandler(int IRQ_Channel, 5295static irqreturn_t DAC960_BA_InterruptHandler(int IRQ_Channel,
5298 void *DeviceIdentifier, 5296 void *DeviceIdentifier)
5299 struct pt_regs *InterruptRegisters)
5300{ 5297{
5301 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier; 5298 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
5302 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5299 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
@@ -5338,8 +5335,7 @@ static irqreturn_t DAC960_BA_InterruptHandler(int IRQ_Channel,
5338*/ 5335*/
5339 5336
5340static irqreturn_t DAC960_LP_InterruptHandler(int IRQ_Channel, 5337static irqreturn_t DAC960_LP_InterruptHandler(int IRQ_Channel,
5341 void *DeviceIdentifier, 5338 void *DeviceIdentifier)
5342 struct pt_regs *InterruptRegisters)
5343{ 5339{
5344 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier; 5340 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
5345 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5341 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
@@ -5381,8 +5377,7 @@ static irqreturn_t DAC960_LP_InterruptHandler(int IRQ_Channel,
5381*/ 5377*/
5382 5378
5383static irqreturn_t DAC960_LA_InterruptHandler(int IRQ_Channel, 5379static irqreturn_t DAC960_LA_InterruptHandler(int IRQ_Channel,
5384 void *DeviceIdentifier, 5380 void *DeviceIdentifier)
5385 struct pt_regs *InterruptRegisters)
5386{ 5381{
5387 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier; 5382 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
5388 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5383 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
@@ -5420,8 +5415,7 @@ static irqreturn_t DAC960_LA_InterruptHandler(int IRQ_Channel,
5420*/ 5415*/
5421 5416
5422static irqreturn_t DAC960_PG_InterruptHandler(int IRQ_Channel, 5417static irqreturn_t DAC960_PG_InterruptHandler(int IRQ_Channel,
5423 void *DeviceIdentifier, 5418 void *DeviceIdentifier)
5424 struct pt_regs *InterruptRegisters)
5425{ 5419{
5426 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier; 5420 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
5427 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5421 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
@@ -5459,8 +5453,7 @@ static irqreturn_t DAC960_PG_InterruptHandler(int IRQ_Channel,
5459*/ 5453*/
5460 5454
5461static irqreturn_t DAC960_PD_InterruptHandler(int IRQ_Channel, 5455static irqreturn_t DAC960_PD_InterruptHandler(int IRQ_Channel,
5462 void *DeviceIdentifier, 5456 void *DeviceIdentifier)
5463 struct pt_regs *InterruptRegisters)
5464{ 5457{
5465 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier; 5458 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
5466 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5459 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
@@ -5498,8 +5491,7 @@ static irqreturn_t DAC960_PD_InterruptHandler(int IRQ_Channel,
5498*/ 5491*/
5499 5492
5500static irqreturn_t DAC960_P_InterruptHandler(int IRQ_Channel, 5493static irqreturn_t DAC960_P_InterruptHandler(int IRQ_Channel,
5501 void *DeviceIdentifier, 5494 void *DeviceIdentifier)
5502 struct pt_regs *InterruptRegisters)
5503{ 5495{
5504 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier; 5496 DAC960_Controller_T *Controller = (DAC960_Controller_T *) DeviceIdentifier;
5505 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5497 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
diff --git a/drivers/block/DAC960.h b/drivers/block/DAC960.h
index f9217c34bc2b..cec539e601fe 100644
--- a/drivers/block/DAC960.h
+++ b/drivers/block/DAC960.h
@@ -2175,7 +2175,7 @@ static char
2175struct DAC960_privdata { 2175struct DAC960_privdata {
2176 DAC960_HardwareType_T HardwareType; 2176 DAC960_HardwareType_T HardwareType;
2177 DAC960_FirmwareType_T FirmwareType; 2177 DAC960_FirmwareType_T FirmwareType;
2178 irqreturn_t (*InterruptHandler)(int, void *, struct pt_regs *); 2178 irq_handler_t InterruptHandler;
2179 unsigned int MemoryWindowSize; 2179 unsigned int MemoryWindowSize;
2180}; 2180};
2181 2181
@@ -4412,12 +4412,12 @@ static void DAC960_FinalizeController(DAC960_Controller_T *);
4412static void DAC960_V1_QueueReadWriteCommand(DAC960_Command_T *); 4412static void DAC960_V1_QueueReadWriteCommand(DAC960_Command_T *);
4413static void DAC960_V2_QueueReadWriteCommand(DAC960_Command_T *); 4413static void DAC960_V2_QueueReadWriteCommand(DAC960_Command_T *);
4414static void DAC960_RequestFunction(struct request_queue *); 4414static void DAC960_RequestFunction(struct request_queue *);
4415static irqreturn_t DAC960_BA_InterruptHandler(int, void *, struct pt_regs *); 4415static irqreturn_t DAC960_BA_InterruptHandler(int, void *);
4416static irqreturn_t DAC960_LP_InterruptHandler(int, void *, struct pt_regs *); 4416static irqreturn_t DAC960_LP_InterruptHandler(int, void *);
4417static irqreturn_t DAC960_LA_InterruptHandler(int, void *, struct pt_regs *); 4417static irqreturn_t DAC960_LA_InterruptHandler(int, void *);
4418static irqreturn_t DAC960_PG_InterruptHandler(int, void *, struct pt_regs *); 4418static irqreturn_t DAC960_PG_InterruptHandler(int, void *);
4419static irqreturn_t DAC960_PD_InterruptHandler(int, void *, struct pt_regs *); 4419static irqreturn_t DAC960_PD_InterruptHandler(int, void *);
4420static irqreturn_t DAC960_P_InterruptHandler(int, void *, struct pt_regs *); 4420static irqreturn_t DAC960_P_InterruptHandler(int, void *);
4421static void DAC960_V1_QueueMonitoringCommand(DAC960_Command_T *); 4421static void DAC960_V1_QueueMonitoringCommand(DAC960_Command_T *);
4422static void DAC960_V2_QueueMonitoringCommand(DAC960_Command_T *); 4422static void DAC960_V2_QueueMonitoringCommand(DAC960_Command_T *);
4423static void DAC960_MonitoringTimerFunction(unsigned long); 4423static void DAC960_MonitoringTimerFunction(unsigned long);
diff --git a/drivers/block/acsi.c b/drivers/block/acsi.c
index 0b80fbb8dbfd..706cdc6a69ec 100644
--- a/drivers/block/acsi.c
+++ b/drivers/block/acsi.c
@@ -346,7 +346,7 @@ static int acsicmd_dma( const char *cmd, char *buffer, int blocks, int
346 rwflag, int enable); 346 rwflag, int enable);
347static int acsi_reqsense( char *buffer, int targ, int lun); 347static int acsi_reqsense( char *buffer, int targ, int lun);
348static void acsi_print_error(const unsigned char *errblk, struct acsi_info_struct *aip); 348static void acsi_print_error(const unsigned char *errblk, struct acsi_info_struct *aip);
349static irqreturn_t acsi_interrupt (int irq, void *data, struct pt_regs *fp); 349static irqreturn_t acsi_interrupt (int irq, void *data);
350static void unexpected_acsi_interrupt( void ); 350static void unexpected_acsi_interrupt( void );
351static void bad_rw_intr( void ); 351static void bad_rw_intr( void );
352static void read_intr( void ); 352static void read_intr( void );
@@ -726,7 +726,7 @@ static void acsi_print_error(const unsigned char *errblk, struct acsi_info_struc
726 * 726 *
727 *******************************************************************/ 727 *******************************************************************/
728 728
729static irqreturn_t acsi_interrupt(int irq, void *data, struct pt_regs *fp ) 729static irqreturn_t acsi_interrupt(int irq, void *data )
730 730
731{ void (*acsi_irq_handler)(void) = do_acsi; 731{ void (*acsi_irq_handler)(void) = do_acsi;
732 732
diff --git a/drivers/block/acsi_slm.c b/drivers/block/acsi_slm.c
index 4030a8fd1187..8e41c87b026e 100644
--- a/drivers/block/acsi_slm.c
+++ b/drivers/block/acsi_slm.c
@@ -246,7 +246,7 @@ static int slm_getstats( char *buffer, int device );
246static ssize_t slm_read( struct file* file, char *buf, size_t count, loff_t 246static ssize_t slm_read( struct file* file, char *buf, size_t count, loff_t
247 *ppos ); 247 *ppos );
248static void start_print( int device ); 248static void start_print( int device );
249static irqreturn_t slm_interrupt(int irc, void *data, struct pt_regs *fp); 249static irqreturn_t slm_interrupt(int irc, void *data);
250static void slm_test_ready( unsigned long dummy ); 250static void slm_test_ready( unsigned long dummy );
251static void set_dma_addr( unsigned long paddr ); 251static void set_dma_addr( unsigned long paddr );
252static unsigned long get_dma_addr( void ); 252static unsigned long get_dma_addr( void );
@@ -452,7 +452,7 @@ static void start_print( int device )
452 452
453/* Only called when an error happened or at the end of a page */ 453/* Only called when an error happened or at the end of a page */
454 454
455static irqreturn_t slm_interrupt(int irc, void *data, struct pt_regs *fp) 455static irqreturn_t slm_interrupt(int irc, void *data)
456 456
457{ unsigned long addr; 457{ unsigned long addr;
458 int stat; 458 int stat;
diff --git a/drivers/block/amiflop.c b/drivers/block/amiflop.c
index 2641597c6549..5d254b714509 100644
--- a/drivers/block/amiflop.c
+++ b/drivers/block/amiflop.c
@@ -209,7 +209,7 @@ static int fd_device[4] = { 0, 0, 0, 0 };
209 209
210/* Milliseconds timer */ 210/* Milliseconds timer */
211 211
212static irqreturn_t ms_isr(int irq, void *dummy, struct pt_regs *fp) 212static irqreturn_t ms_isr(int irq, void *dummy)
213{ 213{
214 ms_busy = -1; 214 ms_busy = -1;
215 wake_up(&ms_wait); 215 wake_up(&ms_wait);
@@ -560,7 +560,7 @@ static unsigned long fd_get_drive_id(int drive)
560 return (id); 560 return (id);
561} 561}
562 562
563static irqreturn_t fd_block_done(int irq, void *dummy, struct pt_regs *fp) 563static irqreturn_t fd_block_done(int irq, void *dummy)
564{ 564{
565 if (block_flag) 565 if (block_flag)
566 custom.dsklen = 0x4000; 566 custom.dsklen = 0x4000;
diff --git a/drivers/block/ataflop.c b/drivers/block/ataflop.c
index c39650920bdf..14d6b9492750 100644
--- a/drivers/block/ataflop.c
+++ b/drivers/block/ataflop.c
@@ -342,7 +342,7 @@ static void fd_select_drive( int drive );
342static void fd_deselect( void ); 342static void fd_deselect( void );
343static void fd_motor_off_timer( unsigned long dummy ); 343static void fd_motor_off_timer( unsigned long dummy );
344static void check_change( unsigned long dummy ); 344static void check_change( unsigned long dummy );
345static irqreturn_t floppy_irq (int irq, void *dummy, struct pt_regs *fp); 345static irqreturn_t floppy_irq (int irq, void *dummy);
346static void fd_error( void ); 346static void fd_error( void );
347static int do_format(int drive, int type, struct atari_format_descr *desc); 347static int do_format(int drive, int type, struct atari_format_descr *desc);
348static void do_fd_action( int drive ); 348static void do_fd_action( int drive );
@@ -573,7 +573,7 @@ static inline void copy_buffer(void *from, void *to)
573 573
574static void (*FloppyIRQHandler)( int status ) = NULL; 574static void (*FloppyIRQHandler)( int status ) = NULL;
575 575
576static irqreturn_t floppy_irq (int irq, void *dummy, struct pt_regs *fp) 576static irqreturn_t floppy_irq (int irq, void *dummy)
577{ 577{
578 unsigned char status; 578 unsigned char status;
579 void (*handler)( int ); 579 void (*handler)( int );
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 36b88f6c5f82..dcccaf2782f3 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -130,7 +130,7 @@ static struct board_type products[] = {
130static ctlr_info_t *hba[MAX_CTLR]; 130static ctlr_info_t *hba[MAX_CTLR];
131 131
132static void do_cciss_request(request_queue_t *q); 132static void do_cciss_request(request_queue_t *q);
133static irqreturn_t do_cciss_intr(int irq, void *dev_id, struct pt_regs *regs); 133static irqreturn_t do_cciss_intr(int irq, void *dev_id);
134static int cciss_open(struct inode *inode, struct file *filep); 134static int cciss_open(struct inode *inode, struct file *filep);
135static int cciss_release(struct inode *inode, struct file *filep); 135static int cciss_release(struct inode *inode, struct file *filep);
136static int cciss_ioctl(struct inode *inode, struct file *filep, 136static int cciss_ioctl(struct inode *inode, struct file *filep,
@@ -2300,7 +2300,7 @@ static int sendcmd(__u8 cmd, int ctlr, void *buff, size_t size, unsigned int use
2300#ifdef CONFIG_CISS_SCSI_TAPE 2300#ifdef CONFIG_CISS_SCSI_TAPE
2301 /* if we saved some commands for later, process them now. */ 2301 /* if we saved some commands for later, process them now. */
2302 if (info_p->scsi_rejects.ncompletions > 0) 2302 if (info_p->scsi_rejects.ncompletions > 0)
2303 do_cciss_intr(0, info_p, NULL); 2303 do_cciss_intr(0, info_p);
2304#endif 2304#endif
2305 cmd_free(info_p, c, 1); 2305 cmd_free(info_p, c, 1);
2306 return status; 2306 return status;
@@ -2652,7 +2652,7 @@ static inline long interrupt_not_for_us(ctlr_info_t *h)
2652#endif 2652#endif
2653} 2653}
2654 2654
2655static irqreturn_t do_cciss_intr(int irq, void *dev_id, struct pt_regs *regs) 2655static irqreturn_t do_cciss_intr(int irq, void *dev_id)
2656{ 2656{
2657 ctlr_info_t *h = dev_id; 2657 ctlr_info_t *h = dev_id;
2658 CommandList_struct *c; 2658 CommandList_struct *c;
diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
index ada68e65b5ff..570d2f049323 100644
--- a/drivers/block/cpqarray.c
+++ b/drivers/block/cpqarray.c
@@ -169,7 +169,7 @@ static inline cmdlist_t *removeQ(cmdlist_t **Qptr, cmdlist_t *c);
169static inline void complete_buffers(struct bio *bio, int ok); 169static inline void complete_buffers(struct bio *bio, int ok);
170static inline void complete_command(cmdlist_t *cmd, int timeout); 170static inline void complete_command(cmdlist_t *cmd, int timeout);
171 171
172static irqreturn_t do_ida_intr(int irq, void *dev_id, struct pt_regs * regs); 172static irqreturn_t do_ida_intr(int irq, void *dev_id);
173static void ida_timer(unsigned long tdata); 173static void ida_timer(unsigned long tdata);
174static int ida_revalidate(struct gendisk *disk); 174static int ida_revalidate(struct gendisk *disk);
175static int revalidate_allvol(ctlr_info_t *host); 175static int revalidate_allvol(ctlr_info_t *host);
@@ -1042,7 +1042,7 @@ static inline void complete_command(cmdlist_t *cmd, int timeout)
1042 * Find the command on the completion queue, remove it, tell the OS and 1042 * Find the command on the completion queue, remove it, tell the OS and
1043 * try to queue up more IO 1043 * try to queue up more IO
1044 */ 1044 */
1045static irqreturn_t do_ida_intr(int irq, void *dev_id, struct pt_regs *regs) 1045static irqreturn_t do_ida_intr(int irq, void *dev_id)
1046{ 1046{
1047 ctlr_info_t *h = dev_id; 1047 ctlr_info_t *h = dev_id;
1048 cmdlist_t *c; 1048 cmdlist_t *c;
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index 629c5769d994..9e6d3a87cbe3 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -221,7 +221,7 @@ static DEFINE_SPINLOCK(floppy_lock);
221static struct completion device_release; 221static struct completion device_release;
222 222
223static unsigned short virtual_dma_port = 0x3f0; 223static unsigned short virtual_dma_port = 0x3f0;
224irqreturn_t floppy_interrupt(int irq, void *dev_id, struct pt_regs *regs); 224irqreturn_t floppy_interrupt(int irq, void *dev_id);
225static int set_dor(int fdc, char mask, char data); 225static int set_dor(int fdc, char mask, char data);
226 226
227#define K_64 0x10000 /* 64KB */ 227#define K_64 0x10000 /* 64KB */
@@ -1726,7 +1726,7 @@ static void print_result(char *message, int inr)
1726} 1726}
1727 1727
1728/* interrupt handler. Note that this can be called externally on the Sparc */ 1728/* interrupt handler. Note that this can be called externally on the Sparc */
1729irqreturn_t floppy_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1729irqreturn_t floppy_interrupt(int irq, void *dev_id)
1730{ 1730{
1731 void (*handler) (void) = do_floppy; 1731 void (*handler) (void) = do_floppy;
1732 int do_print; 1732 int do_print;
diff --git a/drivers/block/ps2esdi.c b/drivers/block/ps2esdi.c
index 5537974fb242..688a4fb0dc99 100644
--- a/drivers/block/ps2esdi.c
+++ b/drivers/block/ps2esdi.c
@@ -75,8 +75,7 @@ static int ps2esdi_out_cmd_blk(u_short * cmd_blk);
75 75
76static void ps2esdi_prep_dma(char *buffer, u_short length, u_char dma_xmode); 76static void ps2esdi_prep_dma(char *buffer, u_short length, u_char dma_xmode);
77 77
78static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id, 78static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id);
79 struct pt_regs *regs);
80static void (*current_int_handler) (u_int) = NULL; 79static void (*current_int_handler) (u_int) = NULL;
81static void ps2esdi_normal_interrupt_handler(u_int); 80static void ps2esdi_normal_interrupt_handler(u_int);
82static void ps2esdi_initial_reset_int_handler(u_int); 81static void ps2esdi_initial_reset_int_handler(u_int);
@@ -687,8 +686,7 @@ static void ps2esdi_prep_dma(char *buffer, u_short length, u_char dma_xmode)
687 686
688 687
689 688
690static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id, 689static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id)
691 struct pt_regs *regs)
692{ 690{
693 u_int int_ret_code; 691 u_int int_ret_code;
694 692
diff --git a/drivers/block/swim3.c b/drivers/block/swim3.c
index fdc8f892eb86..1a65979f1f0f 100644
--- a/drivers/block/swim3.c
+++ b/drivers/block/swim3.c
@@ -238,8 +238,8 @@ static void scan_timeout(unsigned long data);
238static void seek_timeout(unsigned long data); 238static void seek_timeout(unsigned long data);
239static void settle_timeout(unsigned long data); 239static void settle_timeout(unsigned long data);
240static void xfer_timeout(unsigned long data); 240static void xfer_timeout(unsigned long data);
241static irqreturn_t swim3_interrupt(int irq, void *dev_id, struct pt_regs *regs); 241static irqreturn_t swim3_interrupt(int irq, void *dev_id);
242/*static void fd_dma_interrupt(int irq, void *dev_id, struct pt_regs *regs);*/ 242/*static void fd_dma_interrupt(int irq, void *dev_id);*/
243static int grab_drive(struct floppy_state *fs, enum swim_state state, 243static int grab_drive(struct floppy_state *fs, enum swim_state state,
244 int interruptible); 244 int interruptible);
245static void release_drive(struct floppy_state *fs); 245static void release_drive(struct floppy_state *fs);
@@ -624,7 +624,7 @@ static void xfer_timeout(unsigned long data)
624 start_request(fs); 624 start_request(fs);
625} 625}
626 626
627static irqreturn_t swim3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 627static irqreturn_t swim3_interrupt(int irq, void *dev_id)
628{ 628{
629 struct floppy_state *fs = (struct floppy_state *) dev_id; 629 struct floppy_state *fs = (struct floppy_state *) dev_id;
630 struct swim3 __iomem *sw = fs->swim3; 630 struct swim3 __iomem *sw = fs->swim3;
@@ -777,7 +777,7 @@ static irqreturn_t swim3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
777} 777}
778 778
779/* 779/*
780static void fd_dma_interrupt(int irq, void *dev_id, struct pt_regs *regs) 780static void fd_dma_interrupt(int irq, void *dev_id)
781{ 781{
782} 782}
783*/ 783*/
diff --git a/drivers/block/swim_iop.c b/drivers/block/swim_iop.c
index dfda796eba56..ed7b06cf3e68 100644
--- a/drivers/block/swim_iop.c
+++ b/drivers/block/swim_iop.c
@@ -94,7 +94,7 @@ static char *drive_names[7] = {
94int swimiop_init(void); 94int swimiop_init(void);
95static void swimiop_init_request(struct swim_iop_req *); 95static void swimiop_init_request(struct swim_iop_req *);
96static int swimiop_send_request(struct swim_iop_req *); 96static int swimiop_send_request(struct swim_iop_req *);
97static void swimiop_receive(struct iop_msg *, struct pt_regs *); 97static void swimiop_receive(struct iop_msg *);
98static void swimiop_status_update(int, struct swim_drvstatus *); 98static void swimiop_status_update(int, struct swim_drvstatus *);
99static int swimiop_eject(struct floppy_state *fs); 99static int swimiop_eject(struct floppy_state *fs);
100 100
@@ -257,7 +257,7 @@ static int swimiop_send_request(struct swim_iop_req *req)
257 * 2. An unsolicited message was received from the IOP. 257 * 2. An unsolicited message was received from the IOP.
258 */ 258 */
259 259
260void swimiop_receive(struct iop_msg *msg, struct pt_regs *regs) 260void swimiop_receive(struct iop_msg *msg)
261{ 261{
262 struct swim_iop_req *req; 262 struct swim_iop_req *req;
263 struct swimmsg_status *sm; 263 struct swimmsg_status *sm;
diff --git a/drivers/block/sx8.c b/drivers/block/sx8.c
index c6beee18a07c..47d6975268ff 100644
--- a/drivers/block/sx8.c
+++ b/drivers/block/sx8.c
@@ -1200,7 +1200,7 @@ static inline void carm_handle_responses(struct carm_host *host)
1200 host->resp_idx += work; 1200 host->resp_idx += work;
1201} 1201}
1202 1202
1203static irqreturn_t carm_interrupt(int irq, void *__host, struct pt_regs *regs) 1203static irqreturn_t carm_interrupt(int irq, void *__host)
1204{ 1204{
1205 struct carm_host *host = __host; 1205 struct carm_host *host = __host;
1206 void __iomem *mmio; 1206 void __iomem *mmio;
diff --git a/drivers/block/ub.c b/drivers/block/ub.c
index 45a8f402b07b..0d5c73f07265 100644
--- a/drivers/block/ub.c
+++ b/drivers/block/ub.c
@@ -362,7 +362,7 @@ static void ub_end_rq(struct request *rq, unsigned int status);
362static int ub_rw_cmd_retry(struct ub_dev *sc, struct ub_lun *lun, 362static int ub_rw_cmd_retry(struct ub_dev *sc, struct ub_lun *lun,
363 struct ub_request *urq, struct ub_scsi_cmd *cmd); 363 struct ub_request *urq, struct ub_scsi_cmd *cmd);
364static int ub_submit_scsi(struct ub_dev *sc, struct ub_scsi_cmd *cmd); 364static int ub_submit_scsi(struct ub_dev *sc, struct ub_scsi_cmd *cmd);
365static void ub_urb_complete(struct urb *urb, struct pt_regs *pt); 365static void ub_urb_complete(struct urb *urb);
366static void ub_scsi_action(unsigned long _dev); 366static void ub_scsi_action(unsigned long _dev);
367static void ub_scsi_dispatch(struct ub_dev *sc); 367static void ub_scsi_dispatch(struct ub_dev *sc);
368static void ub_scsi_urb_compl(struct ub_dev *sc, struct ub_scsi_cmd *cmd); 368static void ub_scsi_urb_compl(struct ub_dev *sc, struct ub_scsi_cmd *cmd);
@@ -959,7 +959,7 @@ static void ub_urb_timeout(unsigned long arg)
959 * the sc->lock taken) and from an interrupt (while we do NOT have 959 * the sc->lock taken) and from an interrupt (while we do NOT have
960 * the sc->lock taken). Therefore, bounce this off to a tasklet. 960 * the sc->lock taken). Therefore, bounce this off to a tasklet.
961 */ 961 */
962static void ub_urb_complete(struct urb *urb, struct pt_regs *pt) 962static void ub_urb_complete(struct urb *urb)
963{ 963{
964 struct ub_dev *sc = urb->context; 964 struct ub_dev *sc = urb->context;
965 965
@@ -1923,7 +1923,7 @@ err_alloc:
1923 1923
1924/* 1924/*
1925 */ 1925 */
1926static void ub_probe_urb_complete(struct urb *urb, struct pt_regs *pt) 1926static void ub_probe_urb_complete(struct urb *urb)
1927{ 1927{
1928 struct completion *cop = urb->context; 1928 struct completion *cop = urb->context;
1929 complete(cop); 1929 complete(cop);
diff --git a/drivers/block/umem.c b/drivers/block/umem.c
index cbb9d0f21acc..30f16bd83650 100644
--- a/drivers/block/umem.c
+++ b/drivers/block/umem.c
@@ -571,7 +571,7 @@ static int mm_make_request(request_queue_t *q, struct bio *bio)
571-- mm_interrupt 571-- mm_interrupt
572----------------------------------------------------------------------------------- 572-----------------------------------------------------------------------------------
573*/ 573*/
574static irqreturn_t mm_interrupt(int irq, void *__card, struct pt_regs *regs) 574static irqreturn_t mm_interrupt(int irq, void *__card)
575{ 575{
576 struct cardinfo *card = (struct cardinfo *) __card; 576 struct cardinfo *card = (struct cardinfo *) __card;
577 unsigned int dma_status; 577 unsigned int dma_status;
diff --git a/drivers/block/xd.c b/drivers/block/xd.c
index ebf3025721d1..10cc38783bdf 100644
--- a/drivers/block/xd.c
+++ b/drivers/block/xd.c
@@ -462,8 +462,7 @@ static void xd_recalibrate (u_char drive)
462} 462}
463 463
464/* xd_interrupt_handler: interrupt service routine */ 464/* xd_interrupt_handler: interrupt service routine */
465static irqreturn_t xd_interrupt_handler(int irq, void *dev_id, 465static irqreturn_t xd_interrupt_handler(int irq, void *dev_id)
466 struct pt_regs *regs)
467{ 466{
468 if (inb(XD_STATUS) & STAT_INTERRUPT) { /* check if it was our device */ 467 if (inb(XD_STATUS) & STAT_INTERRUPT) { /* check if it was our device */
469#ifdef DEBUG_OTHER 468#ifdef DEBUG_OTHER
diff --git a/drivers/block/xd.h b/drivers/block/xd.h
index 71ac2e3dffc8..82e090fea957 100644
--- a/drivers/block/xd.h
+++ b/drivers/block/xd.h
@@ -109,8 +109,7 @@ static int xd_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsi
109static int xd_readwrite (u_char operation,XD_INFO *disk,char *buffer,u_int block,u_int count); 109static int xd_readwrite (u_char operation,XD_INFO *disk,char *buffer,u_int block,u_int count);
110static void xd_recalibrate (u_char drive); 110static void xd_recalibrate (u_char drive);
111 111
112static irqreturn_t xd_interrupt_handler(int irq, void *dev_id, 112static irqreturn_t xd_interrupt_handler(int irq, void *dev_id);
113 struct pt_regs *regs);
114static u_char xd_setup_dma (u_char opcode,u_char *buffer,u_int count); 113static u_char xd_setup_dma (u_char opcode,u_char *buffer,u_int count);
115static u_char *xd_build (u_char *cmdblk,u_char command,u_char drive,u_char head,u_short cylinder,u_char sector,u_char count,u_char control); 114static u_char *xd_build (u_char *cmdblk,u_char command,u_char drive,u_char head,u_short cylinder,u_char sector,u_char count,u_char control);
116static void xd_watchdog (unsigned long unused); 115static void xd_watchdog (unsigned long unused);
diff --git a/drivers/bluetooth/bcm203x.c b/drivers/bluetooth/bcm203x.c
index 13ba729cdd57..67cdda43f229 100644
--- a/drivers/bluetooth/bcm203x.c
+++ b/drivers/bluetooth/bcm203x.c
@@ -82,7 +82,7 @@ struct bcm203x_data {
82 unsigned int fw_sent; 82 unsigned int fw_sent;
83}; 83};
84 84
85static void bcm203x_complete(struct urb *urb, struct pt_regs *regs) 85static void bcm203x_complete(struct urb *urb)
86{ 86{
87 struct bcm203x_data *data = urb->context; 87 struct bcm203x_data *data = urb->context;
88 struct usb_device *udev = urb->dev; 88 struct usb_device *udev = urb->dev;
diff --git a/drivers/bluetooth/bfusb.c b/drivers/bluetooth/bfusb.c
index efcc28ec9d9a..31ade991aa91 100644
--- a/drivers/bluetooth/bfusb.c
+++ b/drivers/bluetooth/bfusb.c
@@ -95,8 +95,8 @@ struct bfusb_data_scb {
95 struct urb *urb; 95 struct urb *urb;
96}; 96};
97 97
98static void bfusb_tx_complete(struct urb *urb, struct pt_regs *regs); 98static void bfusb_tx_complete(struct urb *urb);
99static void bfusb_rx_complete(struct urb *urb, struct pt_regs *regs); 99static void bfusb_rx_complete(struct urb *urb);
100 100
101static struct urb *bfusb_get_completed(struct bfusb_data *data) 101static struct urb *bfusb_get_completed(struct bfusb_data *data)
102{ 102{
@@ -190,7 +190,7 @@ static void bfusb_tx_wakeup(struct bfusb_data *data)
190 clear_bit(BFUSB_TX_PROCESS, &data->state); 190 clear_bit(BFUSB_TX_PROCESS, &data->state);
191} 191}
192 192
193static void bfusb_tx_complete(struct urb *urb, struct pt_regs *regs) 193static void bfusb_tx_complete(struct urb *urb)
194{ 194{
195 struct sk_buff *skb = (struct sk_buff *) urb->context; 195 struct sk_buff *skb = (struct sk_buff *) urb->context;
196 struct bfusb_data *data = (struct bfusb_data *) skb->dev; 196 struct bfusb_data *data = (struct bfusb_data *) skb->dev;
@@ -349,7 +349,7 @@ static inline int bfusb_recv_block(struct bfusb_data *data, int hdr, unsigned ch
349 return 0; 349 return 0;
350} 350}
351 351
352static void bfusb_rx_complete(struct urb *urb, struct pt_regs *regs) 352static void bfusb_rx_complete(struct urb *urb)
353{ 353{
354 struct sk_buff *skb = (struct sk_buff *) urb->context; 354 struct sk_buff *skb = (struct sk_buff *) urb->context;
355 struct bfusb_data *data = (struct bfusb_data *) skb->dev; 355 struct bfusb_data *data = (struct bfusb_data *) skb->dev;
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c
index 8eebf9ca3786..845b8680032a 100644
--- a/drivers/bluetooth/bluecard_cs.c
+++ b/drivers/bluetooth/bluecard_cs.c
@@ -497,7 +497,7 @@ static void bluecard_receive(bluecard_info_t *info, unsigned int offset)
497} 497}
498 498
499 499
500static irqreturn_t bluecard_interrupt(int irq, void *dev_inst, struct pt_regs *regs) 500static irqreturn_t bluecard_interrupt(int irq, void *dev_inst)
501{ 501{
502 bluecard_info_t *info = dev_inst; 502 bluecard_info_t *info = dev_inst;
503 unsigned int iobase; 503 unsigned int iobase;
diff --git a/drivers/bluetooth/bpa10x.c b/drivers/bluetooth/bpa10x.c
index e0231dc2cb1a..9fca6513562d 100644
--- a/drivers/bluetooth/bpa10x.c
+++ b/drivers/bluetooth/bpa10x.c
@@ -263,7 +263,7 @@ static void bpa10x_wakeup(struct bpa10x_data *data)
263 } 263 }
264} 264}
265 265
266static void bpa10x_complete(struct urb *urb, struct pt_regs *regs) 266static void bpa10x_complete(struct urb *urb)
267{ 267{
268 struct bpa10x_data *data = urb->context; 268 struct bpa10x_data *data = urb->context;
269 unsigned char *buf = urb->transfer_buffer; 269 unsigned char *buf = urb->transfer_buffer;
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
index df7bb016df49..3a96a0babc6a 100644
--- a/drivers/bluetooth/bt3c_cs.c
+++ b/drivers/bluetooth/bt3c_cs.c
@@ -338,7 +338,7 @@ static void bt3c_receive(bt3c_info_t *info)
338} 338}
339 339
340 340
341static irqreturn_t bt3c_interrupt(int irq, void *dev_inst, struct pt_regs *regs) 341static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
342{ 342{
343 bt3c_info_t *info = dev_inst; 343 bt3c_info_t *info = dev_inst;
344 unsigned int iobase; 344 unsigned int iobase;
diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c
index 746ccca97f6f..3b29086b7c3f 100644
--- a/drivers/bluetooth/btuart_cs.c
+++ b/drivers/bluetooth/btuart_cs.c
@@ -288,7 +288,7 @@ static void btuart_receive(btuart_info_t *info)
288} 288}
289 289
290 290
291static irqreturn_t btuart_interrupt(int irq, void *dev_inst, struct pt_regs *regs) 291static irqreturn_t btuart_interrupt(int irq, void *dev_inst)
292{ 292{
293 btuart_info_t *info = dev_inst; 293 btuart_info_t *info = dev_inst;
294 unsigned int iobase; 294 unsigned int iobase;
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c
index 0e99def8a1e3..e7c800f4c3ad 100644
--- a/drivers/bluetooth/dtl1_cs.c
+++ b/drivers/bluetooth/dtl1_cs.c
@@ -291,7 +291,7 @@ static void dtl1_receive(dtl1_info_t *info)
291} 291}
292 292
293 293
294static irqreturn_t dtl1_interrupt(int irq, void *dev_inst, struct pt_regs *regs) 294static irqreturn_t dtl1_interrupt(int irq, void *dev_inst)
295{ 295{
296 dtl1_info_t *info = dev_inst; 296 dtl1_info_t *info = dev_inst;
297 unsigned int iobase; 297 unsigned int iobase;
diff --git a/drivers/bluetooth/hci_usb.c b/drivers/bluetooth/hci_usb.c
index 0801af4ad2b9..7565642a007a 100644
--- a/drivers/bluetooth/hci_usb.c
+++ b/drivers/bluetooth/hci_usb.c
@@ -176,8 +176,8 @@ static struct _urb *_urb_dequeue(struct _urb_queue *q)
176 return _urb; 176 return _urb;
177} 177}
178 178
179static void hci_usb_rx_complete(struct urb *urb, struct pt_regs *regs); 179static void hci_usb_rx_complete(struct urb *urb);
180static void hci_usb_tx_complete(struct urb *urb, struct pt_regs *regs); 180static void hci_usb_tx_complete(struct urb *urb);
181 181
182#define __pending_tx(husb, type) (&husb->pending_tx[type-1]) 182#define __pending_tx(husb, type) (&husb->pending_tx[type-1])
183#define __pending_q(husb, type) (&husb->pending_q[type-1]) 183#define __pending_q(husb, type) (&husb->pending_q[type-1])
@@ -732,7 +732,7 @@ static inline int __recv_frame(struct hci_usb *husb, int type, void *data, int c
732 return 0; 732 return 0;
733} 733}
734 734
735static void hci_usb_rx_complete(struct urb *urb, struct pt_regs *regs) 735static void hci_usb_rx_complete(struct urb *urb)
736{ 736{
737 struct _urb *_urb = container_of(urb, struct _urb, urb); 737 struct _urb *_urb = container_of(urb, struct _urb, urb);
738 struct hci_usb *husb = (void *) urb->context; 738 struct hci_usb *husb = (void *) urb->context;
@@ -786,7 +786,7 @@ unlock:
786 read_unlock(&husb->completion_lock); 786 read_unlock(&husb->completion_lock);
787} 787}
788 788
789static void hci_usb_tx_complete(struct urb *urb, struct pt_regs *regs) 789static void hci_usb_tx_complete(struct urb *urb)
790{ 790{
791 struct _urb *_urb = container_of(urb, struct _urb, urb); 791 struct _urb *_urb = container_of(urb, struct _urb, urb);
792 struct hci_usb *husb = (void *) urb->context; 792 struct hci_usb *husb = (void *) urb->context;
diff --git a/drivers/cdrom/cdu31a.c b/drivers/cdrom/cdu31a.c
index ccd91c1a84bd..2157c58755e0 100644
--- a/drivers/cdrom/cdu31a.c
+++ b/drivers/cdrom/cdu31a.c
@@ -513,7 +513,7 @@ static inline void write_cmd(unsigned char cmd)
513 outb(cmd, sony_cd_cmd_reg); 513 outb(cmd, sony_cd_cmd_reg);
514} 514}
515 515
516static irqreturn_t cdu31a_interrupt(int irq, void *dev_id, struct pt_regs *regs) 516static irqreturn_t cdu31a_interrupt(int irq, void *dev_id)
517{ 517{
518 unsigned char val; 518 unsigned char val;
519 519
diff --git a/drivers/cdrom/cm206.c b/drivers/cdrom/cm206.c
index 9b05ddd23141..e6d8e9ededea 100644
--- a/drivers/cdrom/cm206.c
+++ b/drivers/cdrom/cm206.c
@@ -359,7 +359,7 @@ static struct tasklet_struct cm206_tasklet;
359 as there seems so reason for this to happen. 359 as there seems so reason for this to happen.
360*/ 360*/
361 361
362static irqreturn_t cm206_interrupt(int sig, void *dev_id, struct pt_regs *regs) 362static irqreturn_t cm206_interrupt(int sig, void *dev_id)
363{ 363{
364 volatile ush fool; 364 volatile ush fool;
365 cd->intr_ds = inw(r_data_status); /* resets data_ready, data_error, 365 cd->intr_ds = inw(r_data_status); /* resets data_ready, data_error,
diff --git a/drivers/cdrom/mcdx.c b/drivers/cdrom/mcdx.c
index dcd1ab684f3e..60e1978ec0ea 100644
--- a/drivers/cdrom/mcdx.c
+++ b/drivers/cdrom/mcdx.c
@@ -845,7 +845,7 @@ static void mcdx_delay(struct s_drive_stuff *stuff, long jifs)
845 } 845 }
846} 846}
847 847
848static irqreturn_t mcdx_intr(int irq, void *dev_id, struct pt_regs *regs) 848static irqreturn_t mcdx_intr(int irq, void *dev_id)
849{ 849{
850 struct s_drive_stuff *stuffp = dev_id; 850 struct s_drive_stuff *stuffp = dev_id;
851 unsigned char b; 851 unsigned char b;
diff --git a/drivers/cdrom/sonycd535.c b/drivers/cdrom/sonycd535.c
index 30ab56258a92..f77ada933ea0 100644
--- a/drivers/cdrom/sonycd535.c
+++ b/drivers/cdrom/sonycd535.c
@@ -322,7 +322,7 @@ disable_interrupts(void)
322} 322}
323 323
324static irqreturn_t 324static irqreturn_t
325cdu535_interrupt(int irq, void *dev_id, struct pt_regs *regs) 325cdu535_interrupt(int irq, void *dev_id)
326{ 326{
327 disable_interrupts(); 327 disable_interrupts();
328 if (waitqueue_active(&cdu535_irq_wait)) { 328 if (waitqueue_active(&cdu535_irq_wait)) {
diff --git a/drivers/char/amiserial.c b/drivers/char/amiserial.c
index 486f97c3f4e5..66086fa2d59a 100644
--- a/drivers/char/amiserial.c
+++ b/drivers/char/amiserial.c
@@ -447,7 +447,7 @@ static void check_modem_status(struct async_struct *info)
447 } 447 }
448} 448}
449 449
450static irqreturn_t ser_vbl_int( int irq, void *data, struct pt_regs *regs) 450static irqreturn_t ser_vbl_int( int irq, void *data)
451{ 451{
452 /* vbl is just a periodic interrupt we tie into to update modem status */ 452 /* vbl is just a periodic interrupt we tie into to update modem status */
453 struct async_struct * info = IRQ_ports; 453 struct async_struct * info = IRQ_ports;
@@ -460,7 +460,7 @@ static irqreturn_t ser_vbl_int( int irq, void *data, struct pt_regs *regs)
460 return IRQ_HANDLED; 460 return IRQ_HANDLED;
461} 461}
462 462
463static irqreturn_t ser_rx_int(int irq, void *dev_id, struct pt_regs * regs) 463static irqreturn_t ser_rx_int(int irq, void *dev_id)
464{ 464{
465 struct async_struct * info; 465 struct async_struct * info;
466 466
@@ -480,7 +480,7 @@ static irqreturn_t ser_rx_int(int irq, void *dev_id, struct pt_regs * regs)
480 return IRQ_HANDLED; 480 return IRQ_HANDLED;
481} 481}
482 482
483static irqreturn_t ser_tx_int(int irq, void *dev_id, struct pt_regs * regs) 483static irqreturn_t ser_tx_int(int irq, void *dev_id)
484{ 484{
485 struct async_struct * info; 485 struct async_struct * info;
486 486
diff --git a/drivers/char/applicom.c b/drivers/char/applicom.c
index 10a389dafd60..1f0b752e5de1 100644
--- a/drivers/char/applicom.c
+++ b/drivers/char/applicom.c
@@ -110,7 +110,7 @@ static ssize_t ac_read (struct file *, char __user *, size_t, loff_t *);
110static ssize_t ac_write (struct file *, const char __user *, size_t, loff_t *); 110static ssize_t ac_write (struct file *, const char __user *, size_t, loff_t *);
111static int ac_ioctl(struct inode *, struct file *, unsigned int, 111static int ac_ioctl(struct inode *, struct file *, unsigned int,
112 unsigned long); 112 unsigned long);
113static irqreturn_t ac_interrupt(int, void *, struct pt_regs *); 113static irqreturn_t ac_interrupt(int, void *);
114 114
115static const struct file_operations ac_fops = { 115static const struct file_operations ac_fops = {
116 .owner = THIS_MODULE, 116 .owner = THIS_MODULE,
@@ -617,7 +617,7 @@ static ssize_t ac_read (struct file *filp, char __user *buf, size_t count, loff_
617 } 617 }
618} 618}
619 619
620static irqreturn_t ac_interrupt(int vec, void *dev_instance, struct pt_regs *regs) 620static irqreturn_t ac_interrupt(int vec, void *dev_instance)
621{ 621{
622 unsigned int i; 622 unsigned int i;
623 unsigned int FlagInt; 623 unsigned int FlagInt;
diff --git a/drivers/char/cyclades.c b/drivers/char/cyclades.c
index 87b2fb510871..e608dadece2f 100644
--- a/drivers/char/cyclades.c
+++ b/drivers/char/cyclades.c
@@ -1057,7 +1057,7 @@ detect_isa_irq(void __iomem *address)
1057 received, out buffer empty, modem change, etc. 1057 received, out buffer empty, modem change, etc.
1058 */ 1058 */
1059static irqreturn_t 1059static irqreturn_t
1060cyy_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1060cyy_interrupt(int irq, void *dev_id)
1061{ 1061{
1062 struct tty_struct *tty; 1062 struct tty_struct *tty;
1063 int status; 1063 int status;
@@ -1802,7 +1802,7 @@ cyz_handle_cmd(struct cyclades_card *cinfo)
1802 1802
1803#ifdef CONFIG_CYZ_INTR 1803#ifdef CONFIG_CYZ_INTR
1804static irqreturn_t 1804static irqreturn_t
1805cyz_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1805cyz_interrupt(int irq, void *dev_id)
1806{ 1806{
1807 struct cyclades_card *cinfo; 1807 struct cyclades_card *cinfo;
1808 1808
diff --git a/drivers/char/drm/drm_os_linux.h b/drivers/char/drm/drm_os_linux.h
index 695115d70382..2908b72daa6e 100644
--- a/drivers/char/drm/drm_os_linux.h
+++ b/drivers/char/drm/drm_os_linux.h
@@ -38,7 +38,7 @@
38 drm_device_t *dev = priv->head->dev 38 drm_device_t *dev = priv->head->dev
39 39
40/** IRQ handler arguments and return type and values */ 40/** IRQ handler arguments and return type and values */
41#define DRM_IRQ_ARGS int irq, void *arg, struct pt_regs *regs 41#define DRM_IRQ_ARGS int irq, void *arg
42 42
43/** AGP types */ 43/** AGP types */
44#if __OS_HAS_AGP 44#if __OS_HAS_AGP
diff --git a/drivers/char/ec3104_keyb.c b/drivers/char/ec3104_keyb.c
index abac18b1871c..77f58ed6d59a 100644
--- a/drivers/char/ec3104_keyb.c
+++ b/drivers/char/ec3104_keyb.c
@@ -370,7 +370,7 @@ static void e5_receive(struct e5_struct *k)
370 } 370 }
371} 371}
372 372
373static void ec3104_keyb_interrupt(int irq, void *data, struct pt_regs *regs) 373static void ec3104_keyb_interrupt(int irq, void *data)
374{ 374{
375 struct e5_struct *k = &ec3104_keyb; 375 struct e5_struct *k = &ec3104_keyb;
376 u8 msr, lsr; 376 u8 msr, lsr;
diff --git a/drivers/char/esp.c b/drivers/char/esp.c
index 05788c75d7fc..15a4ea896328 100644
--- a/drivers/char/esp.c
+++ b/drivers/char/esp.c
@@ -615,8 +615,7 @@ static inline void check_modem_status(struct esp_struct *info)
615/* 615/*
616 * This is the serial driver's interrupt routine 616 * This is the serial driver's interrupt routine
617 */ 617 */
618static irqreturn_t rs_interrupt_single(int irq, void *dev_id, 618static irqreturn_t rs_interrupt_single(int irq, void *dev_id)
619 struct pt_regs *regs)
620{ 619{
621 struct esp_struct * info; 620 struct esp_struct * info;
622 unsigned err_status; 621 unsigned err_status;
diff --git a/drivers/char/ftape/lowlevel/fdc-io.c b/drivers/char/ftape/lowlevel/fdc-io.c
index 216532445652..bbcf918f056f 100644
--- a/drivers/char/ftape/lowlevel/fdc-io.c
+++ b/drivers/char/ftape/lowlevel/fdc-io.c
@@ -1243,7 +1243,7 @@ static int fdc_config(void)
1243 TRACE_EXIT 0; 1243 TRACE_EXIT 0;
1244} 1244}
1245 1245
1246static irqreturn_t ftape_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1246static irqreturn_t ftape_interrupt(int irq, void *dev_id)
1247{ 1247{
1248 void (*handler) (void) = *fdc.hook; 1248 void (*handler) (void) = *fdc.hook;
1249 int handled = 0; 1249 int handled = 0;
diff --git a/drivers/char/hangcheck-timer.c b/drivers/char/hangcheck-timer.c
index d69f2ad9a67d..1aa93a752a9c 100644
--- a/drivers/char/hangcheck-timer.c
+++ b/drivers/char/hangcheck-timer.c
@@ -159,7 +159,7 @@ static void hangcheck_fire(unsigned long data)
159 if (hangcheck_dump_tasks) { 159 if (hangcheck_dump_tasks) {
160 printk(KERN_CRIT "Hangcheck: Task state:\n"); 160 printk(KERN_CRIT "Hangcheck: Task state:\n");
161#ifdef CONFIG_MAGIC_SYSRQ 161#ifdef CONFIG_MAGIC_SYSRQ
162 handle_sysrq('t', NULL, NULL); 162 handle_sysrq('t', NULL);
163#endif /* CONFIG_MAGIC_SYSRQ */ 163#endif /* CONFIG_MAGIC_SYSRQ */
164 } 164 }
165 if (hangcheck_reboot) { 165 if (hangcheck_reboot) {
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 58b0eb581114..091a11cd878c 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -116,7 +116,7 @@ static inline void writeq(unsigned long long v, void __iomem *addr)
116} 116}
117#endif 117#endif
118 118
119static irqreturn_t hpet_interrupt(int irq, void *data, struct pt_regs *regs) 119static irqreturn_t hpet_interrupt(int irq, void *data)
120{ 120{
121 struct hpet_dev *devp; 121 struct hpet_dev *devp;
122 unsigned long isr; 122 unsigned long isr;
diff --git a/drivers/char/hvc_console.c b/drivers/char/hvc_console.c
index 4053d1cd393f..9902ffad3b12 100644
--- a/drivers/char/hvc_console.c
+++ b/drivers/char/hvc_console.c
@@ -294,7 +294,7 @@ static int hvc_poll(struct hvc_struct *hp);
294 * NOTE: This API isn't used if the console adapter doesn't support interrupts. 294 * NOTE: This API isn't used if the console adapter doesn't support interrupts.
295 * In this case the console is poll driven. 295 * In this case the console is poll driven.
296 */ 296 */
297static irqreturn_t hvc_handle_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 297static irqreturn_t hvc_handle_interrupt(int irq, void *dev_instance)
298{ 298{
299 /* if hvc_poll request a repoll, then kick the hvcd thread */ 299 /* if hvc_poll request a repoll, then kick the hvcd thread */
300 if (hvc_poll(dev_instance)) 300 if (hvc_poll(dev_instance))
@@ -621,7 +621,7 @@ static int hvc_poll(struct hvc_struct *hp)
621 sysrq_pressed = 1; 621 sysrq_pressed = 1;
622 continue; 622 continue;
623 } else if (sysrq_pressed) { 623 } else if (sysrq_pressed) {
624 handle_sysrq(buf[i], NULL, tty); 624 handle_sysrq(buf[i], tty);
625 sysrq_pressed = 0; 625 sysrq_pressed = 0;
626 continue; 626 continue;
627 } 627 }
diff --git a/drivers/char/hvcs.c b/drivers/char/hvcs.c
index 0b89bcde8c52..8728255c9463 100644
--- a/drivers/char/hvcs.c
+++ b/drivers/char/hvcs.c
@@ -313,8 +313,7 @@ static DEFINE_SPINLOCK(hvcs_structs_lock);
313 313
314static void hvcs_unthrottle(struct tty_struct *tty); 314static void hvcs_unthrottle(struct tty_struct *tty);
315static void hvcs_throttle(struct tty_struct *tty); 315static void hvcs_throttle(struct tty_struct *tty);
316static irqreturn_t hvcs_handle_interrupt(int irq, void *dev_instance, 316static irqreturn_t hvcs_handle_interrupt(int irq, void *dev_instance);
317 struct pt_regs *regs);
318 317
319static int hvcs_write(struct tty_struct *tty, 318static int hvcs_write(struct tty_struct *tty,
320 const unsigned char *buf, int count); 319 const unsigned char *buf, int count);
@@ -387,8 +386,7 @@ static void hvcs_throttle(struct tty_struct *tty)
387 * handler taking any further interrupts because they are disabled which means 386 * handler taking any further interrupts because they are disabled which means
388 * the hvcs_struct will always be valid in this handler. 387 * the hvcs_struct will always be valid in this handler.
389 */ 388 */
390static irqreturn_t hvcs_handle_interrupt(int irq, void *dev_instance, 389static irqreturn_t hvcs_handle_interrupt(int irq, void *dev_instance)
391 struct pt_regs *regs)
392{ 390{
393 struct hvcs_struct *hvcsd = dev_instance; 391 struct hvcs_struct *hvcsd = dev_instance;
394 392
diff --git a/drivers/char/hvsi.c b/drivers/char/hvsi.c
index c07dc58d5c1d..2cf63e7305a3 100644
--- a/drivers/char/hvsi.c
+++ b/drivers/char/hvsi.c
@@ -406,7 +406,7 @@ static void hvsi_insert_chars(struct hvsi_struct *hp, const char *buf, int len)
406 hp->sysrq = 1; 406 hp->sysrq = 1;
407 continue; 407 continue;
408 } else if (hp->sysrq) { 408 } else if (hp->sysrq) {
409 handle_sysrq(c, NULL, hp->tty); 409 handle_sysrq(c, hp->tty);
410 hp->sysrq = 0; 410 hp->sysrq = 0;
411 continue; 411 continue;
412 } 412 }
@@ -555,7 +555,7 @@ static void hvsi_send_overflow(struct hvsi_struct *hp)
555 * must get all pending data because we only get an irq on empty->non-empty 555 * must get all pending data because we only get an irq on empty->non-empty
556 * transition 556 * transition
557 */ 557 */
558static irqreturn_t hvsi_interrupt(int irq, void *arg, struct pt_regs *regs) 558static irqreturn_t hvsi_interrupt(int irq, void *arg)
559{ 559{
560 struct hvsi_struct *hp = (struct hvsi_struct *)arg; 560 struct hvsi_struct *hp = (struct hvsi_struct *)arg;
561 struct tty_struct *flip; 561 struct tty_struct *flip;
@@ -616,7 +616,7 @@ static int __init poll_for_state(struct hvsi_struct *hp, int state)
616 unsigned long end_jiffies = jiffies + HVSI_TIMEOUT; 616 unsigned long end_jiffies = jiffies + HVSI_TIMEOUT;
617 617
618 for (;;) { 618 for (;;) {
619 hvsi_interrupt(hp->virq, (void *)hp, NULL); /* get pending data */ 619 hvsi_interrupt(hp->virq, (void *)hp); /* get pending data */
620 620
621 if (hp->state == state) 621 if (hp->state == state)
622 return 0; 622 return 0;
diff --git a/drivers/char/ip2/ip2main.c b/drivers/char/ip2/ip2main.c
index 62ef511d143b..858ba5432c99 100644
--- a/drivers/char/ip2/ip2main.c
+++ b/drivers/char/ip2/ip2main.c
@@ -190,7 +190,7 @@ static int ip2_tiocmset(struct tty_struct *tty, struct file *file,
190 190
191static void set_irq(int, int); 191static void set_irq(int, int);
192static void ip2_interrupt_bh(i2eBordStrPtr pB); 192static void ip2_interrupt_bh(i2eBordStrPtr pB);
193static irqreturn_t ip2_interrupt(int irq, void *dev_id, struct pt_regs * regs); 193static irqreturn_t ip2_interrupt(int irq, void *dev_id);
194static void ip2_poll(unsigned long arg); 194static void ip2_poll(unsigned long arg);
195static inline void service_all_boards(void); 195static inline void service_all_boards(void);
196static void do_input(void *p); 196static void do_input(void *p);
@@ -1154,10 +1154,9 @@ ip2_interrupt_bh(i2eBordStrPtr pB)
1154 1154
1155 1155
1156/******************************************************************************/ 1156/******************************************************************************/
1157/* Function: ip2_interrupt(int irq, void *dev_id, struct pt_regs * regs) */ 1157/* Function: ip2_interrupt(int irq, void *dev_id) */
1158/* Parameters: irq - interrupt number */ 1158/* Parameters: irq - interrupt number */
1159/* pointer to optional device ID structure */ 1159/* pointer to optional device ID structure */
1160/* pointer to register structure */
1161/* Returns: Nothing */ 1160/* Returns: Nothing */
1162/* */ 1161/* */
1163/* Description: */ 1162/* Description: */
@@ -1173,7 +1172,7 @@ ip2_interrupt_bh(i2eBordStrPtr pB)
1173/* */ 1172/* */
1174/******************************************************************************/ 1173/******************************************************************************/
1175static irqreturn_t 1174static irqreturn_t
1176ip2_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1175ip2_interrupt(int irq, void *dev_id)
1177{ 1176{
1178 int i; 1177 int i;
1179 i2eBordStrPtr pB; 1178 i2eBordStrPtr pB;
@@ -1237,7 +1236,7 @@ ip2_poll(unsigned long arg)
1237 // Just polled boards, IRQ = 0 will hit all non-interrupt boards. 1236 // Just polled boards, IRQ = 0 will hit all non-interrupt boards.
1238 // It will NOT poll boards handled by hard interrupts. 1237 // It will NOT poll boards handled by hard interrupts.
1239 // The issue of queued BH interrups is handled in ip2_interrupt(). 1238 // The issue of queued BH interrups is handled in ip2_interrupt().
1240 ip2_interrupt(0, NULL, NULL); 1239 ip2_interrupt(0, NULL);
1241 1240
1242 PollTimer.expires = POLL_TIMEOUT; 1241 PollTimer.expires = POLL_TIMEOUT;
1243 add_timer( &PollTimer ); 1242 add_timer( &PollTimer );
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index b106c45abfc9..24825bdca8f4 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -872,7 +872,7 @@ static void smi_timeout(unsigned long data)
872 add_timer(&(smi_info->si_timer)); 872 add_timer(&(smi_info->si_timer));
873} 873}
874 874
875static irqreturn_t si_irq_handler(int irq, void *data, struct pt_regs *regs) 875static irqreturn_t si_irq_handler(int irq, void *data)
876{ 876{
877 struct smi_info *smi_info = data; 877 struct smi_info *smi_info = data;
878 unsigned long flags; 878 unsigned long flags;
@@ -899,14 +899,14 @@ static irqreturn_t si_irq_handler(int irq, void *data, struct pt_regs *regs)
899 return IRQ_HANDLED; 899 return IRQ_HANDLED;
900} 900}
901 901
902static irqreturn_t si_bt_irq_handler(int irq, void *data, struct pt_regs *regs) 902static irqreturn_t si_bt_irq_handler(int irq, void *data)
903{ 903{
904 struct smi_info *smi_info = data; 904 struct smi_info *smi_info = data;
905 /* We need to clear the IRQ flag for the BT interface. */ 905 /* We need to clear the IRQ flag for the BT interface. */
906 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, 906 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG,
907 IPMI_BT_INTMASK_CLEAR_IRQ_BIT 907 IPMI_BT_INTMASK_CLEAR_IRQ_BIT
908 | IPMI_BT_INTMASK_ENABLE_IRQ_BIT); 908 | IPMI_BT_INTMASK_ENABLE_IRQ_BIT);
909 return si_irq_handler(irq, data, regs); 909 return si_irq_handler(irq, data);
910} 910}
911 911
912static int smi_start_processing(void *send_info, 912static int smi_start_processing(void *send_info,
diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c
index accaaf1a6b69..73f759eaa5a6 100644
--- a/drivers/char/ipmi/ipmi_watchdog.c
+++ b/drivers/char/ipmi/ipmi_watchdog.c
@@ -903,7 +903,7 @@ static void ipmi_register_watchdog(int ipmi_intf)
903 903
904#ifdef HAVE_NMI_HANDLER 904#ifdef HAVE_NMI_HANDLER
905static int 905static int
906ipmi_nmi(void *dev_id, struct pt_regs *regs, int cpu, int handled) 906ipmi_nmi(void *dev_id, int cpu, int handled)
907{ 907{
908 /* If we are not expecting a timeout, ignore it. */ 908 /* If we are not expecting a timeout, ignore it. */
909 if (ipmi_watchdog_state == WDOG_TIMEOUT_NONE) 909 if (ipmi_watchdog_state == WDOG_TIMEOUT_NONE)
diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c
index ea2bbf80ad33..e9e9bf31c369 100644
--- a/drivers/char/isicom.c
+++ b/drivers/char/isicom.c
@@ -546,7 +546,7 @@ static void isicom_bottomhalf(void *data)
546 * Main interrupt handler routine 546 * Main interrupt handler routine
547 */ 547 */
548 548
549static irqreturn_t isicom_interrupt(int irq, void *dev_id, struct pt_regs *regs) 549static irqreturn_t isicom_interrupt(int irq, void *dev_id)
550{ 550{
551 struct isi_board *card = dev_id; 551 struct isi_board *card = dev_id;
552 struct isi_port *port; 552 struct isi_port *port;
diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c
index e2011669c7bb..20b6c8b30248 100644
--- a/drivers/char/keyboard.c
+++ b/drivers/char/keyboard.c
@@ -32,6 +32,7 @@
32#include <linux/string.h> 32#include <linux/string.h>
33#include <linux/init.h> 33#include <linux/init.h>
34#include <linux/slab.h> 34#include <linux/slab.h>
35#include <linux/irq.h>
35 36
36#include <linux/kbd_kern.h> 37#include <linux/kbd_kern.h>
37#include <linux/kbd_diacr.h> 38#include <linux/kbd_diacr.h>
@@ -77,7 +78,7 @@ void compute_shiftstate(void);
77 k_slock, k_dead2, k_brl, k_ignore 78 k_slock, k_dead2, k_brl, k_ignore
78 79
79typedef void (k_handler_fn)(struct vc_data *vc, unsigned char value, 80typedef void (k_handler_fn)(struct vc_data *vc, unsigned char value,
80 char up_flag, struct pt_regs *regs); 81 char up_flag);
81static k_handler_fn K_HANDLERS; 82static k_handler_fn K_HANDLERS;
82static k_handler_fn *k_handler[16] = { K_HANDLERS }; 83static k_handler_fn *k_handler[16] = { K_HANDLERS };
83 84
@@ -88,7 +89,7 @@ static k_handler_fn *k_handler[16] = { K_HANDLERS };
88 fn_boot_it, fn_caps_on, fn_compose, fn_SAK,\ 89 fn_boot_it, fn_caps_on, fn_compose, fn_SAK,\
89 fn_dec_console, fn_inc_console, fn_spawn_con, fn_bare_num 90 fn_dec_console, fn_inc_console, fn_spawn_con, fn_bare_num
90 91
91typedef void (fn_handler_fn)(struct vc_data *vc, struct pt_regs *regs); 92typedef void (fn_handler_fn)(struct vc_data *vc);
92static fn_handler_fn FN_HANDLERS; 93static fn_handler_fn FN_HANDLERS;
93static fn_handler_fn *fn_handler[] = { FN_HANDLERS }; 94static fn_handler_fn *fn_handler[] = { FN_HANDLERS };
94 95
@@ -428,7 +429,7 @@ static unsigned int handle_diacr(struct vc_data *vc, unsigned int ch)
428/* 429/*
429 * Special function handlers 430 * Special function handlers
430 */ 431 */
431static void fn_enter(struct vc_data *vc, struct pt_regs *regs) 432static void fn_enter(struct vc_data *vc)
432{ 433{
433 if (diacr) { 434 if (diacr) {
434 if (kbd->kbdmode == VC_UNICODE) 435 if (kbd->kbdmode == VC_UNICODE)
@@ -442,27 +443,28 @@ static void fn_enter(struct vc_data *vc, struct pt_regs *regs)
442 put_queue(vc, 10); 443 put_queue(vc, 10);
443} 444}
444 445
445static void fn_caps_toggle(struct vc_data *vc, struct pt_regs *regs) 446static void fn_caps_toggle(struct vc_data *vc)
446{ 447{
447 if (rep) 448 if (rep)
448 return; 449 return;
449 chg_vc_kbd_led(kbd, VC_CAPSLOCK); 450 chg_vc_kbd_led(kbd, VC_CAPSLOCK);
450} 451}
451 452
452static void fn_caps_on(struct vc_data *vc, struct pt_regs *regs) 453static void fn_caps_on(struct vc_data *vc)
453{ 454{
454 if (rep) 455 if (rep)
455 return; 456 return;
456 set_vc_kbd_led(kbd, VC_CAPSLOCK); 457 set_vc_kbd_led(kbd, VC_CAPSLOCK);
457} 458}
458 459
459static void fn_show_ptregs(struct vc_data *vc, struct pt_regs *regs) 460static void fn_show_ptregs(struct vc_data *vc)
460{ 461{
462 struct pt_regs *regs = get_irq_regs();
461 if (regs) 463 if (regs)
462 show_regs(regs); 464 show_regs(regs);
463} 465}
464 466
465static void fn_hold(struct vc_data *vc, struct pt_regs *regs) 467static void fn_hold(struct vc_data *vc)
466{ 468{
467 struct tty_struct *tty = vc->vc_tty; 469 struct tty_struct *tty = vc->vc_tty;
468 470
@@ -480,12 +482,12 @@ static void fn_hold(struct vc_data *vc, struct pt_regs *regs)
480 stop_tty(tty); 482 stop_tty(tty);
481} 483}
482 484
483static void fn_num(struct vc_data *vc, struct pt_regs *regs) 485static void fn_num(struct vc_data *vc)
484{ 486{
485 if (vc_kbd_mode(kbd,VC_APPLIC)) 487 if (vc_kbd_mode(kbd,VC_APPLIC))
486 applkey(vc, 'P', 1); 488 applkey(vc, 'P', 1);
487 else 489 else
488 fn_bare_num(vc, regs); 490 fn_bare_num(vc);
489} 491}
490 492
491/* 493/*
@@ -494,19 +496,19 @@ static void fn_num(struct vc_data *vc, struct pt_regs *regs)
494 * Bind this to NumLock if you prefer that the NumLock key always 496 * Bind this to NumLock if you prefer that the NumLock key always
495 * changes the NumLock flag. 497 * changes the NumLock flag.
496 */ 498 */
497static void fn_bare_num(struct vc_data *vc, struct pt_regs *regs) 499static void fn_bare_num(struct vc_data *vc)
498{ 500{
499 if (!rep) 501 if (!rep)
500 chg_vc_kbd_led(kbd, VC_NUMLOCK); 502 chg_vc_kbd_led(kbd, VC_NUMLOCK);
501} 503}
502 504
503static void fn_lastcons(struct vc_data *vc, struct pt_regs *regs) 505static void fn_lastcons(struct vc_data *vc)
504{ 506{
505 /* switch to the last used console, ChN */ 507 /* switch to the last used console, ChN */
506 set_console(last_console); 508 set_console(last_console);
507} 509}
508 510
509static void fn_dec_console(struct vc_data *vc, struct pt_regs *regs) 511static void fn_dec_console(struct vc_data *vc)
510{ 512{
511 int i, cur = fg_console; 513 int i, cur = fg_console;
512 514
@@ -523,7 +525,7 @@ static void fn_dec_console(struct vc_data *vc, struct pt_regs *regs)
523 set_console(i); 525 set_console(i);
524} 526}
525 527
526static void fn_inc_console(struct vc_data *vc, struct pt_regs *regs) 528static void fn_inc_console(struct vc_data *vc)
527{ 529{
528 int i, cur = fg_console; 530 int i, cur = fg_console;
529 531
@@ -540,7 +542,7 @@ static void fn_inc_console(struct vc_data *vc, struct pt_regs *regs)
540 set_console(i); 542 set_console(i);
541} 543}
542 544
543static void fn_send_intr(struct vc_data *vc, struct pt_regs *regs) 545static void fn_send_intr(struct vc_data *vc)
544{ 546{
545 struct tty_struct *tty = vc->vc_tty; 547 struct tty_struct *tty = vc->vc_tty;
546 548
@@ -550,37 +552,37 @@ static void fn_send_intr(struct vc_data *vc, struct pt_regs *regs)
550 con_schedule_flip(tty); 552 con_schedule_flip(tty);
551} 553}
552 554
553static void fn_scroll_forw(struct vc_data *vc, struct pt_regs *regs) 555static void fn_scroll_forw(struct vc_data *vc)
554{ 556{
555 scrollfront(vc, 0); 557 scrollfront(vc, 0);
556} 558}
557 559
558static void fn_scroll_back(struct vc_data *vc, struct pt_regs *regs) 560static void fn_scroll_back(struct vc_data *vc)
559{ 561{
560 scrollback(vc, 0); 562 scrollback(vc, 0);
561} 563}
562 564
563static void fn_show_mem(struct vc_data *vc, struct pt_regs *regs) 565static void fn_show_mem(struct vc_data *vc)
564{ 566{
565 show_mem(); 567 show_mem();
566} 568}
567 569
568static void fn_show_state(struct vc_data *vc, struct pt_regs *regs) 570static void fn_show_state(struct vc_data *vc)
569{ 571{
570 show_state(); 572 show_state();
571} 573}
572 574
573static void fn_boot_it(struct vc_data *vc, struct pt_regs *regs) 575static void fn_boot_it(struct vc_data *vc)
574{ 576{
575 ctrl_alt_del(); 577 ctrl_alt_del();
576} 578}
577 579
578static void fn_compose(struct vc_data *vc, struct pt_regs *regs) 580static void fn_compose(struct vc_data *vc)
579{ 581{
580 dead_key_next = 1; 582 dead_key_next = 1;
581} 583}
582 584
583static void fn_spawn_con(struct vc_data *vc, struct pt_regs *regs) 585static void fn_spawn_con(struct vc_data *vc)
584{ 586{
585 spin_lock(&vt_spawn_con.lock); 587 spin_lock(&vt_spawn_con.lock);
586 if (vt_spawn_con.pid) 588 if (vt_spawn_con.pid)
@@ -591,7 +593,7 @@ static void fn_spawn_con(struct vc_data *vc, struct pt_regs *regs)
591 spin_unlock(&vt_spawn_con.lock); 593 spin_unlock(&vt_spawn_con.lock);
592} 594}
593 595
594static void fn_SAK(struct vc_data *vc, struct pt_regs *regs) 596static void fn_SAK(struct vc_data *vc)
595{ 597{
596 struct tty_struct *tty = vc->vc_tty; 598 struct tty_struct *tty = vc->vc_tty;
597 599
@@ -604,7 +606,7 @@ static void fn_SAK(struct vc_data *vc, struct pt_regs *regs)
604 reset_vc(vc); 606 reset_vc(vc);
605} 607}
606 608
607static void fn_null(struct vc_data *vc, struct pt_regs *regs) 609static void fn_null(struct vc_data *vc)
608{ 610{
609 compute_shiftstate(); 611 compute_shiftstate();
610} 612}
@@ -612,11 +614,11 @@ static void fn_null(struct vc_data *vc, struct pt_regs *regs)
612/* 614/*
613 * Special key handlers 615 * Special key handlers
614 */ 616 */
615static void k_ignore(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 617static void k_ignore(struct vc_data *vc, unsigned char value, char up_flag)
616{ 618{
617} 619}
618 620
619static void k_spec(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 621static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
620{ 622{
621 if (up_flag) 623 if (up_flag)
622 return; 624 return;
@@ -626,15 +628,15 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag, struct
626 kbd->kbdmode == VC_MEDIUMRAW) && 628 kbd->kbdmode == VC_MEDIUMRAW) &&
627 value != KVAL(K_SAK)) 629 value != KVAL(K_SAK))
628 return; /* SAK is allowed even in raw mode */ 630 return; /* SAK is allowed even in raw mode */
629 fn_handler[value](vc, regs); 631 fn_handler[value](vc);
630} 632}
631 633
632static void k_lowercase(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 634static void k_lowercase(struct vc_data *vc, unsigned char value, char up_flag)
633{ 635{
634 printk(KERN_ERR "keyboard.c: k_lowercase was called - impossible\n"); 636 printk(KERN_ERR "keyboard.c: k_lowercase was called - impossible\n");
635} 637}
636 638
637static void k_unicode(struct vc_data *vc, unsigned int value, char up_flag, struct pt_regs *regs) 639static void k_unicode(struct vc_data *vc, unsigned int value, char up_flag)
638{ 640{
639 if (up_flag) 641 if (up_flag)
640 return; /* no action, if this is a key release */ 642 return; /* no action, if this is a key release */
@@ -658,41 +660,41 @@ static void k_unicode(struct vc_data *vc, unsigned int value, char up_flag, stru
658 * dead keys modifying the same character. Very useful 660 * dead keys modifying the same character. Very useful
659 * for Vietnamese. 661 * for Vietnamese.
660 */ 662 */
661static void k_deadunicode(struct vc_data *vc, unsigned int value, char up_flag, struct pt_regs *regs) 663static void k_deadunicode(struct vc_data *vc, unsigned int value, char up_flag)
662{ 664{
663 if (up_flag) 665 if (up_flag)
664 return; 666 return;
665 diacr = (diacr ? handle_diacr(vc, value) : value); 667 diacr = (diacr ? handle_diacr(vc, value) : value);
666} 668}
667 669
668static void k_self(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 670static void k_self(struct vc_data *vc, unsigned char value, char up_flag)
669{ 671{
670 k_unicode(vc, value, up_flag, regs); 672 k_unicode(vc, value, up_flag);
671} 673}
672 674
673static void k_dead2(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 675static void k_dead2(struct vc_data *vc, unsigned char value, char up_flag)
674{ 676{
675 k_deadunicode(vc, value, up_flag, regs); 677 k_deadunicode(vc, value, up_flag);
676} 678}
677 679
678/* 680/*
679 * Obsolete - for backwards compatibility only 681 * Obsolete - for backwards compatibility only
680 */ 682 */
681static void k_dead(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 683static void k_dead(struct vc_data *vc, unsigned char value, char up_flag)
682{ 684{
683 static const unsigned char ret_diacr[NR_DEAD] = {'`', '\'', '^', '~', '"', ',' }; 685 static const unsigned char ret_diacr[NR_DEAD] = {'`', '\'', '^', '~', '"', ',' };
684 value = ret_diacr[value]; 686 value = ret_diacr[value];
685 k_deadunicode(vc, value, up_flag, regs); 687 k_deadunicode(vc, value, up_flag);
686} 688}
687 689
688static void k_cons(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 690static void k_cons(struct vc_data *vc, unsigned char value, char up_flag)
689{ 691{
690 if (up_flag) 692 if (up_flag)
691 return; 693 return;
692 set_console(value); 694 set_console(value);
693} 695}
694 696
695static void k_fn(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 697static void k_fn(struct vc_data *vc, unsigned char value, char up_flag)
696{ 698{
697 unsigned v; 699 unsigned v;
698 700
@@ -706,7 +708,7 @@ static void k_fn(struct vc_data *vc, unsigned char value, char up_flag, struct p
706 printk(KERN_ERR "k_fn called with value=%d\n", value); 708 printk(KERN_ERR "k_fn called with value=%d\n", value);
707} 709}
708 710
709static void k_cur(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 711static void k_cur(struct vc_data *vc, unsigned char value, char up_flag)
710{ 712{
711 static const char *cur_chars = "BDCA"; 713 static const char *cur_chars = "BDCA";
712 714
@@ -715,7 +717,7 @@ static void k_cur(struct vc_data *vc, unsigned char value, char up_flag, struct
715 applkey(vc, cur_chars[value], vc_kbd_mode(kbd, VC_CKMODE)); 717 applkey(vc, cur_chars[value], vc_kbd_mode(kbd, VC_CKMODE));
716} 718}
717 719
718static void k_pad(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 720static void k_pad(struct vc_data *vc, unsigned char value, char up_flag)
719{ 721{
720 static const char pad_chars[] = "0123456789+-*/\015,.?()#"; 722 static const char pad_chars[] = "0123456789+-*/\015,.?()#";
721 static const char app_map[] = "pqrstuvwxylSRQMnnmPQS"; 723 static const char app_map[] = "pqrstuvwxylSRQMnnmPQS";
@@ -733,34 +735,34 @@ static void k_pad(struct vc_data *vc, unsigned char value, char up_flag, struct
733 switch (value) { 735 switch (value) {
734 case KVAL(K_PCOMMA): 736 case KVAL(K_PCOMMA):
735 case KVAL(K_PDOT): 737 case KVAL(K_PDOT):
736 k_fn(vc, KVAL(K_REMOVE), 0, regs); 738 k_fn(vc, KVAL(K_REMOVE), 0);
737 return; 739 return;
738 case KVAL(K_P0): 740 case KVAL(K_P0):
739 k_fn(vc, KVAL(K_INSERT), 0, regs); 741 k_fn(vc, KVAL(K_INSERT), 0);
740 return; 742 return;
741 case KVAL(K_P1): 743 case KVAL(K_P1):
742 k_fn(vc, KVAL(K_SELECT), 0, regs); 744 k_fn(vc, KVAL(K_SELECT), 0);
743 return; 745 return;
744 case KVAL(K_P2): 746 case KVAL(K_P2):
745 k_cur(vc, KVAL(K_DOWN), 0, regs); 747 k_cur(vc, KVAL(K_DOWN), 0);
746 return; 748 return;
747 case KVAL(K_P3): 749 case KVAL(K_P3):
748 k_fn(vc, KVAL(K_PGDN), 0, regs); 750 k_fn(vc, KVAL(K_PGDN), 0);
749 return; 751 return;
750 case KVAL(K_P4): 752 case KVAL(K_P4):
751 k_cur(vc, KVAL(K_LEFT), 0, regs); 753 k_cur(vc, KVAL(K_LEFT), 0);
752 return; 754 return;
753 case KVAL(K_P6): 755 case KVAL(K_P6):
754 k_cur(vc, KVAL(K_RIGHT), 0, regs); 756 k_cur(vc, KVAL(K_RIGHT), 0);
755 return; 757 return;
756 case KVAL(K_P7): 758 case KVAL(K_P7):
757 k_fn(vc, KVAL(K_FIND), 0, regs); 759 k_fn(vc, KVAL(K_FIND), 0);
758 return; 760 return;
759 case KVAL(K_P8): 761 case KVAL(K_P8):
760 k_cur(vc, KVAL(K_UP), 0, regs); 762 k_cur(vc, KVAL(K_UP), 0);
761 return; 763 return;
762 case KVAL(K_P9): 764 case KVAL(K_P9):
763 k_fn(vc, KVAL(K_PGUP), 0, regs); 765 k_fn(vc, KVAL(K_PGUP), 0);
764 return; 766 return;
765 case KVAL(K_P5): 767 case KVAL(K_P5):
766 applkey(vc, 'G', vc_kbd_mode(kbd, VC_APPLIC)); 768 applkey(vc, 'G', vc_kbd_mode(kbd, VC_APPLIC));
@@ -772,7 +774,7 @@ static void k_pad(struct vc_data *vc, unsigned char value, char up_flag, struct
772 put_queue(vc, 10); 774 put_queue(vc, 10);
773} 775}
774 776
775static void k_shift(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 777static void k_shift(struct vc_data *vc, unsigned char value, char up_flag)
776{ 778{
777 int old_state = shift_state; 779 int old_state = shift_state;
778 780
@@ -813,7 +815,7 @@ static void k_shift(struct vc_data *vc, unsigned char value, char up_flag, struc
813 } 815 }
814} 816}
815 817
816static void k_meta(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 818static void k_meta(struct vc_data *vc, unsigned char value, char up_flag)
817{ 819{
818 if (up_flag) 820 if (up_flag)
819 return; 821 return;
@@ -825,7 +827,7 @@ static void k_meta(struct vc_data *vc, unsigned char value, char up_flag, struct
825 put_queue(vc, value | 0x80); 827 put_queue(vc, value | 0x80);
826} 828}
827 829
828static void k_ascii(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 830static void k_ascii(struct vc_data *vc, unsigned char value, char up_flag)
829{ 831{
830 int base; 832 int base;
831 833
@@ -847,16 +849,16 @@ static void k_ascii(struct vc_data *vc, unsigned char value, char up_flag, struc
847 npadch = npadch * base + value; 849 npadch = npadch * base + value;
848} 850}
849 851
850static void k_lock(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 852static void k_lock(struct vc_data *vc, unsigned char value, char up_flag)
851{ 853{
852 if (up_flag || rep) 854 if (up_flag || rep)
853 return; 855 return;
854 chg_vc_kbd_lock(kbd, value); 856 chg_vc_kbd_lock(kbd, value);
855} 857}
856 858
857static void k_slock(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 859static void k_slock(struct vc_data *vc, unsigned char value, char up_flag)
858{ 860{
859 k_shift(vc, value, up_flag, regs); 861 k_shift(vc, value, up_flag);
860 if (up_flag || rep) 862 if (up_flag || rep)
861 return; 863 return;
862 chg_vc_kbd_slock(kbd, value); 864 chg_vc_kbd_slock(kbd, value);
@@ -876,25 +878,25 @@ static unsigned brl_nbchords = 1;
876MODULE_PARM_DESC(brl_nbchords, "Number of chords that produce a braille pattern (0 for dead chords)"); 878MODULE_PARM_DESC(brl_nbchords, "Number of chords that produce a braille pattern (0 for dead chords)");
877module_param(brl_nbchords, uint, 0644); 879module_param(brl_nbchords, uint, 0644);
878 880
879static void k_brlcommit(struct vc_data *vc, unsigned int pattern, char up_flag, struct pt_regs *regs) 881static void k_brlcommit(struct vc_data *vc, unsigned int pattern, char up_flag)
880{ 882{
881 static unsigned long chords; 883 static unsigned long chords;
882 static unsigned committed; 884 static unsigned committed;
883 885
884 if (!brl_nbchords) 886 if (!brl_nbchords)
885 k_deadunicode(vc, BRL_UC_ROW | pattern, up_flag, regs); 887 k_deadunicode(vc, BRL_UC_ROW | pattern, up_flag);
886 else { 888 else {
887 committed |= pattern; 889 committed |= pattern;
888 chords++; 890 chords++;
889 if (chords == brl_nbchords) { 891 if (chords == brl_nbchords) {
890 k_unicode(vc, BRL_UC_ROW | committed, up_flag, regs); 892 k_unicode(vc, BRL_UC_ROW | committed, up_flag);
891 chords = 0; 893 chords = 0;
892 committed = 0; 894 committed = 0;
893 } 895 }
894 } 896 }
895} 897}
896 898
897static void k_brl(struct vc_data *vc, unsigned char value, char up_flag, struct pt_regs *regs) 899static void k_brl(struct vc_data *vc, unsigned char value, char up_flag)
898{ 900{
899 static unsigned pressed,committing; 901 static unsigned pressed,committing;
900 static unsigned long releasestart; 902 static unsigned long releasestart;
@@ -906,7 +908,7 @@ static void k_brl(struct vc_data *vc, unsigned char value, char up_flag, struct
906 } 908 }
907 909
908 if (!value) { 910 if (!value) {
909 k_unicode(vc, BRL_UC_ROW, up_flag, regs); 911 k_unicode(vc, BRL_UC_ROW, up_flag);
910 return; 912 return;
911 } 913 }
912 914
@@ -923,13 +925,13 @@ static void k_brl(struct vc_data *vc, unsigned char value, char up_flag, struct
923 pressed &= ~(1 << (value - 1)); 925 pressed &= ~(1 << (value - 1));
924 if (!pressed) { 926 if (!pressed) {
925 if (committing) { 927 if (committing) {
926 k_brlcommit(vc, committing, 0, regs); 928 k_brlcommit(vc, committing, 0);
927 committing = 0; 929 committing = 0;
928 } 930 }
929 } 931 }
930 } else { 932 } else {
931 if (committing) { 933 if (committing) {
932 k_brlcommit(vc, committing, 0, regs); 934 k_brlcommit(vc, committing, 0);
933 committing = 0; 935 committing = 0;
934 } 936 }
935 pressed &= ~(1 << (value - 1)); 937 pressed &= ~(1 << (value - 1));
@@ -1133,8 +1135,7 @@ static void kbd_rawcode(unsigned char data)
1133 put_queue(vc, data); 1135 put_queue(vc, data);
1134} 1136}
1135 1137
1136static void kbd_keycode(unsigned int keycode, int down, 1138static void kbd_keycode(unsigned int keycode, int down, int hw_raw)
1137 int hw_raw, struct pt_regs *regs)
1138{ 1139{
1139 struct vc_data *vc = vc_cons[fg_console].d; 1140 struct vc_data *vc = vc_cons[fg_console].d;
1140 unsigned short keysym, *key_map; 1141 unsigned short keysym, *key_map;
@@ -1181,7 +1182,7 @@ static void kbd_keycode(unsigned int keycode, int down,
1181 if (sysrq_down && !down && keycode == sysrq_alt_use) 1182 if (sysrq_down && !down && keycode == sysrq_alt_use)
1182 sysrq_down = 0; 1183 sysrq_down = 0;
1183 if (sysrq_down && down && !rep) { 1184 if (sysrq_down && down && !rep) {
1184 handle_sysrq(kbd_sysrq_xlate[keycode], regs, tty); 1185 handle_sysrq(kbd_sysrq_xlate[keycode], tty);
1185 return; 1186 return;
1186 } 1187 }
1187#endif 1188#endif
@@ -1267,7 +1268,7 @@ static void kbd_keycode(unsigned int keycode, int down,
1267 } 1268 }
1268 } 1269 }
1269 1270
1270 (*k_handler[type])(vc, keysym & 0xff, !down, regs); 1271 (*k_handler[type])(vc, keysym & 0xff, !down);
1271 1272
1272 if (type != KT_SLOCK) 1273 if (type != KT_SLOCK)
1273 kbd->slockstate = 0; 1274 kbd->slockstate = 0;
@@ -1279,7 +1280,7 @@ static void kbd_event(struct input_handle *handle, unsigned int event_type,
1279 if (event_type == EV_MSC && event_code == MSC_RAW && HW_RAW(handle->dev)) 1280 if (event_type == EV_MSC && event_code == MSC_RAW && HW_RAW(handle->dev))
1280 kbd_rawcode(value); 1281 kbd_rawcode(value);
1281 if (event_type == EV_KEY) 1282 if (event_type == EV_KEY)
1282 kbd_keycode(event_code, value, HW_RAW(handle->dev), handle->dev->regs); 1283 kbd_keycode(event_code, value, HW_RAW(handle->dev));
1283 tasklet_schedule(&keyboard_tasklet); 1284 tasklet_schedule(&keyboard_tasklet);
1284 do_poke_blanked_console = 1; 1285 do_poke_blanked_console = 1;
1285 schedule_console_callback(); 1286 schedule_console_callback();
diff --git a/drivers/char/mbcs.c b/drivers/char/mbcs.c
index 636354722658..0afb7ba999cf 100644
--- a/drivers/char/mbcs.c
+++ b/drivers/char/mbcs.c
@@ -516,11 +516,10 @@ int mbcs_gscr_mmap(struct file *fp, struct vm_area_struct *vma)
516 * mbcs_completion_intr_handler - Primary completion handler. 516 * mbcs_completion_intr_handler - Primary completion handler.
517 * @irq: irq 517 * @irq: irq
518 * @arg: soft struct for device 518 * @arg: soft struct for device
519 * @ep: regs
520 * 519 *
521 */ 520 */
522static irqreturn_t 521static irqreturn_t
523mbcs_completion_intr_handler(int irq, void *arg, struct pt_regs *ep) 522mbcs_completion_intr_handler(int irq, void *arg)
524{ 523{
525 struct mbcs_soft *soft = (struct mbcs_soft *)arg; 524 struct mbcs_soft *soft = (struct mbcs_soft *)arg;
526 void *mmr_base; 525 void *mmr_base;
diff --git a/drivers/char/mmtimer.c b/drivers/char/mmtimer.c
index 1f0f2b6dae26..22b9905c1e52 100644
--- a/drivers/char/mmtimer.c
+++ b/drivers/char/mmtimer.c
@@ -422,7 +422,6 @@ static int inline reschedule_periodic_timer(mmtimer_t *x)
422 * mmtimer_interrupt - timer interrupt handler 422 * mmtimer_interrupt - timer interrupt handler
423 * @irq: irq received 423 * @irq: irq received
424 * @dev_id: device the irq came from 424 * @dev_id: device the irq came from
425 * @regs: register state upon receipt of the interrupt
426 * 425 *
427 * Called when one of the comarators matches the counter, This 426 * Called when one of the comarators matches the counter, This
428 * routine will send signals to processes that have requested 427 * routine will send signals to processes that have requested
@@ -433,7 +432,7 @@ static int inline reschedule_periodic_timer(mmtimer_t *x)
433 * registers. 432 * registers.
434 */ 433 */
435static irqreturn_t 434static irqreturn_t
436mmtimer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 435mmtimer_interrupt(int irq, void *dev_id)
437{ 436{
438 int i; 437 int i;
439 unsigned long expires = 0; 438 unsigned long expires = 0;
diff --git a/drivers/char/mwave/tp3780i.c b/drivers/char/mwave/tp3780i.c
index cc3e54dd7234..f282976daaac 100644
--- a/drivers/char/mwave/tp3780i.c
+++ b/drivers/char/mwave/tp3780i.c
@@ -95,14 +95,14 @@ static void EnableSRAM(THINKPAD_BD_DATA * pBDData)
95} 95}
96 96
97 97
98static irqreturn_t UartInterrupt(int irq, void *dev_id, struct pt_regs *regs) 98static irqreturn_t UartInterrupt(int irq, void *dev_id)
99{ 99{
100 PRINTK_3(TRACE_TP3780I, 100 PRINTK_3(TRACE_TP3780I,
101 "tp3780i::UartInterrupt entry irq %x dev_id %p\n", irq, dev_id); 101 "tp3780i::UartInterrupt entry irq %x dev_id %p\n", irq, dev_id);
102 return IRQ_HANDLED; 102 return IRQ_HANDLED;
103} 103}
104 104
105static irqreturn_t DspInterrupt(int irq, void *dev_id, struct pt_regs *regs) 105static irqreturn_t DspInterrupt(int irq, void *dev_id)
106{ 106{
107 pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd; 107 pMWAVE_DEVICE_DATA pDrvData = &mwave_s_mdd;
108 DSP_3780I_CONFIG_SETTINGS *pSettings = &pDrvData->rBDData.rDspSettings; 108 DSP_3780I_CONFIG_SETTINGS *pSettings = &pDrvData->rBDData.rDspSettings;
diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c
index 8253fca8efd5..048d91142c17 100644
--- a/drivers/char/mxser.c
+++ b/drivers/char/mxser.c
@@ -407,7 +407,7 @@ static void mxser_stop(struct tty_struct *);
407static void mxser_start(struct tty_struct *); 407static void mxser_start(struct tty_struct *);
408static void mxser_hangup(struct tty_struct *); 408static void mxser_hangup(struct tty_struct *);
409static void mxser_rs_break(struct tty_struct *, int); 409static void mxser_rs_break(struct tty_struct *, int);
410static irqreturn_t mxser_interrupt(int, void *, struct pt_regs *); 410static irqreturn_t mxser_interrupt(int, void *);
411static void mxser_receive_chars(struct mxser_struct *, int *); 411static void mxser_receive_chars(struct mxser_struct *, int *);
412static void mxser_transmit_chars(struct mxser_struct *); 412static void mxser_transmit_chars(struct mxser_struct *);
413static void mxser_check_modem_status(struct mxser_struct *, int); 413static void mxser_check_modem_status(struct mxser_struct *, int);
@@ -1916,7 +1916,7 @@ static void mxser_rs_break(struct tty_struct *tty, int break_state)
1916/* 1916/*
1917 * This is the serial driver's generic interrupt routine 1917 * This is the serial driver's generic interrupt routine
1918 */ 1918 */
1919static irqreturn_t mxser_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1919static irqreturn_t mxser_interrupt(int irq, void *dev_id)
1920{ 1920{
1921 int status, iir, i; 1921 int status, iir, i;
1922 struct mxser_struct *info; 1922 struct mxser_struct *info;
diff --git a/drivers/char/nwbutton.c b/drivers/char/nwbutton.c
index ea1aa7764f8e..2d264971d839 100644
--- a/drivers/char/nwbutton.c
+++ b/drivers/char/nwbutton.c
@@ -144,7 +144,7 @@ static void button_sequence_finished (unsigned long parameters)
144 * increments the counter. 144 * increments the counter.
145 */ 145 */
146 146
147static irqreturn_t button_handler (int irq, void *dev_id, struct pt_regs *regs) 147static irqreturn_t button_handler (int irq, void *dev_id)
148{ 148{
149 if (button_press_count) { 149 if (button_press_count) {
150 del_timer (&button_timer); 150 del_timer (&button_timer);
diff --git a/drivers/char/nwbutton.h b/drivers/char/nwbutton.h
index ddb7b928dcbb..c3ebc16ce8a7 100644
--- a/drivers/char/nwbutton.h
+++ b/drivers/char/nwbutton.h
@@ -25,7 +25,7 @@ struct button_callback {
25/* Function prototypes: */ 25/* Function prototypes: */
26 26
27static void button_sequence_finished (unsigned long parameters); 27static void button_sequence_finished (unsigned long parameters);
28static irqreturn_t button_handler (int irq, void *dev_id, struct pt_regs *regs); 28static irqreturn_t button_handler (int irq, void *dev_id);
29int button_init (void); 29int button_init (void);
30int button_add_callback (void (*callback) (void), int count); 30int button_add_callback (void (*callback) (void), int count);
31int button_del_callback (void (*callback) (void)); 31int button_del_callback (void (*callback) (void));
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
index 73e324209913..1a0bc30b79d1 100644
--- a/drivers/char/pcmcia/synclink_cs.c
+++ b/drivers/char/pcmcia/synclink_cs.c
@@ -416,7 +416,7 @@ static void rx_reset_buffers(MGSLPC_INFO *info);
416static int rx_alloc_buffers(MGSLPC_INFO *info); 416static int rx_alloc_buffers(MGSLPC_INFO *info);
417static void rx_free_buffers(MGSLPC_INFO *info); 417static void rx_free_buffers(MGSLPC_INFO *info);
418 418
419static irqreturn_t mgslpc_isr(int irq, void *dev_id, struct pt_regs * regs); 419static irqreturn_t mgslpc_isr(int irq, void *dev_id);
420 420
421/* 421/*
422 * Bottom half interrupt handlers 422 * Bottom half interrupt handlers
@@ -1234,9 +1234,8 @@ static void ri_change(MGSLPC_INFO *info)
1234 * 1234 *
1235 * irq interrupt number that caused interrupt 1235 * irq interrupt number that caused interrupt
1236 * dev_id device ID supplied during interrupt registration 1236 * dev_id device ID supplied during interrupt registration
1237 * regs interrupted processor context
1238 */ 1237 */
1239static irqreturn_t mgslpc_isr(int irq, void *dev_id, struct pt_regs * regs) 1238static irqreturn_t mgslpc_isr(int irq, void *dev_id)
1240{ 1239{
1241 MGSLPC_INFO * info = (MGSLPC_INFO *)dev_id; 1240 MGSLPC_INFO * info = (MGSLPC_INFO *)dev_id;
1242 unsigned short isr; 1241 unsigned short isr;
diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c
index 520d2cf82bc0..efc485edad1c 100644
--- a/drivers/char/ppdev.c
+++ b/drivers/char/ppdev.c
@@ -269,7 +269,7 @@ static ssize_t pp_write (struct file * file, const char __user * buf,
269 return bytes_written; 269 return bytes_written;
270} 270}
271 271
272static void pp_irq (int irq, void * private, struct pt_regs * unused) 272static void pp_irq (int irq, void * private)
273{ 273{
274 struct pp_struct * pp = (struct pp_struct *) private; 274 struct pp_struct * pp = (struct pp_struct *) private;
275 275
diff --git a/drivers/char/qtronix.c b/drivers/char/qtronix.c
index 9d134e98d2a0..5c9477741a30 100644
--- a/drivers/char/qtronix.c
+++ b/drivers/char/qtronix.c
@@ -93,7 +93,7 @@ struct cir_port *cir;
93static unsigned char kbdbytes[5]; 93static unsigned char kbdbytes[5];
94static unsigned char cir_data[32]; /* we only need 16 chars */ 94static unsigned char cir_data[32]; /* we only need 16 chars */
95 95
96static void kbd_int_handler(int irq, void *dev_id, struct pt_regs *regs); 96static void kbd_int_handler(int irq, void *dev_id);
97static int handle_data(unsigned char *p_data); 97static int handle_data(unsigned char *p_data);
98static inline void handle_mouse_event(unsigned char scancode); 98static inline void handle_mouse_event(unsigned char scancode);
99static inline void handle_keyboard_event(unsigned char scancode, int down); 99static inline void handle_keyboard_event(unsigned char scancode, int down);
@@ -197,7 +197,7 @@ int CheckSumOk(u_int8_t byte1, u_int8_t byte2,
197} 197}
198 198
199 199
200static void kbd_int_handler(int irq, void *dev_id, struct pt_regs *regs) 200static void kbd_int_handler(int irq, void *dev_id)
201{ 201{
202 struct cir_port *cir; 202 struct cir_port *cir;
203 int j; 203 int j;
diff --git a/drivers/char/rio/rio_linux.c b/drivers/char/rio/rio_linux.c
index 202a3b0945b7..3bea594600d4 100644
--- a/drivers/char/rio/rio_linux.c
+++ b/drivers/char/rio/rio_linux.c
@@ -363,7 +363,7 @@ static void rio_reset_interrupt(struct Host *HostP)
363} 363}
364 364
365 365
366static irqreturn_t rio_interrupt(int irq, void *ptr, struct pt_regs *regs) 366static irqreturn_t rio_interrupt(int irq, void *ptr)
367{ 367{
368 struct Host *HostP; 368 struct Host *HostP;
369 func_enter(); 369 func_enter();
@@ -417,7 +417,7 @@ static void rio_pollfunc(unsigned long data)
417{ 417{
418 func_enter(); 418 func_enter();
419 419
420 rio_interrupt(0, &p->RIOHosts[data], NULL); 420 rio_interrupt(0, &p->RIOHosts[data]);
421 p->RIOHosts[data].timer.expires = jiffies + rio_poll; 421 p->RIOHosts[data].timer.expires = jiffies + rio_poll;
422 add_timer(&p->RIOHosts[data].timer); 422 add_timer(&p->RIOHosts[data].timer);
423 423
diff --git a/drivers/char/riscom8.c b/drivers/char/riscom8.c
index b0ab3f28cc6a..be68cfb0ae69 100644
--- a/drivers/char/riscom8.c
+++ b/drivers/char/riscom8.c
@@ -550,7 +550,7 @@ static inline void rc_check_modem(struct riscom_board const * bp)
550} 550}
551 551
552/* The main interrupt processing routine */ 552/* The main interrupt processing routine */
553static irqreturn_t rc_interrupt(int irq, void * dev_id, struct pt_regs * regs) 553static irqreturn_t rc_interrupt(int irq, void * dev_id)
554{ 554{
555 unsigned char status; 555 unsigned char status;
556 unsigned char ack; 556 unsigned char ack;
diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c
index 656f8c0ca52e..abee7a339462 100644
--- a/drivers/char/rtc.c
+++ b/drivers/char/rtc.c
@@ -113,9 +113,9 @@ static int rtc_has_irq = 1;
113#define hpet_set_rtc_irq_bit(arg) 0 113#define hpet_set_rtc_irq_bit(arg) 0
114#define hpet_rtc_timer_init() do { } while (0) 114#define hpet_rtc_timer_init() do { } while (0)
115#define hpet_rtc_dropped_irq() 0 115#define hpet_rtc_dropped_irq() 0
116static inline irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs) {return 0;} 116static inline irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id) {return 0;}
117#else 117#else
118extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 118extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id);
119#endif 119#endif
120 120
121/* 121/*
@@ -229,7 +229,7 @@ static inline unsigned char rtc_is_updating(void)
229 * (See ./arch/XXXX/kernel/time.c for the set_rtc_mmss() function.) 229 * (See ./arch/XXXX/kernel/time.c for the set_rtc_mmss() function.)
230 */ 230 */
231 231
232irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 232irqreturn_t rtc_interrupt(int irq, void *dev_id)
233{ 233{
234 /* 234 /*
235 * Can be an alarm interrupt, update complete interrupt, 235 * Can be an alarm interrupt, update complete interrupt,
@@ -915,7 +915,7 @@ static const struct file_operations rtc_proc_fops = {
915}; 915};
916 916
917#if defined(RTC_IRQ) && !defined(__sparc__) 917#if defined(RTC_IRQ) && !defined(__sparc__)
918static irqreturn_t (*rtc_int_handler_ptr)(int irq, void *dev_id, struct pt_regs *regs); 918static irq_handler_t rtc_int_handler_ptr;
919#endif 919#endif
920 920
921static int __init rtc_init(void) 921static int __init rtc_init(void)
diff --git a/drivers/char/ser_a2232.c b/drivers/char/ser_a2232.c
index 65c751d0d643..4217d38caef9 100644
--- a/drivers/char/ser_a2232.c
+++ b/drivers/char/ser_a2232.c
@@ -111,7 +111,7 @@
111 111
112/***************************** Prototypes ***************************/ 112/***************************** Prototypes ***************************/
113/* The interrupt service routine */ 113/* The interrupt service routine */
114static irqreturn_t a2232_vbl_inter(int irq, void *data, struct pt_regs *fp); 114static irqreturn_t a2232_vbl_inter(int irq, void *data);
115/* Initialize the port structures */ 115/* Initialize the port structures */
116static void a2232_init_portstructs(void); 116static void a2232_init_portstructs(void);
117/* Initialize and register TTY drivers. */ 117/* Initialize and register TTY drivers. */
@@ -504,7 +504,7 @@ static int a2232_open(struct tty_struct * tty, struct file * filp)
504} 504}
505/*** END OF FUNCTIONS EXPECTED BY TTY DRIVER STRUCTS ***/ 505/*** END OF FUNCTIONS EXPECTED BY TTY DRIVER STRUCTS ***/
506 506
507static irqreturn_t a2232_vbl_inter(int irq, void *data, struct pt_regs *fp) 507static irqreturn_t a2232_vbl_inter(int irq, void *data)
508{ 508{
509#if A2232_IOBUFLEN != 256 509#if A2232_IOBUFLEN != 256
510#error "Re-Implement a2232_vbl_inter()!" 510#error "Re-Implement a2232_vbl_inter()!"
diff --git a/drivers/char/serial167.c b/drivers/char/serial167.c
index f4809c8183cc..6f13f98e3171 100644
--- a/drivers/char/serial167.c
+++ b/drivers/char/serial167.c
@@ -370,7 +370,7 @@ cy_sched_event(struct cyclades_port *info, int event)
370 received, out buffer empty, modem change, etc. 370 received, out buffer empty, modem change, etc.
371 */ 371 */
372static irqreturn_t 372static irqreturn_t
373cd2401_rxerr_interrupt(int irq, void *dev_id, struct pt_regs *fp) 373cd2401_rxerr_interrupt(int irq, void *dev_id)
374{ 374{
375 struct tty_struct *tty; 375 struct tty_struct *tty;
376 struct cyclades_port *info; 376 struct cyclades_port *info;
@@ -451,7 +451,7 @@ cd2401_rxerr_interrupt(int irq, void *dev_id, struct pt_regs *fp)
451} /* cy_rxerr_interrupt */ 451} /* cy_rxerr_interrupt */
452 452
453static irqreturn_t 453static irqreturn_t
454cd2401_modem_interrupt(int irq, void *dev_id, struct pt_regs *fp) 454cd2401_modem_interrupt(int irq, void *dev_id)
455{ 455{
456 struct cyclades_port *info; 456 struct cyclades_port *info;
457 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR; 457 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR;
@@ -506,7 +506,7 @@ cd2401_modem_interrupt(int irq, void *dev_id, struct pt_regs *fp)
506} /* cy_modem_interrupt */ 506} /* cy_modem_interrupt */
507 507
508static irqreturn_t 508static irqreturn_t
509cd2401_tx_interrupt(int irq, void *dev_id, struct pt_regs *fp) 509cd2401_tx_interrupt(int irq, void *dev_id)
510{ 510{
511 struct cyclades_port *info; 511 struct cyclades_port *info;
512 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR; 512 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR;
@@ -626,7 +626,7 @@ cd2401_tx_interrupt(int irq, void *dev_id, struct pt_regs *fp)
626} /* cy_tx_interrupt */ 626} /* cy_tx_interrupt */
627 627
628static irqreturn_t 628static irqreturn_t
629cd2401_rx_interrupt(int irq, void *dev_id, struct pt_regs *fp) 629cd2401_rx_interrupt(int irq, void *dev_id)
630{ 630{
631 struct tty_struct *tty; 631 struct tty_struct *tty;
632 struct cyclades_port *info; 632 struct cyclades_port *info;
diff --git a/drivers/char/snsc.c b/drivers/char/snsc.c
index 07e0b75f2338..52753e723eaa 100644
--- a/drivers/char/snsc.c
+++ b/drivers/char/snsc.c
@@ -34,7 +34,7 @@
34#define SCDRV_TIMEOUT 1000 34#define SCDRV_TIMEOUT 1000
35 35
36static irqreturn_t 36static irqreturn_t
37scdrv_interrupt(int irq, void *subch_data, struct pt_regs *regs) 37scdrv_interrupt(int irq, void *subch_data)
38{ 38{
39 struct subch_data_s *sd = subch_data; 39 struct subch_data_s *sd = subch_data;
40 unsigned long flags; 40 unsigned long flags;
diff --git a/drivers/char/snsc_event.c b/drivers/char/snsc_event.c
index 864854c58866..2f56e8c54897 100644
--- a/drivers/char/snsc_event.c
+++ b/drivers/char/snsc_event.c
@@ -36,7 +36,7 @@ DECLARE_TASKLET(sn_sysctl_event, scdrv_event, 0);
36 * destination. 36 * destination.
37 */ 37 */
38static irqreturn_t 38static irqreturn_t
39scdrv_event_interrupt(int irq, void *subch_data, struct pt_regs *regs) 39scdrv_event_interrupt(int irq, void *subch_data)
40{ 40{
41 struct subch_data_s *sd = subch_data; 41 struct subch_data_s *sd = subch_data;
42 unsigned long flags; 42 unsigned long flags;
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
index d4e434d694b7..c084149153de 100644
--- a/drivers/char/sonypi.c
+++ b/drivers/char/sonypi.c
@@ -826,7 +826,7 @@ static void sonypi_report_input_event(u8 event)
826} 826}
827 827
828/* Interrupt handler: some event is available */ 828/* Interrupt handler: some event is available */
829static irqreturn_t sonypi_irq(int irq, void *dev_id, struct pt_regs *regs) 829static irqreturn_t sonypi_irq(int irq, void *dev_id)
830{ 830{
831 u8 v1, v2, event = 0; 831 u8 v1, v2, event = 0;
832 int i, j; 832 int i, j;
diff --git a/drivers/char/specialix.c b/drivers/char/specialix.c
index 902c48dca3bc..6022495571ae 100644
--- a/drivers/char/specialix.c
+++ b/drivers/char/specialix.c
@@ -200,7 +200,7 @@ static struct specialix_port sx_port[SX_NBOARD * SX_NPORT];
200 200
201#ifdef SPECIALIX_TIMER 201#ifdef SPECIALIX_TIMER
202static struct timer_list missed_irq_timer; 202static struct timer_list missed_irq_timer;
203static irqreturn_t sx_interrupt(int irq, void * dev_id, struct pt_regs * regs); 203static irqreturn_t sx_interrupt(int irq, void * dev_id);
204#endif 204#endif
205 205
206 206
@@ -897,7 +897,7 @@ static inline void sx_check_modem(struct specialix_board * bp)
897 897
898 898
899/* The main interrupt processing routine */ 899/* The main interrupt processing routine */
900static irqreturn_t sx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 900static irqreturn_t sx_interrupt(int irq, void *dev_id)
901{ 901{
902 unsigned char status; 902 unsigned char status;
903 unsigned char ack; 903 unsigned char ack;
diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c
index bd711537ec4e..522e88e395cc 100644
--- a/drivers/char/stallion.c
+++ b/drivers/char/stallion.c
@@ -1927,13 +1927,12 @@ stl_readdone:
1927 * calls off to the approrpriate board interrupt handlers. 1927 * calls off to the approrpriate board interrupt handlers.
1928 */ 1928 */
1929 1929
1930static irqreturn_t stl_intr(int irq, void *dev_id, struct pt_regs *regs) 1930static irqreturn_t stl_intr(int irq, void *dev_id)
1931{ 1931{
1932 stlbrd_t *brdp = (stlbrd_t *) dev_id; 1932 stlbrd_t *brdp = (stlbrd_t *) dev_id;
1933 1933
1934#ifdef DEBUG 1934#ifdef DEBUG
1935 printk("stl_intr(brdp=%x,irq=%d,regs=%x)\n", (int) brdp, irq, 1935 printk("stl_intr(brdp=%x,irq=%d)\n", (int) brdp, irq);
1936 (int) regs);
1937#endif 1936#endif
1938 1937
1939 return IRQ_RETVAL((* brdp->isr)(brdp)); 1938 return IRQ_RETVAL((* brdp->isr)(brdp));
diff --git a/drivers/char/sx.c b/drivers/char/sx.c
index 8fd71a5fc619..5fec626598cd 100644
--- a/drivers/char/sx.c
+++ b/drivers/char/sx.c
@@ -1192,7 +1192,7 @@ static inline void sx_check_modem_signals (struct sx_port *port)
1192 * Small, elegant, clear. 1192 * Small, elegant, clear.
1193 */ 1193 */
1194 1194
1195static irqreturn_t sx_interrupt (int irq, void *ptr, struct pt_regs *regs) 1195static irqreturn_t sx_interrupt (int irq, void *ptr)
1196{ 1196{
1197 struct sx_board *board = ptr; 1197 struct sx_board *board = ptr;
1198 struct sx_port *port; 1198 struct sx_port *port;
@@ -1300,7 +1300,7 @@ static void sx_pollfunc (unsigned long data)
1300 1300
1301 func_enter (); 1301 func_enter ();
1302 1302
1303 sx_interrupt (0, board, NULL); 1303 sx_interrupt (0, board);
1304 1304
1305 init_timer(&board->timer); 1305 init_timer(&board->timer);
1306 1306
diff --git a/drivers/char/synclink.c b/drivers/char/synclink.c
index a4150c4519c4..f2864cc64240 100644
--- a/drivers/char/synclink.c
+++ b/drivers/char/synclink.c
@@ -1698,11 +1698,10 @@ static void mgsl_isr_transmit_dma( struct mgsl_struct *info )
1698 * 1698 *
1699 * irq interrupt number that caused interrupt 1699 * irq interrupt number that caused interrupt
1700 * dev_id device ID supplied during interrupt registration 1700 * dev_id device ID supplied during interrupt registration
1701 * regs interrupted processor context
1702 * 1701 *
1703 * Return Value: None 1702 * Return Value: None
1704 */ 1703 */
1705static irqreturn_t mgsl_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1704static irqreturn_t mgsl_interrupt(int irq, void *dev_id)
1706{ 1705{
1707 struct mgsl_struct * info; 1706 struct mgsl_struct * info;
1708 u16 UscVector; 1707 u16 UscVector;
diff --git a/drivers/char/synclink_gt.c b/drivers/char/synclink_gt.c
index bdc7cb248b8f..d4334c79f8d4 100644
--- a/drivers/char/synclink_gt.c
+++ b/drivers/char/synclink_gt.c
@@ -491,7 +491,7 @@ static void isr_serial(struct slgt_info *info);
491static void isr_rdma(struct slgt_info *info); 491static void isr_rdma(struct slgt_info *info);
492static void isr_txeom(struct slgt_info *info, unsigned short status); 492static void isr_txeom(struct slgt_info *info, unsigned short status);
493static void isr_tdma(struct slgt_info *info); 493static void isr_tdma(struct slgt_info *info);
494static irqreturn_t slgt_interrupt(int irq, void *dev_id, struct pt_regs * regs); 494static irqreturn_t slgt_interrupt(int irq, void *dev_id);
495 495
496static int alloc_dma_bufs(struct slgt_info *info); 496static int alloc_dma_bufs(struct slgt_info *info);
497static void free_dma_bufs(struct slgt_info *info); 497static void free_dma_bufs(struct slgt_info *info);
@@ -2217,9 +2217,8 @@ static void isr_gpio(struct slgt_info *info, unsigned int changed, unsigned int
2217 * 2217 *
2218 * irq interrupt number 2218 * irq interrupt number
2219 * dev_id device ID supplied during interrupt registration 2219 * dev_id device ID supplied during interrupt registration
2220 * regs interrupted processor context
2221 */ 2220 */
2222static irqreturn_t slgt_interrupt(int irq, void *dev_id, struct pt_regs * regs) 2221static irqreturn_t slgt_interrupt(int irq, void *dev_id)
2223{ 2222{
2224 struct slgt_info *info; 2223 struct slgt_info *info;
2225 unsigned int gsr; 2224 unsigned int gsr;
diff --git a/drivers/char/synclinkmp.c b/drivers/char/synclinkmp.c
index 6eb75dcd7961..3e932b681371 100644
--- a/drivers/char/synclinkmp.c
+++ b/drivers/char/synclinkmp.c
@@ -2596,8 +2596,7 @@ void isr_io_pin( SLMP_INFO *info, u16 status )
2596 * dev_id device ID supplied during interrupt registration 2596 * dev_id device ID supplied during interrupt registration
2597 * regs interrupted processor context 2597 * regs interrupted processor context
2598 */ 2598 */
2599static irqreturn_t synclinkmp_interrupt(int irq, void *dev_id, 2599static irqreturn_t synclinkmp_interrupt(int irq, void *dev_id)
2600 struct pt_regs *regs)
2601{ 2600{
2602 SLMP_INFO * info; 2601 SLMP_INFO * info;
2603 unsigned char status, status0, status1=0; 2602 unsigned char status, status0, status1=0;
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
index 6b4d4d1e343d..4c0e08685705 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -35,14 +35,14 @@
35#include <linux/vt_kern.h> 35#include <linux/vt_kern.h>
36#include <linux/workqueue.h> 36#include <linux/workqueue.h>
37#include <linux/kexec.h> 37#include <linux/kexec.h>
38#include <linux/irq.h>
38 39
39#include <asm/ptrace.h> 40#include <asm/ptrace.h>
40 41
41/* Whether we react on sysrq keys or just ignore them */ 42/* Whether we react on sysrq keys or just ignore them */
42int sysrq_enabled = 1; 43int sysrq_enabled = 1;
43 44
44static void sysrq_handle_loglevel(int key, struct pt_regs *pt_regs, 45static void sysrq_handle_loglevel(int key, struct tty_struct *tty)
45 struct tty_struct *tty)
46{ 46{
47 int i; 47 int i;
48 i = key - '0'; 48 i = key - '0';
@@ -58,8 +58,7 @@ static struct sysrq_key_op sysrq_loglevel_op = {
58}; 58};
59 59
60#ifdef CONFIG_VT 60#ifdef CONFIG_VT
61static void sysrq_handle_SAK(int key, struct pt_regs *pt_regs, 61static void sysrq_handle_SAK(int key, struct tty_struct *tty)
62 struct tty_struct *tty)
63{ 62{
64 if (tty) 63 if (tty)
65 do_SAK(tty); 64 do_SAK(tty);
@@ -76,8 +75,7 @@ static struct sysrq_key_op sysrq_SAK_op = {
76#endif 75#endif
77 76
78#ifdef CONFIG_VT 77#ifdef CONFIG_VT
79static void sysrq_handle_unraw(int key, struct pt_regs *pt_regs, 78static void sysrq_handle_unraw(int key, struct tty_struct *tty)
80 struct tty_struct *tty)
81{ 79{
82 struct kbd_struct *kbd = &kbd_table[fg_console]; 80 struct kbd_struct *kbd = &kbd_table[fg_console];
83 81
@@ -95,10 +93,9 @@ static struct sysrq_key_op sysrq_unraw_op = {
95#endif /* CONFIG_VT */ 93#endif /* CONFIG_VT */
96 94
97#ifdef CONFIG_KEXEC 95#ifdef CONFIG_KEXEC
98static void sysrq_handle_crashdump(int key, struct pt_regs *pt_regs, 96static void sysrq_handle_crashdump(int key, struct tty_struct *tty)
99 struct tty_struct *tty)
100{ 97{
101 crash_kexec(pt_regs); 98 crash_kexec(get_irq_regs());
102} 99}
103static struct sysrq_key_op sysrq_crashdump_op = { 100static struct sysrq_key_op sysrq_crashdump_op = {
104 .handler = sysrq_handle_crashdump, 101 .handler = sysrq_handle_crashdump,
@@ -110,8 +107,7 @@ static struct sysrq_key_op sysrq_crashdump_op = {
110#define sysrq_crashdump_op (*(struct sysrq_key_op *)0) 107#define sysrq_crashdump_op (*(struct sysrq_key_op *)0)
111#endif 108#endif
112 109
113static void sysrq_handle_reboot(int key, struct pt_regs *pt_regs, 110static void sysrq_handle_reboot(int key, struct tty_struct *tty)
114 struct tty_struct *tty)
115{ 111{
116 lockdep_off(); 112 lockdep_off();
117 local_irq_enable(); 113 local_irq_enable();
@@ -124,8 +120,7 @@ static struct sysrq_key_op sysrq_reboot_op = {
124 .enable_mask = SYSRQ_ENABLE_BOOT, 120 .enable_mask = SYSRQ_ENABLE_BOOT,
125}; 121};
126 122
127static void sysrq_handle_sync(int key, struct pt_regs *pt_regs, 123static void sysrq_handle_sync(int key, struct tty_struct *tty)
128 struct tty_struct *tty)
129{ 124{
130 emergency_sync(); 125 emergency_sync();
131} 126}
@@ -136,8 +131,7 @@ static struct sysrq_key_op sysrq_sync_op = {
136 .enable_mask = SYSRQ_ENABLE_SYNC, 131 .enable_mask = SYSRQ_ENABLE_SYNC,
137}; 132};
138 133
139static void sysrq_handle_mountro(int key, struct pt_regs *pt_regs, 134static void sysrq_handle_mountro(int key, struct tty_struct *tty)
140 struct tty_struct *tty)
141{ 135{
142 emergency_remount(); 136 emergency_remount();
143} 137}
@@ -149,8 +143,7 @@ static struct sysrq_key_op sysrq_mountro_op = {
149}; 143};
150 144
151#ifdef CONFIG_LOCKDEP 145#ifdef CONFIG_LOCKDEP
152static void sysrq_handle_showlocks(int key, struct pt_regs *pt_regs, 146static void sysrq_handle_showlocks(int key, struct tty_struct *tty)
153 struct tty_struct *tty)
154{ 147{
155 debug_show_all_locks(); 148 debug_show_all_locks();
156} 149}
@@ -164,11 +157,11 @@ static struct sysrq_key_op sysrq_showlocks_op = {
164#define sysrq_showlocks_op (*(struct sysrq_key_op *)0) 157#define sysrq_showlocks_op (*(struct sysrq_key_op *)0)
165#endif 158#endif
166 159
167static void sysrq_handle_showregs(int key, struct pt_regs *pt_regs, 160static void sysrq_handle_showregs(int key, struct tty_struct *tty)
168 struct tty_struct *tty)
169{ 161{
170 if (pt_regs) 162 struct pt_regs *regs = get_irq_regs();
171 show_regs(pt_regs); 163 if (regs)
164 show_regs(regs);
172} 165}
173static struct sysrq_key_op sysrq_showregs_op = { 166static struct sysrq_key_op sysrq_showregs_op = {
174 .handler = sysrq_handle_showregs, 167 .handler = sysrq_handle_showregs,
@@ -177,8 +170,7 @@ static struct sysrq_key_op sysrq_showregs_op = {
177 .enable_mask = SYSRQ_ENABLE_DUMP, 170 .enable_mask = SYSRQ_ENABLE_DUMP,
178}; 171};
179 172
180static void sysrq_handle_showstate(int key, struct pt_regs *pt_regs, 173static void sysrq_handle_showstate(int key, struct tty_struct *tty)
181 struct tty_struct *tty)
182{ 174{
183 show_state(); 175 show_state();
184} 176}
@@ -189,8 +181,7 @@ static struct sysrq_key_op sysrq_showstate_op = {
189 .enable_mask = SYSRQ_ENABLE_DUMP, 181 .enable_mask = SYSRQ_ENABLE_DUMP,
190}; 182};
191 183
192static void sysrq_handle_showmem(int key, struct pt_regs *pt_regs, 184static void sysrq_handle_showmem(int key, struct tty_struct *tty)
193 struct tty_struct *tty)
194{ 185{
195 show_mem(); 186 show_mem();
196} 187}
@@ -215,8 +206,7 @@ static void send_sig_all(int sig)
215 } 206 }
216} 207}
217 208
218static void sysrq_handle_term(int key, struct pt_regs *pt_regs, 209static void sysrq_handle_term(int key, struct tty_struct *tty)
219 struct tty_struct *tty)
220{ 210{
221 send_sig_all(SIGTERM); 211 send_sig_all(SIGTERM);
222 console_loglevel = 8; 212 console_loglevel = 8;
@@ -236,8 +226,7 @@ static void moom_callback(void *ignored)
236 226
237static DECLARE_WORK(moom_work, moom_callback, NULL); 227static DECLARE_WORK(moom_work, moom_callback, NULL);
238 228
239static void sysrq_handle_moom(int key, struct pt_regs *pt_regs, 229static void sysrq_handle_moom(int key, struct tty_struct *tty)
240 struct tty_struct *tty)
241{ 230{
242 schedule_work(&moom_work); 231 schedule_work(&moom_work);
243} 232}
@@ -247,8 +236,7 @@ static struct sysrq_key_op sysrq_moom_op = {
247 .action_msg = "Manual OOM execution", 236 .action_msg = "Manual OOM execution",
248}; 237};
249 238
250static void sysrq_handle_kill(int key, struct pt_regs *pt_regs, 239static void sysrq_handle_kill(int key, struct tty_struct *tty)
251 struct tty_struct *tty)
252{ 240{
253 send_sig_all(SIGKILL); 241 send_sig_all(SIGKILL);
254 console_loglevel = 8; 242 console_loglevel = 8;
@@ -260,8 +248,7 @@ static struct sysrq_key_op sysrq_kill_op = {
260 .enable_mask = SYSRQ_ENABLE_SIGNAL, 248 .enable_mask = SYSRQ_ENABLE_SIGNAL,
261}; 249};
262 250
263static void sysrq_handle_unrt(int key, struct pt_regs *pt_regs, 251static void sysrq_handle_unrt(int key, struct tty_struct *tty)
264 struct tty_struct *tty)
265{ 252{
266 normalize_rt_tasks(); 253 normalize_rt_tasks();
267} 254}
@@ -361,8 +348,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
361 * This is the non-locking version of handle_sysrq. It must/can only be called 348 * This is the non-locking version of handle_sysrq. It must/can only be called
362 * by sysrq key handlers, as they are inside of the lock 349 * by sysrq key handlers, as they are inside of the lock
363 */ 350 */
364void __handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty, 351void __handle_sysrq(int key, struct tty_struct *tty, int check_mask)
365 int check_mask)
366{ 352{
367 struct sysrq_key_op *op_p; 353 struct sysrq_key_op *op_p;
368 int orig_log_level; 354 int orig_log_level;
@@ -384,7 +370,7 @@ void __handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty,
384 (sysrq_enabled & op_p->enable_mask)) { 370 (sysrq_enabled & op_p->enable_mask)) {
385 printk("%s\n", op_p->action_msg); 371 printk("%s\n", op_p->action_msg);
386 console_loglevel = orig_log_level; 372 console_loglevel = orig_log_level;
387 op_p->handler(key, pt_regs, tty); 373 op_p->handler(key, tty);
388 } else { 374 } else {
389 printk("This sysrq operation is disabled.\n"); 375 printk("This sysrq operation is disabled.\n");
390 } 376 }
@@ -413,11 +399,11 @@ void __handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty,
413 * This function is called by the keyboard handler when SysRq is pressed 399 * This function is called by the keyboard handler when SysRq is pressed
414 * and any other keycode arrives. 400 * and any other keycode arrives.
415 */ 401 */
416void handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty) 402void handle_sysrq(int key, struct tty_struct *tty)
417{ 403{
418 if (!sysrq_enabled) 404 if (!sysrq_enabled)
419 return; 405 return;
420 __handle_sysrq(key, pt_regs, tty, 1); 406 __handle_sysrq(key, tty, 1);
421} 407}
422EXPORT_SYMBOL(handle_sysrq); 408EXPORT_SYMBOL(handle_sysrq);
423 409
diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c
index d2c5ba4e83b8..2444a0e24b31 100644
--- a/drivers/char/tlclk.c
+++ b/drivers/char/tlclk.c
@@ -193,7 +193,7 @@ static DEFINE_SPINLOCK(event_lock);
193 193
194static int tlclk_major = TLCLK_MAJOR; 194static int tlclk_major = TLCLK_MAJOR;
195 195
196static irqreturn_t tlclk_interrupt(int irq, void *dev_id, struct pt_regs *regs); 196static irqreturn_t tlclk_interrupt(int irq, void *dev_id);
197 197
198static DECLARE_WAIT_QUEUE_HEAD(wq); 198static DECLARE_WAIT_QUEUE_HEAD(wq);
199 199
@@ -856,7 +856,7 @@ static void switchover_timeout(unsigned long data)
856 wake_up(&wq); 856 wake_up(&wq);
857} 857}
858 858
859static irqreturn_t tlclk_interrupt(int irq, void *dev_id, struct pt_regs *regs) 859static irqreturn_t tlclk_interrupt(int irq, void *dev_id)
860{ 860{
861 unsigned long flags; 861 unsigned long flags;
862 862
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index ee7ac6f43c65..483f3f60013c 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -377,7 +377,7 @@ static struct tpm_vendor_specific tpm_tis = {
377 .fops = &tis_ops,}, 377 .fops = &tis_ops,},
378}; 378};
379 379
380static irqreturn_t tis_int_probe(int irq, void *dev_id, struct pt_regs *regs) 380static irqreturn_t tis_int_probe(int irq, void *dev_id)
381{ 381{
382 struct tpm_chip *chip = (struct tpm_chip *) dev_id; 382 struct tpm_chip *chip = (struct tpm_chip *) dev_id;
383 u32 interrupt; 383 u32 interrupt;
@@ -397,7 +397,7 @@ static irqreturn_t tis_int_probe(int irq, void *dev_id, struct pt_regs *regs)
397 return IRQ_HANDLED; 397 return IRQ_HANDLED;
398} 398}
399 399
400static irqreturn_t tis_int_handler(int irq, void *dev_id, struct pt_regs *regs) 400static irqreturn_t tis_int_handler(int irq, void *dev_id)
401{ 401{
402 struct tpm_chip *chip = (struct tpm_chip *) dev_id; 402 struct tpm_chip *chip = (struct tpm_chip *) dev_id;
403 u32 interrupt; 403 u32 interrupt;
diff --git a/drivers/char/vme_scc.c b/drivers/char/vme_scc.c
index c2ca31eb850b..0cdbaa70cf9f 100644
--- a/drivers/char/vme_scc.c
+++ b/drivers/char/vme_scc.c
@@ -81,10 +81,10 @@ static int scc_ioctl(struct tty_struct * tty, struct file * filp,
81 unsigned int cmd, unsigned long arg); 81 unsigned int cmd, unsigned long arg);
82static void scc_throttle(struct tty_struct *tty); 82static void scc_throttle(struct tty_struct *tty);
83static void scc_unthrottle(struct tty_struct *tty); 83static void scc_unthrottle(struct tty_struct *tty);
84static irqreturn_t scc_tx_int(int irq, void *data, struct pt_regs *fp); 84static irqreturn_t scc_tx_int(int irq, void *data);
85static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp); 85static irqreturn_t scc_rx_int(int irq, void *data);
86static irqreturn_t scc_stat_int(int irq, void *data, struct pt_regs *fp); 86static irqreturn_t scc_stat_int(int irq, void *data);
87static irqreturn_t scc_spcond_int(int irq, void *data, struct pt_regs *fp); 87static irqreturn_t scc_spcond_int(int irq, void *data);
88static void scc_setsignals(struct scc_port *port, int dtr, int rts); 88static void scc_setsignals(struct scc_port *port, int dtr, int rts);
89static void scc_break_ctl(struct tty_struct *tty, int break_state); 89static void scc_break_ctl(struct tty_struct *tty, int break_state);
90 90
@@ -419,7 +419,7 @@ module_init(vme_scc_init);
419 * Interrupt handlers 419 * Interrupt handlers
420 *--------------------------------------------------------------------------*/ 420 *--------------------------------------------------------------------------*/
421 421
422static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp) 422static irqreturn_t scc_rx_int(int irq, void *data)
423{ 423{
424 unsigned char ch; 424 unsigned char ch;
425 struct scc_port *port = data; 425 struct scc_port *port = data;
@@ -440,7 +440,7 @@ static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp)
440 */ 440 */
441 if (SCCread(INT_PENDING_REG) & 441 if (SCCread(INT_PENDING_REG) &
442 (port->channel == CHANNEL_A ? IPR_A_RX : IPR_B_RX)) { 442 (port->channel == CHANNEL_A ? IPR_A_RX : IPR_B_RX)) {
443 scc_spcond_int (irq, data, fp); 443 scc_spcond_int (irq, data);
444 return IRQ_HANDLED; 444 return IRQ_HANDLED;
445 } 445 }
446 446
@@ -451,7 +451,7 @@ static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp)
451} 451}
452 452
453 453
454static irqreturn_t scc_spcond_int(int irq, void *data, struct pt_regs *fp) 454static irqreturn_t scc_spcond_int(int irq, void *data)
455{ 455{
456 struct scc_port *port = data; 456 struct scc_port *port = data;
457 struct tty_struct *tty = port->gs.tty; 457 struct tty_struct *tty = port->gs.tty;
@@ -496,7 +496,7 @@ static irqreturn_t scc_spcond_int(int irq, void *data, struct pt_regs *fp)
496} 496}
497 497
498 498
499static irqreturn_t scc_tx_int(int irq, void *data, struct pt_regs *fp) 499static irqreturn_t scc_tx_int(int irq, void *data)
500{ 500{
501 struct scc_port *port = data; 501 struct scc_port *port = data;
502 SCC_ACCESS_INIT(port); 502 SCC_ACCESS_INIT(port);
@@ -538,7 +538,7 @@ static irqreturn_t scc_tx_int(int irq, void *data, struct pt_regs *fp)
538} 538}
539 539
540 540
541static irqreturn_t scc_stat_int(int irq, void *data, struct pt_regs *fp) 541static irqreturn_t scc_stat_int(int irq, void *data)
542{ 542{
543 struct scc_port *port = data; 543 struct scc_port *port = data;
544 unsigned channel = port->channel; 544 unsigned channel = port->channel;
diff --git a/drivers/char/vr41xx_giu.c b/drivers/char/vr41xx_giu.c
index 8116a47b80f4..8e7949305171 100644
--- a/drivers/char/vr41xx_giu.c
+++ b/drivers/char/vr41xx_giu.c
@@ -221,7 +221,7 @@ static struct hw_interrupt_type giuint_high_irq_type = {
221 .end = end_giuint_high_irq, 221 .end = end_giuint_high_irq,
222}; 222};
223 223
224static int giu_get_irq(unsigned int irq, struct pt_regs *regs) 224static int giu_get_irq(unsigned int irq)
225{ 225{
226 uint16_t pendl, pendh, maskl, maskh; 226 uint16_t pendl, pendh, maskl, maskh;
227 int i; 227 int i;
diff --git a/drivers/char/watchdog/eurotechwdt.c b/drivers/char/watchdog/eurotechwdt.c
index 4f4269754c46..e228d6e173ce 100644
--- a/drivers/char/watchdog/eurotechwdt.c
+++ b/drivers/char/watchdog/eurotechwdt.c
@@ -153,7 +153,7 @@ static void eurwdt_activate_timer(void)
153 * Kernel methods. 153 * Kernel methods.
154 */ 154 */
155 155
156static irqreturn_t eurwdt_interrupt(int irq, void *dev_id, struct pt_regs *regs) 156static irqreturn_t eurwdt_interrupt(int irq, void *dev_id)
157{ 157{
158 printk(KERN_CRIT "timeout WDT timeout\n"); 158 printk(KERN_CRIT "timeout WDT timeout\n");
159 159
diff --git a/drivers/char/watchdog/mpcore_wdt.c b/drivers/char/watchdog/mpcore_wdt.c
index 02d336ace504..3404a9c67f08 100644
--- a/drivers/char/watchdog/mpcore_wdt.c
+++ b/drivers/char/watchdog/mpcore_wdt.c
@@ -64,7 +64,7 @@ MODULE_PARM_DESC(mpcore_noboot, "MPcore watchdog action, set to 1 to ignore rebo
64 * This is the interrupt handler. Note that we only use this 64 * This is the interrupt handler. Note that we only use this
65 * in testing mode, so don't actually do a reboot here. 65 * in testing mode, so don't actually do a reboot here.
66 */ 66 */
67static irqreturn_t mpcore_wdt_fire(int irq, void *arg, struct pt_regs *regs) 67static irqreturn_t mpcore_wdt_fire(int irq, void *arg)
68{ 68{
69 struct mpcore_wdt *wdt = arg; 69 struct mpcore_wdt *wdt = arg;
70 70
diff --git a/drivers/char/watchdog/pcwd_usb.c b/drivers/char/watchdog/pcwd_usb.c
index 77662cb0ac46..bda45334d802 100644
--- a/drivers/char/watchdog/pcwd_usb.c
+++ b/drivers/char/watchdog/pcwd_usb.c
@@ -158,7 +158,7 @@ static struct usb_driver usb_pcwd_driver = {
158}; 158};
159 159
160 160
161static void usb_pcwd_intr_done(struct urb *urb, struct pt_regs *regs) 161static void usb_pcwd_intr_done(struct urb *urb)
162{ 162{
163 struct usb_pcwd_private *usb_pcwd = (struct usb_pcwd_private *)urb->context; 163 struct usb_pcwd_private *usb_pcwd = (struct usb_pcwd_private *)urb->context;
164 unsigned char *data = usb_pcwd->intr_buffer; 164 unsigned char *data = usb_pcwd->intr_buffer;
diff --git a/drivers/char/watchdog/s3c2410_wdt.c b/drivers/char/watchdog/s3c2410_wdt.c
index b36a04ae9ab8..68b1ca976d53 100644
--- a/drivers/char/watchdog/s3c2410_wdt.c
+++ b/drivers/char/watchdog/s3c2410_wdt.c
@@ -336,8 +336,7 @@ static struct miscdevice s3c2410wdt_miscdev = {
336 336
337/* interrupt handler code */ 337/* interrupt handler code */
338 338
339static irqreturn_t s3c2410wdt_irq(int irqno, void *param, 339static irqreturn_t s3c2410wdt_irq(int irqno, void *param)
340 struct pt_regs *regs)
341{ 340{
342 printk(KERN_INFO PFX "Watchdog timer expired!\n"); 341 printk(KERN_INFO PFX "Watchdog timer expired!\n");
343 342
diff --git a/drivers/char/watchdog/wdt.c b/drivers/char/watchdog/wdt.c
index 13f23f4a2233..517fbd8643f8 100644
--- a/drivers/char/watchdog/wdt.c
+++ b/drivers/char/watchdog/wdt.c
@@ -225,14 +225,13 @@ static int wdt_get_temperature(int *temperature)
225 * wdt_interrupt: 225 * wdt_interrupt:
226 * @irq: Interrupt number 226 * @irq: Interrupt number
227 * @dev_id: Unused as we don't allow multiple devices. 227 * @dev_id: Unused as we don't allow multiple devices.
228 * @regs: Unused.
229 * 228 *
230 * Handle an interrupt from the board. These are raised when the status 229 * Handle an interrupt from the board. These are raised when the status
231 * map changes in what the board considers an interesting way. That means 230 * map changes in what the board considers an interesting way. That means
232 * a failure condition occurring. 231 * a failure condition occurring.
233 */ 232 */
234 233
235static irqreturn_t wdt_interrupt(int irq, void *dev_id, struct pt_regs *regs) 234static irqreturn_t wdt_interrupt(int irq, void *dev_id)
236{ 235{
237 /* 236 /*
238 * Read the status register see what is up and 237 * Read the status register see what is up and
diff --git a/drivers/char/watchdog/wdt285.c b/drivers/char/watchdog/wdt285.c
index 89a249e23fde..e4cf661dc890 100644
--- a/drivers/char/watchdog/wdt285.c
+++ b/drivers/char/watchdog/wdt285.c
@@ -46,7 +46,7 @@ static unsigned long timer_alive;
46/* 46/*
47 * If the timer expires.. 47 * If the timer expires..
48 */ 48 */
49static void watchdog_fire(int irq, void *dev_id, struct pt_regs *regs) 49static void watchdog_fire(int irq, void *dev_id)
50{ 50{
51 printk(KERN_CRIT "Watchdog: Would Reboot.\n"); 51 printk(KERN_CRIT "Watchdog: Would Reboot.\n");
52 *CSR_TIMER4_CNTL = 0; 52 *CSR_TIMER4_CNTL = 0;
diff --git a/drivers/char/watchdog/wdt_pci.c b/drivers/char/watchdog/wdt_pci.c
index 74d8cf836e13..ce1261c5cbce 100644
--- a/drivers/char/watchdog/wdt_pci.c
+++ b/drivers/char/watchdog/wdt_pci.c
@@ -270,14 +270,13 @@ static int wdtpci_get_temperature(int *temperature)
270 * wdtpci_interrupt: 270 * wdtpci_interrupt:
271 * @irq: Interrupt number 271 * @irq: Interrupt number
272 * @dev_id: Unused as we don't allow multiple devices. 272 * @dev_id: Unused as we don't allow multiple devices.
273 * @regs: Unused.
274 * 273 *
275 * Handle an interrupt from the board. These are raised when the status 274 * Handle an interrupt from the board. These are raised when the status
276 * map changes in what the board considers an interesting way. That means 275 * map changes in what the board considers an interesting way. That means
277 * a failure condition occurring. 276 * a failure condition occurring.
278 */ 277 */
279 278
280static irqreturn_t wdtpci_interrupt(int irq, void *dev_id, struct pt_regs *regs) 279static irqreturn_t wdtpci_interrupt(int irq, void *dev_id)
281{ 280{
282 /* 281 /*
283 * Read the status register see what is up and 282 * Read the status register see what is up and
diff --git a/drivers/dma/ioatdma.c b/drivers/dma/ioatdma.c
index dbd4d6c3698e..f3bf1e230bca 100644
--- a/drivers/dma/ioatdma.c
+++ b/drivers/dma/ioatdma.c
@@ -563,7 +563,7 @@ static struct pci_driver ioat_pci_drv = {
563 .remove = __devexit_p(ioat_remove), 563 .remove = __devexit_p(ioat_remove),
564}; 564};
565 565
566static irqreturn_t ioat_do_interrupt(int irq, void *data, struct pt_regs *regs) 566static irqreturn_t ioat_do_interrupt(int irq, void *data)
567{ 567{
568 struct ioat_device *instance = data; 568 struct ioat_device *instance = data;
569 unsigned long attnstatus; 569 unsigned long attnstatus;
diff --git a/drivers/fc4/soc.c b/drivers/fc4/soc.c
index 3b07e0ca81cd..b09dfc78e5a2 100644
--- a/drivers/fc4/soc.c
+++ b/drivers/fc4/soc.c
@@ -334,7 +334,7 @@ update_out:
334 } 334 }
335} 335}
336 336
337static irqreturn_t soc_intr(int irq, void *dev_id, struct pt_regs *regs) 337static irqreturn_t soc_intr(int irq, void *dev_id)
338{ 338{
339 u32 cmd; 339 u32 cmd;
340 unsigned long flags; 340 unsigned long flags;
diff --git a/drivers/fc4/socal.c b/drivers/fc4/socal.c
index 2b75edc5859d..a6b1ae256e16 100644
--- a/drivers/fc4/socal.c
+++ b/drivers/fc4/socal.c
@@ -404,7 +404,7 @@ update_out:
404 } 404 }
405} 405}
406 406
407static irqreturn_t socal_intr(int irq, void *dev_id, struct pt_regs *regs) 407static irqreturn_t socal_intr(int irq, void *dev_id)
408{ 408{
409 u32 cmd; 409 u32 cmd;
410 unsigned long flags; 410 unsigned long flags;
diff --git a/drivers/i2c/busses/i2c-elektor.c b/drivers/i2c/busses/i2c-elektor.c
index caa8e5c8bfbb..a591fe685f06 100644
--- a/drivers/i2c/busses/i2c-elektor.c
+++ b/drivers/i2c/busses/i2c-elektor.c
@@ -131,7 +131,7 @@ static void pcf_isa_waitforpin(void) {
131} 131}
132 132
133 133
134static irqreturn_t pcf_isa_handler(int this_irq, void *dev_id, struct pt_regs *regs) { 134static irqreturn_t pcf_isa_handler(int this_irq, void *dev_id) {
135 spin_lock(&lock); 135 spin_lock(&lock);
136 pcf_pending = 1; 136 pcf_pending = 1;
137 spin_unlock(&lock); 137 spin_unlock(&lock);
diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c
index 80d4ba1bdfec..781a99c1647a 100644
--- a/drivers/i2c/busses/i2c-ibm_iic.c
+++ b/drivers/i2c/busses/i2c-ibm_iic.c
@@ -320,7 +320,7 @@ err:
320/* 320/*
321 * IIC interrupt handler 321 * IIC interrupt handler
322 */ 322 */
323static irqreturn_t iic_handler(int irq, void *dev_id, struct pt_regs *regs) 323static irqreturn_t iic_handler(int irq, void *dev_id)
324{ 324{
325 struct ibm_iic_private* dev = (struct ibm_iic_private*)dev_id; 325 struct ibm_iic_private* dev = (struct ibm_iic_private*)dev_id;
326 volatile struct iic_regs __iomem *iic = dev->vaddr; 326 volatile struct iic_regs __iomem *iic = dev->vaddr;
diff --git a/drivers/i2c/busses/i2c-iop3xx.c b/drivers/i2c/busses/i2c-iop3xx.c
index 4436c89be58e..d108ab4974cc 100644
--- a/drivers/i2c/busses/i2c-iop3xx.c
+++ b/drivers/i2c/busses/i2c-iop3xx.c
@@ -120,7 +120,7 @@ iop3xx_i2c_transaction_cleanup(struct i2c_algo_iop3xx_data *iop3xx_adap)
120 * Then it passes the SR flags of interest to BH via adap data 120 * Then it passes the SR flags of interest to BH via adap data
121 */ 121 */
122static irqreturn_t 122static irqreturn_t
123iop3xx_i2c_irq_handler(int this_irq, void *dev_id, struct pt_regs *regs) 123iop3xx_i2c_irq_handler(int this_irq, void *dev_id)
124{ 124{
125 struct i2c_algo_iop3xx_data *iop3xx_adap = dev_id; 125 struct i2c_algo_iop3xx_data *iop3xx_adap = dev_id;
126 u32 sr = __raw_readl(iop3xx_adap->ioaddr + SR_OFFSET); 126 u32 sr = __raw_readl(iop3xx_adap->ioaddr + SR_OFFSET);
diff --git a/drivers/i2c/busses/i2c-ite.c b/drivers/i2c/busses/i2c-ite.c
index 559a62b04ee9..f7d71869b3b9 100644
--- a/drivers/i2c/busses/i2c-ite.c
+++ b/drivers/i2c/busses/i2c-ite.c
@@ -140,8 +140,7 @@ static void iic_ite_waitforpin(void) {
140} 140}
141 141
142 142
143static irqreturn_t iic_ite_handler(int this_irq, void *dev_id, 143static irqreturn_t iic_ite_handler(int this_irq, void *dev_id)
144 struct pt_regs *regs)
145{ 144{
146 spin_lock(&lock); 145 spin_lock(&lock);
147 iic_pending = 1; 146 iic_pending = 1;
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index 155a986de516..ee65aa1be13a 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -63,7 +63,7 @@ static __inline__ void writeccr(struct mpc_i2c *i2c, u32 x)
63 writeb(x, i2c->base + MPC_I2C_CR); 63 writeb(x, i2c->base + MPC_I2C_CR);
64} 64}
65 65
66static irqreturn_t mpc_i2c_isr(int irq, void *dev_id, struct pt_regs *regs) 66static irqreturn_t mpc_i2c_isr(int irq, void *dev_id)
67{ 67{
68 struct mpc_i2c *i2c = dev_id; 68 struct mpc_i2c *i2c = dev_id;
69 if (readb(i2c->base + MPC_I2C_SR) & CSR_MIF) { 69 if (readb(i2c->base + MPC_I2C_SR) & CSR_MIF) {
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c
index eacbaf745b64..bbc8e3a7ff55 100644
--- a/drivers/i2c/busses/i2c-mv64xxx.c
+++ b/drivers/i2c/busses/i2c-mv64xxx.c
@@ -278,7 +278,7 @@ mv64xxx_i2c_do_action(struct mv64xxx_i2c_data *drv_data)
278} 278}
279 279
280static int 280static int
281mv64xxx_i2c_intr(int irq, void *dev_id, struct pt_regs *regs) 281mv64xxx_i2c_intr(int irq, void *dev_id)
282{ 282{
283 struct mv64xxx_i2c_data *drv_data = dev_id; 283 struct mv64xxx_i2c_data *drv_data = dev_id;
284 unsigned long flags; 284 unsigned long flags;
diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c
index 3e276e958ef7..f28a76d1c0af 100644
--- a/drivers/i2c/busses/i2c-ocores.c
+++ b/drivers/i2c/busses/i2c-ocores.c
@@ -143,7 +143,7 @@ static void ocores_process(struct ocores_i2c *i2c)
143 } 143 }
144} 144}
145 145
146static irqreturn_t ocores_isr(int irq, void *dev_id, struct pt_regs *regs) 146static irqreturn_t ocores_isr(int irq, void *dev_id)
147{ 147{
148 struct ocores_i2c *i2c = dev_id; 148 struct ocores_i2c *i2c = dev_id;
149 149
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 81d87d2c2a2d..dec04da0455c 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -400,7 +400,7 @@ omap_i2c_ack_stat(struct omap_i2c_dev *dev, u16 stat)
400} 400}
401 401
402static irqreturn_t 402static irqreturn_t
403omap_i2c_rev1_isr(int this_irq, void *dev_id, struct pt_regs *regs) 403omap_i2c_rev1_isr(int this_irq, void *dev_id)
404{ 404{
405 struct omap_i2c_dev *dev = dev_id; 405 struct omap_i2c_dev *dev = dev_id;
406 u16 iv, w; 406 u16 iv, w;
@@ -452,7 +452,7 @@ omap_i2c_rev1_isr(int this_irq, void *dev_id, struct pt_regs *regs)
452} 452}
453 453
454static irqreturn_t 454static irqreturn_t
455omap_i2c_isr(int this_irq, void *dev_id, struct pt_regs *regs) 455omap_i2c_isr(int this_irq, void *dev_id)
456{ 456{
457 struct omap_i2c_dev *dev = dev_id; 457 struct omap_i2c_dev *dev = dev_id;
458 u16 bits; 458 u16 bits;
diff --git a/drivers/i2c/busses/i2c-pca-isa.c b/drivers/i2c/busses/i2c-pca-isa.c
index d9b4ddbad7e0..407840b6a260 100644
--- a/drivers/i2c/busses/i2c-pca-isa.c
+++ b/drivers/i2c/busses/i2c-pca-isa.c
@@ -99,7 +99,7 @@ static int pca_isa_waitforinterrupt(struct i2c_algo_pca_data *adap)
99 return ret; 99 return ret;
100} 100}
101 101
102static irqreturn_t pca_handler(int this_irq, void *dev_id, struct pt_regs *regs) { 102static irqreturn_t pca_handler(int this_irq, void *dev_id) {
103 wake_up_interruptible(&pca_wait); 103 wake_up_interruptible(&pca_wait);
104 return IRQ_HANDLED; 104 return IRQ_HANDLED;
105} 105}
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
index cd4ad98ad517..81050d3c9b21 100644
--- a/drivers/i2c/busses/i2c-pxa.c
+++ b/drivers/i2c/busses/i2c-pxa.c
@@ -850,7 +850,7 @@ static void i2c_pxa_irq_rxfull(struct pxa_i2c *i2c, u32 isr)
850 ICR = icr; 850 ICR = icr;
851} 851}
852 852
853static irqreturn_t i2c_pxa_handler(int this_irq, void *dev_id, struct pt_regs *regs) 853static irqreturn_t i2c_pxa_handler(int this_irq, void *dev_id)
854{ 854{
855 struct pxa_i2c *i2c = dev_id; 855 struct pxa_i2c *i2c = dev_id;
856 u32 isr = ISR; 856 u32 isr = ISR;
diff --git a/drivers/i2c/busses/i2c-rpx.c b/drivers/i2c/busses/i2c-rpx.c
index 0ebec3c1a54e..8764df06f51d 100644
--- a/drivers/i2c/busses/i2c-rpx.c
+++ b/drivers/i2c/busses/i2c-rpx.c
@@ -55,10 +55,10 @@ rpx_iic_init(struct i2c_algo_8xx_data *data)
55 data->i2c = (i2c8xx_t *)&(((immap_t *)IMAP_ADDR)->im_i2c); 55 data->i2c = (i2c8xx_t *)&(((immap_t *)IMAP_ADDR)->im_i2c);
56} 56}
57 57
58static int rpx_install_isr(int irq, void (*func)(void *, void *), void *data) 58static int rpx_install_isr(int irq, void (*func)(void *), void *data)
59{ 59{
60 /* install interrupt handler */ 60 /* install interrupt handler */
61 cpm_install_handler(irq, (void (*)(void *, struct pt_regs *)) func, data); 61 cpm_install_handler(irq, func, data);
62 62
63 return 0; 63 return 0;
64} 64}
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
index 9ebe429a0a0f..4ca6de209b8b 100644
--- a/drivers/i2c/busses/i2c-s3c2410.c
+++ b/drivers/i2c/busses/i2c-s3c2410.c
@@ -423,8 +423,7 @@ static int i2s_s3c_irq_nextbyte(struct s3c24xx_i2c *i2c, unsigned long iicstat)
423 * top level IRQ servicing routine 423 * top level IRQ servicing routine
424*/ 424*/
425 425
426static irqreturn_t s3c24xx_i2c_irq(int irqno, void *dev_id, 426static irqreturn_t s3c24xx_i2c_irq(int irqno, void *dev_id)
427 struct pt_regs *regs)
428{ 427{
429 struct s3c24xx_i2c *i2c = dev_id; 428 struct s3c24xx_i2c *i2c = dev_id;
430 unsigned long status; 429 unsigned long status;
diff --git a/drivers/i2c/chips/isp1301_omap.c b/drivers/i2c/chips/isp1301_omap.c
index 182f04953466..ccdf3e90862b 100644
--- a/drivers/i2c/chips/isp1301_omap.c
+++ b/drivers/i2c/chips/isp1301_omap.c
@@ -669,7 +669,7 @@ pulldown:
669 dump_regs(isp, "otg->isp1301"); 669 dump_regs(isp, "otg->isp1301");
670} 670}
671 671
672static irqreturn_t omap_otg_irq(int irq, void *_isp, struct pt_regs *regs) 672static irqreturn_t omap_otg_irq(int irq, void *_isp)
673{ 673{
674 u16 otg_irq = OTG_IRQ_SRC_REG; 674 u16 otg_irq = OTG_IRQ_SRC_REG;
675 u32 otg_ctrl; 675 u32 otg_ctrl;
@@ -1181,7 +1181,7 @@ isp1301_work(void *data)
1181 isp->working = 0; 1181 isp->working = 0;
1182} 1182}
1183 1183
1184static irqreturn_t isp1301_irq(int irq, void *isp, struct pt_regs *regs) 1184static irqreturn_t isp1301_irq(int irq, void *isp)
1185{ 1185{
1186 isp1301_defer_work(isp, WORK_UPDATE_OTG); 1186 isp1301_defer_work(isp, WORK_UPDATE_OTG);
1187 return IRQ_HANDLED; 1187 return IRQ_HANDLED;
diff --git a/drivers/i2c/chips/tps65010.c b/drivers/i2c/chips/tps65010.c
index 6a7578217177..60bef94cd25f 100644
--- a/drivers/i2c/chips/tps65010.c
+++ b/drivers/i2c/chips/tps65010.c
@@ -446,7 +446,7 @@ static void tps65010_work(void *_tps)
446 mutex_unlock(&tps->lock); 446 mutex_unlock(&tps->lock);
447} 447}
448 448
449static irqreturn_t tps65010_irq(int irq, void *_tps, struct pt_regs *regs) 449static irqreturn_t tps65010_irq(int irq, void *_tps)
450{ 450{
451 struct tps65010 *tps = _tps; 451 struct tps65010 *tps = _tps;
452 452
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index ba6039b55b41..2614f41b5074 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -1562,7 +1562,7 @@ static void unexpected_intr (int irq, ide_hwgroup_t *hwgroup)
1562 * on the hwgroup and the process begins again. 1562 * on the hwgroup and the process begins again.
1563 */ 1563 */
1564 1564
1565irqreturn_t ide_intr (int irq, void *dev_id, struct pt_regs *regs) 1565irqreturn_t ide_intr (int irq, void *dev_id)
1566{ 1566{
1567 unsigned long flags; 1567 unsigned long flags;
1568 ide_hwgroup_t *hwgroup = (ide_hwgroup_t *)dev_id; 1568 ide_hwgroup_t *hwgroup = (ide_hwgroup_t *)dev_id;
diff --git a/drivers/ide/legacy/hd.c b/drivers/ide/legacy/hd.c
index 4ab931145673..b1d5291531b7 100644
--- a/drivers/ide/legacy/hd.c
+++ b/drivers/ide/legacy/hd.c
@@ -673,7 +673,7 @@ static int hd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
673 * be forgotten about... 673 * be forgotten about...
674 */ 674 */
675 675
676static irqreturn_t hd_interrupt(int irq, void *dev_id, struct pt_regs *regs) 676static irqreturn_t hd_interrupt(int irq, void *dev_id)
677{ 677{
678 void (*handler)(void) = do_hd; 678 void (*handler)(void) = do_hd;
679 679
diff --git a/drivers/ide/legacy/macide.c b/drivers/ide/legacy/macide.c
index d655da749144..b1730d7e414c 100644
--- a/drivers/ide/legacy/macide.c
+++ b/drivers/ide/legacy/macide.c
@@ -78,7 +78,7 @@ int macide_ack_intr(ide_hwif_t* hwif)
78} 78}
79 79
80#ifdef CONFIG_BLK_DEV_MAC_MEDIABAY 80#ifdef CONFIG_BLK_DEV_MAC_MEDIABAY
81static void macide_mediabay_interrupt(int irq, void *dev_id, struct pt_regs *regs) 81static void macide_mediabay_interrupt(int irq, void *dev_id)
82{ 82{
83 int state = baboon->mb_status & 0x04; 83 int state = baboon->mb_status & 0x04;
84 84
diff --git a/drivers/ieee1394/ohci1394.c b/drivers/ieee1394/ohci1394.c
index 8fd0030475ba..dea13525df88 100644
--- a/drivers/ieee1394/ohci1394.c
+++ b/drivers/ieee1394/ohci1394.c
@@ -2301,8 +2301,7 @@ static void ohci_schedule_iso_tasklets(struct ti_ohci *ohci,
2301 spin_unlock_irqrestore(&ohci->iso_tasklet_list_lock, flags); 2301 spin_unlock_irqrestore(&ohci->iso_tasklet_list_lock, flags);
2302} 2302}
2303 2303
2304static irqreturn_t ohci_irq_handler(int irq, void *dev_id, 2304static irqreturn_t ohci_irq_handler(int irq, void *dev_id)
2305 struct pt_regs *regs_are_unused)
2306{ 2305{
2307 quadlet_t event, node_id; 2306 quadlet_t event, node_id;
2308 struct ti_ohci *ohci = (struct ti_ohci *)dev_id; 2307 struct ti_ohci *ohci = (struct ti_ohci *)dev_id;
diff --git a/drivers/ieee1394/pcilynx.c b/drivers/ieee1394/pcilynx.c
index b4f146f2c951..0a7412e27eb4 100644
--- a/drivers/ieee1394/pcilynx.c
+++ b/drivers/ieee1394/pcilynx.c
@@ -839,8 +839,7 @@ static int lynx_devctl(struct hpsb_host *host, enum devctl_cmd cmd, int arg)
839 ********************************************************/ 839 ********************************************************/
840 840
841 841
842static irqreturn_t lynx_irq_handler(int irq, void *dev_id, 842static irqreturn_t lynx_irq_handler(int irq, void *dev_id)
843 struct pt_regs *regs_are_unused)
844{ 843{
845 struct ti_lynx *lynx = (struct ti_lynx *)dev_id; 844 struct ti_lynx *lynx = (struct ti_lynx *)dev_id;
846 struct hpsb_host *host = lynx->host; 845 struct hpsb_host *host = lynx->host;
diff --git a/drivers/infiniband/hw/amso1100/c2.c b/drivers/infiniband/hw/amso1100/c2.c
index 9e9120f36019..dc1ebeac35c7 100644
--- a/drivers/infiniband/hw/amso1100/c2.c
+++ b/drivers/infiniband/hw/amso1100/c2.c
@@ -72,7 +72,7 @@ static int c2_down(struct net_device *netdev);
72static int c2_xmit_frame(struct sk_buff *skb, struct net_device *netdev); 72static int c2_xmit_frame(struct sk_buff *skb, struct net_device *netdev);
73static void c2_tx_interrupt(struct net_device *netdev); 73static void c2_tx_interrupt(struct net_device *netdev);
74static void c2_rx_interrupt(struct net_device *netdev); 74static void c2_rx_interrupt(struct net_device *netdev);
75static irqreturn_t c2_interrupt(int irq, void *dev_id, struct pt_regs *regs); 75static irqreturn_t c2_interrupt(int irq, void *dev_id);
76static void c2_tx_timeout(struct net_device *netdev); 76static void c2_tx_timeout(struct net_device *netdev);
77static int c2_change_mtu(struct net_device *netdev, int new_mtu); 77static int c2_change_mtu(struct net_device *netdev, int new_mtu);
78static void c2_reset(struct c2_port *c2_port); 78static void c2_reset(struct c2_port *c2_port);
@@ -544,7 +544,7 @@ static void c2_rx_interrupt(struct net_device *netdev)
544/* 544/*
545 * Handle netisr0 TX & RX interrupts. 545 * Handle netisr0 TX & RX interrupts.
546 */ 546 */
547static irqreturn_t c2_interrupt(int irq, void *dev_id, struct pt_regs *regs) 547static irqreturn_t c2_interrupt(int irq, void *dev_id)
548{ 548{
549 unsigned int netisr0, dmaisr; 549 unsigned int netisr0, dmaisr;
550 int handled = 0; 550 int handled = 0;
diff --git a/drivers/infiniband/hw/ehca/ehca_irq.c b/drivers/infiniband/hw/ehca/ehca_irq.c
index 2a65b5be1979..048cc443d1e7 100644
--- a/drivers/infiniband/hw/ehca/ehca_irq.c
+++ b/drivers/infiniband/hw/ehca/ehca_irq.c
@@ -360,7 +360,7 @@ static inline void reset_eq_pending(struct ehca_cq *cq)
360 return; 360 return;
361} 361}
362 362
363irqreturn_t ehca_interrupt_neq(int irq, void *dev_id, struct pt_regs *regs) 363irqreturn_t ehca_interrupt_neq(int irq, void *dev_id)
364{ 364{
365 struct ehca_shca *shca = (struct ehca_shca*)dev_id; 365 struct ehca_shca *shca = (struct ehca_shca*)dev_id;
366 366
@@ -393,7 +393,7 @@ void ehca_tasklet_neq(unsigned long data)
393 return; 393 return;
394} 394}
395 395
396irqreturn_t ehca_interrupt_eq(int irq, void *dev_id, struct pt_regs *regs) 396irqreturn_t ehca_interrupt_eq(int irq, void *dev_id)
397{ 397{
398 struct ehca_shca *shca = (struct ehca_shca*)dev_id; 398 struct ehca_shca *shca = (struct ehca_shca*)dev_id;
399 399
diff --git a/drivers/infiniband/hw/ehca/ehca_irq.h b/drivers/infiniband/hw/ehca/ehca_irq.h
index 85bf1fe16fe4..be579cc0adf6 100644
--- a/drivers/infiniband/hw/ehca/ehca_irq.h
+++ b/drivers/infiniband/hw/ehca/ehca_irq.h
@@ -51,10 +51,10 @@ struct ehca_shca;
51 51
52int ehca_error_data(struct ehca_shca *shca, void *data, u64 resource); 52int ehca_error_data(struct ehca_shca *shca, void *data, u64 resource);
53 53
54irqreturn_t ehca_interrupt_neq(int irq, void *dev_id, struct pt_regs *regs); 54irqreturn_t ehca_interrupt_neq(int irq, void *dev_id);
55void ehca_tasklet_neq(unsigned long data); 55void ehca_tasklet_neq(unsigned long data);
56 56
57irqreturn_t ehca_interrupt_eq(int irq, void *dev_id, struct pt_regs *regs); 57irqreturn_t ehca_interrupt_eq(int irq, void *dev_id);
58void ehca_tasklet_eq(unsigned long data); 58void ehca_tasklet_eq(unsigned long data);
59 59
60struct ehca_cpu_comp_task { 60struct ehca_cpu_comp_task {
diff --git a/drivers/infiniband/hw/ipath/ipath_intr.c b/drivers/infiniband/hw/ipath/ipath_intr.c
index 6bee53ce5f33..d9079ee12030 100644
--- a/drivers/infiniband/hw/ipath/ipath_intr.c
+++ b/drivers/infiniband/hw/ipath/ipath_intr.c
@@ -839,7 +839,7 @@ static void handle_urcv(struct ipath_devdata *dd, u32 istat)
839 } 839 }
840} 840}
841 841
842irqreturn_t ipath_intr(int irq, void *data, struct pt_regs *regs) 842irqreturn_t ipath_intr(int irq, void *data)
843{ 843{
844 struct ipath_devdata *dd = data; 844 struct ipath_devdata *dd = data;
845 u32 istat, chk0rcv = 0; 845 u32 istat, chk0rcv = 0;
diff --git a/drivers/infiniband/hw/ipath/ipath_kernel.h b/drivers/infiniband/hw/ipath/ipath_kernel.h
index d7540b71b451..7c436697d0e4 100644
--- a/drivers/infiniband/hw/ipath/ipath_kernel.h
+++ b/drivers/infiniband/hw/ipath/ipath_kernel.h
@@ -606,7 +606,7 @@ struct sk_buff *ipath_alloc_skb(struct ipath_devdata *dd, gfp_t);
606 606
607extern int ipath_diag_inuse; 607extern int ipath_diag_inuse;
608 608
609irqreturn_t ipath_intr(int irq, void *devid, struct pt_regs *regs); 609irqreturn_t ipath_intr(int irq, void *devid);
610void ipath_decode_err(char *buf, size_t blen, ipath_err_t err); 610void ipath_decode_err(char *buf, size_t blen, ipath_err_t err);
611#if __IPATH_INFO || __IPATH_DBG 611#if __IPATH_INFO || __IPATH_DBG
612extern const char *ipath_ibcstatus_str[]; 612extern const char *ipath_ibcstatus_str[];
diff --git a/drivers/infiniband/hw/mthca/mthca_eq.c b/drivers/infiniband/hw/mthca/mthca_eq.c
index a29b1b6d82b1..e284e0613a94 100644
--- a/drivers/infiniband/hw/mthca/mthca_eq.c
+++ b/drivers/infiniband/hw/mthca/mthca_eq.c
@@ -405,7 +405,7 @@ static int mthca_eq_int(struct mthca_dev *dev, struct mthca_eq *eq)
405 return eqes_found; 405 return eqes_found;
406} 406}
407 407
408static irqreturn_t mthca_tavor_interrupt(int irq, void *dev_ptr, struct pt_regs *regs) 408static irqreturn_t mthca_tavor_interrupt(int irq, void *dev_ptr)
409{ 409{
410 struct mthca_dev *dev = dev_ptr; 410 struct mthca_dev *dev = dev_ptr;
411 u32 ecr; 411 u32 ecr;
@@ -432,8 +432,7 @@ static irqreturn_t mthca_tavor_interrupt(int irq, void *dev_ptr, struct pt_regs
432 return IRQ_HANDLED; 432 return IRQ_HANDLED;
433} 433}
434 434
435static irqreturn_t mthca_tavor_msi_x_interrupt(int irq, void *eq_ptr, 435static irqreturn_t mthca_tavor_msi_x_interrupt(int irq, void *eq_ptr)
436 struct pt_regs *regs)
437{ 436{
438 struct mthca_eq *eq = eq_ptr; 437 struct mthca_eq *eq = eq_ptr;
439 struct mthca_dev *dev = eq->dev; 438 struct mthca_dev *dev = eq->dev;
@@ -446,7 +445,7 @@ static irqreturn_t mthca_tavor_msi_x_interrupt(int irq, void *eq_ptr,
446 return IRQ_HANDLED; 445 return IRQ_HANDLED;
447} 446}
448 447
449static irqreturn_t mthca_arbel_interrupt(int irq, void *dev_ptr, struct pt_regs *regs) 448static irqreturn_t mthca_arbel_interrupt(int irq, void *dev_ptr)
450{ 449{
451 struct mthca_dev *dev = dev_ptr; 450 struct mthca_dev *dev = dev_ptr;
452 int work = 0; 451 int work = 0;
@@ -467,8 +466,7 @@ static irqreturn_t mthca_arbel_interrupt(int irq, void *dev_ptr, struct pt_regs
467 return IRQ_RETVAL(work); 466 return IRQ_RETVAL(work);
468} 467}
469 468
470static irqreturn_t mthca_arbel_msi_x_interrupt(int irq, void *eq_ptr, 469static irqreturn_t mthca_arbel_msi_x_interrupt(int irq, void *eq_ptr)
471 struct pt_regs *regs)
472{ 470{
473 struct mthca_eq *eq = eq_ptr; 471 struct mthca_eq *eq = eq_ptr;
474 struct mthca_dev *dev = eq->dev; 472 struct mthca_dev *dev = eq->dev;
diff --git a/drivers/input/joystick/amijoy.c b/drivers/input/joystick/amijoy.c
index 7249d324297b..650acf3a30b7 100644
--- a/drivers/input/joystick/amijoy.c
+++ b/drivers/input/joystick/amijoy.c
@@ -57,7 +57,7 @@ static DEFINE_MUTEX(amijoy_mutex);
57static struct input_dev *amijoy_dev[2]; 57static struct input_dev *amijoy_dev[2];
58static char *amijoy_phys[2] = { "amijoy/input0", "amijoy/input1" }; 58static char *amijoy_phys[2] = { "amijoy/input0", "amijoy/input1" };
59 59
60static irqreturn_t amijoy_interrupt(int irq, void *dummy, struct pt_regs *fp) 60static irqreturn_t amijoy_interrupt(int irq, void *dummy)
61{ 61{
62 int i, data = 0, button = 0; 62 int i, data = 0, button = 0;
63 63
@@ -69,8 +69,6 @@ static irqreturn_t amijoy_interrupt(int irq, void *dummy, struct pt_regs *fp)
69 case 1: data = ~amiga_custom.joy1dat; button = (~ciaa.pra >> 7) & 1; break; 69 case 1: data = ~amiga_custom.joy1dat; button = (~ciaa.pra >> 7) & 1; break;
70 } 70 }
71 71
72 input_regs(amijoy_dev[i], fp);
73
74 input_report_key(amijoy_dev[i], BTN_TRIGGER, button); 72 input_report_key(amijoy_dev[i], BTN_TRIGGER, button);
75 73
76 input_report_abs(amijoy_dev[i], ABS_X, ((data >> 1) & 1) - ((data >> 9) & 1)); 74 input_report_abs(amijoy_dev[i], ABS_X, ((data >> 1) & 1) - ((data >> 9) & 1));
diff --git a/drivers/input/joystick/iforce/iforce-packets.c b/drivers/input/joystick/iforce/iforce-packets.c
index 8632d47a7fbe..808f05932a6f 100644
--- a/drivers/input/joystick/iforce/iforce-packets.c
+++ b/drivers/input/joystick/iforce/iforce-packets.c
@@ -155,7 +155,7 @@ static int mark_core_as_ready(struct iforce *iforce, unsigned short addr)
155 return -1; 155 return -1;
156} 156}
157 157
158void iforce_process_packet(struct iforce *iforce, u16 cmd, unsigned char *data, struct pt_regs *regs) 158void iforce_process_packet(struct iforce *iforce, u16 cmd, unsigned char *data)
159{ 159{
160 struct input_dev *dev = iforce->dev; 160 struct input_dev *dev = iforce->dev;
161 int i; 161 int i;
@@ -183,9 +183,6 @@ void iforce_process_packet(struct iforce *iforce, u16 cmd, unsigned char *data,
183 183
184 case 0x01: /* joystick position data */ 184 case 0x01: /* joystick position data */
185 case 0x03: /* wheel position data */ 185 case 0x03: /* wheel position data */
186
187 input_regs(dev, regs);
188
189 if (HI(cmd) == 1) { 186 if (HI(cmd) == 1) {
190 input_report_abs(dev, ABS_X, (__s16) (((__s16)data[1] << 8) | data[0])); 187 input_report_abs(dev, ABS_X, (__s16) (((__s16)data[1] << 8) | data[0]));
191 input_report_abs(dev, ABS_Y, (__s16) (((__s16)data[3] << 8) | data[2])); 188 input_report_abs(dev, ABS_Y, (__s16) (((__s16)data[3] << 8) | data[2]));
@@ -224,7 +221,6 @@ void iforce_process_packet(struct iforce *iforce, u16 cmd, unsigned char *data,
224 break; 221 break;
225 222
226 case 0x02: /* status report */ 223 case 0x02: /* status report */
227 input_regs(dev, regs);
228 input_report_key(dev, BTN_DEAD, data[0] & 0x02); 224 input_report_key(dev, BTN_DEAD, data[0] & 0x02);
229 input_sync(dev); 225 input_sync(dev);
230 226
diff --git a/drivers/input/joystick/iforce/iforce-serio.c b/drivers/input/joystick/iforce/iforce-serio.c
index 64a78c515484..ca08f45c2040 100644
--- a/drivers/input/joystick/iforce/iforce-serio.c
+++ b/drivers/input/joystick/iforce/iforce-serio.c
@@ -81,7 +81,7 @@ static void iforce_serio_write_wakeup(struct serio *serio)
81} 81}
82 82
83static irqreturn_t iforce_serio_irq(struct serio *serio, 83static irqreturn_t iforce_serio_irq(struct serio *serio,
84 unsigned char data, unsigned int flags, struct pt_regs *regs) 84 unsigned char data, unsigned int flags)
85{ 85{
86 struct iforce *iforce = serio_get_drvdata(serio); 86 struct iforce *iforce = serio_get_drvdata(serio);
87 87
@@ -115,7 +115,7 @@ static irqreturn_t iforce_serio_irq(struct serio *serio,
115 } 115 }
116 116
117 if (iforce->idx == iforce->len) { 117 if (iforce->idx == iforce->len) {
118 iforce_process_packet(iforce, (iforce->id << 8) | iforce->idx, iforce->data, regs); 118 iforce_process_packet(iforce, (iforce->id << 8) | iforce->idx, iforce->data);
119 iforce->pkt = 0; 119 iforce->pkt = 0;
120 iforce->id = 0; 120 iforce->id = 0;
121 iforce->len = 0; 121 iforce->len = 0;
diff --git a/drivers/input/joystick/iforce/iforce-usb.c b/drivers/input/joystick/iforce/iforce-usb.c
index fe79d158456d..105112fb7b57 100644
--- a/drivers/input/joystick/iforce/iforce-usb.c
+++ b/drivers/input/joystick/iforce/iforce-usb.c
@@ -74,7 +74,7 @@ void iforce_usb_xmit(struct iforce *iforce)
74 spin_unlock_irqrestore(&iforce->xmit_lock, flags); 74 spin_unlock_irqrestore(&iforce->xmit_lock, flags);
75} 75}
76 76
77static void iforce_usb_irq(struct urb *urb, struct pt_regs *regs) 77static void iforce_usb_irq(struct urb *urb)
78{ 78{
79 struct iforce *iforce = urb->context; 79 struct iforce *iforce = urb->context;
80 int status; 80 int status;
@@ -96,7 +96,7 @@ static void iforce_usb_irq(struct urb *urb, struct pt_regs *regs)
96 } 96 }
97 97
98 iforce_process_packet(iforce, 98 iforce_process_packet(iforce,
99 (iforce->data[0] << 8) | (urb->actual_length - 1), iforce->data + 1, regs); 99 (iforce->data[0] << 8) | (urb->actual_length - 1), iforce->data + 1);
100 100
101exit: 101exit:
102 status = usb_submit_urb (urb, GFP_ATOMIC); 102 status = usb_submit_urb (urb, GFP_ATOMIC);
@@ -105,7 +105,7 @@ exit:
105 __FUNCTION__, status); 105 __FUNCTION__, status);
106} 106}
107 107
108static void iforce_usb_out(struct urb *urb, struct pt_regs *regs) 108static void iforce_usb_out(struct urb *urb)
109{ 109{
110 struct iforce *iforce = urb->context; 110 struct iforce *iforce = urb->context;
111 111
@@ -119,7 +119,7 @@ static void iforce_usb_out(struct urb *urb, struct pt_regs *regs)
119 wake_up(&iforce->wait); 119 wake_up(&iforce->wait);
120} 120}
121 121
122static void iforce_usb_ctrl(struct urb *urb, struct pt_regs *regs) 122static void iforce_usb_ctrl(struct urb *urb)
123{ 123{
124 struct iforce *iforce = urb->context; 124 struct iforce *iforce = urb->context;
125 if (urb->status) return; 125 if (urb->status) return;
diff --git a/drivers/input/joystick/iforce/iforce.h b/drivers/input/joystick/iforce/iforce.h
index 947df2739843..ffaeaefa1a42 100644
--- a/drivers/input/joystick/iforce/iforce.h
+++ b/drivers/input/joystick/iforce/iforce.h
@@ -160,7 +160,7 @@ void iforce_delete_device(struct iforce *iforce);
160 160
161/* iforce-packets.c */ 161/* iforce-packets.c */
162int iforce_control_playback(struct iforce*, u16 id, unsigned int); 162int iforce_control_playback(struct iforce*, u16 id, unsigned int);
163void iforce_process_packet(struct iforce *iforce, u16 cmd, unsigned char *data, struct pt_regs *regs); 163void iforce_process_packet(struct iforce *iforce, u16 cmd, unsigned char *data);
164int iforce_send_packet(struct iforce *iforce, u16 cmd, unsigned char* data); 164int iforce_send_packet(struct iforce *iforce, u16 cmd, unsigned char* data);
165void iforce_dump_packet(char *msg, u16 cmd, unsigned char *data) ; 165void iforce_dump_packet(char *msg, u16 cmd, unsigned char *data) ;
166int iforce_get_id_packet(struct iforce *iforce, char *packet); 166int iforce_get_id_packet(struct iforce *iforce, char *packet);
diff --git a/drivers/input/joystick/magellan.c b/drivers/input/joystick/magellan.c
index 168b1061a03b..e3d19444ba2e 100644
--- a/drivers/input/joystick/magellan.c
+++ b/drivers/input/joystick/magellan.c
@@ -82,7 +82,7 @@ static int magellan_crunch_nibbles(unsigned char *data, int count)
82 return 0; 82 return 0;
83} 83}
84 84
85static void magellan_process_packet(struct magellan* magellan, struct pt_regs *regs) 85static void magellan_process_packet(struct magellan* magellan)
86{ 86{
87 struct input_dev *dev = magellan->dev; 87 struct input_dev *dev = magellan->dev;
88 unsigned char *data = magellan->data; 88 unsigned char *data = magellan->data;
@@ -90,8 +90,6 @@ static void magellan_process_packet(struct magellan* magellan, struct pt_regs *r
90 90
91 if (!magellan->idx) return; 91 if (!magellan->idx) return;
92 92
93 input_regs(dev, regs);
94
95 switch (magellan->data[0]) { 93 switch (magellan->data[0]) {
96 94
97 case 'd': /* Axis data */ 95 case 'd': /* Axis data */
@@ -115,12 +113,12 @@ static void magellan_process_packet(struct magellan* magellan, struct pt_regs *r
115} 113}
116 114
117static irqreturn_t magellan_interrupt(struct serio *serio, 115static irqreturn_t magellan_interrupt(struct serio *serio,
118 unsigned char data, unsigned int flags, struct pt_regs *regs) 116 unsigned char data, unsigned int flags)
119{ 117{
120 struct magellan* magellan = serio_get_drvdata(serio); 118 struct magellan* magellan = serio_get_drvdata(serio);
121 119
122 if (data == '\r') { 120 if (data == '\r') {
123 magellan_process_packet(magellan, regs); 121 magellan_process_packet(magellan);
124 magellan->idx = 0; 122 magellan->idx = 0;
125 } else { 123 } else {
126 if (magellan->idx < MAGELLAN_MAX_LENGTH) 124 if (magellan->idx < MAGELLAN_MAX_LENGTH)
diff --git a/drivers/input/joystick/spaceball.c b/drivers/input/joystick/spaceball.c
index 7a19ee052972..2a9808cf826f 100644
--- a/drivers/input/joystick/spaceball.c
+++ b/drivers/input/joystick/spaceball.c
@@ -82,7 +82,7 @@ struct spaceball {
82 * SpaceBall. 82 * SpaceBall.
83 */ 83 */
84 84
85static void spaceball_process_packet(struct spaceball* spaceball, struct pt_regs *regs) 85static void spaceball_process_packet(struct spaceball* spaceball)
86{ 86{
87 struct input_dev *dev = spaceball->dev; 87 struct input_dev *dev = spaceball->dev;
88 unsigned char *data = spaceball->data; 88 unsigned char *data = spaceball->data;
@@ -90,8 +90,6 @@ static void spaceball_process_packet(struct spaceball* spaceball, struct pt_regs
90 90
91 if (spaceball->idx < 2) return; 91 if (spaceball->idx < 2) return;
92 92
93 input_regs(dev, regs);
94
95 switch (spaceball->data[0]) { 93 switch (spaceball->data[0]) {
96 94
97 case 'D': /* Ball data */ 95 case 'D': /* Ball data */
@@ -151,13 +149,13 @@ static void spaceball_process_packet(struct spaceball* spaceball, struct pt_regs
151 */ 149 */
152 150
153static irqreturn_t spaceball_interrupt(struct serio *serio, 151static irqreturn_t spaceball_interrupt(struct serio *serio,
154 unsigned char data, unsigned int flags, struct pt_regs *regs) 152 unsigned char data, unsigned int flags)
155{ 153{
156 struct spaceball *spaceball = serio_get_drvdata(serio); 154 struct spaceball *spaceball = serio_get_drvdata(serio);
157 155
158 switch (data) { 156 switch (data) {
159 case 0xd: 157 case 0xd:
160 spaceball_process_packet(spaceball, regs); 158 spaceball_process_packet(spaceball);
161 spaceball->idx = 0; 159 spaceball->idx = 0;
162 spaceball->escape = 0; 160 spaceball->escape = 0;
163 break; 161 break;
diff --git a/drivers/input/joystick/spaceorb.c b/drivers/input/joystick/spaceorb.c
index 3e2782e79834..c4db0247c5fb 100644
--- a/drivers/input/joystick/spaceorb.c
+++ b/drivers/input/joystick/spaceorb.c
@@ -74,7 +74,7 @@ static unsigned char *spaceorb_errors[] = { "EEPROM storing 0 failed", "Receive
74 * SpaceOrb. 74 * SpaceOrb.
75 */ 75 */
76 76
77static void spaceorb_process_packet(struct spaceorb *spaceorb, struct pt_regs *regs) 77static void spaceorb_process_packet(struct spaceorb *spaceorb)
78{ 78{
79 struct input_dev *dev = spaceorb->dev; 79 struct input_dev *dev = spaceorb->dev;
80 unsigned char *data = spaceorb->data; 80 unsigned char *data = spaceorb->data;
@@ -86,8 +86,6 @@ static void spaceorb_process_packet(struct spaceorb *spaceorb, struct pt_regs *r
86 for (i = 0; i < spaceorb->idx; i++) c ^= data[i]; 86 for (i = 0; i < spaceorb->idx; i++) c ^= data[i];
87 if (c) return; 87 if (c) return;
88 88
89 input_regs(dev, regs);
90
91 switch (data[0]) { 89 switch (data[0]) {
92 90
93 case 'R': /* Reset packet */ 91 case 'R': /* Reset packet */
@@ -131,12 +129,12 @@ static void spaceorb_process_packet(struct spaceorb *spaceorb, struct pt_regs *r
131} 129}
132 130
133static irqreturn_t spaceorb_interrupt(struct serio *serio, 131static irqreturn_t spaceorb_interrupt(struct serio *serio,
134 unsigned char data, unsigned int flags, struct pt_regs *regs) 132 unsigned char data, unsigned int flags)
135{ 133{
136 struct spaceorb* spaceorb = serio_get_drvdata(serio); 134 struct spaceorb* spaceorb = serio_get_drvdata(serio);
137 135
138 if (~data & 0x80) { 136 if (~data & 0x80) {
139 if (spaceorb->idx) spaceorb_process_packet(spaceorb, regs); 137 if (spaceorb->idx) spaceorb_process_packet(spaceorb);
140 spaceorb->idx = 0; 138 spaceorb->idx = 0;
141 } 139 }
142 if (spaceorb->idx < SPACEORB_MAX_LENGTH) 140 if (spaceorb->idx < SPACEORB_MAX_LENGTH)
diff --git a/drivers/input/joystick/stinger.c b/drivers/input/joystick/stinger.c
index 011ec4858e15..1ffb03223311 100644
--- a/drivers/input/joystick/stinger.c
+++ b/drivers/input/joystick/stinger.c
@@ -64,15 +64,13 @@ struct stinger {
64 * Stinger. It updates the data accordingly. 64 * Stinger. It updates the data accordingly.
65 */ 65 */
66 66
67static void stinger_process_packet(struct stinger *stinger, struct pt_regs *regs) 67static void stinger_process_packet(struct stinger *stinger)
68{ 68{
69 struct input_dev *dev = stinger->dev; 69 struct input_dev *dev = stinger->dev;
70 unsigned char *data = stinger->data; 70 unsigned char *data = stinger->data;
71 71
72 if (!stinger->idx) return; 72 if (!stinger->idx) return;
73 73
74 input_regs(dev, regs);
75
76 input_report_key(dev, BTN_A, ((data[0] & 0x20) >> 5)); 74 input_report_key(dev, BTN_A, ((data[0] & 0x20) >> 5));
77 input_report_key(dev, BTN_B, ((data[0] & 0x10) >> 4)); 75 input_report_key(dev, BTN_B, ((data[0] & 0x10) >> 4));
78 input_report_key(dev, BTN_C, ((data[0] & 0x08) >> 3)); 76 input_report_key(dev, BTN_C, ((data[0] & 0x08) >> 3));
@@ -99,7 +97,7 @@ static void stinger_process_packet(struct stinger *stinger, struct pt_regs *regs
99 */ 97 */
100 98
101static irqreturn_t stinger_interrupt(struct serio *serio, 99static irqreturn_t stinger_interrupt(struct serio *serio,
102 unsigned char data, unsigned int flags, struct pt_regs *regs) 100 unsigned char data, unsigned int flags)
103{ 101{
104 struct stinger *stinger = serio_get_drvdata(serio); 102 struct stinger *stinger = serio_get_drvdata(serio);
105 103
@@ -109,7 +107,7 @@ static irqreturn_t stinger_interrupt(struct serio *serio,
109 stinger->data[stinger->idx++] = data; 107 stinger->data[stinger->idx++] = data;
110 108
111 if (stinger->idx == 4) { 109 if (stinger->idx == 4) {
112 stinger_process_packet(stinger, regs); 110 stinger_process_packet(stinger);
113 stinger->idx = 0; 111 stinger->idx = 0;
114 } 112 }
115 113
diff --git a/drivers/input/joystick/twidjoy.c b/drivers/input/joystick/twidjoy.c
index 076f237d9654..49085df2d631 100644
--- a/drivers/input/joystick/twidjoy.c
+++ b/drivers/input/joystick/twidjoy.c
@@ -104,7 +104,7 @@ struct twidjoy {
104 * Twiddler. It updates the data accordingly. 104 * Twiddler. It updates the data accordingly.
105 */ 105 */
106 106
107static void twidjoy_process_packet(struct twidjoy *twidjoy, struct pt_regs *regs) 107static void twidjoy_process_packet(struct twidjoy *twidjoy)
108{ 108{
109 struct input_dev *dev = twidjoy->dev; 109 struct input_dev *dev = twidjoy->dev;
110 unsigned char *data = twidjoy->data; 110 unsigned char *data = twidjoy->data;
@@ -113,8 +113,6 @@ static void twidjoy_process_packet(struct twidjoy *twidjoy, struct pt_regs *regs
113 113
114 button_bits = ((data[1] & 0x7f) << 7) | (data[0] & 0x7f); 114 button_bits = ((data[1] & 0x7f) << 7) | (data[0] & 0x7f);
115 115
116 input_regs(dev, regs);
117
118 for (bp = twidjoy_buttons; bp->bitmask; bp++) { 116 for (bp = twidjoy_buttons; bp->bitmask; bp++) {
119 int value = (button_bits & (bp->bitmask << bp->bitshift)) >> bp->bitshift; 117 int value = (button_bits & (bp->bitmask << bp->bitshift)) >> bp->bitshift;
120 int i; 118 int i;
@@ -141,7 +139,7 @@ static void twidjoy_process_packet(struct twidjoy *twidjoy, struct pt_regs *regs
141 * packet processing routine. 139 * packet processing routine.
142 */ 140 */
143 141
144static irqreturn_t twidjoy_interrupt(struct serio *serio, unsigned char data, unsigned int flags, struct pt_regs *regs) 142static irqreturn_t twidjoy_interrupt(struct serio *serio, unsigned char data, unsigned int flags)
145{ 143{
146 struct twidjoy *twidjoy = serio_get_drvdata(serio); 144 struct twidjoy *twidjoy = serio_get_drvdata(serio);
147 145
@@ -158,7 +156,7 @@ static irqreturn_t twidjoy_interrupt(struct serio *serio, unsigned char data, un
158 twidjoy->data[twidjoy->idx++] = data; 156 twidjoy->data[twidjoy->idx++] = data;
159 157
160 if (twidjoy->idx == TWIDJOY_MAX_LENGTH) { 158 if (twidjoy->idx == TWIDJOY_MAX_LENGTH) {
161 twidjoy_process_packet(twidjoy, regs); 159 twidjoy_process_packet(twidjoy);
162 twidjoy->idx = 0; 160 twidjoy->idx = 0;
163 } 161 }
164 162
diff --git a/drivers/input/joystick/warrior.c b/drivers/input/joystick/warrior.c
index f9c1a03214eb..35edea1ab955 100644
--- a/drivers/input/joystick/warrior.c
+++ b/drivers/input/joystick/warrior.c
@@ -64,15 +64,13 @@ struct warrior {
64 * Warrior. It updates the data accordingly. 64 * Warrior. It updates the data accordingly.
65 */ 65 */
66 66
67static void warrior_process_packet(struct warrior *warrior, struct pt_regs *regs) 67static void warrior_process_packet(struct warrior *warrior)
68{ 68{
69 struct input_dev *dev = warrior->dev; 69 struct input_dev *dev = warrior->dev;
70 unsigned char *data = warrior->data; 70 unsigned char *data = warrior->data;
71 71
72 if (!warrior->idx) return; 72 if (!warrior->idx) return;
73 73
74 input_regs(dev, regs);
75
76 switch ((data[0] >> 4) & 7) { 74 switch ((data[0] >> 4) & 7) {
77 case 1: /* Button data */ 75 case 1: /* Button data */
78 input_report_key(dev, BTN_TRIGGER, data[3] & 1); 76 input_report_key(dev, BTN_TRIGGER, data[3] & 1);
@@ -101,12 +99,12 @@ static void warrior_process_packet(struct warrior *warrior, struct pt_regs *regs
101 */ 99 */
102 100
103static irqreturn_t warrior_interrupt(struct serio *serio, 101static irqreturn_t warrior_interrupt(struct serio *serio,
104 unsigned char data, unsigned int flags, struct pt_regs *regs) 102 unsigned char data, unsigned int flags)
105{ 103{
106 struct warrior *warrior = serio_get_drvdata(serio); 104 struct warrior *warrior = serio_get_drvdata(serio);
107 105
108 if (data & 0x80) { 106 if (data & 0x80) {
109 if (warrior->idx) warrior_process_packet(warrior, regs); 107 if (warrior->idx) warrior_process_packet(warrior);
110 warrior->idx = 0; 108 warrior->idx = 0;
111 warrior->len = warrior_lengths[(data >> 4) & 7]; 109 warrior->len = warrior_lengths[(data >> 4) & 7];
112 } 110 }
@@ -115,7 +113,7 @@ static irqreturn_t warrior_interrupt(struct serio *serio,
115 warrior->data[warrior->idx++] = data; 113 warrior->data[warrior->idx++] = data;
116 114
117 if (warrior->idx == warrior->len) { 115 if (warrior->idx == warrior->len) {
118 if (warrior->idx) warrior_process_packet(warrior, regs); 116 if (warrior->idx) warrior_process_packet(warrior);
119 warrior->idx = 0; 117 warrior->idx = 0;
120 warrior->len = 0; 118 warrior->len = 0;
121 } 119 }
diff --git a/drivers/input/keyboard/amikbd.c b/drivers/input/keyboard/amikbd.c
index f1f9db9d282c..8abdbd0ee8f9 100644
--- a/drivers/input/keyboard/amikbd.c
+++ b/drivers/input/keyboard/amikbd.c
@@ -158,7 +158,7 @@ static const char *amikbd_messages[8] = {
158 158
159static struct input_dev *amikbd_dev; 159static struct input_dev *amikbd_dev;
160 160
161static irqreturn_t amikbd_interrupt(int irq, void *dummy, struct pt_regs *fp) 161static irqreturn_t amikbd_interrupt(int irq, void *dummy)
162{ 162{
163 unsigned char scancode, down; 163 unsigned char scancode, down;
164 164
@@ -171,8 +171,6 @@ static irqreturn_t amikbd_interrupt(int irq, void *dummy, struct pt_regs *fp)
171 scancode >>= 1; 171 scancode >>= 1;
172 172
173 if (scancode < 0x78) { /* scancodes < 0x78 are keys */ 173 if (scancode < 0x78) { /* scancodes < 0x78 are keys */
174 input_regs(amikbd_dev, fp);
175
176 if (scancode == 98) { /* CapsLock is a toggle switch key on Amiga */ 174 if (scancode == 98) { /* CapsLock is a toggle switch key on Amiga */
177 input_report_key(amikbd_dev, scancode, 1); 175 input_report_key(amikbd_dev, scancode, 1);
178 input_report_key(amikbd_dev, scancode, 0); 176 input_report_key(amikbd_dev, scancode, 0);
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index 40244d4ce0f1..b6ef9eaad1dc 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -318,7 +318,7 @@ static unsigned int atkbd_compat_scancode(struct atkbd *atkbd, unsigned int code
318 */ 318 */
319 319
320static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data, 320static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
321 unsigned int flags, struct pt_regs *regs) 321 unsigned int flags)
322{ 322{
323 struct atkbd *atkbd = serio_get_drvdata(serio); 323 struct atkbd *atkbd = serio_get_drvdata(serio);
324 struct input_dev *dev = atkbd->dev; 324 struct input_dev *dev = atkbd->dev;
@@ -458,7 +458,6 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
458 atkbd->time = jiffies + msecs_to_jiffies(dev->rep[REP_DELAY]) / 2; 458 atkbd->time = jiffies + msecs_to_jiffies(dev->rep[REP_DELAY]) / 2;
459 } 459 }
460 460
461 input_regs(dev, regs);
462 input_event(dev, EV_KEY, keycode, value); 461 input_event(dev, EV_KEY, keycode, value);
463 input_sync(dev); 462 input_sync(dev);
464 463
@@ -469,7 +468,6 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
469 } 468 }
470 469
471 if (atkbd->scroll) { 470 if (atkbd->scroll) {
472 input_regs(dev, regs);
473 if (click != -1) 471 if (click != -1)
474 input_report_key(dev, BTN_MIDDLE, click); 472 input_report_key(dev, BTN_MIDDLE, click);
475 input_report_rel(dev, REL_WHEEL, scroll); 473 input_report_rel(dev, REL_WHEEL, scroll);
diff --git a/drivers/input/keyboard/corgikbd.c b/drivers/input/keyboard/corgikbd.c
index 1e03153b9bca..cb70970625b5 100644
--- a/drivers/input/keyboard/corgikbd.c
+++ b/drivers/input/keyboard/corgikbd.c
@@ -129,7 +129,7 @@ static inline void corgikbd_reset_col(int col)
129 */ 129 */
130 130
131/* Scan the hardware keyboard and push any changes up through the input layer */ 131/* Scan the hardware keyboard and push any changes up through the input layer */
132static void corgikbd_scankeyboard(struct corgikbd *corgikbd_data, struct pt_regs *regs) 132static void corgikbd_scankeyboard(struct corgikbd *corgikbd_data)
133{ 133{
134 unsigned int row, col, rowd; 134 unsigned int row, col, rowd;
135 unsigned long flags; 135 unsigned long flags;
@@ -140,9 +140,6 @@ static void corgikbd_scankeyboard(struct corgikbd *corgikbd_data, struct pt_regs
140 140
141 spin_lock_irqsave(&corgikbd_data->lock, flags); 141 spin_lock_irqsave(&corgikbd_data->lock, flags);
142 142
143 if (regs)
144 input_regs(corgikbd_data->input, regs);
145
146 num_pressed = 0; 143 num_pressed = 0;
147 for (col = 0; col < KB_COLS; col++) { 144 for (col = 0; col < KB_COLS; col++) {
148 /* 145 /*
@@ -191,14 +188,14 @@ static void corgikbd_scankeyboard(struct corgikbd *corgikbd_data, struct pt_regs
191/* 188/*
192 * corgi keyboard interrupt handler. 189 * corgi keyboard interrupt handler.
193 */ 190 */
194static irqreturn_t corgikbd_interrupt(int irq, void *dev_id, struct pt_regs *regs) 191static irqreturn_t corgikbd_interrupt(int irq, void *dev_id)
195{ 192{
196 struct corgikbd *corgikbd_data = dev_id; 193 struct corgikbd *corgikbd_data = dev_id;
197 194
198 if (!timer_pending(&corgikbd_data->timer)) { 195 if (!timer_pending(&corgikbd_data->timer)) {
199 /** wait chattering delay **/ 196 /** wait chattering delay **/
200 udelay(20); 197 udelay(20);
201 corgikbd_scankeyboard(corgikbd_data, regs); 198 corgikbd_scankeyboard(corgikbd_data);
202 } 199 }
203 200
204 return IRQ_HANDLED; 201 return IRQ_HANDLED;
diff --git a/drivers/input/keyboard/hil_kbd.c b/drivers/input/keyboard/hil_kbd.c
index 2e4abdc26367..c9b0b8978cd8 100644
--- a/drivers/input/keyboard/hil_kbd.c
+++ b/drivers/input/keyboard/hil_kbd.c
@@ -198,7 +198,7 @@ static void hil_kbd_process_err(struct hil_kbd *kbd) {
198} 198}
199 199
200static irqreturn_t hil_kbd_interrupt(struct serio *serio, 200static irqreturn_t hil_kbd_interrupt(struct serio *serio,
201 unsigned char data, unsigned int flags, struct pt_regs *regs) 201 unsigned char data, unsigned int flags)
202{ 202{
203 struct hil_kbd *kbd; 203 struct hil_kbd *kbd;
204 hil_packet packet; 204 hil_packet packet;
diff --git a/drivers/input/keyboard/hilkbd.c b/drivers/input/keyboard/hilkbd.c
index d22c7c624296..54bc569db4b0 100644
--- a/drivers/input/keyboard/hilkbd.c
+++ b/drivers/input/keyboard/hilkbd.c
@@ -150,7 +150,7 @@ static inline void handle_data(unsigned char s, unsigned char c)
150/* 150/*
151 * Handle HIL interrupts. 151 * Handle HIL interrupts.
152 */ 152 */
153static irqreturn_t hil_interrupt(int irq, void *handle, struct pt_regs *regs) 153static irqreturn_t hil_interrupt(int irq, void *handle)
154{ 154{
155 unsigned char s, c; 155 unsigned char s, c;
156 156
diff --git a/drivers/input/keyboard/lkkbd.c b/drivers/input/keyboard/lkkbd.c
index 5174224cadb4..708d5a1bc3d2 100644
--- a/drivers/input/keyboard/lkkbd.c
+++ b/drivers/input/keyboard/lkkbd.c
@@ -453,8 +453,7 @@ lkkbd_detection_done (struct lkkbd *lk)
453 * is received. 453 * is received.
454 */ 454 */
455static irqreturn_t 455static irqreturn_t
456lkkbd_interrupt (struct serio *serio, unsigned char data, unsigned int flags, 456lkkbd_interrupt (struct serio *serio, unsigned char data, unsigned int flags)
457 struct pt_regs *regs)
458{ 457{
459 struct lkkbd *lk = serio_get_drvdata (serio); 458 struct lkkbd *lk = serio_get_drvdata (serio);
460 int i; 459 int i;
@@ -473,7 +472,6 @@ lkkbd_interrupt (struct serio *serio, unsigned char data, unsigned int flags,
473 472
474 switch (data) { 473 switch (data) {
475 case LK_ALL_KEYS_UP: 474 case LK_ALL_KEYS_UP:
476 input_regs (lk->dev, regs);
477 for (i = 0; i < ARRAY_SIZE (lkkbd_keycode); i++) 475 for (i = 0; i < ARRAY_SIZE (lkkbd_keycode); i++)
478 if (lk->keycode[i] != KEY_RESERVED) 476 if (lk->keycode[i] != KEY_RESERVED)
479 input_report_key (lk->dev, lk->keycode[i], 0); 477 input_report_key (lk->dev, lk->keycode[i], 0);
@@ -501,7 +499,6 @@ lkkbd_interrupt (struct serio *serio, unsigned char data, unsigned int flags,
501 499
502 default: 500 default:
503 if (lk->keycode[data] != KEY_RESERVED) { 501 if (lk->keycode[data] != KEY_RESERVED) {
504 input_regs (lk->dev, regs);
505 if (!test_bit (lk->keycode[data], lk->dev->key)) 502 if (!test_bit (lk->keycode[data], lk->dev->key))
506 input_report_key (lk->dev, lk->keycode[data], 1); 503 input_report_key (lk->dev, lk->keycode[data], 1);
507 else 504 else
diff --git a/drivers/input/keyboard/locomokbd.c b/drivers/input/keyboard/locomokbd.c
index 83906f80ba21..fd33c9cc3272 100644
--- a/drivers/input/keyboard/locomokbd.c
+++ b/drivers/input/keyboard/locomokbd.c
@@ -126,7 +126,7 @@ static inline void locomokbd_reset_col(unsigned long membase, int col)
126 */ 126 */
127 127
128/* Scan the hardware keyboard and push any changes up through the input layer */ 128/* Scan the hardware keyboard and push any changes up through the input layer */
129static void locomokbd_scankeyboard(struct locomokbd *locomokbd, struct pt_regs *regs) 129static void locomokbd_scankeyboard(struct locomokbd *locomokbd)
130{ 130{
131 unsigned int row, col, rowd, scancode; 131 unsigned int row, col, rowd, scancode;
132 unsigned long flags; 132 unsigned long flags;
@@ -135,8 +135,6 @@ static void locomokbd_scankeyboard(struct locomokbd *locomokbd, struct pt_regs *
135 135
136 spin_lock_irqsave(&locomokbd->lock, flags); 136 spin_lock_irqsave(&locomokbd->lock, flags);
137 137
138 input_regs(locomokbd->input, regs);
139
140 locomokbd_charge_all(membase); 138 locomokbd_charge_all(membase);
141 139
142 num_pressed = 0; 140 num_pressed = 0;
@@ -171,13 +169,13 @@ static void locomokbd_scankeyboard(struct locomokbd *locomokbd, struct pt_regs *
171/* 169/*
172 * LoCoMo keyboard interrupt handler. 170 * LoCoMo keyboard interrupt handler.
173 */ 171 */
174static irqreturn_t locomokbd_interrupt(int irq, void *dev_id, struct pt_regs *regs) 172static irqreturn_t locomokbd_interrupt(int irq, void *dev_id)
175{ 173{
176 struct locomokbd *locomokbd = dev_id; 174 struct locomokbd *locomokbd = dev_id;
177 /** wait chattering delay **/ 175 /** wait chattering delay **/
178 udelay(100); 176 udelay(100);
179 177
180 locomokbd_scankeyboard(locomokbd, regs); 178 locomokbd_scankeyboard(locomokbd);
181 179
182 return IRQ_HANDLED; 180 return IRQ_HANDLED;
183} 181}
diff --git a/drivers/input/keyboard/newtonkbd.c b/drivers/input/keyboard/newtonkbd.c
index 40a3f551247e..9282e4e082bd 100644
--- a/drivers/input/keyboard/newtonkbd.c
+++ b/drivers/input/keyboard/newtonkbd.c
@@ -65,13 +65,12 @@ struct nkbd {
65}; 65};
66 66
67static irqreturn_t nkbd_interrupt(struct serio *serio, 67static irqreturn_t nkbd_interrupt(struct serio *serio,
68 unsigned char data, unsigned int flags, struct pt_regs *regs) 68 unsigned char data, unsigned int flags)
69{ 69{
70 struct nkbd *nkbd = serio_get_drvdata(serio); 70 struct nkbd *nkbd = serio_get_drvdata(serio);
71 71
72 /* invalid scan codes are probably the init sequence, so we ignore them */ 72 /* invalid scan codes are probably the init sequence, so we ignore them */
73 if (nkbd->keycode[data & NKBD_KEY]) { 73 if (nkbd->keycode[data & NKBD_KEY]) {
74 input_regs(nkbd->dev, regs);
75 input_report_key(nkbd->dev, nkbd->keycode[data & NKBD_KEY], data & NKBD_PRESS); 74 input_report_key(nkbd->dev, nkbd->keycode[data & NKBD_KEY], data & NKBD_PRESS);
76 input_sync(nkbd->dev); 75 input_sync(nkbd->dev);
77 } 76 }
diff --git a/drivers/input/keyboard/omap-keypad.c b/drivers/input/keyboard/omap-keypad.c
index d436287d1d2e..5680a6d95b2b 100644
--- a/drivers/input/keyboard/omap-keypad.c
+++ b/drivers/input/keyboard/omap-keypad.c
@@ -97,8 +97,7 @@ static u8 get_row_gpio_val(struct omap_kp *omap_kp)
97#define get_row_gpio_val(x) 0 97#define get_row_gpio_val(x) 0
98#endif 98#endif
99 99
100static irqreturn_t omap_kp_interrupt(int irq, void *dev_id, 100static irqreturn_t omap_kp_interrupt(int irq, void *dev_id)
101 struct pt_regs *regs)
102{ 101{
103 struct omap_kp *omap_kp = dev_id; 102 struct omap_kp *omap_kp = dev_id;
104 103
diff --git a/drivers/input/keyboard/spitzkbd.c b/drivers/input/keyboard/spitzkbd.c
index e385710233f4..8b18c009e3e0 100644
--- a/drivers/input/keyboard/spitzkbd.c
+++ b/drivers/input/keyboard/spitzkbd.c
@@ -176,7 +176,7 @@ static inline int spitzkbd_get_row_status(int col)
176 */ 176 */
177 177
178/* Scan the hardware keyboard and push any changes up through the input layer */ 178/* Scan the hardware keyboard and push any changes up through the input layer */
179static void spitzkbd_scankeyboard(struct spitzkbd *spitzkbd_data, struct pt_regs *regs) 179static void spitzkbd_scankeyboard(struct spitzkbd *spitzkbd_data)
180{ 180{
181 unsigned int row, col, rowd; 181 unsigned int row, col, rowd;
182 unsigned long flags; 182 unsigned long flags;
@@ -187,8 +187,6 @@ static void spitzkbd_scankeyboard(struct spitzkbd *spitzkbd_data, struct pt_regs
187 187
188 spin_lock_irqsave(&spitzkbd_data->lock, flags); 188 spin_lock_irqsave(&spitzkbd_data->lock, flags);
189 189
190 input_regs(spitzkbd_data->input, regs);
191
192 num_pressed = 0; 190 num_pressed = 0;
193 for (col = 0; col < KB_COLS; col++) { 191 for (col = 0; col < KB_COLS; col++) {
194 /* 192 /*
@@ -239,14 +237,14 @@ static void spitzkbd_scankeyboard(struct spitzkbd *spitzkbd_data, struct pt_regs
239/* 237/*
240 * spitz keyboard interrupt handler. 238 * spitz keyboard interrupt handler.
241 */ 239 */
242static irqreturn_t spitzkbd_interrupt(int irq, void *dev_id, struct pt_regs *regs) 240static irqreturn_t spitzkbd_interrupt(int irq, void *dev_id)
243{ 241{
244 struct spitzkbd *spitzkbd_data = dev_id; 242 struct spitzkbd *spitzkbd_data = dev_id;
245 243
246 if (!timer_pending(&spitzkbd_data->timer)) { 244 if (!timer_pending(&spitzkbd_data->timer)) {
247 /** wait chattering delay **/ 245 /** wait chattering delay **/
248 udelay(20); 246 udelay(20);
249 spitzkbd_scankeyboard(spitzkbd_data, regs); 247 spitzkbd_scankeyboard(spitzkbd_data);
250 } 248 }
251 249
252 return IRQ_HANDLED; 250 return IRQ_HANDLED;
@@ -267,7 +265,7 @@ static void spitzkbd_timer_callback(unsigned long data)
267 * We debounce the switches and pass them to the input system. 265 * We debounce the switches and pass them to the input system.
268 */ 266 */
269 267
270static irqreturn_t spitzkbd_hinge_isr(int irq, void *dev_id, struct pt_regs *regs) 268static irqreturn_t spitzkbd_hinge_isr(int irq, void *dev_id)
271{ 269{
272 struct spitzkbd *spitzkbd_data = dev_id; 270 struct spitzkbd *spitzkbd_data = dev_id;
273 271
diff --git a/drivers/input/keyboard/stowaway.c b/drivers/input/keyboard/stowaway.c
index 04c54c57f25c..e60937d17b1c 100644
--- a/drivers/input/keyboard/stowaway.c
+++ b/drivers/input/keyboard/stowaway.c
@@ -71,13 +71,12 @@ struct skbd {
71}; 71};
72 72
73static irqreturn_t skbd_interrupt(struct serio *serio, unsigned char data, 73static irqreturn_t skbd_interrupt(struct serio *serio, unsigned char data,
74 unsigned int flags, struct pt_regs *regs) 74 unsigned int flags)
75{ 75{
76 struct skbd *skbd = serio_get_drvdata(serio); 76 struct skbd *skbd = serio_get_drvdata(serio);
77 struct input_dev *dev = skbd->dev; 77 struct input_dev *dev = skbd->dev;
78 78
79 if (skbd->keycode[data & SKBD_KEY_MASK]) { 79 if (skbd->keycode[data & SKBD_KEY_MASK]) {
80 input_regs(dev, regs);
81 input_report_key(dev, skbd->keycode[data & SKBD_KEY_MASK], 80 input_report_key(dev, skbd->keycode[data & SKBD_KEY_MASK],
82 !(data & SKBD_RELEASE)); 81 !(data & SKBD_RELEASE));
83 input_sync(dev); 82 input_sync(dev);
diff --git a/drivers/input/keyboard/sunkbd.c b/drivers/input/keyboard/sunkbd.c
index 9dbd7b85686d..cac4781103c3 100644
--- a/drivers/input/keyboard/sunkbd.c
+++ b/drivers/input/keyboard/sunkbd.c
@@ -94,7 +94,7 @@ struct sunkbd {
94 */ 94 */
95 95
96static irqreturn_t sunkbd_interrupt(struct serio *serio, 96static irqreturn_t sunkbd_interrupt(struct serio *serio,
97 unsigned char data, unsigned int flags, struct pt_regs *regs) 97 unsigned char data, unsigned int flags)
98{ 98{
99 struct sunkbd* sunkbd = serio_get_drvdata(serio); 99 struct sunkbd* sunkbd = serio_get_drvdata(serio);
100 100
@@ -129,7 +129,6 @@ static irqreturn_t sunkbd_interrupt(struct serio *serio,
129 break; 129 break;
130 130
131 if (sunkbd->keycode[data & SUNKBD_KEY]) { 131 if (sunkbd->keycode[data & SUNKBD_KEY]) {
132 input_regs(sunkbd->dev, regs);
133 input_report_key(sunkbd->dev, sunkbd->keycode[data & SUNKBD_KEY], !(data & SUNKBD_RELEASE)); 132 input_report_key(sunkbd->dev, sunkbd->keycode[data & SUNKBD_KEY], !(data & SUNKBD_RELEASE));
134 input_sync(sunkbd->dev); 133 input_sync(sunkbd->dev);
135 } else { 134 } else {
diff --git a/drivers/input/keyboard/xtkbd.c b/drivers/input/keyboard/xtkbd.c
index 0821d53cf0c1..8c11dc935454 100644
--- a/drivers/input/keyboard/xtkbd.c
+++ b/drivers/input/keyboard/xtkbd.c
@@ -64,7 +64,7 @@ struct xtkbd {
64}; 64};
65 65
66static irqreturn_t xtkbd_interrupt(struct serio *serio, 66static irqreturn_t xtkbd_interrupt(struct serio *serio,
67 unsigned char data, unsigned int flags, struct pt_regs *regs) 67 unsigned char data, unsigned int flags)
68{ 68{
69 struct xtkbd *xtkbd = serio_get_drvdata(serio); 69 struct xtkbd *xtkbd = serio_get_drvdata(serio);
70 70
@@ -75,7 +75,6 @@ static irqreturn_t xtkbd_interrupt(struct serio *serio,
75 default: 75 default:
76 76
77 if (xtkbd->keycode[data & XTKBD_KEY]) { 77 if (xtkbd->keycode[data & XTKBD_KEY]) {
78 input_regs(xtkbd->dev, regs);
79 input_report_key(xtkbd->dev, xtkbd->keycode[data & XTKBD_KEY], !(data & XTKBD_RELEASE)); 78 input_report_key(xtkbd->dev, xtkbd->keycode[data & XTKBD_KEY], !(data & XTKBD_RELEASE));
80 input_sync(xtkbd->dev); 79 input_sync(xtkbd->dev);
81 } else { 80 } else {
diff --git a/drivers/input/misc/ixp4xx-beeper.c b/drivers/input/misc/ixp4xx-beeper.c
index 805b636e73d9..105c6fc27823 100644
--- a/drivers/input/misc/ixp4xx-beeper.c
+++ b/drivers/input/misc/ixp4xx-beeper.c
@@ -79,7 +79,7 @@ static int ixp4xx_spkr_event(struct input_dev *dev, unsigned int type, unsigned
79 return 0; 79 return 0;
80} 80}
81 81
82static irqreturn_t ixp4xx_spkr_interrupt(int irq, void *dev_id, struct pt_regs *regs) 82static irqreturn_t ixp4xx_spkr_interrupt(int irq, void *dev_id)
83{ 83{
84 /* clear interrupt */ 84 /* clear interrupt */
85 *IXP4XX_OSST = IXP4XX_OSST_TIMER_2_PEND; 85 *IXP4XX_OSST = IXP4XX_OSST_TIMER_2_PEND;
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 450b68a619fd..4e71a66fc7fc 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -76,7 +76,7 @@ static const struct alps_model_info alps_model_data[] = {
76 * on a dualpoint, etc. 76 * on a dualpoint, etc.
77 */ 77 */
78 78
79static void alps_process_packet(struct psmouse *psmouse, struct pt_regs *regs) 79static void alps_process_packet(struct psmouse *psmouse)
80{ 80{
81 struct alps_data *priv = psmouse->private; 81 struct alps_data *priv = psmouse->private;
82 unsigned char *packet = psmouse->packet; 82 unsigned char *packet = psmouse->packet;
@@ -85,8 +85,6 @@ static void alps_process_packet(struct psmouse *psmouse, struct pt_regs *regs)
85 int x, y, z, ges, fin, left, right, middle; 85 int x, y, z, ges, fin, left, right, middle;
86 int back = 0, forward = 0; 86 int back = 0, forward = 0;
87 87
88 input_regs(dev, regs);
89
90 if ((packet[0] & 0xc8) == 0x08) { /* 3-byte PS/2 packet */ 88 if ((packet[0] & 0xc8) == 0x08) { /* 3-byte PS/2 packet */
91 input_report_key(dev2, BTN_LEFT, packet[0] & 1); 89 input_report_key(dev2, BTN_LEFT, packet[0] & 1);
92 input_report_key(dev2, BTN_RIGHT, packet[0] & 2); 90 input_report_key(dev2, BTN_RIGHT, packet[0] & 2);
@@ -181,13 +179,13 @@ static void alps_process_packet(struct psmouse *psmouse, struct pt_regs *regs)
181 input_sync(dev); 179 input_sync(dev);
182} 180}
183 181
184static psmouse_ret_t alps_process_byte(struct psmouse *psmouse, struct pt_regs *regs) 182static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
185{ 183{
186 struct alps_data *priv = psmouse->private; 184 struct alps_data *priv = psmouse->private;
187 185
188 if ((psmouse->packet[0] & 0xc8) == 0x08) { /* PS/2 packet */ 186 if ((psmouse->packet[0] & 0xc8) == 0x08) { /* PS/2 packet */
189 if (psmouse->pktcnt == 3) { 187 if (psmouse->pktcnt == 3) {
190 alps_process_packet(psmouse, regs); 188 alps_process_packet(psmouse);
191 return PSMOUSE_FULL_PACKET; 189 return PSMOUSE_FULL_PACKET;
192 } 190 }
193 return PSMOUSE_GOOD_DATA; 191 return PSMOUSE_GOOD_DATA;
@@ -202,7 +200,7 @@ static psmouse_ret_t alps_process_byte(struct psmouse *psmouse, struct pt_regs *
202 return PSMOUSE_BAD_DATA; 200 return PSMOUSE_BAD_DATA;
203 201
204 if (psmouse->pktcnt == 6) { 202 if (psmouse->pktcnt == 6) {
205 alps_process_packet(psmouse, regs); 203 alps_process_packet(psmouse);
206 return PSMOUSE_FULL_PACKET; 204 return PSMOUSE_FULL_PACKET;
207 } 205 }
208 206
diff --git a/drivers/input/mouse/amimouse.c b/drivers/input/mouse/amimouse.c
index c8b2cc9f184c..599a7b2dc519 100644
--- a/drivers/input/mouse/amimouse.c
+++ b/drivers/input/mouse/amimouse.c
@@ -36,7 +36,7 @@ MODULE_LICENSE("GPL");
36static int amimouse_lastx, amimouse_lasty; 36static int amimouse_lastx, amimouse_lasty;
37static struct input_dev *amimouse_dev; 37static struct input_dev *amimouse_dev;
38 38
39static irqreturn_t amimouse_interrupt(int irq, void *dummy, struct pt_regs *fp) 39static irqreturn_t amimouse_interrupt(int irq, void *dummy)
40{ 40{
41 unsigned short joy0dat, potgor; 41 unsigned short joy0dat, potgor;
42 int nx, ny, dx, dy; 42 int nx, ny, dx, dy;
@@ -59,8 +59,6 @@ static irqreturn_t amimouse_interrupt(int irq, void *dummy, struct pt_regs *fp)
59 59
60 potgor = amiga_custom.potgor; 60 potgor = amiga_custom.potgor;
61 61
62 input_regs(amimouse_dev, fp);
63
64 input_report_rel(amimouse_dev, REL_X, dx); 62 input_report_rel(amimouse_dev, REL_X, dx);
65 input_report_rel(amimouse_dev, REL_Y, dy); 63 input_report_rel(amimouse_dev, REL_Y, dy);
66 64
diff --git a/drivers/input/mouse/hil_ptr.c b/drivers/input/mouse/hil_ptr.c
index 69f02178c528..402b057e986e 100644
--- a/drivers/input/mouse/hil_ptr.c
+++ b/drivers/input/mouse/hil_ptr.c
@@ -190,7 +190,7 @@ static void hil_ptr_process_err(struct hil_ptr *ptr) {
190} 190}
191 191
192static irqreturn_t hil_ptr_interrupt(struct serio *serio, 192static irqreturn_t hil_ptr_interrupt(struct serio *serio,
193 unsigned char data, unsigned int flags, struct pt_regs *regs) 193 unsigned char data, unsigned int flags)
194{ 194{
195 struct hil_ptr *ptr; 195 struct hil_ptr *ptr;
196 hil_packet packet; 196 hil_packet packet;
diff --git a/drivers/input/mouse/inport.c b/drivers/input/mouse/inport.c
index 50f1fed10be4..e1252fa9a107 100644
--- a/drivers/input/mouse/inport.c
+++ b/drivers/input/mouse/inport.c
@@ -88,15 +88,13 @@ __obsolete_setup("inport_irq=");
88 88
89static struct input_dev *inport_dev; 89static struct input_dev *inport_dev;
90 90
91static irqreturn_t inport_interrupt(int irq, void *dev_id, struct pt_regs *regs) 91static irqreturn_t inport_interrupt(int irq, void *dev_id)
92{ 92{
93 unsigned char buttons; 93 unsigned char buttons;
94 94
95 outb(INPORT_REG_MODE, INPORT_CONTROL_PORT); 95 outb(INPORT_REG_MODE, INPORT_CONTROL_PORT);
96 outb(INPORT_MODE_HOLD | INPORT_MODE_IRQ | INPORT_MODE_BASE, INPORT_DATA_PORT); 96 outb(INPORT_MODE_HOLD | INPORT_MODE_IRQ | INPORT_MODE_BASE, INPORT_DATA_PORT);
97 97
98 input_regs(inport_dev, regs);
99
100 outb(INPORT_REG_X, INPORT_CONTROL_PORT); 98 outb(INPORT_REG_X, INPORT_CONTROL_PORT);
101 input_report_rel(inport_dev, REL_X, inb(INPORT_DATA_PORT)); 99 input_report_rel(inport_dev, REL_X, inb(INPORT_DATA_PORT));
102 100
diff --git a/drivers/input/mouse/lifebook.c b/drivers/input/mouse/lifebook.c
index 5e9d25067513..c57e8853b949 100644
--- a/drivers/input/mouse/lifebook.c
+++ b/drivers/input/mouse/lifebook.c
@@ -62,7 +62,7 @@ static struct dmi_system_id lifebook_dmi_table[] = {
62}; 62};
63 63
64 64
65static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse, struct pt_regs *regs) 65static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse)
66{ 66{
67 unsigned char *packet = psmouse->packet; 67 unsigned char *packet = psmouse->packet;
68 struct input_dev *dev = psmouse->dev; 68 struct input_dev *dev = psmouse->dev;
@@ -70,8 +70,6 @@ static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse, struct pt_re
70 if (psmouse->pktcnt != 3) 70 if (psmouse->pktcnt != 3)
71 return PSMOUSE_GOOD_DATA; 71 return PSMOUSE_GOOD_DATA;
72 72
73 input_regs(dev, regs);
74
75 /* calculate X and Y */ 73 /* calculate X and Y */
76 if ((packet[0] & 0x08) == 0x00) { 74 if ((packet[0] & 0x08) == 0x00) {
77 input_report_abs(dev, ABS_X, 75 input_report_abs(dev, ABS_X,
diff --git a/drivers/input/mouse/logibm.c b/drivers/input/mouse/logibm.c
index 9c7ce38806d7..8e9c2f3d69a8 100644
--- a/drivers/input/mouse/logibm.c
+++ b/drivers/input/mouse/logibm.c
@@ -79,7 +79,7 @@ __obsolete_setup("logibm_irq=");
79 79
80static struct input_dev *logibm_dev; 80static struct input_dev *logibm_dev;
81 81
82static irqreturn_t logibm_interrupt(int irq, void *dev_id, struct pt_regs *regs) 82static irqreturn_t logibm_interrupt(int irq, void *dev_id)
83{ 83{
84 char dx, dy; 84 char dx, dy;
85 unsigned char buttons; 85 unsigned char buttons;
@@ -95,7 +95,6 @@ static irqreturn_t logibm_interrupt(int irq, void *dev_id, struct pt_regs *regs)
95 dy |= (buttons & 0xf) << 4; 95 dy |= (buttons & 0xf) << 4;
96 buttons = ~buttons >> 5; 96 buttons = ~buttons >> 5;
97 97
98 input_regs(logibm_dev, regs);
99 input_report_rel(logibm_dev, REL_X, dx); 98 input_report_rel(logibm_dev, REL_X, dx);
100 input_report_rel(logibm_dev, REL_Y, dy); 99 input_report_rel(logibm_dev, REL_Y, dy);
101 input_report_key(logibm_dev, BTN_RIGHT, buttons & 1); 100 input_report_key(logibm_dev, BTN_RIGHT, buttons & 1);
diff --git a/drivers/input/mouse/logips2pp.c b/drivers/input/mouse/logips2pp.c
index 7972eecbcfe4..8a4f862709e7 100644
--- a/drivers/input/mouse/logips2pp.c
+++ b/drivers/input/mouse/logips2pp.c
@@ -39,7 +39,7 @@ struct ps2pp_info {
39 * Process a PS2++ or PS2T++ packet. 39 * Process a PS2++ or PS2T++ packet.
40 */ 40 */
41 41
42static psmouse_ret_t ps2pp_process_byte(struct psmouse *psmouse, struct pt_regs *regs) 42static psmouse_ret_t ps2pp_process_byte(struct psmouse *psmouse)
43{ 43{
44 struct input_dev *dev = psmouse->dev; 44 struct input_dev *dev = psmouse->dev;
45 unsigned char *packet = psmouse->packet; 45 unsigned char *packet = psmouse->packet;
@@ -51,8 +51,6 @@ static psmouse_ret_t ps2pp_process_byte(struct psmouse *psmouse, struct pt_regs
51 * Full packet accumulated, process it 51 * Full packet accumulated, process it
52 */ 52 */
53 53
54 input_regs(dev, regs);
55
56 if ((packet[0] & 0x48) == 0x48 && (packet[1] & 0x02) == 0x02) { 54 if ((packet[0] & 0x48) == 0x48 && (packet[1] & 0x02) == 0x02) {
57 55
58 /* Logitech extended packet */ 56 /* Logitech extended packet */
diff --git a/drivers/input/mouse/pc110pad.c b/drivers/input/mouse/pc110pad.c
index d284ea712151..8c075aa7223b 100644
--- a/drivers/input/mouse/pc110pad.c
+++ b/drivers/input/mouse/pc110pad.c
@@ -57,7 +57,7 @@ static struct input_dev *pc110pad_dev;
57static int pc110pad_data[3]; 57static int pc110pad_data[3];
58static int pc110pad_count; 58static int pc110pad_count;
59 59
60static irqreturn_t pc110pad_interrupt(int irq, void *ptr, struct pt_regs *regs) 60static irqreturn_t pc110pad_interrupt(int irq, void *ptr)
61{ 61{
62 int value = inb_p(pc110pad_io); 62 int value = inb_p(pc110pad_io);
63 int handshake = inb_p(pc110pad_io + 2); 63 int handshake = inb_p(pc110pad_io + 2);
@@ -71,7 +71,6 @@ static irqreturn_t pc110pad_interrupt(int irq, void *ptr, struct pt_regs *regs)
71 if (pc110pad_count < 3) 71 if (pc110pad_count < 3)
72 return IRQ_HANDLED; 72 return IRQ_HANDLED;
73 73
74 input_regs(pc110pad_dev, regs);
75 input_report_key(pc110pad_dev, BTN_TOUCH, 74 input_report_key(pc110pad_dev, BTN_TOUCH,
76 pc110pad_data[0] & 0x01); 75 pc110pad_data[0] & 0x01);
77 input_report_abs(pc110pad_dev, ABS_X, 76 input_report_abs(pc110pad_dev, ABS_X,
@@ -91,9 +90,9 @@ static void pc110pad_close(struct input_dev *dev)
91 90
92static int pc110pad_open(struct input_dev *dev) 91static int pc110pad_open(struct input_dev *dev)
93{ 92{
94 pc110pad_interrupt(0, NULL, NULL); 93 pc110pad_interrupt(0, NULL);
95 pc110pad_interrupt(0, NULL, NULL); 94 pc110pad_interrupt(0, NULL);
96 pc110pad_interrupt(0, NULL, NULL); 95 pc110pad_interrupt(0, NULL);
97 outb(PC110PAD_ON, pc110pad_io + 2); 96 outb(PC110PAD_ON, pc110pad_io + 2);
98 pc110pad_count = 0; 97 pc110pad_count = 0;
99 98
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
index 9fb7eb6b0f71..6f9b2c7cc9c2 100644
--- a/drivers/input/mouse/psmouse-base.c
+++ b/drivers/input/mouse/psmouse-base.c
@@ -124,7 +124,7 @@ struct psmouse_protocol {
124 * relevant events to the input module once full packet has arrived. 124 * relevant events to the input module once full packet has arrived.
125 */ 125 */
126 126
127static psmouse_ret_t psmouse_process_byte(struct psmouse *psmouse, struct pt_regs *regs) 127static psmouse_ret_t psmouse_process_byte(struct psmouse *psmouse)
128{ 128{
129 struct input_dev *dev = psmouse->dev; 129 struct input_dev *dev = psmouse->dev;
130 unsigned char *packet = psmouse->packet; 130 unsigned char *packet = psmouse->packet;
@@ -136,8 +136,6 @@ static psmouse_ret_t psmouse_process_byte(struct psmouse *psmouse, struct pt_reg
136 * Full packet accumulated, process it 136 * Full packet accumulated, process it
137 */ 137 */
138 138
139 input_regs(dev, regs);
140
141/* 139/*
142 * Scroll wheel on IntelliMice, scroll buttons on NetMice 140 * Scroll wheel on IntelliMice, scroll buttons on NetMice
143 */ 141 */
@@ -231,9 +229,9 @@ static void psmouse_set_state(struct psmouse *psmouse, enum psmouse_state new_st
231 * by calling corresponding protocol handler. 229 * by calling corresponding protocol handler.
232 */ 230 */
233 231
234static int psmouse_handle_byte(struct psmouse *psmouse, struct pt_regs *regs) 232static int psmouse_handle_byte(struct psmouse *psmouse)
235{ 233{
236 psmouse_ret_t rc = psmouse->protocol_handler(psmouse, regs); 234 psmouse_ret_t rc = psmouse->protocol_handler(psmouse);
237 235
238 switch (rc) { 236 switch (rc) {
239 case PSMOUSE_BAD_DATA: 237 case PSMOUSE_BAD_DATA:
@@ -271,7 +269,7 @@ static int psmouse_handle_byte(struct psmouse *psmouse, struct pt_regs *regs)
271 */ 269 */
272 270
273static irqreturn_t psmouse_interrupt(struct serio *serio, 271static irqreturn_t psmouse_interrupt(struct serio *serio,
274 unsigned char data, unsigned int flags, struct pt_regs *regs) 272 unsigned char data, unsigned int flags)
275{ 273{
276 struct psmouse *psmouse = serio_get_drvdata(serio); 274 struct psmouse *psmouse = serio_get_drvdata(serio);
277 275
@@ -327,7 +325,7 @@ static irqreturn_t psmouse_interrupt(struct serio *serio,
327 * Not a new device, try processing first byte normally 325 * Not a new device, try processing first byte normally
328 */ 326 */
329 psmouse->pktcnt = 1; 327 psmouse->pktcnt = 1;
330 if (psmouse_handle_byte(psmouse, regs)) 328 if (psmouse_handle_byte(psmouse))
331 goto out; 329 goto out;
332 330
333 psmouse->packet[psmouse->pktcnt++] = data; 331 psmouse->packet[psmouse->pktcnt++] = data;
@@ -346,7 +344,7 @@ static irqreturn_t psmouse_interrupt(struct serio *serio,
346 } 344 }
347 345
348 psmouse->last = jiffies; 346 psmouse->last = jiffies;
349 psmouse_handle_byte(psmouse, regs); 347 psmouse_handle_byte(psmouse);
350 348
351 out: 349 out:
352 return IRQ_HANDLED; 350 return IRQ_HANDLED;
@@ -940,7 +938,7 @@ static void psmouse_resync(void *p)
940 psmouse_set_state(psmouse, PSMOUSE_CMD_MODE); 938 psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
941 for (i = 0; i < psmouse->pktsize; i++) { 939 for (i = 0; i < psmouse->pktsize; i++) {
942 psmouse->pktcnt++; 940 psmouse->pktcnt++;
943 rc = psmouse->protocol_handler(psmouse, NULL); 941 rc = psmouse->protocol_handler(psmouse);
944 if (rc != PSMOUSE_GOOD_DATA) 942 if (rc != PSMOUSE_GOOD_DATA)
945 break; 943 break;
946 } 944 }
diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
index 4d9107fba6a1..1b74cae8a556 100644
--- a/drivers/input/mouse/psmouse.h
+++ b/drivers/input/mouse/psmouse.h
@@ -62,7 +62,7 @@ struct psmouse {
62 unsigned int resync_time; 62 unsigned int resync_time;
63 unsigned int smartscroll; /* Logitech only */ 63 unsigned int smartscroll; /* Logitech only */
64 64
65 psmouse_ret_t (*protocol_handler)(struct psmouse *psmouse, struct pt_regs *regs); 65 psmouse_ret_t (*protocol_handler)(struct psmouse *psmouse);
66 void (*set_rate)(struct psmouse *psmouse, unsigned int rate); 66 void (*set_rate)(struct psmouse *psmouse, unsigned int rate);
67 void (*set_resolution)(struct psmouse *psmouse, unsigned int resolution); 67 void (*set_resolution)(struct psmouse *psmouse, unsigned int resolution);
68 68
diff --git a/drivers/input/mouse/rpcmouse.c b/drivers/input/mouse/rpcmouse.c
index 872b30bf7aad..ea0468569610 100644
--- a/drivers/input/mouse/rpcmouse.c
+++ b/drivers/input/mouse/rpcmouse.c
@@ -36,7 +36,7 @@ MODULE_LICENSE("GPL");
36static short rpcmouse_lastx, rpcmouse_lasty; 36static short rpcmouse_lastx, rpcmouse_lasty;
37static struct input_dev *rpcmouse_dev; 37static struct input_dev *rpcmouse_dev;
38 38
39static irqreturn_t rpcmouse_irq(int irq, void *dev_id, struct pt_regs *regs) 39static irqreturn_t rpcmouse_irq(int irq, void *dev_id)
40{ 40{
41 struct input_dev *dev = dev_id; 41 struct input_dev *dev = dev_id;
42 short x, y, dx, dy, b; 42 short x, y, dx, dy, b;
@@ -51,8 +51,6 @@ static irqreturn_t rpcmouse_irq(int irq, void *dev_id, struct pt_regs *regs)
51 rpcmouse_lastx = x; 51 rpcmouse_lastx = x;
52 rpcmouse_lasty = y; 52 rpcmouse_lasty = y;
53 53
54 input_regs(dev, regs);
55
56 input_report_rel(dev, REL_X, dx); 54 input_report_rel(dev, REL_X, dx);
57 input_report_rel(dev, REL_Y, -dy); 55 input_report_rel(dev, REL_Y, -dy);
58 56
diff --git a/drivers/input/mouse/sermouse.c b/drivers/input/mouse/sermouse.c
index 680b32353884..2a272c5daf08 100644
--- a/drivers/input/mouse/sermouse.c
+++ b/drivers/input/mouse/sermouse.c
@@ -61,13 +61,11 @@ struct sermouse {
61 * second, which is as good as a PS/2 or USB mouse. 61 * second, which is as good as a PS/2 or USB mouse.
62 */ 62 */
63 63
64static void sermouse_process_msc(struct sermouse *sermouse, signed char data, struct pt_regs *regs) 64static void sermouse_process_msc(struct sermouse *sermouse, signed char data)
65{ 65{
66 struct input_dev *dev = sermouse->dev; 66 struct input_dev *dev = sermouse->dev;
67 signed char *buf = sermouse->buf; 67 signed char *buf = sermouse->buf;
68 68
69 input_regs(dev, regs);
70
71 switch (sermouse->count) { 69 switch (sermouse->count) {
72 70
73 case 0: 71 case 0:
@@ -104,15 +102,13 @@ static void sermouse_process_msc(struct sermouse *sermouse, signed char data, st
104 * standard 3-byte packets and 1200 bps. 102 * standard 3-byte packets and 1200 bps.
105 */ 103 */
106 104
107static void sermouse_process_ms(struct sermouse *sermouse, signed char data, struct pt_regs *regs) 105static void sermouse_process_ms(struct sermouse *sermouse, signed char data)
108{ 106{
109 struct input_dev *dev = sermouse->dev; 107 struct input_dev *dev = sermouse->dev;
110 signed char *buf = sermouse->buf; 108 signed char *buf = sermouse->buf;
111 109
112 if (data & 0x40) sermouse->count = 0; 110 if (data & 0x40) sermouse->count = 0;
113 111
114 input_regs(dev, regs);
115
116 switch (sermouse->count) { 112 switch (sermouse->count) {
117 113
118 case 0: 114 case 0:
@@ -206,7 +202,7 @@ static void sermouse_process_ms(struct sermouse *sermouse, signed char data, str
206 */ 202 */
207 203
208static irqreturn_t sermouse_interrupt(struct serio *serio, 204static irqreturn_t sermouse_interrupt(struct serio *serio,
209 unsigned char data, unsigned int flags, struct pt_regs *regs) 205 unsigned char data, unsigned int flags)
210{ 206{
211 struct sermouse *sermouse = serio_get_drvdata(serio); 207 struct sermouse *sermouse = serio_get_drvdata(serio);
212 208
@@ -214,9 +210,9 @@ static irqreturn_t sermouse_interrupt(struct serio *serio,
214 sermouse->last = jiffies; 210 sermouse->last = jiffies;
215 211
216 if (sermouse->type > SERIO_SUN) 212 if (sermouse->type > SERIO_SUN)
217 sermouse_process_ms(sermouse, data, regs); 213 sermouse_process_ms(sermouse, data);
218 else 214 else
219 sermouse_process_msc(sermouse, data, regs); 215 sermouse_process_msc(sermouse, data);
220 return IRQ_HANDLED; 216 return IRQ_HANDLED;
221} 217}
222 218
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 392108c436ba..49ac696d6cff 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -216,13 +216,13 @@ static void synaptics_pass_pt_packet(struct serio *ptport, unsigned char *packet
216 struct psmouse *child = serio_get_drvdata(ptport); 216 struct psmouse *child = serio_get_drvdata(ptport);
217 217
218 if (child && child->state == PSMOUSE_ACTIVATED) { 218 if (child && child->state == PSMOUSE_ACTIVATED) {
219 serio_interrupt(ptport, packet[1], 0, NULL); 219 serio_interrupt(ptport, packet[1], 0);
220 serio_interrupt(ptport, packet[4], 0, NULL); 220 serio_interrupt(ptport, packet[4], 0);
221 serio_interrupt(ptport, packet[5], 0, NULL); 221 serio_interrupt(ptport, packet[5], 0);
222 if (child->pktsize == 4) 222 if (child->pktsize == 4)
223 serio_interrupt(ptport, packet[2], 0, NULL); 223 serio_interrupt(ptport, packet[2], 0);
224 } else 224 } else
225 serio_interrupt(ptport, packet[1], 0, NULL); 225 serio_interrupt(ptport, packet[1], 0);
226} 226}
227 227
228static void synaptics_pt_activate(struct psmouse *psmouse) 228static void synaptics_pt_activate(struct psmouse *psmouse)
@@ -469,13 +469,10 @@ static unsigned char synaptics_detect_pkt_type(struct psmouse *psmouse)
469 return SYN_NEWABS_STRICT; 469 return SYN_NEWABS_STRICT;
470} 470}
471 471
472static psmouse_ret_t synaptics_process_byte(struct psmouse *psmouse, struct pt_regs *regs) 472static psmouse_ret_t synaptics_process_byte(struct psmouse *psmouse)
473{ 473{
474 struct input_dev *dev = psmouse->dev;
475 struct synaptics_data *priv = psmouse->private; 474 struct synaptics_data *priv = psmouse->private;
476 475
477 input_regs(dev, regs);
478
479 if (psmouse->pktcnt >= 6) { /* Full packet received */ 476 if (psmouse->pktcnt >= 6) { /* Full packet received */
480 if (unlikely(priv->pkt_type == SYN_NEWABS)) 477 if (unlikely(priv->pkt_type == SYN_NEWABS))
481 priv->pkt_type = synaptics_detect_pkt_type(psmouse); 478 priv->pkt_type = synaptics_detect_pkt_type(psmouse);
diff --git a/drivers/input/mouse/vsxxxaa.c b/drivers/input/mouse/vsxxxaa.c
index 47edcfd022ba..ffdb50eee93d 100644
--- a/drivers/input/mouse/vsxxxaa.c
+++ b/drivers/input/mouse/vsxxxaa.c
@@ -211,7 +211,7 @@ vsxxxaa_smells_like_packet (struct vsxxxaa *mouse, unsigned char type, size_t le
211} 211}
212 212
213static void 213static void
214vsxxxaa_handle_REL_packet (struct vsxxxaa *mouse, struct pt_regs *regs) 214vsxxxaa_handle_REL_packet (struct vsxxxaa *mouse)
215{ 215{
216 struct input_dev *dev = mouse->dev; 216 struct input_dev *dev = mouse->dev;
217 unsigned char *buf = mouse->buf; 217 unsigned char *buf = mouse->buf;
@@ -258,7 +258,6 @@ vsxxxaa_handle_REL_packet (struct vsxxxaa *mouse, struct pt_regs *regs)
258 /* 258 /*
259 * Report what we've found so far... 259 * Report what we've found so far...
260 */ 260 */
261 input_regs (dev, regs);
262 input_report_key (dev, BTN_LEFT, left); 261 input_report_key (dev, BTN_LEFT, left);
263 input_report_key (dev, BTN_MIDDLE, middle); 262 input_report_key (dev, BTN_MIDDLE, middle);
264 input_report_key (dev, BTN_RIGHT, right); 263 input_report_key (dev, BTN_RIGHT, right);
@@ -269,7 +268,7 @@ vsxxxaa_handle_REL_packet (struct vsxxxaa *mouse, struct pt_regs *regs)
269} 268}
270 269
271static void 270static void
272vsxxxaa_handle_ABS_packet (struct vsxxxaa *mouse, struct pt_regs *regs) 271vsxxxaa_handle_ABS_packet (struct vsxxxaa *mouse)
273{ 272{
274 struct input_dev *dev = mouse->dev; 273 struct input_dev *dev = mouse->dev;
275 unsigned char *buf = mouse->buf; 274 unsigned char *buf = mouse->buf;
@@ -312,7 +311,6 @@ vsxxxaa_handle_ABS_packet (struct vsxxxaa *mouse, struct pt_regs *regs)
312 /* 311 /*
313 * Report what we've found so far... 312 * Report what we've found so far...
314 */ 313 */
315 input_regs (dev, regs);
316 input_report_key (dev, BTN_LEFT, left); 314 input_report_key (dev, BTN_LEFT, left);
317 input_report_key (dev, BTN_MIDDLE, middle); 315 input_report_key (dev, BTN_MIDDLE, middle);
318 input_report_key (dev, BTN_RIGHT, right); 316 input_report_key (dev, BTN_RIGHT, right);
@@ -323,7 +321,7 @@ vsxxxaa_handle_ABS_packet (struct vsxxxaa *mouse, struct pt_regs *regs)
323} 321}
324 322
325static void 323static void
326vsxxxaa_handle_POR_packet (struct vsxxxaa *mouse, struct pt_regs *regs) 324vsxxxaa_handle_POR_packet (struct vsxxxaa *mouse)
327{ 325{
328 struct input_dev *dev = mouse->dev; 326 struct input_dev *dev = mouse->dev;
329 unsigned char *buf = mouse->buf; 327 unsigned char *buf = mouse->buf;
@@ -367,7 +365,6 @@ vsxxxaa_handle_POR_packet (struct vsxxxaa *mouse, struct pt_regs *regs)
367 365
368 if (error <= 0x1f) { 366 if (error <= 0x1f) {
369 /* No (serious) error. Report buttons */ 367 /* No (serious) error. Report buttons */
370 input_regs (dev, regs);
371 input_report_key (dev, BTN_LEFT, left); 368 input_report_key (dev, BTN_LEFT, left);
372 input_report_key (dev, BTN_MIDDLE, middle); 369 input_report_key (dev, BTN_MIDDLE, middle);
373 input_report_key (dev, BTN_RIGHT, right); 370 input_report_key (dev, BTN_RIGHT, right);
@@ -395,7 +392,7 @@ vsxxxaa_handle_POR_packet (struct vsxxxaa *mouse, struct pt_regs *regs)
395} 392}
396 393
397static void 394static void
398vsxxxaa_parse_buffer (struct vsxxxaa *mouse, struct pt_regs *regs) 395vsxxxaa_parse_buffer (struct vsxxxaa *mouse)
399{ 396{
400 unsigned char *buf = mouse->buf; 397 unsigned char *buf = mouse->buf;
401 int stray_bytes; 398 int stray_bytes;
@@ -432,7 +429,7 @@ vsxxxaa_parse_buffer (struct vsxxxaa *mouse, struct pt_regs *regs)
432 continue; 429 continue;
433 } 430 }
434 431
435 vsxxxaa_handle_REL_packet (mouse, regs); 432 vsxxxaa_handle_REL_packet (mouse);
436 continue; /* More to parse? */ 433 continue; /* More to parse? */
437 } 434 }
438 435
@@ -446,7 +443,7 @@ vsxxxaa_parse_buffer (struct vsxxxaa *mouse, struct pt_regs *regs)
446 continue; 443 continue;
447 } 444 }
448 445
449 vsxxxaa_handle_ABS_packet (mouse, regs); 446 vsxxxaa_handle_ABS_packet (mouse);
450 continue; /* More to parse? */ 447 continue; /* More to parse? */
451 } 448 }
452 449
@@ -460,7 +457,7 @@ vsxxxaa_parse_buffer (struct vsxxxaa *mouse, struct pt_regs *regs)
460 continue; 457 continue;
461 } 458 }
462 459
463 vsxxxaa_handle_POR_packet (mouse, regs); 460 vsxxxaa_handle_POR_packet (mouse);
464 continue; /* More to parse? */ 461 continue; /* More to parse? */
465 } 462 }
466 463
@@ -469,13 +466,12 @@ vsxxxaa_parse_buffer (struct vsxxxaa *mouse, struct pt_regs *regs)
469} 466}
470 467
471static irqreturn_t 468static irqreturn_t
472vsxxxaa_interrupt (struct serio *serio, unsigned char data, unsigned int flags, 469vsxxxaa_interrupt (struct serio *serio, unsigned char data, unsigned int flags)
473 struct pt_regs *regs)
474{ 470{
475 struct vsxxxaa *mouse = serio_get_drvdata (serio); 471 struct vsxxxaa *mouse = serio_get_drvdata (serio);
476 472
477 vsxxxaa_queue_byte (mouse, data); 473 vsxxxaa_queue_byte (mouse, data);
478 vsxxxaa_parse_buffer (mouse, regs); 474 vsxxxaa_parse_buffer (mouse);
479 475
480 return IRQ_HANDLED; 476 return IRQ_HANDLED;
481} 477}
diff --git a/drivers/input/serio/ambakmi.c b/drivers/input/serio/ambakmi.c
index 3df5eedf8f31..5a7b49c35539 100644
--- a/drivers/input/serio/ambakmi.c
+++ b/drivers/input/serio/ambakmi.c
@@ -37,14 +37,14 @@ struct amba_kmi_port {
37 unsigned int open; 37 unsigned int open;
38}; 38};
39 39
40static irqreturn_t amba_kmi_int(int irq, void *dev_id, struct pt_regs *regs) 40static irqreturn_t amba_kmi_int(int irq, void *dev_id)
41{ 41{
42 struct amba_kmi_port *kmi = dev_id; 42 struct amba_kmi_port *kmi = dev_id;
43 unsigned int status = readb(KMIIR); 43 unsigned int status = readb(KMIIR);
44 int handled = IRQ_NONE; 44 int handled = IRQ_NONE;
45 45
46 while (status & KMIIR_RXINTR) { 46 while (status & KMIIR_RXINTR) {
47 serio_interrupt(kmi->io, readb(KMIDATA), 0, regs); 47 serio_interrupt(kmi->io, readb(KMIDATA), 0);
48 status = readb(KMIIR); 48 status = readb(KMIIR);
49 handled = IRQ_HANDLED; 49 handled = IRQ_HANDLED;
50 } 50 }
diff --git a/drivers/input/serio/ct82c710.c b/drivers/input/serio/ct82c710.c
index bc6e87add093..0d35018c23a9 100644
--- a/drivers/input/serio/ct82c710.c
+++ b/drivers/input/serio/ct82c710.c
@@ -71,9 +71,9 @@ static struct resource ct82c710_iores;
71 * is waiting in the 82C710. 71 * is waiting in the 82C710.
72 */ 72 */
73 73
74static irqreturn_t ct82c710_interrupt(int cpl, void *dev_id, struct pt_regs * regs) 74static irqreturn_t ct82c710_interrupt(int cpl, void *dev_id)
75{ 75{
76 return serio_interrupt(ct82c710_port, inb(CT82C710_DATA), 0, regs); 76 return serio_interrupt(ct82c710_port, inb(CT82C710_DATA), 0);
77} 77}
78 78
79/* 79/*
diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
index cde036a92168..081fdc3c7737 100644
--- a/drivers/input/serio/gscps2.c
+++ b/drivers/input/serio/gscps2.c
@@ -82,7 +82,7 @@ MODULE_DEVICE_TABLE(parisc, gscps2_device_tbl);
82#define GSC_ID_MOUSE 1 82#define GSC_ID_MOUSE 1
83 83
84 84
85static irqreturn_t gscps2_interrupt(int irq, void *dev, struct pt_regs *regs); 85static irqreturn_t gscps2_interrupt(int irq, void *dev);
86 86
87#define BUFFER_SIZE 0x0f 87#define BUFFER_SIZE 0x0f
88 88
@@ -226,7 +226,7 @@ static LIST_HEAD(ps2port_list);
226 * later. 226 * later.
227 */ 227 */
228 228
229static irqreturn_t gscps2_interrupt(int irq, void *dev, struct pt_regs *regs) 229static irqreturn_t gscps2_interrupt(int irq, void *dev)
230{ 230{
231 struct gscps2port *ps2port; 231 struct gscps2port *ps2port;
232 232
@@ -267,7 +267,7 @@ static irqreturn_t gscps2_interrupt(int irq, void *dev, struct pt_regs *regs)
267 rxflags = ((status & GSC_STAT_TERR) ? SERIO_TIMEOUT : 0 ) | 267 rxflags = ((status & GSC_STAT_TERR) ? SERIO_TIMEOUT : 0 ) |
268 ((status & GSC_STAT_PERR) ? SERIO_PARITY : 0 ); 268 ((status & GSC_STAT_PERR) ? SERIO_PARITY : 0 );
269 269
270 serio_interrupt(ps2port->port, data, rxflags, regs); 270 serio_interrupt(ps2port->port, data, rxflags);
271 271
272 } /* while() */ 272 } /* while() */
273 273
diff --git a/drivers/input/serio/hp_sdc.c b/drivers/input/serio/hp_sdc.c
index a10348bb25e9..ba7b920347e3 100644
--- a/drivers/input/serio/hp_sdc.c
+++ b/drivers/input/serio/hp_sdc.c
@@ -202,7 +202,7 @@ static void hp_sdc_take (int irq, void *dev_id, uint8_t status, uint8_t data) {
202 } 202 }
203} 203}
204 204
205static irqreturn_t hp_sdc_isr(int irq, void *dev_id, struct pt_regs * regs) { 205static irqreturn_t hp_sdc_isr(int irq, void *dev_id) {
206 uint8_t status, data; 206 uint8_t status, data;
207 207
208 status = hp_sdc_status_in8(); 208 status = hp_sdc_status_in8();
@@ -253,7 +253,7 @@ static irqreturn_t hp_sdc_isr(int irq, void *dev_id, struct pt_regs * regs) {
253} 253}
254 254
255 255
256static irqreturn_t hp_sdc_nmisr(int irq, void *dev_id, struct pt_regs * regs) { 256static irqreturn_t hp_sdc_nmisr(int irq, void *dev_id) {
257 int status; 257 int status;
258 258
259 status = hp_sdc_status_in8(); 259 status = hp_sdc_status_in8();
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
index 1bb0c76a9259..09b06e605b50 100644
--- a/drivers/input/serio/i8042.c
+++ b/drivers/input/serio/i8042.c
@@ -108,7 +108,7 @@ static unsigned char i8042_kbd_irq_registered;
108static unsigned char i8042_aux_irq_registered; 108static unsigned char i8042_aux_irq_registered;
109static struct platform_device *i8042_platform_device; 109static struct platform_device *i8042_platform_device;
110 110
111static irqreturn_t i8042_interrupt(int irq, void *dev_id, struct pt_regs *regs); 111static irqreturn_t i8042_interrupt(int irq, void *dev_id);
112 112
113/* 113/*
114 * The i8042_wait_read() and i8042_wait_write functions wait for the i8042 to 114 * The i8042_wait_read() and i8042_wait_write functions wait for the i8042 to
@@ -271,7 +271,7 @@ static int i8042_aux_write(struct serio *serio, unsigned char c)
271 * characters later. 271 * characters later.
272 */ 272 */
273 273
274 i8042_interrupt(0, NULL, NULL); 274 i8042_interrupt(0, NULL);
275 return retval; 275 return retval;
276} 276}
277 277
@@ -309,7 +309,7 @@ static void i8042_stop(struct serio *serio)
309 * to the upper layers. 309 * to the upper layers.
310 */ 310 */
311 311
312static irqreturn_t i8042_interrupt(int irq, void *dev_id, struct pt_regs *regs) 312static irqreturn_t i8042_interrupt(int irq, void *dev_id)
313{ 313{
314 struct i8042_port *port; 314 struct i8042_port *port;
315 unsigned long flags; 315 unsigned long flags;
@@ -379,7 +379,7 @@ static irqreturn_t i8042_interrupt(int irq, void *dev_id, struct pt_regs *regs)
379 dfl & SERIO_TIMEOUT ? ", timeout" : ""); 379 dfl & SERIO_TIMEOUT ? ", timeout" : "");
380 380
381 if (likely(port->exists)) 381 if (likely(port->exists))
382 serio_interrupt(port->serio, data, dfl, regs); 382 serio_interrupt(port->serio, data, dfl);
383 383
384 ret = 1; 384 ret = 1;
385 out: 385 out:
@@ -519,7 +519,7 @@ static int __devinit i8042_check_mux(void)
519static struct completion i8042_aux_irq_delivered __devinitdata; 519static struct completion i8042_aux_irq_delivered __devinitdata;
520static int i8042_irq_being_tested __devinitdata; 520static int i8042_irq_being_tested __devinitdata;
521 521
522static irqreturn_t __devinit i8042_aux_test_irq(int irq, void *dev_id, struct pt_regs *regs) 522static irqreturn_t __devinit i8042_aux_test_irq(int irq, void *dev_id)
523{ 523{
524 unsigned long flags; 524 unsigned long flags;
525 unsigned char str, data; 525 unsigned char str, data;
@@ -905,7 +905,7 @@ static int i8042_resume(struct platform_device *dev)
905 if (i8042_ports[I8042_KBD_PORT_NO].serio) 905 if (i8042_ports[I8042_KBD_PORT_NO].serio)
906 i8042_enable_kbd_port(); 906 i8042_enable_kbd_port();
907 907
908 i8042_interrupt(0, NULL, NULL); 908 i8042_interrupt(0, NULL);
909 909
910 return 0; 910 return 0;
911} 911}
diff --git a/drivers/input/serio/maceps2.c b/drivers/input/serio/maceps2.c
index f08a5d0cd5fa..558200e96d0f 100644
--- a/drivers/input/serio/maceps2.c
+++ b/drivers/input/serio/maceps2.c
@@ -72,8 +72,7 @@ static int maceps2_write(struct serio *dev, unsigned char val)
72 return -1; 72 return -1;
73} 73}
74 74
75static irqreturn_t maceps2_interrupt(int irq, void *dev_id, 75static irqreturn_t maceps2_interrupt(int irq, void *dev_id)
76 struct pt_regs *regs)
77{ 76{
78 struct serio *dev = dev_id; 77 struct serio *dev = dev_id;
79 struct mace_ps2port *port = ((struct maceps2_data *)dev->port_data)->port; 78 struct mace_ps2port *port = ((struct maceps2_data *)dev->port_data)->port;
@@ -81,7 +80,7 @@ static irqreturn_t maceps2_interrupt(int irq, void *dev_id,
81 80
82 if (port->status & PS2_STATUS_RX_FULL) { 81 if (port->status & PS2_STATUS_RX_FULL) {
83 byte = port->rx; 82 byte = port->rx;
84 serio_interrupt(dev, byte & 0xff, 0, regs); 83 serio_interrupt(dev, byte & 0xff, 0);
85 } 84 }
86 85
87 return IRQ_HANDLED; 86 return IRQ_HANDLED;
diff --git a/drivers/input/serio/parkbd.c b/drivers/input/serio/parkbd.c
index a5c1fb3a4a51..688610e86a3e 100644
--- a/drivers/input/serio/parkbd.c
+++ b/drivers/input/serio/parkbd.c
@@ -102,7 +102,7 @@ static int parkbd_write(struct serio *port, unsigned char c)
102 return 0; 102 return 0;
103} 103}
104 104
105static void parkbd_interrupt(int irq, void *dev_id, struct pt_regs *regs) 105static void parkbd_interrupt(int irq, void *dev_id)
106{ 106{
107 107
108 if (parkbd_writing) { 108 if (parkbd_writing) {
@@ -134,7 +134,7 @@ static void parkbd_interrupt(int irq, void *dev_id, struct pt_regs *regs)
134 parkbd_buffer |= (parkbd_readlines() >> 1) << parkbd_counter++; 134 parkbd_buffer |= (parkbd_readlines() >> 1) << parkbd_counter++;
135 135
136 if (parkbd_counter == parkbd_mode + 10) 136 if (parkbd_counter == parkbd_mode + 10)
137 serio_interrupt(parkbd_port, (parkbd_buffer >> (2 - parkbd_mode)) & 0xff, 0, regs); 137 serio_interrupt(parkbd_port, (parkbd_buffer >> (2 - parkbd_mode)) & 0xff, 0);
138 } 138 }
139 139
140 parkbd_last = jiffies; 140 parkbd_last = jiffies;
diff --git a/drivers/input/serio/pcips2.c b/drivers/input/serio/pcips2.c
index fb727c665253..ea5e3c6ddb62 100644
--- a/drivers/input/serio/pcips2.c
+++ b/drivers/input/serio/pcips2.c
@@ -58,7 +58,7 @@ static int pcips2_write(struct serio *io, unsigned char val)
58 return 0; 58 return 0;
59} 59}
60 60
61static irqreturn_t pcips2_interrupt(int irq, void *devid, struct pt_regs *regs) 61static irqreturn_t pcips2_interrupt(int irq, void *devid)
62{ 62{
63 struct pcips2_data *ps2if = devid; 63 struct pcips2_data *ps2if = devid;
64 unsigned char status, scancode; 64 unsigned char status, scancode;
@@ -80,7 +80,7 @@ static irqreturn_t pcips2_interrupt(int irq, void *devid, struct pt_regs *regs)
80 if (hweight8(scancode) & 1) 80 if (hweight8(scancode) & 1)
81 flag ^= SERIO_PARITY; 81 flag ^= SERIO_PARITY;
82 82
83 serio_interrupt(ps2if->io, scancode, flag, regs); 83 serio_interrupt(ps2if->io, scancode, flag);
84 } while (1); 84 } while (1);
85 return IRQ_RETVAL(handled); 85 return IRQ_RETVAL(handled);
86} 86}
diff --git a/drivers/input/serio/q40kbd.c b/drivers/input/serio/q40kbd.c
index d3827c5fe119..cb89aff2e160 100644
--- a/drivers/input/serio/q40kbd.c
+++ b/drivers/input/serio/q40kbd.c
@@ -53,14 +53,14 @@ DEFINE_SPINLOCK(q40kbd_lock);
53static struct serio *q40kbd_port; 53static struct serio *q40kbd_port;
54static struct platform_device *q40kbd_device; 54static struct platform_device *q40kbd_device;
55 55
56static irqreturn_t q40kbd_interrupt(int irq, void *dev_id, struct pt_regs *regs) 56static irqreturn_t q40kbd_interrupt(int irq, void *dev_id)
57{ 57{
58 unsigned long flags; 58 unsigned long flags;
59 59
60 spin_lock_irqsave(&q40kbd_lock, flags); 60 spin_lock_irqsave(&q40kbd_lock, flags);
61 61
62 if (Q40_IRQ_KEYB_MASK & master_inb(INTERRUPT_REG)) 62 if (Q40_IRQ_KEYB_MASK & master_inb(INTERRUPT_REG))
63 serio_interrupt(q40kbd_port, master_inb(KEYCODE_REG), 0, regs); 63 serio_interrupt(q40kbd_port, master_inb(KEYCODE_REG), 0);
64 64
65 master_outb(-1, KEYBOARD_UNLOCK_REG); 65 master_outb(-1, KEYBOARD_UNLOCK_REG);
66 66
diff --git a/drivers/input/serio/rpckbd.c b/drivers/input/serio/rpckbd.c
index 513d37fc1acf..49f84315cb32 100644
--- a/drivers/input/serio/rpckbd.c
+++ b/drivers/input/serio/rpckbd.c
@@ -56,7 +56,7 @@ static int rpckbd_write(struct serio *port, unsigned char val)
56 return 0; 56 return 0;
57} 57}
58 58
59static irqreturn_t rpckbd_rx(int irq, void *dev_id, struct pt_regs *regs) 59static irqreturn_t rpckbd_rx(int irq, void *dev_id)
60{ 60{
61 struct serio *port = dev_id; 61 struct serio *port = dev_id;
62 unsigned int byte; 62 unsigned int byte;
@@ -65,13 +65,13 @@ static irqreturn_t rpckbd_rx(int irq, void *dev_id, struct pt_regs *regs)
65 while (iomd_readb(IOMD_KCTRL) & (1 << 5)) { 65 while (iomd_readb(IOMD_KCTRL) & (1 << 5)) {
66 byte = iomd_readb(IOMD_KARTRX); 66 byte = iomd_readb(IOMD_KARTRX);
67 67
68 serio_interrupt(port, byte, 0, regs); 68 serio_interrupt(port, byte, 0);
69 handled = IRQ_HANDLED; 69 handled = IRQ_HANDLED;
70 } 70 }
71 return handled; 71 return handled;
72} 72}
73 73
74static irqreturn_t rpckbd_tx(int irq, void *dev_id, struct pt_regs *regs) 74static irqreturn_t rpckbd_tx(int irq, void *dev_id)
75{ 75{
76 return IRQ_HANDLED; 76 return IRQ_HANDLED;
77} 77}
diff --git a/drivers/input/serio/sa1111ps2.c b/drivers/input/serio/sa1111ps2.c
index ebd9976fc811..559508795af1 100644
--- a/drivers/input/serio/sa1111ps2.c
+++ b/drivers/input/serio/sa1111ps2.c
@@ -40,7 +40,7 @@ struct ps2if {
40 * at the most one, but we loop for safety. If there was a 40 * at the most one, but we loop for safety. If there was a
41 * framing error, we have to manually clear the status. 41 * framing error, we have to manually clear the status.
42 */ 42 */
43static irqreturn_t ps2_rxint(int irq, void *dev_id, struct pt_regs *regs) 43static irqreturn_t ps2_rxint(int irq, void *dev_id)
44{ 44{
45 struct ps2if *ps2if = dev_id; 45 struct ps2if *ps2if = dev_id;
46 unsigned int scancode, flag, status; 46 unsigned int scancode, flag, status;
@@ -58,7 +58,7 @@ static irqreturn_t ps2_rxint(int irq, void *dev_id, struct pt_regs *regs)
58 if (hweight8(scancode) & 1) 58 if (hweight8(scancode) & 1)
59 flag ^= SERIO_PARITY; 59 flag ^= SERIO_PARITY;
60 60
61 serio_interrupt(ps2if->io, scancode, flag, regs); 61 serio_interrupt(ps2if->io, scancode, flag);
62 62
63 status = sa1111_readl(ps2if->base + SA1111_PS2STAT); 63 status = sa1111_readl(ps2if->base + SA1111_PS2STAT);
64 } 64 }
@@ -69,7 +69,7 @@ static irqreturn_t ps2_rxint(int irq, void *dev_id, struct pt_regs *regs)
69/* 69/*
70 * Completion of ps2 write 70 * Completion of ps2 write
71 */ 71 */
72static irqreturn_t ps2_txint(int irq, void *dev_id, struct pt_regs *regs) 72static irqreturn_t ps2_txint(int irq, void *dev_id)
73{ 73{
74 struct ps2if *ps2if = dev_id; 74 struct ps2if *ps2if = dev_id;
75 unsigned int status; 75 unsigned int status;
diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
index 3e76ad71c9a0..960fae3c3cea 100644
--- a/drivers/input/serio/serio.c
+++ b/drivers/input/serio/serio.c
@@ -911,7 +911,7 @@ void serio_close(struct serio *serio)
911} 911}
912 912
913irqreturn_t serio_interrupt(struct serio *serio, 913irqreturn_t serio_interrupt(struct serio *serio,
914 unsigned char data, unsigned int dfl, struct pt_regs *regs) 914 unsigned char data, unsigned int dfl)
915{ 915{
916 unsigned long flags; 916 unsigned long flags;
917 irqreturn_t ret = IRQ_NONE; 917 irqreturn_t ret = IRQ_NONE;
@@ -919,7 +919,7 @@ irqreturn_t serio_interrupt(struct serio *serio,
919 spin_lock_irqsave(&serio->lock, flags); 919 spin_lock_irqsave(&serio->lock, flags);
920 920
921 if (likely(serio->drv)) { 921 if (likely(serio->drv)) {
922 ret = serio->drv->interrupt(serio, data, dfl, regs); 922 ret = serio->drv->interrupt(serio, data, dfl);
923 } else if (!dfl && serio->registered) { 923 } else if (!dfl && serio->registered) {
924 serio_rescan(serio); 924 serio_rescan(serio);
925 ret = IRQ_HANDLED; 925 ret = IRQ_HANDLED;
diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c
index 71a8eea816cb..ba2a2035d648 100644
--- a/drivers/input/serio/serio_raw.c
+++ b/drivers/input/serio/serio_raw.c
@@ -250,7 +250,7 @@ static struct file_operations serio_raw_fops = {
250 *********************************************************************/ 250 *********************************************************************/
251 251
252static irqreturn_t serio_raw_interrupt(struct serio *serio, unsigned char data, 252static irqreturn_t serio_raw_interrupt(struct serio *serio, unsigned char data,
253 unsigned int dfl, struct pt_regs *regs) 253 unsigned int dfl)
254{ 254{
255 struct serio_raw *serio_raw = serio_get_drvdata(serio); 255 struct serio_raw *serio_raw = serio_get_drvdata(serio);
256 struct serio_raw_list *list; 256 struct serio_raw_list *list;
diff --git a/drivers/input/serio/serport.c b/drivers/input/serio/serport.c
index 54a680cc704d..e1a3a79ab3f9 100644
--- a/drivers/input/serio/serport.c
+++ b/drivers/input/serio/serport.c
@@ -117,9 +117,6 @@ static void serport_ldisc_close(struct tty_struct *tty)
117 * serport_ldisc_receive() is called by the low level tty driver when characters 117 * serport_ldisc_receive() is called by the low level tty driver when characters
118 * are ready for us. We forward the characters, one by one to the 'interrupt' 118 * are ready for us. We forward the characters, one by one to the 'interrupt'
119 * routine. 119 * routine.
120 *
121 * FIXME: We should get pt_regs from the tty layer and forward them to
122 * serio_interrupt here.
123 */ 120 */
124 121
125static void serport_ldisc_receive(struct tty_struct *tty, const unsigned char *cp, char *fp, int count) 122static void serport_ldisc_receive(struct tty_struct *tty, const unsigned char *cp, char *fp, int count)
@@ -134,7 +131,7 @@ static void serport_ldisc_receive(struct tty_struct *tty, const unsigned char *c
134 goto out; 131 goto out;
135 132
136 for (i = 0; i < count; i++) 133 for (i = 0; i < count; i++)
137 serio_interrupt(serport->serio, cp[i], 0, NULL); 134 serio_interrupt(serport->serio, cp[i], 0);
138 135
139out: 136out:
140 spin_unlock_irqrestore(&serport->lock, flags); 137 spin_unlock_irqrestore(&serport->lock, flags);
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index 66e411badf70..f56d6a0f0624 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -487,7 +487,7 @@ static void ads7846_timer(unsigned long handle)
487 spin_unlock_irq(&ts->lock); 487 spin_unlock_irq(&ts->lock);
488} 488}
489 489
490static irqreturn_t ads7846_irq(int irq, void *handle, struct pt_regs *regs) 490static irqreturn_t ads7846_irq(int irq, void *handle)
491{ 491{
492 struct ads7846 *ts = handle; 492 struct ads7846 *ts = handle;
493 unsigned long flags; 493 unsigned long flags;
diff --git a/drivers/input/touchscreen/corgi_ts.c b/drivers/input/touchscreen/corgi_ts.c
index 9b66271d3ba8..ca79b2246195 100644
--- a/drivers/input/touchscreen/corgi_ts.c
+++ b/drivers/input/touchscreen/corgi_ts.c
@@ -173,7 +173,7 @@ static int read_xydata(struct corgi_ts *corgi_ts)
173 return 1; 173 return 1;
174} 174}
175 175
176static void new_data(struct corgi_ts *corgi_ts, struct pt_regs *regs) 176static void new_data(struct corgi_ts *corgi_ts)
177{ 177{
178 if (corgi_ts->power_mode != PWR_MODE_ACTIVE) 178 if (corgi_ts->power_mode != PWR_MODE_ACTIVE)
179 return; 179 return;
@@ -181,7 +181,6 @@ static void new_data(struct corgi_ts *corgi_ts, struct pt_regs *regs)
181 if (!corgi_ts->tc.pressure && corgi_ts->pendown == 0) 181 if (!corgi_ts->tc.pressure && corgi_ts->pendown == 0)
182 return; 182 return;
183 183
184 input_regs(corgi_ts->input, regs);
185 input_report_abs(corgi_ts->input, ABS_X, corgi_ts->tc.x); 184 input_report_abs(corgi_ts->input, ABS_X, corgi_ts->tc.x);
186 input_report_abs(corgi_ts->input, ABS_Y, corgi_ts->tc.y); 185 input_report_abs(corgi_ts->input, ABS_Y, corgi_ts->tc.y);
187 input_report_abs(corgi_ts->input, ABS_PRESSURE, corgi_ts->tc.pressure); 186 input_report_abs(corgi_ts->input, ABS_PRESSURE, corgi_ts->tc.pressure);
@@ -189,14 +188,14 @@ static void new_data(struct corgi_ts *corgi_ts, struct pt_regs *regs)
189 input_sync(corgi_ts->input); 188 input_sync(corgi_ts->input);
190} 189}
191 190
192static void ts_interrupt_main(struct corgi_ts *corgi_ts, int isTimer, struct pt_regs *regs) 191static void ts_interrupt_main(struct corgi_ts *corgi_ts, int isTimer)
193{ 192{
194 if ((GPLR(IRQ_TO_GPIO(corgi_ts->irq_gpio)) & GPIO_bit(IRQ_TO_GPIO(corgi_ts->irq_gpio))) == 0) { 193 if ((GPLR(IRQ_TO_GPIO(corgi_ts->irq_gpio)) & GPIO_bit(IRQ_TO_GPIO(corgi_ts->irq_gpio))) == 0) {
195 /* Disable Interrupt */ 194 /* Disable Interrupt */
196 set_irq_type(corgi_ts->irq_gpio, IRQT_NOEDGE); 195 set_irq_type(corgi_ts->irq_gpio, IRQT_NOEDGE);
197 if (read_xydata(corgi_ts)) { 196 if (read_xydata(corgi_ts)) {
198 corgi_ts->pendown = 1; 197 corgi_ts->pendown = 1;
199 new_data(corgi_ts, regs); 198 new_data(corgi_ts);
200 } 199 }
201 mod_timer(&corgi_ts->timer, jiffies + HZ / 100); 200 mod_timer(&corgi_ts->timer, jiffies + HZ / 100);
202 } else { 201 } else {
@@ -208,7 +207,7 @@ static void ts_interrupt_main(struct corgi_ts *corgi_ts, int isTimer, struct pt_
208 207
209 if (corgi_ts->pendown) { 208 if (corgi_ts->pendown) {
210 corgi_ts->tc.pressure = 0; 209 corgi_ts->tc.pressure = 0;
211 new_data(corgi_ts, regs); 210 new_data(corgi_ts);
212 } 211 }
213 212
214 /* Enable Falling Edge */ 213 /* Enable Falling Edge */
@@ -223,10 +222,10 @@ static void corgi_ts_timer(unsigned long data)
223 ts_interrupt_main(corgits_data, 1, NULL); 222 ts_interrupt_main(corgits_data, 1, NULL);
224} 223}
225 224
226static irqreturn_t ts_interrupt(int irq, void *dev_id, struct pt_regs *regs) 225static irqreturn_t ts_interrupt(int irq, void *dev_id)
227{ 226{
228 struct corgi_ts *corgits_data = dev_id; 227 struct corgi_ts *corgits_data = dev_id;
229 ts_interrupt_main(corgits_data, 0, regs); 228 ts_interrupt_main(corgits_data, 0);
230 return IRQ_HANDLED; 229 return IRQ_HANDLED;
231} 230}
232 231
diff --git a/drivers/input/touchscreen/elo.c b/drivers/input/touchscreen/elo.c
index ab565335ee44..913e1b73bb0e 100644
--- a/drivers/input/touchscreen/elo.c
+++ b/drivers/input/touchscreen/elo.c
@@ -67,7 +67,7 @@ struct elo {
67 char phys[32]; 67 char phys[32];
68}; 68};
69 69
70static void elo_process_data_10(struct elo *elo, unsigned char data, struct pt_regs *regs) 70static void elo_process_data_10(struct elo *elo, unsigned char data)
71{ 71{
72 struct input_dev *dev = elo->dev; 72 struct input_dev *dev = elo->dev;
73 73
@@ -95,7 +95,6 @@ static void elo_process_data_10(struct elo *elo, unsigned char data, struct pt_r
95 break; 95 break;
96 } 96 }
97 if (likely(elo->data[1] == ELO10_TOUCH_PACKET)) { 97 if (likely(elo->data[1] == ELO10_TOUCH_PACKET)) {
98 input_regs(dev, regs);
99 input_report_abs(dev, ABS_X, (elo->data[4] << 8) | elo->data[3]); 98 input_report_abs(dev, ABS_X, (elo->data[4] << 8) | elo->data[3]);
100 input_report_abs(dev, ABS_Y, (elo->data[6] << 8) | elo->data[5]); 99 input_report_abs(dev, ABS_Y, (elo->data[6] << 8) | elo->data[5]);
101 if (elo->data[2] & ELO10_PRESSURE) 100 if (elo->data[2] & ELO10_PRESSURE)
@@ -116,7 +115,7 @@ static void elo_process_data_10(struct elo *elo, unsigned char data, struct pt_r
116 elo->csum += data; 115 elo->csum += data;
117} 116}
118 117
119static void elo_process_data_6(struct elo *elo, unsigned char data, struct pt_regs *regs) 118static void elo_process_data_6(struct elo *elo, unsigned char data)
120{ 119{
121 struct input_dev *dev = elo->dev; 120 struct input_dev *dev = elo->dev;
122 121
@@ -134,7 +133,6 @@ static void elo_process_data_6(struct elo *elo, unsigned char data, struct pt_re
134 break; 133 break;
135 } 134 }
136 135
137 input_regs(dev, regs);
138 input_report_abs(dev, ABS_X, ((elo->data[0] & 0x3f) << 6) | (elo->data[1] & 0x3f)); 136 input_report_abs(dev, ABS_X, ((elo->data[0] & 0x3f) << 6) | (elo->data[1] & 0x3f));
139 input_report_abs(dev, ABS_Y, ((elo->data[2] & 0x3f) << 6) | (elo->data[3] & 0x3f)); 137 input_report_abs(dev, ABS_Y, ((elo->data[2] & 0x3f) << 6) | (elo->data[3] & 0x3f));
140 138
@@ -164,7 +162,7 @@ static void elo_process_data_6(struct elo *elo, unsigned char data, struct pt_re
164 } 162 }
165} 163}
166 164
167static void elo_process_data_3(struct elo *elo, unsigned char data, struct pt_regs *regs) 165static void elo_process_data_3(struct elo *elo, unsigned char data)
168{ 166{
169 struct input_dev *dev = elo->dev; 167 struct input_dev *dev = elo->dev;
170 168
@@ -177,7 +175,6 @@ static void elo_process_data_3(struct elo *elo, unsigned char data, struct pt_re
177 elo->idx = 0; 175 elo->idx = 0;
178 break; 176 break;
179 case 2: 177 case 2:
180 input_regs(dev, regs);
181 input_report_key(dev, BTN_TOUCH, !(elo->data[1] & 0x80)); 178 input_report_key(dev, BTN_TOUCH, !(elo->data[1] & 0x80));
182 input_report_abs(dev, ABS_X, elo->data[1]); 179 input_report_abs(dev, ABS_X, elo->data[1]);
183 input_report_abs(dev, ABS_Y, elo->data[2]); 180 input_report_abs(dev, ABS_Y, elo->data[2]);
@@ -188,22 +185,22 @@ static void elo_process_data_3(struct elo *elo, unsigned char data, struct pt_re
188} 185}
189 186
190static irqreturn_t elo_interrupt(struct serio *serio, 187static irqreturn_t elo_interrupt(struct serio *serio,
191 unsigned char data, unsigned int flags, struct pt_regs *regs) 188 unsigned char data, unsigned int flags)
192{ 189{
193 struct elo *elo = serio_get_drvdata(serio); 190 struct elo *elo = serio_get_drvdata(serio);
194 191
195 switch(elo->id) { 192 switch(elo->id) {
196 case 0: 193 case 0:
197 elo_process_data_10(elo, data, regs); 194 elo_process_data_10(elo, data);
198 break; 195 break;
199 196
200 case 1: 197 case 1:
201 case 2: 198 case 2:
202 elo_process_data_6(elo, data, regs); 199 elo_process_data_6(elo, data);
203 break; 200 break;
204 201
205 case 3: 202 case 3:
206 elo_process_data_3(elo, data, regs); 203 elo_process_data_3(elo, data);
207 break; 204 break;
208 } 205 }
209 206
diff --git a/drivers/input/touchscreen/gunze.c b/drivers/input/touchscreen/gunze.c
index b769b21973b7..817c2198933d 100644
--- a/drivers/input/touchscreen/gunze.c
+++ b/drivers/input/touchscreen/gunze.c
@@ -60,7 +60,7 @@ struct gunze {
60 char phys[32]; 60 char phys[32];
61}; 61};
62 62
63static void gunze_process_packet(struct gunze* gunze, struct pt_regs *regs) 63static void gunze_process_packet(struct gunze* gunze)
64{ 64{
65 struct input_dev *dev = gunze->dev; 65 struct input_dev *dev = gunze->dev;
66 66
@@ -70,7 +70,6 @@ static void gunze_process_packet(struct gunze* gunze, struct pt_regs *regs)
70 return; 70 return;
71 } 71 }
72 72
73 input_regs(dev, regs);
74 input_report_abs(dev, ABS_X, simple_strtoul(gunze->data + 1, NULL, 10)); 73 input_report_abs(dev, ABS_X, simple_strtoul(gunze->data + 1, NULL, 10));
75 input_report_abs(dev, ABS_Y, 1024 - simple_strtoul(gunze->data + 6, NULL, 10)); 74 input_report_abs(dev, ABS_Y, 1024 - simple_strtoul(gunze->data + 6, NULL, 10));
76 input_report_key(dev, BTN_TOUCH, gunze->data[0] == 'T'); 75 input_report_key(dev, BTN_TOUCH, gunze->data[0] == 'T');
@@ -78,12 +77,12 @@ static void gunze_process_packet(struct gunze* gunze, struct pt_regs *regs)
78} 77}
79 78
80static irqreturn_t gunze_interrupt(struct serio *serio, 79static irqreturn_t gunze_interrupt(struct serio *serio,
81 unsigned char data, unsigned int flags, struct pt_regs *regs) 80 unsigned char data, unsigned int flags)
82{ 81{
83 struct gunze* gunze = serio_get_drvdata(serio); 82 struct gunze* gunze = serio_get_drvdata(serio);
84 83
85 if (data == '\r') { 84 if (data == '\r') {
86 gunze_process_packet(gunze, regs); 85 gunze_process_packet(gunze);
87 gunze->idx = 0; 86 gunze->idx = 0;
88 } else { 87 } else {
89 if (gunze->idx < GUNZE_MAX_LENGTH) 88 if (gunze->idx < GUNZE_MAX_LENGTH)
diff --git a/drivers/input/touchscreen/h3600_ts_input.c b/drivers/input/touchscreen/h3600_ts_input.c
index e2b910018773..d9e61ee05ea9 100644
--- a/drivers/input/touchscreen/h3600_ts_input.c
+++ b/drivers/input/touchscreen/h3600_ts_input.c
@@ -106,19 +106,18 @@ struct h3600_dev {
106 char phys[32]; 106 char phys[32];
107}; 107};
108 108
109static irqreturn_t action_button_handler(int irq, void *dev_id, struct pt_regs *regs) 109static irqreturn_t action_button_handler(int irq, void *dev_id)
110{ 110{
111 int down = (GPLR & GPIO_BITSY_ACTION_BUTTON) ? 0 : 1; 111 int down = (GPLR & GPIO_BITSY_ACTION_BUTTON) ? 0 : 1;
112 struct input_dev *dev = (struct input_dev *) dev_id; 112 struct input_dev *dev = (struct input_dev *) dev_id;
113 113
114 input_regs(dev, regs);
115 input_report_key(dev, KEY_ENTER, down); 114 input_report_key(dev, KEY_ENTER, down);
116 input_sync(dev); 115 input_sync(dev);
117 116
118 return IRQ_HANDLED; 117 return IRQ_HANDLED;
119} 118}
120 119
121static irqreturn_t npower_button_handler(int irq, void *dev_id, struct pt_regs *regs) 120static irqreturn_t npower_button_handler(int irq, void *dev_id)
122{ 121{
123 int down = (GPLR & GPIO_BITSY_NPOWER_BUTTON) ? 0 : 1; 122 int down = (GPLR & GPIO_BITSY_NPOWER_BUTTON) ? 0 : 1;
124 struct input_dev *dev = (struct input_dev *) dev_id; 123 struct input_dev *dev = (struct input_dev *) dev_id;
@@ -127,7 +126,6 @@ static irqreturn_t npower_button_handler(int irq, void *dev_id, struct pt_regs *
127 * This interrupt is only called when we release the key. So we have 126 * This interrupt is only called when we release the key. So we have
128 * to fake a key press. 127 * to fake a key press.
129 */ 128 */
130 input_regs(dev, regs);
131 input_report_key(dev, KEY_SUSPEND, 1); 129 input_report_key(dev, KEY_SUSPEND, 1);
132 input_report_key(dev, KEY_SUSPEND, down); 130 input_report_key(dev, KEY_SUSPEND, down);
133 input_sync(dev); 131 input_sync(dev);
@@ -165,14 +163,12 @@ unsigned int h3600_flite_power(struct input_dev *dev, enum flite_pwr pwr)
165 * packets. Some packets coming from serial are not touchscreen related. In 163 * packets. Some packets coming from serial are not touchscreen related. In
166 * this case we send them off to be processed elsewhere. 164 * this case we send them off to be processed elsewhere.
167 */ 165 */
168static void h3600ts_process_packet(struct h3600_dev *ts, struct pt_regs *regs) 166static void h3600ts_process_packet(struct h3600_dev *ts)
169{ 167{
170 struct input_dev *dev = ts->dev; 168 struct input_dev *dev = ts->dev;
171 static int touched = 0; 169 static int touched = 0;
172 int key, down = 0; 170 int key, down = 0;
173 171
174 input_regs(dev, regs);
175
176 switch (ts->event) { 172 switch (ts->event) {
177 /* 173 /*
178 Buttons - returned as a single byte 174 Buttons - returned as a single byte
@@ -301,7 +297,7 @@ static int state;
301#define STATE_EOF 3 /* state where we decode checksum or EOF */ 297#define STATE_EOF 3 /* state where we decode checksum or EOF */
302 298
303static irqreturn_t h3600ts_interrupt(struct serio *serio, unsigned char data, 299static irqreturn_t h3600ts_interrupt(struct serio *serio, unsigned char data,
304 unsigned int flags, struct pt_regs *regs) 300 unsigned int flags)
305{ 301{
306 struct h3600_dev *ts = serio_get_drvdata(serio); 302 struct h3600_dev *ts = serio_get_drvdata(serio);
307 303
@@ -333,7 +329,7 @@ static irqreturn_t h3600ts_interrupt(struct serio *serio, unsigned char data,
333 case STATE_EOF: 329 case STATE_EOF:
334 state = STATE_SOF; 330 state = STATE_SOF;
335 if (data == CHAR_EOF || data == ts->chksum) 331 if (data == CHAR_EOF || data == ts->chksum)
336 h3600ts_process_packet(ts, regs); 332 h3600ts_process_packet(ts);
337 break; 333 break;
338 default: 334 default:
339 printk("Error3\n"); 335 printk("Error3\n");
diff --git a/drivers/input/touchscreen/hp680_ts_input.c b/drivers/input/touchscreen/hp680_ts_input.c
index ee6c2f40cdf6..e31c6c55b2e2 100644
--- a/drivers/input/touchscreen/hp680_ts_input.c
+++ b/drivers/input/touchscreen/hp680_ts_input.c
@@ -66,7 +66,7 @@ static void do_softint(void *data)
66 enable_irq(HP680_TS_IRQ); 66 enable_irq(HP680_TS_IRQ);
67} 67}
68 68
69static irqreturn_t hp680_ts_interrupt(int irq, void *dev, struct pt_regs *regs) 69static irqreturn_t hp680_ts_interrupt(int irq, void *dev)
70{ 70{
71 disable_irq_nosync(irq); 71 disable_irq_nosync(irq);
72 schedule_delayed_work(&work, HZ / 20); 72 schedule_delayed_work(&work, HZ / 20);
diff --git a/drivers/input/touchscreen/mk712.c b/drivers/input/touchscreen/mk712.c
index 3226830eea08..4cbcaa6a71e5 100644
--- a/drivers/input/touchscreen/mk712.c
+++ b/drivers/input/touchscreen/mk712.c
@@ -80,7 +80,7 @@ MODULE_PARM_DESC(irq, "IRQ of MK712 touchscreen controller");
80static struct input_dev *mk712_dev; 80static struct input_dev *mk712_dev;
81static DEFINE_SPINLOCK(mk712_lock); 81static DEFINE_SPINLOCK(mk712_lock);
82 82
83static irqreturn_t mk712_interrupt(int irq, void *dev_id, struct pt_regs *regs) 83static irqreturn_t mk712_interrupt(int irq, void *dev_id)
84{ 84{
85 unsigned char status; 85 unsigned char status;
86 static int debounce = 1; 86 static int debounce = 1;
@@ -88,7 +88,6 @@ static irqreturn_t mk712_interrupt(int irq, void *dev_id, struct pt_regs *regs)
88 static unsigned short last_y; 88 static unsigned short last_y;
89 89
90 spin_lock(&mk712_lock); 90 spin_lock(&mk712_lock);
91 input_regs(mk712_dev, regs);
92 91
93 status = inb(mk712_io + MK712_STATUS); 92 status = inb(mk712_io + MK712_STATUS);
94 93
diff --git a/drivers/input/touchscreen/mtouch.c b/drivers/input/touchscreen/mtouch.c
index 8647a905df80..3b4c61664b63 100644
--- a/drivers/input/touchscreen/mtouch.c
+++ b/drivers/input/touchscreen/mtouch.c
@@ -63,12 +63,11 @@ struct mtouch {
63 char phys[32]; 63 char phys[32];
64}; 64};
65 65
66static void mtouch_process_format_tablet(struct mtouch *mtouch, struct pt_regs *regs) 66static void mtouch_process_format_tablet(struct mtouch *mtouch)
67{ 67{
68 struct input_dev *dev = mtouch->dev; 68 struct input_dev *dev = mtouch->dev;
69 69
70 if (MTOUCH_FORMAT_TABLET_LENGTH == ++mtouch->idx) { 70 if (MTOUCH_FORMAT_TABLET_LENGTH == ++mtouch->idx) {
71 input_regs(dev, regs);
72 input_report_abs(dev, ABS_X, MTOUCH_GET_XC(mtouch->data)); 71 input_report_abs(dev, ABS_X, MTOUCH_GET_XC(mtouch->data));
73 input_report_abs(dev, ABS_Y, MTOUCH_MAX_YC - MTOUCH_GET_YC(mtouch->data)); 72 input_report_abs(dev, ABS_Y, MTOUCH_MAX_YC - MTOUCH_GET_YC(mtouch->data));
74 input_report_key(dev, BTN_TOUCH, MTOUCH_GET_TOUCHED(mtouch->data)); 73 input_report_key(dev, BTN_TOUCH, MTOUCH_GET_TOUCHED(mtouch->data));
@@ -78,7 +77,7 @@ static void mtouch_process_format_tablet(struct mtouch *mtouch, struct pt_regs *
78 } 77 }
79} 78}
80 79
81static void mtouch_process_response(struct mtouch *mtouch, struct pt_regs *regs) 80static void mtouch_process_response(struct mtouch *mtouch)
82{ 81{
83 if (MTOUCH_RESPONSE_END_BYTE == mtouch->data[mtouch->idx++]) { 82 if (MTOUCH_RESPONSE_END_BYTE == mtouch->data[mtouch->idx++]) {
84 /* FIXME - process response */ 83 /* FIXME - process response */
@@ -90,16 +89,16 @@ static void mtouch_process_response(struct mtouch *mtouch, struct pt_regs *regs)
90} 89}
91 90
92static irqreturn_t mtouch_interrupt(struct serio *serio, 91static irqreturn_t mtouch_interrupt(struct serio *serio,
93 unsigned char data, unsigned int flags, struct pt_regs *regs) 92 unsigned char data, unsigned int flags)
94{ 93{
95 struct mtouch* mtouch = serio_get_drvdata(serio); 94 struct mtouch* mtouch = serio_get_drvdata(serio);
96 95
97 mtouch->data[mtouch->idx] = data; 96 mtouch->data[mtouch->idx] = data;
98 97
99 if (MTOUCH_FORMAT_TABLET_STATUS_BIT & mtouch->data[0]) 98 if (MTOUCH_FORMAT_TABLET_STATUS_BIT & mtouch->data[0])
100 mtouch_process_format_tablet(mtouch, regs); 99 mtouch_process_format_tablet(mtouch);
101 else if (MTOUCH_RESPONSE_BEGIN_BYTE == mtouch->data[0]) 100 else if (MTOUCH_RESPONSE_BEGIN_BYTE == mtouch->data[0])
102 mtouch_process_response(mtouch, regs); 101 mtouch_process_response(mtouch);
103 else 102 else
104 printk(KERN_DEBUG "mtouch.c: unknown/unsynchronized data from device, byte %x\n",mtouch->data[0]); 103 printk(KERN_DEBUG "mtouch.c: unknown/unsynchronized data from device, byte %x\n",mtouch->data[0]);
105 104
diff --git a/drivers/input/touchscreen/penmount.c b/drivers/input/touchscreen/penmount.c
index f7370109d43e..6c7d0c2c76cc 100644
--- a/drivers/input/touchscreen/penmount.c
+++ b/drivers/input/touchscreen/penmount.c
@@ -46,7 +46,7 @@ struct pm {
46}; 46};
47 47
48static irqreturn_t pm_interrupt(struct serio *serio, 48static irqreturn_t pm_interrupt(struct serio *serio,
49 unsigned char data, unsigned int flags, struct pt_regs *regs) 49 unsigned char data, unsigned int flags)
50{ 50{
51 struct pm *pm = serio_get_drvdata(serio); 51 struct pm *pm = serio_get_drvdata(serio);
52 struct input_dev *dev = pm->dev; 52 struct input_dev *dev = pm->dev;
@@ -55,7 +55,6 @@ static irqreturn_t pm_interrupt(struct serio *serio,
55 55
56 if (pm->data[0] & 0x80) { 56 if (pm->data[0] & 0x80) {
57 if (PM_MAX_LENGTH == ++pm->idx) { 57 if (PM_MAX_LENGTH == ++pm->idx) {
58 input_regs(dev, regs);
59 input_report_abs(dev, ABS_X, pm->data[2] * 128 + pm->data[1]); 58 input_report_abs(dev, ABS_X, pm->data[2] * 128 + pm->data[1]);
60 input_report_abs(dev, ABS_Y, pm->data[4] * 128 + pm->data[3]); 59 input_report_abs(dev, ABS_Y, pm->data[4] * 128 + pm->data[3]);
61 input_report_key(dev, BTN_TOUCH, !!(pm->data[0] & 0x40)); 60 input_report_key(dev, BTN_TOUCH, !!(pm->data[0] & 0x40));
diff --git a/drivers/input/touchscreen/touchright.c b/drivers/input/touchscreen/touchright.c
index 1c89fa538651..c74f74e57af0 100644
--- a/drivers/input/touchscreen/touchright.c
+++ b/drivers/input/touchscreen/touchright.c
@@ -56,7 +56,7 @@ struct tr {
56}; 56};
57 57
58static irqreturn_t tr_interrupt(struct serio *serio, 58static irqreturn_t tr_interrupt(struct serio *serio,
59 unsigned char data, unsigned int flags, struct pt_regs *regs) 59 unsigned char data, unsigned int flags)
60{ 60{
61 struct tr *tr = serio_get_drvdata(serio); 61 struct tr *tr = serio_get_drvdata(serio);
62 struct input_dev *dev = tr->dev; 62 struct input_dev *dev = tr->dev;
@@ -65,7 +65,6 @@ static irqreturn_t tr_interrupt(struct serio *serio,
65 65
66 if ((tr->data[0] & TR_FORMAT_STATUS_MASK) == TR_FORMAT_STATUS_BYTE) { 66 if ((tr->data[0] & TR_FORMAT_STATUS_MASK) == TR_FORMAT_STATUS_BYTE) {
67 if (++tr->idx == TR_LENGTH) { 67 if (++tr->idx == TR_LENGTH) {
68 input_regs(dev, regs);
69 input_report_abs(dev, ABS_X, 68 input_report_abs(dev, ABS_X,
70 (tr->data[1] << 5) | (tr->data[2] >> 1)); 69 (tr->data[1] << 5) | (tr->data[2] >> 1));
71 input_report_abs(dev, ABS_Y, 70 input_report_abs(dev, ABS_Y,
diff --git a/drivers/input/touchscreen/touchwin.c b/drivers/input/touchscreen/touchwin.c
index a7b4c755958e..9911820fa2fe 100644
--- a/drivers/input/touchscreen/touchwin.c
+++ b/drivers/input/touchscreen/touchwin.c
@@ -60,7 +60,7 @@ struct tw {
60}; 60};
61 61
62static irqreturn_t tw_interrupt(struct serio *serio, 62static irqreturn_t tw_interrupt(struct serio *serio,
63 unsigned char data, unsigned int flags, struct pt_regs *regs) 63 unsigned char data, unsigned int flags)
64{ 64{
65 struct tw *tw = serio_get_drvdata(serio); 65 struct tw *tw = serio_get_drvdata(serio);
66 struct input_dev *dev = tw->dev; 66 struct input_dev *dev = tw->dev;
@@ -70,7 +70,6 @@ static irqreturn_t tw_interrupt(struct serio *serio,
70 tw->data[tw->idx++] = data; 70 tw->data[tw->idx++] = data;
71 /* verify length and that the two Y's are the same */ 71 /* verify length and that the two Y's are the same */
72 if (tw->idx == TW_LENGTH && tw->data[1] == tw->data[2]) { 72 if (tw->idx == TW_LENGTH && tw->data[1] == tw->data[2]) {
73 input_regs(dev, regs);
74 input_report_abs(dev, ABS_X, tw->data[0]); 73 input_report_abs(dev, ABS_X, tw->data[0]);
75 input_report_abs(dev, ABS_Y, tw->data[1]); 74 input_report_abs(dev, ABS_Y, tw->data[1]);
76 input_report_key(dev, BTN_TOUCH, 1); 75 input_report_key(dev, BTN_TOUCH, 1);
diff --git a/drivers/isdn/act2000/act2000_isa.c b/drivers/isdn/act2000/act2000_isa.c
index bc98d77c5ecd..3014495b7ff7 100644
--- a/drivers/isdn/act2000/act2000_isa.c
+++ b/drivers/isdn/act2000/act2000_isa.c
@@ -63,7 +63,7 @@ act2000_isa_detect(unsigned short portbase)
63} 63}
64 64
65static irqreturn_t 65static irqreturn_t
66act2000_isa_interrupt(int irq, void *dev_id, struct pt_regs *regs) 66act2000_isa_interrupt(int irq, void *dev_id)
67{ 67{
68 act2000_card *card = irq2card_map[irq]; 68 act2000_card *card = irq2card_map[irq];
69 u_char istatus; 69 u_char istatus;
diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c
index 5cfbe6a38010..0c937325a1b3 100644
--- a/drivers/isdn/gigaset/bas-gigaset.c
+++ b/drivers/isdn/gigaset/bas-gigaset.c
@@ -454,7 +454,7 @@ inline static int update_basstate(struct bas_cardstate *ucs,
454 * urb USB request block 454 * urb USB request block
455 * urb->context = inbuf structure for controller state 455 * urb->context = inbuf structure for controller state
456 */ 456 */
457static void read_ctrl_callback(struct urb *urb, struct pt_regs *regs) 457static void read_ctrl_callback(struct urb *urb)
458{ 458{
459 struct inbuf_t *inbuf = urb->context; 459 struct inbuf_t *inbuf = urb->context;
460 struct cardstate *cs = inbuf->cs; 460 struct cardstate *cs = inbuf->cs;
@@ -596,7 +596,7 @@ static int atread_submit(struct cardstate *cs, int timeout)
596 * urb USB request block 596 * urb USB request block
597 * urb->context = controller state structure 597 * urb->context = controller state structure
598 */ 598 */
599static void read_int_callback(struct urb *urb, struct pt_regs *regs) 599static void read_int_callback(struct urb *urb)
600{ 600{
601 struct cardstate *cs = urb->context; 601 struct cardstate *cs = urb->context;
602 struct bas_cardstate *ucs = cs->hw.bas; 602 struct bas_cardstate *ucs = cs->hw.bas;
@@ -762,7 +762,7 @@ resubmit:
762 * urb USB request block of completed request 762 * urb USB request block of completed request
763 * urb->context = bc_state structure 763 * urb->context = bc_state structure
764 */ 764 */
765static void read_iso_callback(struct urb *urb, struct pt_regs *regs) 765static void read_iso_callback(struct urb *urb)
766{ 766{
767 struct bc_state *bcs; 767 struct bc_state *bcs;
768 struct bas_bc_state *ubc; 768 struct bas_bc_state *ubc;
@@ -827,7 +827,7 @@ static void read_iso_callback(struct urb *urb, struct pt_regs *regs)
827 * urb USB request block of completed request 827 * urb USB request block of completed request
828 * urb->context = isow_urbctx_t structure 828 * urb->context = isow_urbctx_t structure
829 */ 829 */
830static void write_iso_callback(struct urb *urb, struct pt_regs *regs) 830static void write_iso_callback(struct urb *urb)
831{ 831{
832 struct isow_urbctx_t *ucx; 832 struct isow_urbctx_t *ucx;
833 struct bas_bc_state *ubc; 833 struct bas_bc_state *ubc;
@@ -1415,7 +1415,7 @@ static void req_timeout(unsigned long data)
1415 * urb USB request block of completed request 1415 * urb USB request block of completed request
1416 * urb->context = hardware specific controller state structure 1416 * urb->context = hardware specific controller state structure
1417 */ 1417 */
1418static void write_ctrl_callback(struct urb *urb, struct pt_regs *regs) 1418static void write_ctrl_callback(struct urb *urb)
1419{ 1419{
1420 struct bas_cardstate *ucs = urb->context; 1420 struct bas_cardstate *ucs = urb->context;
1421 int rc; 1421 int rc;
@@ -1661,7 +1661,7 @@ static void complete_cb(struct cardstate *cs)
1661 * urb USB request block of completed request 1661 * urb USB request block of completed request
1662 * urb->context = controller state structure 1662 * urb->context = controller state structure
1663 */ 1663 */
1664static void write_command_callback(struct urb *urb, struct pt_regs *regs) 1664static void write_command_callback(struct urb *urb)
1665{ 1665{
1666 struct cardstate *cs = urb->context; 1666 struct cardstate *cs = urb->context;
1667 struct bas_cardstate *ucs = cs->hw.bas; 1667 struct bas_cardstate *ucs = cs->hw.bas;
diff --git a/drivers/isdn/gigaset/usb-gigaset.c b/drivers/isdn/gigaset/usb-gigaset.c
index 6e05d9d4a51a..4ffa9eb1c28e 100644
--- a/drivers/isdn/gigaset/usb-gigaset.c
+++ b/drivers/isdn/gigaset/usb-gigaset.c
@@ -362,7 +362,7 @@ static void gigaset_modem_fill(unsigned long data)
362 * 362 *
363 * It is called if the data was received from the device. 363 * It is called if the data was received from the device.
364 */ 364 */
365static void gigaset_read_int_callback(struct urb *urb, struct pt_regs *regs) 365static void gigaset_read_int_callback(struct urb *urb)
366{ 366{
367 struct inbuf_t *inbuf = urb->context; 367 struct inbuf_t *inbuf = urb->context;
368 struct cardstate *cs = inbuf->cs; 368 struct cardstate *cs = inbuf->cs;
@@ -420,7 +420,7 @@ static void gigaset_read_int_callback(struct urb *urb, struct pt_regs *regs)
420 420
421 421
422/* This callback routine is called when data was transmitted to the device. */ 422/* This callback routine is called when data was transmitted to the device. */
423static void gigaset_write_bulk_callback(struct urb *urb, struct pt_regs *regs) 423static void gigaset_write_bulk_callback(struct urb *urb)
424{ 424{
425 struct cardstate *cs = urb->context; 425 struct cardstate *cs = urb->context;
426 unsigned long flags; 426 unsigned long flags;
diff --git a/drivers/isdn/hardware/avm/avmcard.h b/drivers/isdn/hardware/avm/avmcard.h
index 3b431723c7cb..d964f07e4a56 100644
--- a/drivers/isdn/hardware/avm/avmcard.h
+++ b/drivers/isdn/hardware/avm/avmcard.h
@@ -554,7 +554,7 @@ void b1_register_appl(struct capi_ctr *ctrl, u16 appl,
554void b1_release_appl(struct capi_ctr *ctrl, u16 appl); 554void b1_release_appl(struct capi_ctr *ctrl, u16 appl);
555u16 b1_send_message(struct capi_ctr *ctrl, struct sk_buff *skb); 555u16 b1_send_message(struct capi_ctr *ctrl, struct sk_buff *skb);
556void b1_parse_version(avmctrl_info *card); 556void b1_parse_version(avmctrl_info *card);
557irqreturn_t b1_interrupt(int interrupt, void *devptr, struct pt_regs *regs); 557irqreturn_t b1_interrupt(int interrupt, void *devptr);
558 558
559int b1ctl_read_proc(char *page, char **start, off_t off, 559int b1ctl_read_proc(char *page, char **start, off_t off,
560 int count, int *eof, struct capi_ctr *ctrl); 560 int count, int *eof, struct capi_ctr *ctrl);
@@ -567,7 +567,7 @@ void avmcard_dma_free(avmcard_dmainfo *);
567int b1pciv4_detect(avmcard *card); 567int b1pciv4_detect(avmcard *card);
568int t1pci_detect(avmcard *card); 568int t1pci_detect(avmcard *card);
569void b1dma_reset(avmcard *card); 569void b1dma_reset(avmcard *card);
570irqreturn_t b1dma_interrupt(int interrupt, void *devptr, struct pt_regs *regs); 570irqreturn_t b1dma_interrupt(int interrupt, void *devptr);
571 571
572int b1dma_load_firmware(struct capi_ctr *ctrl, capiloaddata *data); 572int b1dma_load_firmware(struct capi_ctr *ctrl, capiloaddata *data);
573void b1dma_reset_ctr(struct capi_ctr *ctrl); 573void b1dma_reset_ctr(struct capi_ctr *ctrl);
diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c
index 0c7061d55027..da2729247713 100644
--- a/drivers/isdn/hardware/avm/b1.c
+++ b/drivers/isdn/hardware/avm/b1.c
@@ -485,7 +485,7 @@ void b1_parse_version(avmctrl_info *cinfo)
485 485
486/* ------------------------------------------------------------- */ 486/* ------------------------------------------------------------- */
487 487
488irqreturn_t b1_interrupt(int interrupt, void *devptr, struct pt_regs *regs) 488irqreturn_t b1_interrupt(int interrupt, void *devptr)
489{ 489{
490 avmcard *card = devptr; 490 avmcard *card = devptr;
491 avmctrl_info *cinfo = &card->ctrlinfo[0]; 491 avmctrl_info *cinfo = &card->ctrlinfo[0];
diff --git a/drivers/isdn/hardware/avm/b1dma.c b/drivers/isdn/hardware/avm/b1dma.c
index a4beeb46c859..ddd47cdfdb1f 100644
--- a/drivers/isdn/hardware/avm/b1dma.c
+++ b/drivers/isdn/hardware/avm/b1dma.c
@@ -628,7 +628,7 @@ static void b1dma_handle_interrupt(avmcard *card)
628 spin_unlock(&card->lock); 628 spin_unlock(&card->lock);
629} 629}
630 630
631irqreturn_t b1dma_interrupt(int interrupt, void *devptr, struct pt_regs *regs) 631irqreturn_t b1dma_interrupt(int interrupt, void *devptr)
632{ 632{
633 avmcard *card = devptr; 633 avmcard *card = devptr;
634 634
diff --git a/drivers/isdn/hardware/avm/c4.c b/drivers/isdn/hardware/avm/c4.c
index 6c3d5f5f1f4b..2a3eb38f0ebb 100644
--- a/drivers/isdn/hardware/avm/c4.c
+++ b/drivers/isdn/hardware/avm/c4.c
@@ -713,7 +713,7 @@ static irqreturn_t c4_handle_interrupt(avmcard *card)
713 return IRQ_HANDLED; 713 return IRQ_HANDLED;
714} 714}
715 715
716static irqreturn_t c4_interrupt(int interrupt, void *devptr, struct pt_regs *regs) 716static irqreturn_t c4_interrupt(int interrupt, void *devptr)
717{ 717{
718 avmcard *card = devptr; 718 avmcard *card = devptr;
719 719
diff --git a/drivers/isdn/hardware/avm/t1isa.c b/drivers/isdn/hardware/avm/t1isa.c
index 5a2f854d55b5..e47c60b0a8ec 100644
--- a/drivers/isdn/hardware/avm/t1isa.c
+++ b/drivers/isdn/hardware/avm/t1isa.c
@@ -131,7 +131,7 @@ static int t1_detectandinit(unsigned int base, unsigned irq, int cardnr)
131 return 0; 131 return 0;
132} 132}
133 133
134static irqreturn_t t1isa_interrupt(int interrupt, void *devptr, struct pt_regs *regs) 134static irqreturn_t t1isa_interrupt(int interrupt, void *devptr)
135{ 135{
136 avmcard *card = devptr; 136 avmcard *card = devptr;
137 avmctrl_info *cinfo = &card->ctrlinfo[0]; 137 avmctrl_info *cinfo = &card->ctrlinfo[0];
diff --git a/drivers/isdn/hardware/eicon/diva.c b/drivers/isdn/hardware/eicon/diva.c
index 8ab8027f33c0..ffa2afa77c2f 100644
--- a/drivers/isdn/hardware/eicon/diva.c
+++ b/drivers/isdn/hardware/eicon/diva.c
@@ -71,8 +71,6 @@ DivaIdiReqFunc(29)
71DivaIdiReqFunc(30) 71DivaIdiReqFunc(30)
72DivaIdiReqFunc(31) 72DivaIdiReqFunc(31)
73 73
74struct pt_regs;
75
76/* 74/*
77** LOCALS 75** LOCALS
78*/ 76*/
@@ -515,7 +513,7 @@ diva_xdi_read(void *adapter, void *os_handle, void __user *dst,
515} 513}
516 514
517 515
518irqreturn_t diva_os_irq_wrapper(int irq, void *context, struct pt_regs *regs) 516irqreturn_t diva_os_irq_wrapper(int irq, void *context)
519{ 517{
520 diva_os_xdi_adapter_t *a = (diva_os_xdi_adapter_t *) context; 518 diva_os_xdi_adapter_t *a = (diva_os_xdi_adapter_t *) context;
521 diva_xdi_clear_interrupts_proc_t clear_int_proc; 519 diva_xdi_clear_interrupts_proc_t clear_int_proc;
diff --git a/drivers/isdn/hardware/eicon/divasmain.c b/drivers/isdn/hardware/eicon/divasmain.c
index b7dadba13e82..dae2e83dd5e8 100644
--- a/drivers/isdn/hardware/eicon/divasmain.c
+++ b/drivers/isdn/hardware/eicon/divasmain.c
@@ -58,8 +58,7 @@ static char *DRIVERLNAME = "divas";
58static char *DEVNAME = "Divas"; 58static char *DEVNAME = "Divas";
59char *DRIVERRELEASE_DIVAS = "2.0"; 59char *DRIVERRELEASE_DIVAS = "2.0";
60 60
61extern irqreturn_t diva_os_irq_wrapper(int irq, void *context, 61extern irqreturn_t diva_os_irq_wrapper(int irq, void *context);
62 struct pt_regs *regs);
63extern int create_divas_proc(void); 62extern int create_divas_proc(void);
64extern void remove_divas_proc(void); 63extern void remove_divas_proc(void);
65extern void diva_get_vserial_number(PISDN_ADAPTER IoAdapter, char *buf); 64extern void diva_get_vserial_number(PISDN_ADAPTER IoAdapter, char *buf);
diff --git a/drivers/isdn/hisax/amd7930_fn.c b/drivers/isdn/hisax/amd7930_fn.c
index 8ae08c41c853..bec59010bc66 100644
--- a/drivers/isdn/hisax/amd7930_fn.c
+++ b/drivers/isdn/hisax/amd7930_fn.c
@@ -733,7 +733,7 @@ dbusy_timer_handler(struct IsdnCardState *cs)
733 wByteAMD(cs, 0x21, 0x82); 733 wByteAMD(cs, 0x21, 0x82);
734 wByteAMD(cs, 0x21, 0x02); 734 wByteAMD(cs, 0x21, 0x02);
735 spin_unlock_irqrestore(&cs->lock, flags); 735 spin_unlock_irqrestore(&cs->lock, flags);
736 cs->irq_func(cs->irq, cs, NULL); 736 cs->irq_func(cs->irq, cs);
737 737
738 if (cs->debug & L1_DEB_ISAC) 738 if (cs->debug & L1_DEB_ISAC)
739 debugl1(cs, "Amd7930: dbusy_timer_handler: Transmitter reset"); 739 debugl1(cs, "Amd7930: dbusy_timer_handler: Transmitter reset");
diff --git a/drivers/isdn/hisax/asuscom.c b/drivers/isdn/hisax/asuscom.c
index 93ff941c48f1..61e69e9c4aa9 100644
--- a/drivers/isdn/hisax/asuscom.c
+++ b/drivers/isdn/hisax/asuscom.c
@@ -156,7 +156,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
156#include "hscx_irq.c" 156#include "hscx_irq.c"
157 157
158static irqreturn_t 158static irqreturn_t
159asuscom_interrupt(int intno, void *dev_id, struct pt_regs *regs) 159asuscom_interrupt(int intno, void *dev_id)
160{ 160{
161 struct IsdnCardState *cs = dev_id; 161 struct IsdnCardState *cs = dev_id;
162 u_char val; 162 u_char val;
@@ -194,7 +194,7 @@ asuscom_interrupt(int intno, void *dev_id, struct pt_regs *regs)
194} 194}
195 195
196static irqreturn_t 196static irqreturn_t
197asuscom_interrupt_ipac(int intno, void *dev_id, struct pt_regs *regs) 197asuscom_interrupt_ipac(int intno, void *dev_id)
198{ 198{
199 struct IsdnCardState *cs = dev_id; 199 struct IsdnCardState *cs = dev_id;
200 u_char ista, val, icnt = 5; 200 u_char ista, val, icnt = 5;
diff --git a/drivers/isdn/hisax/avm_a1.c b/drivers/isdn/hisax/avm_a1.c
index 729e906bdc61..d9028e9b9b8f 100644
--- a/drivers/isdn/hisax/avm_a1.c
+++ b/drivers/isdn/hisax/avm_a1.c
@@ -101,7 +101,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
101#include "hscx_irq.c" 101#include "hscx_irq.c"
102 102
103static irqreturn_t 103static irqreturn_t
104avm_a1_interrupt(int intno, void *dev_id, struct pt_regs *regs) 104avm_a1_interrupt(int intno, void *dev_id)
105{ 105{
106 struct IsdnCardState *cs = dev_id; 106 struct IsdnCardState *cs = dev_id;
107 u_char val, sval; 107 u_char val, sval;
diff --git a/drivers/isdn/hisax/avm_a1p.c b/drivers/isdn/hisax/avm_a1p.c
index 574e252dfa43..c87fa3f9b298 100644
--- a/drivers/isdn/hisax/avm_a1p.c
+++ b/drivers/isdn/hisax/avm_a1p.c
@@ -140,7 +140,7 @@ WriteHSCXfifo(struct IsdnCardState *cs, int hscx, u_char * data, int size)
140#include "hscx_irq.c" 140#include "hscx_irq.c"
141 141
142static irqreturn_t 142static irqreturn_t
143avm_a1p_interrupt(int intno, void *dev_id, struct pt_regs *regs) 143avm_a1p_interrupt(int intno, void *dev_id)
144{ 144{
145 struct IsdnCardState *cs = dev_id; 145 struct IsdnCardState *cs = dev_id;
146 u_char val, sval; 146 u_char val, sval;
diff --git a/drivers/isdn/hisax/avm_pci.c b/drivers/isdn/hisax/avm_pci.c
index 369afd3a3a4b..b04a178e5021 100644
--- a/drivers/isdn/hisax/avm_pci.c
+++ b/drivers/isdn/hisax/avm_pci.c
@@ -651,7 +651,7 @@ inithdlc(struct IsdnCardState *cs)
651} 651}
652 652
653static irqreturn_t 653static irqreturn_t
654avm_pcipnp_interrupt(int intno, void *dev_id, struct pt_regs *regs) 654avm_pcipnp_interrupt(int intno, void *dev_id)
655{ 655{
656 struct IsdnCardState *cs = dev_id; 656 struct IsdnCardState *cs = dev_id;
657 u_long flags; 657 u_long flags;
diff --git a/drivers/isdn/hisax/bkm_a4t.c b/drivers/isdn/hisax/bkm_a4t.c
index 87a630128a6c..871310d56a6e 100644
--- a/drivers/isdn/hisax/bkm_a4t.c
+++ b/drivers/isdn/hisax/bkm_a4t.c
@@ -125,7 +125,7 @@ WriteJADE(struct IsdnCardState *cs, int jade, u_char offset, u_char value)
125#include "jade_irq.c" 125#include "jade_irq.c"
126 126
127static irqreturn_t 127static irqreturn_t
128bkm_interrupt(int intno, void *dev_id, struct pt_regs *regs) 128bkm_interrupt(int intno, void *dev_id)
129{ 129{
130 struct IsdnCardState *cs = dev_id; 130 struct IsdnCardState *cs = dev_id;
131 u_char val = 0; 131 u_char val = 0;
diff --git a/drivers/isdn/hisax/bkm_a8.c b/drivers/isdn/hisax/bkm_a8.c
index dae090a9a489..340310645346 100644
--- a/drivers/isdn/hisax/bkm_a8.c
+++ b/drivers/isdn/hisax/bkm_a8.c
@@ -140,7 +140,7 @@ set_ipac_active(struct IsdnCardState *cs, u_int active)
140#include "hscx_irq.c" 140#include "hscx_irq.c"
141 141
142static irqreturn_t 142static irqreturn_t
143bkm_interrupt_ipac(int intno, void *dev_id, struct pt_regs *regs) 143bkm_interrupt_ipac(int intno, void *dev_id)
144{ 144{
145 struct IsdnCardState *cs = dev_id; 145 struct IsdnCardState *cs = dev_id;
146 u_char ista, val, icnt = 5; 146 u_char ista, val, icnt = 5;
diff --git a/drivers/isdn/hisax/diva.c b/drivers/isdn/hisax/diva.c
index e294fa3918f3..7e95f04f13da 100644
--- a/drivers/isdn/hisax/diva.c
+++ b/drivers/isdn/hisax/diva.c
@@ -289,7 +289,7 @@ MemWriteHSCX_IPACX(struct IsdnCardState *cs, int hscx, u_char offset, u_char val
289#include "hscx_irq.c" 289#include "hscx_irq.c"
290 290
291static irqreturn_t 291static irqreturn_t
292diva_interrupt(int intno, void *dev_id, struct pt_regs *regs) 292diva_interrupt(int intno, void *dev_id)
293{ 293{
294 struct IsdnCardState *cs = dev_id; 294 struct IsdnCardState *cs = dev_id;
295 u_char val, sval; 295 u_char val, sval;
@@ -319,7 +319,7 @@ diva_interrupt(int intno, void *dev_id, struct pt_regs *regs)
319} 319}
320 320
321static irqreturn_t 321static irqreturn_t
322diva_irq_ipac_isa(int intno, void *dev_id, struct pt_regs *regs) 322diva_irq_ipac_isa(int intno, void *dev_id)
323{ 323{
324 struct IsdnCardState *cs = dev_id; 324 struct IsdnCardState *cs = dev_id;
325 u_char ista,val; 325 u_char ista,val;
@@ -630,7 +630,7 @@ Memhscx_int_main(struct IsdnCardState *cs, u_char val)
630} 630}
631 631
632static irqreturn_t 632static irqreturn_t
633diva_irq_ipac_pci(int intno, void *dev_id, struct pt_regs *regs) 633diva_irq_ipac_pci(int intno, void *dev_id)
634{ 634{
635 struct IsdnCardState *cs = dev_id; 635 struct IsdnCardState *cs = dev_id;
636 u_char ista,val; 636 u_char ista,val;
@@ -685,7 +685,7 @@ Start_IPACPCI:
685} 685}
686 686
687static irqreturn_t 687static irqreturn_t
688diva_irq_ipacx_pci(int intno, void *dev_id, struct pt_regs *regs) 688diva_irq_ipacx_pci(int intno, void *dev_id)
689{ 689{
690 struct IsdnCardState *cs = dev_id; 690 struct IsdnCardState *cs = dev_id;
691 u_char val; 691 u_char val;
diff --git a/drivers/isdn/hisax/elsa.c b/drivers/isdn/hisax/elsa.c
index 3b3e318f6076..fab3e4ea0595 100644
--- a/drivers/isdn/hisax/elsa.c
+++ b/drivers/isdn/hisax/elsa.c
@@ -282,7 +282,7 @@ TimerRun(struct IsdnCardState *cs)
282#include "hscx_irq.c" 282#include "hscx_irq.c"
283 283
284static irqreturn_t 284static irqreturn_t
285elsa_interrupt(int intno, void *dev_id, struct pt_regs *regs) 285elsa_interrupt(int intno, void *dev_id)
286{ 286{
287 struct IsdnCardState *cs = dev_id; 287 struct IsdnCardState *cs = dev_id;
288 u_long flags; 288 u_long flags;
@@ -361,7 +361,7 @@ elsa_interrupt(int intno, void *dev_id, struct pt_regs *regs)
361} 361}
362 362
363static irqreturn_t 363static irqreturn_t
364elsa_interrupt_ipac(int intno, void *dev_id, struct pt_regs *regs) 364elsa_interrupt_ipac(int intno, void *dev_id)
365{ 365{
366 struct IsdnCardState *cs = dev_id; 366 struct IsdnCardState *cs = dev_id;
367 u_long flags; 367 u_long flags;
diff --git a/drivers/isdn/hisax/enternow_pci.c b/drivers/isdn/hisax/enternow_pci.c
index 76c7d29d1b2f..b45de9d408d1 100644
--- a/drivers/isdn/hisax/enternow_pci.c
+++ b/drivers/isdn/hisax/enternow_pci.c
@@ -240,7 +240,7 @@ enpci_card_msg(struct IsdnCardState *cs, int mt, void *arg)
240} 240}
241 241
242static irqreturn_t 242static irqreturn_t
243enpci_interrupt(int intno, void *dev_id, struct pt_regs *regs) 243enpci_interrupt(int intno, void *dev_id)
244{ 244{
245 struct IsdnCardState *cs = dev_id; 245 struct IsdnCardState *cs = dev_id;
246 unsigned char s0val, s1val, ir; 246 unsigned char s0val, s1val, ir;
diff --git a/drivers/isdn/hisax/gazel.c b/drivers/isdn/hisax/gazel.c
index fe2937267777..3efa719b6d29 100644
--- a/drivers/isdn/hisax/gazel.c
+++ b/drivers/isdn/hisax/gazel.c
@@ -243,7 +243,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
243#include "hscx_irq.c" 243#include "hscx_irq.c"
244 244
245static irqreturn_t 245static irqreturn_t
246gazel_interrupt(int intno, void *dev_id, struct pt_regs *regs) 246gazel_interrupt(int intno, void *dev_id)
247{ 247{
248#define MAXCOUNT 5 248#define MAXCOUNT 5
249 struct IsdnCardState *cs = dev_id; 249 struct IsdnCardState *cs = dev_id;
@@ -274,7 +274,7 @@ gazel_interrupt(int intno, void *dev_id, struct pt_regs *regs)
274 274
275 275
276static irqreturn_t 276static irqreturn_t
277gazel_interrupt_ipac(int intno, void *dev_id, struct pt_regs *regs) 277gazel_interrupt_ipac(int intno, void *dev_id)
278{ 278{
279 struct IsdnCardState *cs = dev_id; 279 struct IsdnCardState *cs = dev_id;
280 u_char ista, val; 280 u_char ista, val;
diff --git a/drivers/isdn/hisax/hfc4s8s_l1.c b/drivers/isdn/hisax/hfc4s8s_l1.c
index 0ca5e66d2f5a..d852c9d998b2 100644
--- a/drivers/isdn/hisax/hfc4s8s_l1.c
+++ b/drivers/isdn/hisax/hfc4s8s_l1.c
@@ -1268,7 +1268,7 @@ hfc4s8s_bh(hfc4s8s_hw * hw)
1268/* interrupt handler */ 1268/* interrupt handler */
1269/*********************/ 1269/*********************/
1270static irqreturn_t 1270static irqreturn_t
1271hfc4s8s_interrupt(int intno, void *dev_id, struct pt_regs *regs) 1271hfc4s8s_interrupt(int intno, void *dev_id)
1272{ 1272{
1273 hfc4s8s_hw *hw = dev_id; 1273 hfc4s8s_hw *hw = dev_id;
1274 u_char b, ovr; 1274 u_char b, ovr;
diff --git a/drivers/isdn/hisax/hfc_pci.c b/drivers/isdn/hisax/hfc_pci.c
index 1df60ca9481f..93f60b563515 100644
--- a/drivers/isdn/hisax/hfc_pci.c
+++ b/drivers/isdn/hisax/hfc_pci.c
@@ -931,7 +931,7 @@ receive_emsg(struct IsdnCardState *cs)
931/* Interrupt handler */ 931/* Interrupt handler */
932/*********************/ 932/*********************/
933static irqreturn_t 933static irqreturn_t
934hfcpci_interrupt(int intno, void *dev_id, struct pt_regs *regs) 934hfcpci_interrupt(int intno, void *dev_id)
935{ 935{
936 u_long flags; 936 u_long flags;
937 struct IsdnCardState *cs = dev_id; 937 struct IsdnCardState *cs = dev_id;
diff --git a/drivers/isdn/hisax/hfc_sx.c b/drivers/isdn/hisax/hfc_sx.c
index b7e8e23be337..954d1536db1f 100644
--- a/drivers/isdn/hisax/hfc_sx.c
+++ b/drivers/isdn/hisax/hfc_sx.c
@@ -691,7 +691,7 @@ receive_emsg(struct IsdnCardState *cs)
691/* Interrupt handler */ 691/* Interrupt handler */
692/*********************/ 692/*********************/
693static irqreturn_t 693static irqreturn_t
694hfcsx_interrupt(int intno, void *dev_id, struct pt_regs *regs) 694hfcsx_interrupt(int intno, void *dev_id)
695{ 695{
696 struct IsdnCardState *cs = dev_id; 696 struct IsdnCardState *cs = dev_id;
697 u_char exval; 697 u_char exval;
diff --git a/drivers/isdn/hisax/hfc_usb.c b/drivers/isdn/hisax/hfc_usb.c
index 6b88ecb5047d..7105b043add8 100644
--- a/drivers/isdn/hisax/hfc_usb.c
+++ b/drivers/isdn/hisax/hfc_usb.c
@@ -276,7 +276,7 @@ control_action_handler(hfcusb_data * hfc, int reg, int val, int action)
276/* control completion routine handling background control cmds */ 276/* control completion routine handling background control cmds */
277/***************************************************************/ 277/***************************************************************/
278static void 278static void
279ctrl_complete(struct urb *urb, struct pt_regs *regs) 279ctrl_complete(struct urb *urb)
280{ 280{
281 hfcusb_data *hfc = (hfcusb_data *) urb->context; 281 hfcusb_data *hfc = (hfcusb_data *) urb->context;
282 ctrl_buft *buf; 282 ctrl_buft *buf;
@@ -603,7 +603,7 @@ static int iso_packets[8] =
603/* transmit completion routine for all ISO tx fifos */ 603/* transmit completion routine for all ISO tx fifos */
604/*****************************************************/ 604/*****************************************************/
605static void 605static void
606tx_iso_complete(struct urb *urb, struct pt_regs *regs) 606tx_iso_complete(struct urb *urb)
607{ 607{
608 iso_urb_struct *context_iso_urb = (iso_urb_struct *) urb->context; 608 iso_urb_struct *context_iso_urb = (iso_urb_struct *) urb->context;
609 usb_fifo *fifo = context_iso_urb->owner_fifo; 609 usb_fifo *fifo = context_iso_urb->owner_fifo;
@@ -726,7 +726,7 @@ tx_iso_complete(struct urb *urb, struct pt_regs *regs)
726/* receive completion routine for all ISO tx fifos */ 726/* receive completion routine for all ISO tx fifos */
727/*****************************************************/ 727/*****************************************************/
728static void 728static void
729rx_iso_complete(struct urb *urb, struct pt_regs *regs) 729rx_iso_complete(struct urb *urb)
730{ 730{
731 iso_urb_struct *context_iso_urb = (iso_urb_struct *) urb->context; 731 iso_urb_struct *context_iso_urb = (iso_urb_struct *) urb->context;
732 usb_fifo *fifo = context_iso_urb->owner_fifo; 732 usb_fifo *fifo = context_iso_urb->owner_fifo;
@@ -919,7 +919,7 @@ collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, int finish)
919/* receive completion routine for all rx fifos */ 919/* receive completion routine for all rx fifos */
920/***********************************************/ 920/***********************************************/
921static void 921static void
922rx_complete(struct urb *urb, struct pt_regs *regs) 922rx_complete(struct urb *urb)
923{ 923{
924 int len; 924 int len;
925 int status; 925 int status;
diff --git a/drivers/isdn/hisax/hfcscard.c b/drivers/isdn/hisax/hfcscard.c
index 4e7f472877e9..57670dc5034d 100644
--- a/drivers/isdn/hisax/hfcscard.c
+++ b/drivers/isdn/hisax/hfcscard.c
@@ -21,7 +21,7 @@ extern const char *CardType[];
21static const char *hfcs_revision = "$Revision: 1.10.2.4 $"; 21static const char *hfcs_revision = "$Revision: 1.10.2.4 $";
22 22
23static irqreturn_t 23static irqreturn_t
24hfcs_interrupt(int intno, void *dev_id, struct pt_regs *regs) 24hfcs_interrupt(int intno, void *dev_id)
25{ 25{
26 struct IsdnCardState *cs = dev_id; 26 struct IsdnCardState *cs = dev_id;
27 u_char val, stat; 27 u_char val, stat;
diff --git a/drivers/isdn/hisax/hisax.h b/drivers/isdn/hisax/hisax.h
index 2f9d5118ceaf..159c5896061e 100644
--- a/drivers/isdn/hisax/hisax.h
+++ b/drivers/isdn/hisax/hisax.h
@@ -941,7 +941,7 @@ struct IsdnCardState {
941 int (*cardmsg) (struct IsdnCardState *, int, void *); 941 int (*cardmsg) (struct IsdnCardState *, int, void *);
942 void (*setstack_d) (struct PStack *, struct IsdnCardState *); 942 void (*setstack_d) (struct PStack *, struct IsdnCardState *);
943 void (*DC_Close) (struct IsdnCardState *); 943 void (*DC_Close) (struct IsdnCardState *);
944 int (*irq_func) (int, void *, struct pt_regs *); 944 int (*irq_func) (int, void *);
945 int (*auxcmd) (struct IsdnCardState *, isdn_ctrl *); 945 int (*auxcmd) (struct IsdnCardState *, isdn_ctrl *);
946 struct Channel channel[2+MAX_WAITING_CALLS]; 946 struct Channel channel[2+MAX_WAITING_CALLS];
947 struct BCState bcs[2+MAX_WAITING_CALLS]; 947 struct BCState bcs[2+MAX_WAITING_CALLS];
diff --git a/drivers/isdn/hisax/hisax_fcpcipnp.c b/drivers/isdn/hisax/hisax_fcpcipnp.c
index 881a4165cfb4..f6db55a752c4 100644
--- a/drivers/isdn/hisax/hisax_fcpcipnp.c
+++ b/drivers/isdn/hisax/hisax_fcpcipnp.c
@@ -651,7 +651,7 @@ static void fritz_b_l2l1(struct hisax_if *ifc, int pr, void *arg)
651// ---------------------------------------------------------------------- 651// ----------------------------------------------------------------------
652 652
653static irqreturn_t 653static irqreturn_t
654fcpci2_irq(int intno, void *dev, struct pt_regs *regs) 654fcpci2_irq(int intno, void *dev)
655{ 655{
656 struct fritz_adapter *adapter = dev; 656 struct fritz_adapter *adapter = dev;
657 unsigned char val; 657 unsigned char val;
@@ -671,7 +671,7 @@ fcpci2_irq(int intno, void *dev, struct pt_regs *regs)
671} 671}
672 672
673static irqreturn_t 673static irqreturn_t
674fcpci_irq(int intno, void *dev, struct pt_regs *regs) 674fcpci_irq(int intno, void *dev)
675{ 675{
676 struct fritz_adapter *adapter = dev; 676 struct fritz_adapter *adapter = dev;
677 unsigned char sval; 677 unsigned char sval;
diff --git a/drivers/isdn/hisax/icc.c b/drivers/isdn/hisax/icc.c
index 2cf7b665609e..da706925d54d 100644
--- a/drivers/isdn/hisax/icc.c
+++ b/drivers/isdn/hisax/icc.c
@@ -608,7 +608,7 @@ dbusy_timer_handler(struct IsdnCardState *cs)
608 debugl1(cs, "D-Channel Busy no skb"); 608 debugl1(cs, "D-Channel Busy no skb");
609 } 609 }
610 cs->writeisac(cs, ICC_CMDR, 0x01); /* Transmitter reset */ 610 cs->writeisac(cs, ICC_CMDR, 0x01); /* Transmitter reset */
611 cs->irq_func(cs->irq, cs, NULL); 611 cs->irq_func(cs->irq, cs);
612 } 612 }
613 } 613 }
614} 614}
diff --git a/drivers/isdn/hisax/isac.c b/drivers/isdn/hisax/isac.c
index 565b7892c267..282f349408bc 100644
--- a/drivers/isdn/hisax/isac.c
+++ b/drivers/isdn/hisax/isac.c
@@ -609,7 +609,7 @@ dbusy_timer_handler(struct IsdnCardState *cs)
609 debugl1(cs, "D-Channel Busy no skb"); 609 debugl1(cs, "D-Channel Busy no skb");
610 } 610 }
611 cs->writeisac(cs, ISAC_CMDR, 0x01); /* Transmitter reset */ 611 cs->writeisac(cs, ISAC_CMDR, 0x01); /* Transmitter reset */
612 cs->irq_func(cs->irq, cs, NULL); 612 cs->irq_func(cs->irq, cs);
613 } 613 }
614 } 614 }
615} 615}
diff --git a/drivers/isdn/hisax/isurf.c b/drivers/isdn/hisax/isurf.c
index 715a1a8cd694..55de06953540 100644
--- a/drivers/isdn/hisax/isurf.c
+++ b/drivers/isdn/hisax/isurf.c
@@ -83,7 +83,7 @@ WriteISAR(struct IsdnCardState *cs, int mode, u_char offset, u_char value)
83} 83}
84 84
85static irqreturn_t 85static irqreturn_t
86isurf_interrupt(int intno, void *dev_id, struct pt_regs *regs) 86isurf_interrupt(int intno, void *dev_id)
87{ 87{
88 struct IsdnCardState *cs = dev_id; 88 struct IsdnCardState *cs = dev_id;
89 u_char val; 89 u_char val;
diff --git a/drivers/isdn/hisax/ix1_micro.c b/drivers/isdn/hisax/ix1_micro.c
index 39717506c678..252d79de5e5e 100644
--- a/drivers/isdn/hisax/ix1_micro.c
+++ b/drivers/isdn/hisax/ix1_micro.c
@@ -125,7 +125,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
125#include "hscx_irq.c" 125#include "hscx_irq.c"
126 126
127static irqreturn_t 127static irqreturn_t
128ix1micro_interrupt(int intno, void *dev_id, struct pt_regs *regs) 128ix1micro_interrupt(int intno, void *dev_id)
129{ 129{
130 struct IsdnCardState *cs = dev_id; 130 struct IsdnCardState *cs = dev_id;
131 u_char val; 131 u_char val;
diff --git a/drivers/isdn/hisax/mic.c b/drivers/isdn/hisax/mic.c
index 8c82519593a8..a81d175d9f64 100644
--- a/drivers/isdn/hisax/mic.c
+++ b/drivers/isdn/hisax/mic.c
@@ -120,7 +120,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
120#include "hscx_irq.c" 120#include "hscx_irq.c"
121 121
122static irqreturn_t 122static irqreturn_t
123mic_interrupt(int intno, void *dev_id, struct pt_regs *regs) 123mic_interrupt(int intno, void *dev_id)
124{ 124{
125 struct IsdnCardState *cs = dev_id; 125 struct IsdnCardState *cs = dev_id;
126 u_char val; 126 u_char val;
diff --git a/drivers/isdn/hisax/netjet.h b/drivers/isdn/hisax/netjet.h
index 1080508f3c6a..4d89d3ea4173 100644
--- a/drivers/isdn/hisax/netjet.h
+++ b/drivers/isdn/hisax/netjet.h
@@ -66,7 +66,7 @@ void read_tiger(struct IsdnCardState *cs);
66void write_tiger(struct IsdnCardState *cs); 66void write_tiger(struct IsdnCardState *cs);
67 67
68void netjet_fill_dma(struct BCState *bcs); 68void netjet_fill_dma(struct BCState *bcs);
69void netjet_interrupt(int intno, void *dev_id, struct pt_regs *regs); 69void netjet_interrupt(int intno, void *dev_id);
70void inittiger(struct IsdnCardState *cs); 70void inittiger(struct IsdnCardState *cs);
71void release_io_netjet(struct IsdnCardState *cs); 71void release_io_netjet(struct IsdnCardState *cs);
72 72
diff --git a/drivers/isdn/hisax/niccy.c b/drivers/isdn/hisax/niccy.c
index 0945336c28da..e5918c6fe73d 100644
--- a/drivers/isdn/hisax/niccy.c
+++ b/drivers/isdn/hisax/niccy.c
@@ -122,8 +122,7 @@ static void WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset,
122 122
123#include "hscx_irq.c" 123#include "hscx_irq.c"
124 124
125static irqreturn_t niccy_interrupt(int intno, void *dev_id, 125static irqreturn_t niccy_interrupt(int intno, void *dev_id)
126 struct pt_regs *regs)
127{ 126{
128 struct IsdnCardState *cs = dev_id; 127 struct IsdnCardState *cs = dev_id;
129 u_char val; 128 u_char val;
diff --git a/drivers/isdn/hisax/nj_s.c b/drivers/isdn/hisax/nj_s.c
index 80025fd890f4..c09ffb135330 100644
--- a/drivers/isdn/hisax/nj_s.c
+++ b/drivers/isdn/hisax/nj_s.c
@@ -26,7 +26,7 @@ static void dummywr(struct IsdnCardState *cs, int chan, u_char off, u_char value
26} 26}
27 27
28static irqreturn_t 28static irqreturn_t
29netjet_s_interrupt(int intno, void *dev_id, struct pt_regs *regs) 29netjet_s_interrupt(int intno, void *dev_id)
30{ 30{
31 struct IsdnCardState *cs = dev_id; 31 struct IsdnCardState *cs = dev_id;
32 u_char val, s1val, s0val; 32 u_char val, s1val, s0val;
diff --git a/drivers/isdn/hisax/nj_u.c b/drivers/isdn/hisax/nj_u.c
index 37497162d539..8202cf34ecae 100644
--- a/drivers/isdn/hisax/nj_u.c
+++ b/drivers/isdn/hisax/nj_u.c
@@ -26,7 +26,7 @@ static void dummywr(struct IsdnCardState *cs, int chan, u_char off, u_char value
26} 26}
27 27
28static irqreturn_t 28static irqreturn_t
29netjet_u_interrupt(int intno, void *dev_id, struct pt_regs *regs) 29netjet_u_interrupt(int intno, void *dev_id)
30{ 30{
31 struct IsdnCardState *cs = dev_id; 31 struct IsdnCardState *cs = dev_id;
32 u_char val, sval; 32 u_char val, sval;
diff --git a/drivers/isdn/hisax/s0box.c b/drivers/isdn/hisax/s0box.c
index e76042d323ea..150ef68b4ae2 100644
--- a/drivers/isdn/hisax/s0box.c
+++ b/drivers/isdn/hisax/s0box.c
@@ -141,7 +141,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
141#include "hscx_irq.c" 141#include "hscx_irq.c"
142 142
143static irqreturn_t 143static irqreturn_t
144s0box_interrupt(int intno, void *dev_id, struct pt_regs *regs) 144s0box_interrupt(int intno, void *dev_id)
145{ 145{
146#define MAXCOUNT 5 146#define MAXCOUNT 5
147 struct IsdnCardState *cs = dev_id; 147 struct IsdnCardState *cs = dev_id;
diff --git a/drivers/isdn/hisax/saphir.c b/drivers/isdn/hisax/saphir.c
index d943d365890b..c99b16690fb3 100644
--- a/drivers/isdn/hisax/saphir.c
+++ b/drivers/isdn/hisax/saphir.c
@@ -117,7 +117,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
117#include "hscx_irq.c" 117#include "hscx_irq.c"
118 118
119static irqreturn_t 119static irqreturn_t
120saphir_interrupt(int intno, void *dev_id, struct pt_regs *regs) 120saphir_interrupt(int intno, void *dev_id)
121{ 121{
122 struct IsdnCardState *cs = dev_id; 122 struct IsdnCardState *cs = dev_id;
123 u_char val; 123 u_char val;
diff --git a/drivers/isdn/hisax/sedlbauer.c b/drivers/isdn/hisax/sedlbauer.c
index 8d8e8a299892..9522141f4351 100644
--- a/drivers/isdn/hisax/sedlbauer.c
+++ b/drivers/isdn/hisax/sedlbauer.c
@@ -260,7 +260,7 @@ WriteISAR(struct IsdnCardState *cs, int mode, u_char offset, u_char value)
260#include "hscx_irq.c" 260#include "hscx_irq.c"
261 261
262static irqreturn_t 262static irqreturn_t
263sedlbauer_interrupt(int intno, void *dev_id, struct pt_regs *regs) 263sedlbauer_interrupt(int intno, void *dev_id)
264{ 264{
265 struct IsdnCardState *cs = dev_id; 265 struct IsdnCardState *cs = dev_id;
266 u_char val; 266 u_char val;
@@ -306,7 +306,7 @@ sedlbauer_interrupt(int intno, void *dev_id, struct pt_regs *regs)
306} 306}
307 307
308static irqreturn_t 308static irqreturn_t
309sedlbauer_interrupt_ipac(int intno, void *dev_id, struct pt_regs *regs) 309sedlbauer_interrupt_ipac(int intno, void *dev_id)
310{ 310{
311 struct IsdnCardState *cs = dev_id; 311 struct IsdnCardState *cs = dev_id;
312 u_char ista, val, icnt = 5; 312 u_char ista, val, icnt = 5;
@@ -353,7 +353,7 @@ Start_IPAC:
353} 353}
354 354
355static irqreturn_t 355static irqreturn_t
356sedlbauer_interrupt_isar(int intno, void *dev_id, struct pt_regs *regs) 356sedlbauer_interrupt_isar(int intno, void *dev_id)
357{ 357{
358 struct IsdnCardState *cs = dev_id; 358 struct IsdnCardState *cs = dev_id;
359 u_char val; 359 u_char val;
diff --git a/drivers/isdn/hisax/sportster.c b/drivers/isdn/hisax/sportster.c
index a49b694eb730..02209500b3b7 100644
--- a/drivers/isdn/hisax/sportster.c
+++ b/drivers/isdn/hisax/sportster.c
@@ -99,7 +99,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
99#include "hscx_irq.c" 99#include "hscx_irq.c"
100 100
101static irqreturn_t 101static irqreturn_t
102sportster_interrupt(int intno, void *dev_id, struct pt_regs *regs) 102sportster_interrupt(int intno, void *dev_id)
103{ 103{
104 struct IsdnCardState *cs = dev_id; 104 struct IsdnCardState *cs = dev_id;
105 u_char val; 105 u_char val;
diff --git a/drivers/isdn/hisax/st5481_b.c b/drivers/isdn/hisax/st5481_b.c
index aca2a3954b14..75d0f248e4ee 100644
--- a/drivers/isdn/hisax/st5481_b.c
+++ b/drivers/isdn/hisax/st5481_b.c
@@ -161,7 +161,7 @@ static void led_blink(struct st5481_adapter *adapter)
161 st5481_usb_device_ctrl_msg(adapter, GPIO_OUT, leds, NULL, NULL); 161 st5481_usb_device_ctrl_msg(adapter, GPIO_OUT, leds, NULL, NULL);
162} 162}
163 163
164static void usb_b_out_complete(struct urb *urb, struct pt_regs *regs) 164static void usb_b_out_complete(struct urb *urb)
165{ 165{
166 struct st5481_bcs *bcs = urb->context; 166 struct st5481_bcs *bcs = urb->context;
167 struct st5481_b_out *b_out = &bcs->b_out; 167 struct st5481_b_out *b_out = &bcs->b_out;
diff --git a/drivers/isdn/hisax/st5481_d.c b/drivers/isdn/hisax/st5481_d.c
index 98adec440590..1d8c2618366c 100644
--- a/drivers/isdn/hisax/st5481_d.c
+++ b/drivers/isdn/hisax/st5481_d.c
@@ -370,7 +370,7 @@ static void fifo_reseted(void *context)
370 FsmEvent(&adapter->d_out.fsm, EV_DOUT_RESETED, NULL); 370 FsmEvent(&adapter->d_out.fsm, EV_DOUT_RESETED, NULL);
371} 371}
372 372
373static void usb_d_out_complete(struct urb *urb, struct pt_regs *regs) 373static void usb_d_out_complete(struct urb *urb)
374{ 374{
375 struct st5481_adapter *adapter = urb->context; 375 struct st5481_adapter *adapter = urb->context;
376 struct st5481_d_out *d_out = &adapter->d_out; 376 struct st5481_d_out *d_out = &adapter->d_out;
diff --git a/drivers/isdn/hisax/st5481_usb.c b/drivers/isdn/hisax/st5481_usb.c
index b096b64b0253..ff1595122048 100644
--- a/drivers/isdn/hisax/st5481_usb.c
+++ b/drivers/isdn/hisax/st5481_usb.c
@@ -125,7 +125,7 @@ void st5481_ph_command(struct st5481_adapter *adapter, unsigned int command)
125 * Call the user provided completion routine and try 125 * Call the user provided completion routine and try
126 * to send the next request. 126 * to send the next request.
127 */ 127 */
128static void usb_ctrl_complete(struct urb *urb, struct pt_regs *regs) 128static void usb_ctrl_complete(struct urb *urb)
129{ 129{
130 struct st5481_adapter *adapter = urb->context; 130 struct st5481_adapter *adapter = urb->context;
131 struct st5481_ctrl *ctrl = &adapter->ctrl; 131 struct st5481_ctrl *ctrl = &adapter->ctrl;
@@ -179,7 +179,7 @@ static void usb_ctrl_complete(struct urb *urb, struct pt_regs *regs)
179 * Decode the register values and schedule a private event. 179 * Decode the register values and schedule a private event.
180 * Called at interrupt. 180 * Called at interrupt.
181 */ 181 */
182static void usb_int_complete(struct urb *urb, struct pt_regs *regs) 182static void usb_int_complete(struct urb *urb)
183{ 183{
184 u8 *data = urb->transfer_buffer; 184 u8 *data = urb->transfer_buffer;
185 u8 irqbyte; 185 u8 irqbyte;
@@ -483,7 +483,7 @@ void st5481_release_isocpipes(struct urb* urb[2])
483 * called 50 times per second with 20 ISOC descriptors. 483 * called 50 times per second with 20 ISOC descriptors.
484 * Called at interrupt. 484 * Called at interrupt.
485 */ 485 */
486static void usb_in_complete(struct urb *urb, struct pt_regs *regs) 486static void usb_in_complete(struct urb *urb)
487{ 487{
488 struct st5481_in *in = urb->context; 488 struct st5481_in *in = urb->context;
489 unsigned char *ptr; 489 unsigned char *ptr;
diff --git a/drivers/isdn/hisax/teleint.c b/drivers/isdn/hisax/teleint.c
index e94dc6f5bd62..0909662b7458 100644
--- a/drivers/isdn/hisax/teleint.c
+++ b/drivers/isdn/hisax/teleint.c
@@ -157,7 +157,7 @@ WriteHFC(struct IsdnCardState *cs, int data, u_char reg, u_char value)
157} 157}
158 158
159static irqreturn_t 159static irqreturn_t
160TeleInt_interrupt(int intno, void *dev_id, struct pt_regs *regs) 160TeleInt_interrupt(int intno, void *dev_id)
161{ 161{
162 struct IsdnCardState *cs = dev_id; 162 struct IsdnCardState *cs = dev_id;
163 u_char val; 163 u_char val;
diff --git a/drivers/isdn/hisax/teles0.c b/drivers/isdn/hisax/teles0.c
index f94af0930a17..48581335f43c 100644
--- a/drivers/isdn/hisax/teles0.c
+++ b/drivers/isdn/hisax/teles0.c
@@ -144,7 +144,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
144#include "hscx_irq.c" 144#include "hscx_irq.c"
145 145
146static irqreturn_t 146static irqreturn_t
147teles0_interrupt(int intno, void *dev_id, struct pt_regs *regs) 147teles0_interrupt(int intno, void *dev_id)
148{ 148{
149 struct IsdnCardState *cs = dev_id; 149 struct IsdnCardState *cs = dev_id;
150 u_char val; 150 u_char val;
diff --git a/drivers/isdn/hisax/teles3.c b/drivers/isdn/hisax/teles3.c
index 5cb712437da4..6a5e379e0774 100644
--- a/drivers/isdn/hisax/teles3.c
+++ b/drivers/isdn/hisax/teles3.c
@@ -101,7 +101,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
101#include "hscx_irq.c" 101#include "hscx_irq.c"
102 102
103static irqreturn_t 103static irqreturn_t
104teles3_interrupt(int intno, void *dev_id, struct pt_regs *regs) 104teles3_interrupt(int intno, void *dev_id)
105{ 105{
106#define MAXCOUNT 5 106#define MAXCOUNT 5
107 struct IsdnCardState *cs = dev_id; 107 struct IsdnCardState *cs = dev_id;
diff --git a/drivers/isdn/hisax/telespci.c b/drivers/isdn/hisax/telespci.c
index dca446865f24..d09f6d033f15 100644
--- a/drivers/isdn/hisax/telespci.c
+++ b/drivers/isdn/hisax/telespci.c
@@ -226,7 +226,7 @@ WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value)
226#include "hscx_irq.c" 226#include "hscx_irq.c"
227 227
228static irqreturn_t 228static irqreturn_t
229telespci_interrupt(int intno, void *dev_id, struct pt_regs *regs) 229telespci_interrupt(int intno, void *dev_id)
230{ 230{
231 struct IsdnCardState *cs = dev_id; 231 struct IsdnCardState *cs = dev_id;
232 u_char hval, ival; 232 u_char hval, ival;
diff --git a/drivers/isdn/hisax/w6692.c b/drivers/isdn/hisax/w6692.c
index 0595293b8659..1655341797a9 100644
--- a/drivers/isdn/hisax/w6692.c
+++ b/drivers/isdn/hisax/w6692.c
@@ -400,7 +400,7 @@ W6692B_interrupt(struct IsdnCardState *cs, u_char bchan)
400} 400}
401 401
402static irqreturn_t 402static irqreturn_t
403W6692_interrupt(int intno, void *dev_id, struct pt_regs *regs) 403W6692_interrupt(int intno, void *dev_id)
404{ 404{
405 struct IsdnCardState *cs = dev_id; 405 struct IsdnCardState *cs = dev_id;
406 u_char val, exval, v1; 406 u_char val, exval, v1;
@@ -715,7 +715,7 @@ dbusy_timer_handler(struct IsdnCardState *cs)
715 } 715 }
716 cs->writeW6692(cs, W_D_CMDR, W_D_CMDR_XRST); /* Transmitter reset */ 716 cs->writeW6692(cs, W_D_CMDR, W_D_CMDR_XRST); /* Transmitter reset */
717 spin_unlock_irqrestore(&cs->lock, flags); 717 spin_unlock_irqrestore(&cs->lock, flags);
718 cs->irq_func(cs->irq, cs, NULL); 718 cs->irq_func(cs->irq, cs);
719 return; 719 return;
720 } 720 }
721 } 721 }
diff --git a/drivers/isdn/hysdn/boardergo.c b/drivers/isdn/hysdn/boardergo.c
index 73afebdf80bd..160f22fa5941 100644
--- a/drivers/isdn/hysdn/boardergo.c
+++ b/drivers/isdn/hysdn/boardergo.c
@@ -33,7 +33,7 @@
33/* The cards interrupt handler. Called from system */ 33/* The cards interrupt handler. Called from system */
34/***************************************************/ 34/***************************************************/
35static irqreturn_t 35static irqreturn_t
36ergo_interrupt(int intno, void *dev_id, struct pt_regs *regs) 36ergo_interrupt(int intno, void *dev_id)
37{ 37{
38 hysdn_card *card = dev_id; /* parameter from irq */ 38 hysdn_card *card = dev_id; /* parameter from irq */
39 tErgDpram *dpr; 39 tErgDpram *dpr;
diff --git a/drivers/isdn/pcbit/layer2.c b/drivers/isdn/pcbit/layer2.c
index ba766930f088..13e7d219d1c7 100644
--- a/drivers/isdn/pcbit/layer2.c
+++ b/drivers/isdn/pcbit/layer2.c
@@ -512,7 +512,7 @@ pcbit_firmware_bug(struct pcbit_dev *dev)
512} 512}
513 513
514irqreturn_t 514irqreturn_t
515pcbit_irq_handler(int interrupt, void *devptr, struct pt_regs *regs) 515pcbit_irq_handler(int interrupt, void *devptr)
516{ 516{
517 struct pcbit_dev *dev; 517 struct pcbit_dev *dev;
518 u_char info, 518 u_char info,
diff --git a/drivers/isdn/pcbit/layer2.h b/drivers/isdn/pcbit/layer2.h
index 0d99da3a3e2b..2ac295e1a6e5 100644
--- a/drivers/isdn/pcbit/layer2.h
+++ b/drivers/isdn/pcbit/layer2.h
@@ -124,7 +124,7 @@ struct frame_buf {
124extern int pcbit_l2_write(struct pcbit_dev * dev, ulong msg, ushort refnum, 124extern int pcbit_l2_write(struct pcbit_dev * dev, ulong msg, ushort refnum,
125 struct sk_buff *skb, unsigned short hdr_len); 125 struct sk_buff *skb, unsigned short hdr_len);
126 126
127extern irqreturn_t pcbit_irq_handler(int interrupt, void *, struct pt_regs *regs); 127extern irqreturn_t pcbit_irq_handler(int interrupt, void *);
128 128
129extern struct pcbit_dev * dev_pcbit[MAX_PCBIT_CARDS]; 129extern struct pcbit_dev * dev_pcbit[MAX_PCBIT_CARDS];
130 130
diff --git a/drivers/isdn/sc/init.c b/drivers/isdn/sc/init.c
index a627e68023f6..222ca7c08baa 100644
--- a/drivers/isdn/sc/init.c
+++ b/drivers/isdn/sc/init.c
@@ -35,7 +35,7 @@ module_param_array(irq, int, NULL, 0);
35module_param_array(ram, int, NULL, 0); 35module_param_array(ram, int, NULL, 0);
36module_param(do_reset, bool, 0); 36module_param(do_reset, bool, 0);
37 37
38extern irqreturn_t interrupt_handler(int, void *, struct pt_regs *); 38extern irqreturn_t interrupt_handler(int, void *);
39extern int sndpkt(int, int, int, struct sk_buff *); 39extern int sndpkt(int, int, int, struct sk_buff *);
40extern int command(isdn_ctrl *); 40extern int command(isdn_ctrl *);
41extern int indicate_status(int, int, ulong, char*); 41extern int indicate_status(int, int, ulong, char*);
diff --git a/drivers/isdn/sc/interrupt.c b/drivers/isdn/sc/interrupt.c
index ae6263125ac2..cd17de18cb76 100644
--- a/drivers/isdn/sc/interrupt.c
+++ b/drivers/isdn/sc/interrupt.c
@@ -45,7 +45,7 @@ static int get_card_from_irq(int irq)
45/* 45/*
46 * 46 *
47 */ 47 */
48irqreturn_t interrupt_handler(int interrupt, void *cardptr, struct pt_regs *regs) 48irqreturn_t interrupt_handler(int interrupt, void *cardptr)
49{ 49{
50 50
51 RspMessage rcvmsg; 51 RspMessage rcvmsg;
diff --git a/drivers/macintosh/adb-iop.c b/drivers/macintosh/adb-iop.c
index d56d400b6aaa..1ffee7aaff20 100644
--- a/drivers/macintosh/adb-iop.c
+++ b/drivers/macintosh/adb-iop.c
@@ -30,7 +30,7 @@
30 30
31/*#define DEBUG_ADB_IOP*/ 31/*#define DEBUG_ADB_IOP*/
32 32
33extern void iop_ism_irq(int, void *, struct pt_regs *); 33extern void iop_ism_irq(int, void *);
34 34
35static struct adb_request *current_req; 35static struct adb_request *current_req;
36static struct adb_request *last_req; 36static struct adb_request *last_req;
@@ -78,7 +78,7 @@ static void adb_iop_end_req(struct adb_request *req, int state)
78 * This will be called when a packet has been successfully sent. 78 * This will be called when a packet has been successfully sent.
79 */ 79 */
80 80
81static void adb_iop_complete(struct iop_msg *msg, struct pt_regs *regs) 81static void adb_iop_complete(struct iop_msg *msg)
82{ 82{
83 struct adb_request *req; 83 struct adb_request *req;
84 uint flags; 84 uint flags;
@@ -100,7 +100,7 @@ static void adb_iop_complete(struct iop_msg *msg, struct pt_regs *regs)
100 * commands or autopoll packets) are received. 100 * commands or autopoll packets) are received.
101 */ 101 */
102 102
103static void adb_iop_listen(struct iop_msg *msg, struct pt_regs *regs) 103static void adb_iop_listen(struct iop_msg *msg)
104{ 104{
105 struct adb_iopmsg *amsg = (struct adb_iopmsg *) msg->message; 105 struct adb_iopmsg *amsg = (struct adb_iopmsg *) msg->message;
106 struct adb_request *req; 106 struct adb_request *req;
@@ -143,7 +143,7 @@ static void adb_iop_listen(struct iop_msg *msg, struct pt_regs *regs)
143 req->reply_len = amsg->count + 1; 143 req->reply_len = amsg->count + 1;
144 memcpy(req->reply, &amsg->cmd, req->reply_len); 144 memcpy(req->reply, &amsg->cmd, req->reply_len);
145 } else { 145 } else {
146 adb_input(&amsg->cmd, amsg->count + 1, regs, 146 adb_input(&amsg->cmd, amsg->count + 1,
147 amsg->flags & ADB_IOP_AUTOPOLL); 147 amsg->flags & ADB_IOP_AUTOPOLL);
148 } 148 }
149 memcpy(msg->reply, msg->message, IOP_MSG_LEN); 149 memcpy(msg->reply, msg->message, IOP_MSG_LEN);
diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c
index 360f93f6fcdb..be0bd34ff6f9 100644
--- a/drivers/macintosh/adb.c
+++ b/drivers/macintosh/adb.c
@@ -103,7 +103,7 @@ static void adbdev_init(void);
103static int try_handler_change(int, int); 103static int try_handler_change(int, int);
104 104
105static struct adb_handler { 105static struct adb_handler {
106 void (*handler)(unsigned char *, int, struct pt_regs *, int); 106 void (*handler)(unsigned char *, int, int);
107 int original_address; 107 int original_address;
108 int handler_id; 108 int handler_id;
109 int busy; 109 int busy;
@@ -522,7 +522,7 @@ bail:
522 the handler_id id it doesn't match. */ 522 the handler_id id it doesn't match. */
523int 523int
524adb_register(int default_id, int handler_id, struct adb_ids *ids, 524adb_register(int default_id, int handler_id, struct adb_ids *ids,
525 void (*handler)(unsigned char *, int, struct pt_regs *, int)) 525 void (*handler)(unsigned char *, int, int))
526{ 526{
527 int i; 527 int i;
528 528
@@ -570,13 +570,13 @@ adb_unregister(int index)
570} 570}
571 571
572void 572void
573adb_input(unsigned char *buf, int nb, struct pt_regs *regs, int autopoll) 573adb_input(unsigned char *buf, int nb, int autopoll)
574{ 574{
575 int i, id; 575 int i, id;
576 static int dump_adb_input = 0; 576 static int dump_adb_input = 0;
577 unsigned long flags; 577 unsigned long flags;
578 578
579 void (*handler)(unsigned char *, int, struct pt_regs *, int); 579 void (*handler)(unsigned char *, int, int);
580 580
581 /* We skip keystrokes and mouse moves when the sleep process 581 /* We skip keystrokes and mouse moves when the sleep process
582 * has been started. We stop autopoll, but this is another security 582 * has been started. We stop autopoll, but this is another security
@@ -597,7 +597,7 @@ adb_input(unsigned char *buf, int nb, struct pt_regs *regs, int autopoll)
597 adb_handler[id].busy = 1; 597 adb_handler[id].busy = 1;
598 write_unlock_irqrestore(&adb_handler_lock, flags); 598 write_unlock_irqrestore(&adb_handler_lock, flags);
599 if (handler != NULL) { 599 if (handler != NULL) {
600 (*handler)(buf, nb, regs, autopoll); 600 (*handler)(buf, nb, autopoll);
601 wmb(); 601 wmb();
602 adb_handler[id].busy = 0; 602 adb_handler[id].busy = 0;
603 } 603 }
diff --git a/drivers/macintosh/adbhid.c b/drivers/macintosh/adbhid.c
index b7fb367808d8..5066e7a8ea9c 100644
--- a/drivers/macintosh/adbhid.c
+++ b/drivers/macintosh/adbhid.c
@@ -222,7 +222,7 @@ static struct adbhid *adbhid[16];
222 222
223static void adbhid_probe(void); 223static void adbhid_probe(void);
224 224
225static void adbhid_input_keycode(int, int, int, struct pt_regs *); 225static void adbhid_input_keycode(int, int, int);
226 226
227static void init_trackpad(int id); 227static void init_trackpad(int id);
228static void init_trackball(int id); 228static void init_trackball(int id);
@@ -253,7 +253,7 @@ static struct adb_ids buttons_ids;
253#define ADBMOUSE_MACALLY2 9 /* MacAlly 2-button mouse */ 253#define ADBMOUSE_MACALLY2 9 /* MacAlly 2-button mouse */
254 254
255static void 255static void
256adbhid_keyboard_input(unsigned char *data, int nb, struct pt_regs *regs, int apoll) 256adbhid_keyboard_input(unsigned char *data, int nb, int apoll)
257{ 257{
258 int id = (data[0] >> 4) & 0x0f; 258 int id = (data[0] >> 4) & 0x0f;
259 259
@@ -266,13 +266,13 @@ adbhid_keyboard_input(unsigned char *data, int nb, struct pt_regs *regs, int apo
266 /* first check this is from register 0 */ 266 /* first check this is from register 0 */
267 if (nb != 3 || (data[0] & 3) != KEYB_KEYREG) 267 if (nb != 3 || (data[0] & 3) != KEYB_KEYREG)
268 return; /* ignore it */ 268 return; /* ignore it */
269 adbhid_input_keycode(id, data[1], 0, regs); 269 adbhid_input_keycode(id, data[1], 0);
270 if (!(data[2] == 0xff || (data[2] == 0x7f && data[1] == 0x7f))) 270 if (!(data[2] == 0xff || (data[2] == 0x7f && data[1] == 0x7f)))
271 adbhid_input_keycode(id, data[2], 0, regs); 271 adbhid_input_keycode(id, data[2], 0);
272} 272}
273 273
274static void 274static void
275adbhid_input_keycode(int id, int keycode, int repeat, struct pt_regs *regs) 275adbhid_input_keycode(int id, int keycode, int repeat)
276{ 276{
277 struct adbhid *ahid = adbhid[id]; 277 struct adbhid *ahid = adbhid[id];
278 int up_flag; 278 int up_flag;
@@ -282,7 +282,6 @@ adbhid_input_keycode(int id, int keycode, int repeat, struct pt_regs *regs)
282 282
283 switch (keycode) { 283 switch (keycode) {
284 case ADB_KEY_CAPSLOCK: /* Generate down/up events for CapsLock everytime. */ 284 case ADB_KEY_CAPSLOCK: /* Generate down/up events for CapsLock everytime. */
285 input_regs(ahid->input, regs);
286 input_report_key(ahid->input, KEY_CAPSLOCK, 1); 285 input_report_key(ahid->input, KEY_CAPSLOCK, 1);
287 input_report_key(ahid->input, KEY_CAPSLOCK, 0); 286 input_report_key(ahid->input, KEY_CAPSLOCK, 0);
288 input_sync(ahid->input); 287 input_sync(ahid->input);
@@ -338,7 +337,6 @@ adbhid_input_keycode(int id, int keycode, int repeat, struct pt_regs *regs)
338 } 337 }
339 338
340 if (adbhid[id]->keycode[keycode]) { 339 if (adbhid[id]->keycode[keycode]) {
341 input_regs(adbhid[id]->input, regs);
342 input_report_key(adbhid[id]->input, 340 input_report_key(adbhid[id]->input,
343 adbhid[id]->keycode[keycode], !up_flag); 341 adbhid[id]->keycode[keycode], !up_flag);
344 input_sync(adbhid[id]->input); 342 input_sync(adbhid[id]->input);
@@ -349,7 +347,7 @@ adbhid_input_keycode(int id, int keycode, int repeat, struct pt_regs *regs)
349} 347}
350 348
351static void 349static void
352adbhid_mouse_input(unsigned char *data, int nb, struct pt_regs *regs, int autopoll) 350adbhid_mouse_input(unsigned char *data, int nb, int autopoll)
353{ 351{
354 int id = (data[0] >> 4) & 0x0f; 352 int id = (data[0] >> 4) & 0x0f;
355 353
@@ -432,8 +430,6 @@ adbhid_mouse_input(unsigned char *data, int nb, struct pt_regs *regs, int autopo
432 break; 430 break;
433 } 431 }
434 432
435 input_regs(adbhid[id]->input, regs);
436
437 input_report_key(adbhid[id]->input, BTN_LEFT, !((data[1] >> 7) & 1)); 433 input_report_key(adbhid[id]->input, BTN_LEFT, !((data[1] >> 7) & 1));
438 input_report_key(adbhid[id]->input, BTN_MIDDLE, !((data[2] >> 7) & 1)); 434 input_report_key(adbhid[id]->input, BTN_MIDDLE, !((data[2] >> 7) & 1));
439 435
@@ -449,7 +445,7 @@ adbhid_mouse_input(unsigned char *data, int nb, struct pt_regs *regs, int autopo
449} 445}
450 446
451static void 447static void
452adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int autopoll) 448adbhid_buttons_input(unsigned char *data, int nb, int autopoll)
453{ 449{
454 int id = (data[0] >> 4) & 0x0f; 450 int id = (data[0] >> 4) & 0x0f;
455 451
@@ -458,8 +454,6 @@ adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int auto
458 return; 454 return;
459 } 455 }
460 456
461 input_regs(adbhid[id]->input, regs);
462
463 switch (adbhid[id]->original_handler_id) { 457 switch (adbhid[id]->original_handler_id) {
464 default: 458 default:
465 case 0x02: /* Adjustable keyboard button device */ 459 case 0x02: /* Adjustable keyboard button device */
diff --git a/drivers/macintosh/macio-adb.c b/drivers/macintosh/macio-adb.c
index 4b08852c35ee..57ccc19cbdbf 100644
--- a/drivers/macintosh/macio-adb.c
+++ b/drivers/macintosh/macio-adb.c
@@ -64,7 +64,7 @@ static DEFINE_SPINLOCK(macio_lock);
64 64
65static int macio_probe(void); 65static int macio_probe(void);
66static int macio_init(void); 66static int macio_init(void);
67static irqreturn_t macio_adb_interrupt(int irq, void *arg, struct pt_regs *regs); 67static irqreturn_t macio_adb_interrupt(int irq, void *arg);
68static int macio_send_request(struct adb_request *req, int sync); 68static int macio_send_request(struct adb_request *req, int sync);
69static int macio_adb_autopoll(int devs); 69static int macio_adb_autopoll(int devs);
70static void macio_adb_poll(void); 70static void macio_adb_poll(void);
@@ -189,8 +189,7 @@ static int macio_send_request(struct adb_request *req, int sync)
189 return 0; 189 return 0;
190} 190}
191 191
192static irqreturn_t macio_adb_interrupt(int irq, void *arg, 192static irqreturn_t macio_adb_interrupt(int irq, void *arg)
193 struct pt_regs *regs)
194{ 193{
195 int i, n, err; 194 int i, n, err;
196 struct adb_request *req = NULL; 195 struct adb_request *req = NULL;
@@ -260,7 +259,7 @@ static irqreturn_t macio_adb_interrupt(int irq, void *arg,
260 (*done)(req); 259 (*done)(req);
261 } 260 }
262 if (ibuf_len) 261 if (ibuf_len)
263 adb_input(ibuf, ibuf_len, regs, autopoll); 262 adb_input(ibuf, ibuf_len, autopoll);
264 263
265 return IRQ_RETVAL(handled); 264 return IRQ_RETVAL(handled);
266} 265}
diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c
index c0f9d82e4662..ade25b3fbb35 100644
--- a/drivers/macintosh/smu.c
+++ b/drivers/macintosh/smu.c
@@ -145,7 +145,7 @@ static void smu_start_cmd(void)
145} 145}
146 146
147 147
148static irqreturn_t smu_db_intr(int irq, void *arg, struct pt_regs *regs) 148static irqreturn_t smu_db_intr(int irq, void *arg)
149{ 149{
150 unsigned long flags; 150 unsigned long flags;
151 struct smu_cmd *cmd; 151 struct smu_cmd *cmd;
@@ -224,7 +224,7 @@ static irqreturn_t smu_db_intr(int irq, void *arg, struct pt_regs *regs)
224} 224}
225 225
226 226
227static irqreturn_t smu_msg_intr(int irq, void *arg, struct pt_regs *regs) 227static irqreturn_t smu_msg_intr(int irq, void *arg)
228{ 228{
229 /* I don't quite know what to do with this one, we seem to never 229 /* I don't quite know what to do with this one, we seem to never
230 * receive it, so I suspect we have to arm it someway in the SMU 230 * receive it, so I suspect we have to arm it someway in the SMU
@@ -309,7 +309,7 @@ void smu_poll(void)
309 309
310 gpio = pmac_do_feature_call(PMAC_FTR_READ_GPIO, NULL, smu->doorbell); 310 gpio = pmac_do_feature_call(PMAC_FTR_READ_GPIO, NULL, smu->doorbell);
311 if ((gpio & 7) == 7) 311 if ((gpio & 7) == 7)
312 smu_db_intr(smu->db_irq, smu, NULL); 312 smu_db_intr(smu->db_irq, smu);
313} 313}
314EXPORT_SYMBOL(smu_poll); 314EXPORT_SYMBOL(smu_poll);
315 315
diff --git a/drivers/macintosh/via-cuda.c b/drivers/macintosh/via-cuda.c
index 7512d1c15207..64a07ccfe369 100644
--- a/drivers/macintosh/via-cuda.c
+++ b/drivers/macintosh/via-cuda.c
@@ -98,8 +98,8 @@ static int cuda_reset_adb_bus(void);
98 98
99static int cuda_init_via(void); 99static int cuda_init_via(void);
100static void cuda_start(void); 100static void cuda_start(void);
101static irqreturn_t cuda_interrupt(int irq, void *arg, struct pt_regs *regs); 101static irqreturn_t cuda_interrupt(int irq, void *arg);
102static void cuda_input(unsigned char *buf, int nb, struct pt_regs *regs); 102static void cuda_input(unsigned char *buf, int nb);
103void cuda_poll(void); 103void cuda_poll(void);
104static int cuda_write(struct adb_request *req); 104static int cuda_write(struct adb_request *req);
105 105
@@ -442,7 +442,7 @@ cuda_poll(void)
442} 442}
443 443
444static irqreturn_t 444static irqreturn_t
445cuda_interrupt(int irq, void *arg, struct pt_regs *regs) 445cuda_interrupt(int irq, void *arg)
446{ 446{
447 int status; 447 int status;
448 struct adb_request *req = NULL; 448 struct adb_request *req = NULL;
@@ -594,12 +594,12 @@ cuda_interrupt(int irq, void *arg, struct pt_regs *regs)
594 (*done)(req); 594 (*done)(req);
595 } 595 }
596 if (ibuf_len) 596 if (ibuf_len)
597 cuda_input(ibuf, ibuf_len, regs); 597 cuda_input(ibuf, ibuf_len);
598 return IRQ_HANDLED; 598 return IRQ_HANDLED;
599} 599}
600 600
601static void 601static void
602cuda_input(unsigned char *buf, int nb, struct pt_regs *regs) 602cuda_input(unsigned char *buf, int nb)
603{ 603{
604 int i; 604 int i;
605 605
@@ -615,7 +615,7 @@ cuda_input(unsigned char *buf, int nb, struct pt_regs *regs)
615 } 615 }
616#endif /* CONFIG_XMON */ 616#endif /* CONFIG_XMON */
617#ifdef CONFIG_ADB 617#ifdef CONFIG_ADB
618 adb_input(buf+2, nb-2, regs, buf[1] & 0x40); 618 adb_input(buf+2, nb-2, buf[1] & 0x40);
619#endif /* CONFIG_ADB */ 619#endif /* CONFIG_ADB */
620 break; 620 break;
621 621
diff --git a/drivers/macintosh/via-macii.c b/drivers/macintosh/via-macii.c
index 2a2ffe060169..ad4bd579f610 100644
--- a/drivers/macintosh/via-macii.c
+++ b/drivers/macintosh/via-macii.c
@@ -77,7 +77,7 @@ static volatile unsigned char *via;
77 77
78static int macii_init_via(void); 78static int macii_init_via(void);
79static void macii_start(void); 79static void macii_start(void);
80static irqreturn_t macii_interrupt(int irq, void *arg, struct pt_regs *regs); 80static irqreturn_t macii_interrupt(int irq, void *arg);
81static void macii_retransmit(int); 81static void macii_retransmit(int);
82static void macii_queue_poll(void); 82static void macii_queue_poll(void);
83 83
@@ -410,7 +410,7 @@ static void macii_start(void)
410 * Note: As of 21/10/97, the MacII ADB part works including timeout detection 410 * Note: As of 21/10/97, the MacII ADB part works including timeout detection
411 * and retransmit (Talk to the last active device). 411 * and retransmit (Talk to the last active device).
412 */ 412 */
413static irqreturn_t macii_interrupt(int irq, void *arg, struct pt_regs *regs) 413static irqreturn_t macii_interrupt(int irq, void *arg)
414{ 414{
415 int x, adbdir; 415 int x, adbdir;
416 unsigned long flags; 416 unsigned long flags;
@@ -602,8 +602,7 @@ static irqreturn_t macii_interrupt(int irq, void *arg, struct pt_regs *regs)
602 current_req = req->next; 602 current_req = req->next;
603 if (req->done) (*req->done)(req); 603 if (req->done) (*req->done)(req);
604 } else { 604 } else {
605 adb_input(reply_buf, reply_ptr - reply_buf, 605 adb_input(reply_buf, reply_ptr - reply_buf, 0);
606 regs, 0);
607 } 606 }
608 607
609 /* 608 /*
diff --git a/drivers/macintosh/via-maciisi.c b/drivers/macintosh/via-maciisi.c
index 0129fcc3b183..789ee52086fe 100644
--- a/drivers/macintosh/via-maciisi.c
+++ b/drivers/macintosh/via-maciisi.c
@@ -84,8 +84,8 @@ static int maciisi_init(void);
84static int maciisi_send_request(struct adb_request* req, int sync); 84static int maciisi_send_request(struct adb_request* req, int sync);
85static void maciisi_sync(struct adb_request *req); 85static void maciisi_sync(struct adb_request *req);
86static int maciisi_write(struct adb_request* req); 86static int maciisi_write(struct adb_request* req);
87static irqreturn_t maciisi_interrupt(int irq, void* arg, struct pt_regs* regs); 87static irqreturn_t maciisi_interrupt(int irq, void* arg);
88static void maciisi_input(unsigned char *buf, int nb, struct pt_regs *regs); 88static void maciisi_input(unsigned char *buf, int nb);
89static int maciisi_init_via(void); 89static int maciisi_init_via(void);
90static void maciisi_poll(void); 90static void maciisi_poll(void);
91static int maciisi_start(void); 91static int maciisi_start(void);
@@ -433,7 +433,7 @@ maciisi_poll(void)
433 register is either full or empty. In practice, I have no idea what 433 register is either full or empty. In practice, I have no idea what
434 it means :( */ 434 it means :( */
435static irqreturn_t 435static irqreturn_t
436maciisi_interrupt(int irq, void* arg, struct pt_regs* regs) 436maciisi_interrupt(int irq, void* arg)
437{ 437{
438 int status; 438 int status;
439 struct adb_request *req; 439 struct adb_request *req;
@@ -612,7 +612,7 @@ maciisi_interrupt(int irq, void* arg, struct pt_regs* regs)
612 /* Obviously, we got it */ 612 /* Obviously, we got it */
613 reading_reply = 0; 613 reading_reply = 0;
614 } else { 614 } else {
615 maciisi_input(maciisi_rbuf, reply_ptr - maciisi_rbuf, regs); 615 maciisi_input(maciisi_rbuf, reply_ptr - maciisi_rbuf);
616 } 616 }
617 maciisi_state = idle; 617 maciisi_state = idle;
618 status = via[B] & (TIP|TREQ); 618 status = via[B] & (TIP|TREQ);
@@ -657,7 +657,7 @@ maciisi_interrupt(int irq, void* arg, struct pt_regs* regs)
657} 657}
658 658
659static void 659static void
660maciisi_input(unsigned char *buf, int nb, struct pt_regs *regs) 660maciisi_input(unsigned char *buf, int nb)
661{ 661{
662#ifdef DEBUG_MACIISI_ADB 662#ifdef DEBUG_MACIISI_ADB
663 int i; 663 int i;
@@ -665,7 +665,7 @@ maciisi_input(unsigned char *buf, int nb, struct pt_regs *regs)
665 665
666 switch (buf[0]) { 666 switch (buf[0]) {
667 case ADB_PACKET: 667 case ADB_PACKET:
668 adb_input(buf+2, nb-2, regs, buf[1] & 0x40); 668 adb_input(buf+2, nb-2, buf[1] & 0x40);
669 break; 669 break;
670 default: 670 default:
671#ifdef DEBUG_MACIISI_ADB 671#ifdef DEBUG_MACIISI_ADB
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index 4f04fd0956a0..e63ea1c1f3c1 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -191,8 +191,8 @@ static int pmu_adb_reset_bus(void);
191 191
192static int init_pmu(void); 192static int init_pmu(void);
193static void pmu_start(void); 193static void pmu_start(void);
194static irqreturn_t via_pmu_interrupt(int irq, void *arg, struct pt_regs *regs); 194static irqreturn_t via_pmu_interrupt(int irq, void *arg);
195static irqreturn_t gpio1_interrupt(int irq, void *arg, struct pt_regs *regs); 195static irqreturn_t gpio1_interrupt(int irq, void *arg);
196static int proc_get_info(char *page, char **start, off_t off, 196static int proc_get_info(char *page, char **start, off_t off,
197 int count, int *eof, void *data); 197 int count, int *eof, void *data);
198static int proc_get_irqstats(char *page, char **start, off_t off, 198static int proc_get_irqstats(char *page, char **start, off_t off,
@@ -555,7 +555,7 @@ init_pmu(void)
555 } 555 }
556 if (pmu_state == idle) 556 if (pmu_state == idle)
557 adb_int_pending = 1; 557 adb_int_pending = 1;
558 via_pmu_interrupt(0, NULL, NULL); 558 via_pmu_interrupt(0, NULL);
559 udelay(10); 559 udelay(10);
560 } 560 }
561 561
@@ -1215,7 +1215,7 @@ pmu_poll(void)
1215 return; 1215 return;
1216 if (disable_poll) 1216 if (disable_poll)
1217 return; 1217 return;
1218 via_pmu_interrupt(0, NULL, NULL); 1218 via_pmu_interrupt(0, NULL);
1219} 1219}
1220 1220
1221void 1221void
@@ -1228,7 +1228,7 @@ pmu_poll_adb(void)
1228 /* Kicks ADB read when PMU is suspended */ 1228 /* Kicks ADB read when PMU is suspended */
1229 adb_int_pending = 1; 1229 adb_int_pending = 1;
1230 do { 1230 do {
1231 via_pmu_interrupt(0, NULL, NULL); 1231 via_pmu_interrupt(0, NULL);
1232 } while (pmu_suspended && (adb_int_pending || pmu_state != idle 1232 } while (pmu_suspended && (adb_int_pending || pmu_state != idle
1233 || req_awaiting_reply)); 1233 || req_awaiting_reply));
1234} 1234}
@@ -1239,7 +1239,7 @@ pmu_wait_complete(struct adb_request *req)
1239 if (!via) 1239 if (!via)
1240 return; 1240 return;
1241 while((pmu_state != idle && pmu_state != locked) || !req->complete) 1241 while((pmu_state != idle && pmu_state != locked) || !req->complete)
1242 via_pmu_interrupt(0, NULL, NULL); 1242 via_pmu_interrupt(0, NULL);
1243} 1243}
1244 1244
1245/* This function loops until the PMU is idle and prevents it from 1245/* This function loops until the PMU is idle and prevents it from
@@ -1268,7 +1268,7 @@ pmu_suspend(void)
1268 spin_unlock_irqrestore(&pmu_lock, flags); 1268 spin_unlock_irqrestore(&pmu_lock, flags);
1269 if (req_awaiting_reply) 1269 if (req_awaiting_reply)
1270 adb_int_pending = 1; 1270 adb_int_pending = 1;
1271 via_pmu_interrupt(0, NULL, NULL); 1271 via_pmu_interrupt(0, NULL);
1272 spin_lock_irqsave(&pmu_lock, flags); 1272 spin_lock_irqsave(&pmu_lock, flags);
1273 if (!adb_int_pending && pmu_state == idle && !req_awaiting_reply) { 1273 if (!adb_int_pending && pmu_state == idle && !req_awaiting_reply) {
1274#ifdef SUSPEND_USES_PMU 1274#ifdef SUSPEND_USES_PMU
@@ -1318,7 +1318,7 @@ pmu_resume(void)
1318 1318
1319/* Interrupt data could be the result data from an ADB cmd */ 1319/* Interrupt data could be the result data from an ADB cmd */
1320static void 1320static void
1321pmu_handle_data(unsigned char *data, int len, struct pt_regs *regs) 1321pmu_handle_data(unsigned char *data, int len)
1322{ 1322{
1323 unsigned char ints, pirq; 1323 unsigned char ints, pirq;
1324 int i = 0; 1324 int i = 0;
@@ -1393,7 +1393,7 @@ next:
1393 if (!(pmu_kind == PMU_OHARE_BASED && len == 4 1393 if (!(pmu_kind == PMU_OHARE_BASED && len == 4
1394 && data[1] == 0x2c && data[3] == 0xff 1394 && data[1] == 0x2c && data[3] == 0xff
1395 && (data[2] & ~1) == 0xf4)) 1395 && (data[2] & ~1) == 0xf4))
1396 adb_input(data+1, len-1, regs, 1); 1396 adb_input(data+1, len-1, 1);
1397#endif /* CONFIG_ADB */ 1397#endif /* CONFIG_ADB */
1398 } 1398 }
1399 } 1399 }
@@ -1431,7 +1431,7 @@ next:
1431} 1431}
1432 1432
1433static struct adb_request* 1433static struct adb_request*
1434pmu_sr_intr(struct pt_regs *regs) 1434pmu_sr_intr(void)
1435{ 1435{
1436 struct adb_request *req; 1436 struct adb_request *req;
1437 int bite = 0; 1437 int bite = 0;
@@ -1537,7 +1537,7 @@ pmu_sr_intr(struct pt_regs *regs)
1537} 1537}
1538 1538
1539static irqreturn_t 1539static irqreturn_t
1540via_pmu_interrupt(int irq, void *arg, struct pt_regs *regs) 1540via_pmu_interrupt(int irq, void *arg)
1541{ 1541{
1542 unsigned long flags; 1542 unsigned long flags;
1543 int intr; 1543 int intr;
@@ -1567,7 +1567,7 @@ via_pmu_interrupt(int irq, void *arg, struct pt_regs *regs)
1567 pmu_irq_stats[0]++; 1567 pmu_irq_stats[0]++;
1568 } 1568 }
1569 if (intr & SR_INT) { 1569 if (intr & SR_INT) {
1570 req = pmu_sr_intr(regs); 1570 req = pmu_sr_intr();
1571 if (req) 1571 if (req)
1572 break; 1572 break;
1573 } 1573 }
@@ -1613,7 +1613,7 @@ no_free_slot:
1613 1613
1614 /* Deal with interrupt datas outside of the lock */ 1614 /* Deal with interrupt datas outside of the lock */
1615 if (int_data >= 0) { 1615 if (int_data >= 0) {
1616 pmu_handle_data(interrupt_data[int_data], interrupt_data_len[int_data], regs); 1616 pmu_handle_data(interrupt_data[int_data], interrupt_data_len[int_data]);
1617 spin_lock_irqsave(&pmu_lock, flags); 1617 spin_lock_irqsave(&pmu_lock, flags);
1618 ++disable_poll; 1618 ++disable_poll;
1619 int_data_state[int_data] = int_data_empty; 1619 int_data_state[int_data] = int_data_empty;
@@ -1638,7 +1638,7 @@ pmu_unlock(void)
1638 1638
1639 1639
1640static irqreturn_t 1640static irqreturn_t
1641gpio1_interrupt(int irq, void *arg, struct pt_regs *regs) 1641gpio1_interrupt(int irq, void *arg)
1642{ 1642{
1643 unsigned long flags; 1643 unsigned long flags;
1644 1644
@@ -1651,7 +1651,7 @@ gpio1_interrupt(int irq, void *arg, struct pt_regs *regs)
1651 pmu_irq_stats[1]++; 1651 pmu_irq_stats[1]++;
1652 adb_int_pending = 1; 1652 adb_int_pending = 1;
1653 spin_unlock_irqrestore(&pmu_lock, flags); 1653 spin_unlock_irqrestore(&pmu_lock, flags);
1654 via_pmu_interrupt(0, NULL, NULL); 1654 via_pmu_interrupt(0, NULL);
1655 return IRQ_HANDLED; 1655 return IRQ_HANDLED;
1656 } 1656 }
1657 return IRQ_NONE; 1657 return IRQ_NONE;
@@ -2116,7 +2116,7 @@ pmac_wakeup_devices(void)
2116 2116
2117 /* Force a poll of ADB interrupts */ 2117 /* Force a poll of ADB interrupts */
2118 adb_int_pending = 1; 2118 adb_int_pending = 1;
2119 via_pmu_interrupt(0, NULL, NULL); 2119 via_pmu_interrupt(0, NULL);
2120 2120
2121 /* Restart jiffies & scheduling */ 2121 /* Restart jiffies & scheduling */
2122 wakeup_decrementer(); 2122 wakeup_decrementer();
diff --git a/drivers/macintosh/via-pmu68k.c b/drivers/macintosh/via-pmu68k.c
index 9f4eff1d1a0f..98ec915d0409 100644
--- a/drivers/macintosh/via-pmu68k.c
+++ b/drivers/macintosh/via-pmu68k.c
@@ -107,7 +107,7 @@ BLOCKING_NOTIFIER_HEAD(sleep_notifier_list);
107static int pmu_probe(void); 107static int pmu_probe(void);
108static int pmu_init(void); 108static int pmu_init(void);
109static void pmu_start(void); 109static void pmu_start(void);
110static irqreturn_t pmu_interrupt(int irq, void *arg, struct pt_regs *regs); 110static irqreturn_t pmu_interrupt(int irq, void *arg);
111static int pmu_send_request(struct adb_request *req, int sync); 111static int pmu_send_request(struct adb_request *req, int sync);
112static int pmu_autopoll(int devs); 112static int pmu_autopoll(int devs);
113void pmu_poll(void); 113void pmu_poll(void);
@@ -118,8 +118,7 @@ static void pmu_start(void);
118static void send_byte(int x); 118static void send_byte(int x);
119static void recv_byte(void); 119static void recv_byte(void);
120static void pmu_done(struct adb_request *req); 120static void pmu_done(struct adb_request *req);
121static void pmu_handle_data(unsigned char *data, int len, 121static void pmu_handle_data(unsigned char *data, int len);
122 struct pt_regs *regs);
123static void set_volume(int level); 122static void set_volume(int level);
124static void pmu_enable_backlight(int on); 123static void pmu_enable_backlight(int on);
125static void pmu_set_brightness(int level); 124static void pmu_set_brightness(int level);
@@ -573,7 +572,7 @@ pmu_poll(void)
573} 572}
574 573
575static irqreturn_t 574static irqreturn_t
576pmu_interrupt(int irq, void *dev_id, struct pt_regs *regs) 575pmu_interrupt(int irq, void *dev_id)
577{ 576{
578 struct adb_request *req; 577 struct adb_request *req;
579 int timeout, bite = 0; /* to prevent compiler warning */ 578 int timeout, bite = 0; /* to prevent compiler warning */
@@ -657,7 +656,7 @@ pmu_interrupt(int irq, void *dev_id, struct pt_regs *regs)
657 } 656 }
658 657
659 if (pmu_state == reading_intr) { 658 if (pmu_state == reading_intr) {
660 pmu_handle_data(interrupt_data, data_index, regs); 659 pmu_handle_data(interrupt_data, data_index);
661 } else { 660 } else {
662 req = current_req; 661 req = current_req;
663 current_req = req->next; 662 current_req = req->next;
@@ -701,7 +700,7 @@ pmu_done(struct adb_request *req)
701 700
702/* Interrupt data could be the result data from an ADB cmd */ 701/* Interrupt data could be the result data from an ADB cmd */
703static void 702static void
704pmu_handle_data(unsigned char *data, int len, struct pt_regs *regs) 703pmu_handle_data(unsigned char *data, int len)
705{ 704{
706 static int show_pmu_ints = 1; 705 static int show_pmu_ints = 1;
707 706
@@ -726,7 +725,7 @@ pmu_handle_data(unsigned char *data, int len, struct pt_regs *regs)
726 } 725 }
727 pmu_done(req); 726 pmu_done(req);
728 } else { 727 } else {
729 adb_input(data+1, len-1, regs, 1); 728 adb_input(data+1, len-1, 1);
730 } 729 }
731 } else { 730 } else {
732 if (data[0] == 0x08 && len == 3) { 731 if (data[0] == 0x08 && len == 3) {
diff --git a/drivers/media/common/saa7146_core.c b/drivers/media/common/saa7146_core.c
index b88451e33c09..86cbdbcf9d7d 100644
--- a/drivers/media/common/saa7146_core.c
+++ b/drivers/media/common/saa7146_core.c
@@ -230,7 +230,7 @@ int saa7146_pgtable_build_single(struct pci_dev *pci, struct saa7146_pgtable *pt
230 230
231/********************************************************************************/ 231/********************************************************************************/
232/* interrupt handler */ 232/* interrupt handler */
233static irqreturn_t interrupt_hw(int irq, void *dev_id, struct pt_regs *regs) 233static irqreturn_t interrupt_hw(int irq, void *dev_id)
234{ 234{
235 struct saa7146_dev *dev = dev_id; 235 struct saa7146_dev *dev = dev_id;
236 u32 isr = 0; 236 u32 isr = 0;
diff --git a/drivers/media/dvb/b2c2/flexcop-pci.c b/drivers/media/dvb/b2c2/flexcop-pci.c
index eb2e6432c8c2..06893243f3d4 100644
--- a/drivers/media/dvb/b2c2/flexcop-pci.c
+++ b/drivers/media/dvb/b2c2/flexcop-pci.c
@@ -122,7 +122,7 @@ static void flexcop_pci_irq_check_work(void *data)
122/* When PID filtering is turned on, we use the timer IRQ, because small amounts 122/* When PID filtering is turned on, we use the timer IRQ, because small amounts
123 * of data need to be passed to the user space instantly as well. When PID 123 * of data need to be passed to the user space instantly as well. When PID
124 * filtering is turned off, we use the page-change-IRQ */ 124 * filtering is turned off, we use the page-change-IRQ */
125static irqreturn_t flexcop_pci_isr(int irq, void *dev_id, struct pt_regs *regs) 125static irqreturn_t flexcop_pci_isr(int irq, void *dev_id)
126{ 126{
127 struct flexcop_pci *fc_pci = dev_id; 127 struct flexcop_pci *fc_pci = dev_id;
128 struct flexcop_device *fc = fc_pci->fc_dev; 128 struct flexcop_device *fc = fc_pci->fc_dev;
diff --git a/drivers/media/dvb/b2c2/flexcop-usb.c b/drivers/media/dvb/b2c2/flexcop-usb.c
index 515954f96c9a..2853ea1bdaf1 100644
--- a/drivers/media/dvb/b2c2/flexcop-usb.c
+++ b/drivers/media/dvb/b2c2/flexcop-usb.c
@@ -328,7 +328,7 @@ static void flexcop_usb_process_frame(struct flexcop_usb *fc_usb, u8 *buffer, in
328 fc_usb->tmp_buffer_length = l; 328 fc_usb->tmp_buffer_length = l;
329} 329}
330 330
331static void flexcop_usb_urb_complete(struct urb *urb, struct pt_regs *ptregs) 331static void flexcop_usb_urb_complete(struct urb *urb)
332{ 332{
333 struct flexcop_usb *fc_usb = urb->context; 333 struct flexcop_usb *fc_usb = urb->context;
334 int i; 334 int i;
diff --git a/drivers/media/dvb/bt8xx/bt878.c b/drivers/media/dvb/bt8xx/bt878.c
index 755822ee6e9b..329a51c18562 100644
--- a/drivers/media/dvb/bt8xx/bt878.c
+++ b/drivers/media/dvb/bt8xx/bt878.c
@@ -266,7 +266,7 @@ EXPORT_SYMBOL(bt878_stop);
266/* Interrupt service routine */ 266/* Interrupt service routine */
267/*****************************/ 267/*****************************/
268 268
269static irqreturn_t bt878_irq(int irq, void *dev_id, struct pt_regs *regs) 269static irqreturn_t bt878_irq(int irq, void *dev_id)
270{ 270{
271 u32 stat, astat, mask; 271 u32 stat, astat, mask;
272 int count; 272 int count;
diff --git a/drivers/media/dvb/cinergyT2/cinergyT2.c b/drivers/media/dvb/cinergyT2/cinergyT2.c
index 410fa6d620ff..ff7d4f56ced3 100644
--- a/drivers/media/dvb/cinergyT2/cinergyT2.c
+++ b/drivers/media/dvb/cinergyT2/cinergyT2.c
@@ -238,7 +238,7 @@ static void cinergyt2_sleep (struct cinergyt2 *cinergyt2, int sleep)
238 cinergyt2->sleeping = sleep; 238 cinergyt2->sleeping = sleep;
239} 239}
240 240
241static void cinergyt2_stream_irq (struct urb *urb, struct pt_regs *regs); 241static void cinergyt2_stream_irq (struct urb *urb);
242 242
243static int cinergyt2_submit_stream_urb (struct cinergyt2 *cinergyt2, struct urb *urb) 243static int cinergyt2_submit_stream_urb (struct cinergyt2 *cinergyt2, struct urb *urb)
244{ 244{
@@ -258,7 +258,7 @@ static int cinergyt2_submit_stream_urb (struct cinergyt2 *cinergyt2, struct urb
258 return err; 258 return err;
259} 259}
260 260
261static void cinergyt2_stream_irq (struct urb *urb, struct pt_regs *regs) 261static void cinergyt2_stream_irq (struct urb *urb)
262{ 262{
263 struct cinergyt2 *cinergyt2 = urb->context; 263 struct cinergyt2 *cinergyt2 = urb->context;
264 264
diff --git a/drivers/media/dvb/dvb-usb/usb-urb.c b/drivers/media/dvb/dvb-usb/usb-urb.c
index 572b2d9aa66a..78035ee824ca 100644
--- a/drivers/media/dvb/dvb-usb/usb-urb.c
+++ b/drivers/media/dvb/dvb-usb/usb-urb.c
@@ -11,7 +11,7 @@
11#include "dvb-usb-common.h" 11#include "dvb-usb-common.h"
12 12
13/* URB stuff for streaming */ 13/* URB stuff for streaming */
14static void usb_urb_complete(struct urb *urb, struct pt_regs *ptregs) 14static void usb_urb_complete(struct urb *urb)
15{ 15{
16 struct usb_data_stream *stream = urb->context; 16 struct usb_data_stream *stream = urb->context;
17 int ptype = usb_pipetype(urb->pipe); 17 int ptype = usb_pipetype(urb->pipe);
diff --git a/drivers/media/dvb/pluto2/pluto2.c b/drivers/media/dvb/pluto2/pluto2.c
index 2310b2bfed4e..8e4ce101eb22 100644
--- a/drivers/media/dvb/pluto2/pluto2.c
+++ b/drivers/media/dvb/pluto2/pluto2.c
@@ -306,7 +306,7 @@ static void pluto_dma_end(struct pluto *pluto, unsigned int nbpackets)
306 TS_DMA_BYTES, PCI_DMA_FROMDEVICE); 306 TS_DMA_BYTES, PCI_DMA_FROMDEVICE);
307} 307}
308 308
309static irqreturn_t pluto_irq(int irq, void *dev_id, struct pt_regs *regs) 309static irqreturn_t pluto_irq(int irq, void *dev_id)
310{ 310{
311 struct pluto *pluto = dev_id; 311 struct pluto *pluto = dev_id;
312 u32 tscr; 312 u32 tscr;
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
index 234199875f53..60820deb900b 100644
--- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
@@ -732,7 +732,7 @@ static void ttusb_process_frame(struct ttusb *ttusb, u8 * data, int len)
732 } 732 }
733} 733}
734 734
735static void ttusb_iso_irq(struct urb *urb, struct pt_regs *ptregs) 735static void ttusb_iso_irq(struct urb *urb)
736{ 736{
737 struct ttusb *ttusb = urb->context; 737 struct ttusb *ttusb = urb->context;
738 738
diff --git a/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
index de077a757192..a1c9fa9919ea 100644
--- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c
+++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
@@ -203,7 +203,7 @@ static u16 rc_keys[] = {
203static void ttusb_dec_set_model(struct ttusb_dec *dec, 203static void ttusb_dec_set_model(struct ttusb_dec *dec,
204 enum ttusb_dec_model model); 204 enum ttusb_dec_model model);
205 205
206static void ttusb_dec_handle_irq( struct urb *urb, struct pt_regs *regs) 206static void ttusb_dec_handle_irq( struct urb *urb)
207{ 207{
208 struct ttusb_dec * dec = urb->context; 208 struct ttusb_dec * dec = urb->context;
209 char *buffer = dec->irq_buffer; 209 char *buffer = dec->irq_buffer;
@@ -755,7 +755,7 @@ static void ttusb_dec_process_urb_frame_list(unsigned long data)
755 } 755 }
756} 756}
757 757
758static void ttusb_dec_process_urb(struct urb *urb, struct pt_regs *ptregs) 758static void ttusb_dec_process_urb(struct urb *urb)
759{ 759{
760 struct ttusb_dec *dec = urb->context; 760 struct ttusb_dec *dec = urb->context;
761 761
diff --git a/drivers/media/video/arv.c b/drivers/media/video/arv.c
index 5c5e682a3004..4861799eb430 100644
--- a/drivers/media/video/arv.c
+++ b/drivers/media/video/arv.c
@@ -549,7 +549,7 @@ static int ar_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
549/* 549/*
550 * Interrupt handler 550 * Interrupt handler
551 */ 551 */
552static void ar_interrupt(int irq, void *dev, struct pt_regs *regs) 552static void ar_interrupt(int irq, void *dev)
553{ 553{
554 struct ar_device *ar = dev; 554 struct ar_device *ar = dev;
555 unsigned int line_count; 555 unsigned int line_count;
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
index 50dde82844ec..6e1ddad9f0c1 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -3753,7 +3753,7 @@ bttv_irq_switch_vbi(struct bttv *btv)
3753 spin_unlock(&btv->s_lock); 3753 spin_unlock(&btv->s_lock);
3754} 3754}
3755 3755
3756static irqreturn_t bttv_irq(int irq, void *dev_id, struct pt_regs * regs) 3756static irqreturn_t bttv_irq(int irq, void *dev_id)
3757{ 3757{
3758 u32 stat,astat; 3758 u32 stat,astat;
3759 u32 dstat; 3759 u32 dstat;
diff --git a/drivers/media/video/cpia2/cpia2_usb.c b/drivers/media/video/cpia2/cpia2_usb.c
index f4da02941493..28dc6a1a1e43 100644
--- a/drivers/media/video/cpia2/cpia2_usb.c
+++ b/drivers/media/video/cpia2/cpia2_usb.c
@@ -49,7 +49,7 @@ static int frame_sizes[] = {
49#define FRAME_SIZE_PER_DESC frame_sizes[cam->cur_alt] 49#define FRAME_SIZE_PER_DESC frame_sizes[cam->cur_alt]
50 50
51static void process_frame(struct camera_data *cam); 51static void process_frame(struct camera_data *cam);
52static void cpia2_usb_complete(struct urb *urb, struct pt_regs *); 52static void cpia2_usb_complete(struct urb *urb);
53static int cpia2_usb_probe(struct usb_interface *intf, 53static int cpia2_usb_probe(struct usb_interface *intf,
54 const struct usb_device_id *id); 54 const struct usb_device_id *id);
55static void cpia2_usb_disconnect(struct usb_interface *intf); 55static void cpia2_usb_disconnect(struct usb_interface *intf);
@@ -199,7 +199,7 @@ static void add_COM(struct camera_data *cam)
199 * 199 *
200 * callback when incoming packet is received 200 * callback when incoming packet is received
201 *****************************************************************************/ 201 *****************************************************************************/
202static void cpia2_usb_complete(struct urb *urb, struct pt_regs *regs) 202static void cpia2_usb_complete(struct urb *urb)
203{ 203{
204 int i; 204 int i;
205 unsigned char *cdata; 205 unsigned char *cdata;
diff --git a/drivers/media/video/cpia_usb.c b/drivers/media/video/cpia_usb.c
index 2ee34a3b9280..9da4726eb9b9 100644
--- a/drivers/media/video/cpia_usb.c
+++ b/drivers/media/video/cpia_usb.c
@@ -109,7 +109,7 @@ static struct cpia_camera_ops cpia_usb_ops = {
109static LIST_HEAD(cam_list); 109static LIST_HEAD(cam_list);
110static spinlock_t cam_list_lock_usb; 110static spinlock_t cam_list_lock_usb;
111 111
112static void cpia_usb_complete(struct urb *urb, struct pt_regs *regs) 112static void cpia_usb_complete(struct urb *urb)
113{ 113{
114 int i; 114 int i;
115 char *cdata; 115 char *cdata;
diff --git a/drivers/media/video/cx88/cx88-alsa.c b/drivers/media/video/cx88/cx88-alsa.c
index f0340662e078..e4355fdc3b6d 100644
--- a/drivers/media/video/cx88/cx88-alsa.c
+++ b/drivers/media/video/cx88/cx88-alsa.c
@@ -262,7 +262,7 @@ static void cx8801_aud_irq(snd_cx88_card_t *chip)
262/* 262/*
263 * BOARD Specific: Handles IRQ calls 263 * BOARD Specific: Handles IRQ calls
264 */ 264 */
265static irqreturn_t cx8801_irq(int irq, void *dev_id, struct pt_regs *regs) 265static irqreturn_t cx8801_irq(int irq, void *dev_id)
266{ 266{
267 snd_cx88_card_t *chip = dev_id; 267 snd_cx88_card_t *chip = dev_id;
268 struct cx88_core *core = chip->core; 268 struct cx88_core *core = chip->core;
diff --git a/drivers/media/video/cx88/cx88-mpeg.c b/drivers/media/video/cx88/cx88-mpeg.c
index d6d980774c21..6b23a4e6f66d 100644
--- a/drivers/media/video/cx88/cx88-mpeg.c
+++ b/drivers/media/video/cx88/cx88-mpeg.c
@@ -376,7 +376,7 @@ static void cx8802_mpeg_irq(struct cx8802_dev *dev)
376 376
377#define MAX_IRQ_LOOP 10 377#define MAX_IRQ_LOOP 10
378 378
379static irqreturn_t cx8802_irq(int irq, void *dev_id, struct pt_regs *regs) 379static irqreturn_t cx8802_irq(int irq, void *dev_id)
380{ 380{
381 struct cx8802_dev *dev = dev_id; 381 struct cx8802_dev *dev = dev_id;
382 struct cx88_core *core = dev->core; 382 struct cx88_core *core = dev->core;
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c
index cb0c0eea20f9..90e298d074d1 100644
--- a/drivers/media/video/cx88/cx88-video.c
+++ b/drivers/media/video/cx88/cx88-video.c
@@ -1744,7 +1744,7 @@ static void cx8800_vid_irq(struct cx8800_dev *dev)
1744 } 1744 }
1745} 1745}
1746 1746
1747static irqreturn_t cx8800_irq(int irq, void *dev_id, struct pt_regs *regs) 1747static irqreturn_t cx8800_irq(int irq, void *dev_id)
1748{ 1748{
1749 struct cx8800_dev *dev = dev_id; 1749 struct cx8800_dev *dev = dev_id;
1750 struct cx88_core *core = dev->core; 1750 struct cx88_core *core = dev->core;
diff --git a/drivers/media/video/dabusb.c b/drivers/media/video/dabusb.c
index b9ba95f5e026..b1012e92ee04 100644
--- a/drivers/media/video/dabusb.c
+++ b/drivers/media/video/dabusb.c
@@ -166,7 +166,7 @@ static int dabusb_free_buffers (pdabusb_t s)
166 return 0; 166 return 0;
167} 167}
168/*-------------------------------------------------------------------*/ 168/*-------------------------------------------------------------------*/
169static void dabusb_iso_complete (struct urb *purb, struct pt_regs *regs) 169static void dabusb_iso_complete (struct urb *purb)
170{ 170{
171 pbuff_t b = purb->context; 171 pbuff_t b = purb->context;
172 pdabusb_t s = b->s; 172 pdabusb_t s = b->s;
diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
index 4350cc75b025..255a47dfb84f 100644
--- a/drivers/media/video/em28xx/em28xx-core.c
+++ b/drivers/media/video/em28xx/em28xx-core.c
@@ -382,7 +382,7 @@ int em28xx_resolution_set(struct em28xx *dev)
382/******************* isoc transfer handling ****************************/ 382/******************* isoc transfer handling ****************************/
383 383
384#ifdef ENABLE_DEBUG_ISOC_FRAMES 384#ifdef ENABLE_DEBUG_ISOC_FRAMES
385static void em28xx_isoc_dump(struct urb *urb, struct pt_regs *regs) 385static void em28xx_isoc_dump(struct urb *urb)
386{ 386{
387 int len = 0; 387 int len = 0;
388 int ntrans = 0; 388 int ntrans = 0;
@@ -534,7 +534,7 @@ static inline void em28xx_isoc_video_copy(struct em28xx *dev,
534 * em28xx_isoIrq() 534 * em28xx_isoIrq()
535 * handles the incoming isoc urbs and fills the frames from our inqueue 535 * handles the incoming isoc urbs and fills the frames from our inqueue
536 */ 536 */
537static void em28xx_isocIrq(struct urb *urb, struct pt_regs *regs) 537static void em28xx_isocIrq(struct urb *urb)
538{ 538{
539 struct em28xx *dev = urb->context; 539 struct em28xx *dev = urb->context;
540 int i, status; 540 int i, status;
@@ -545,7 +545,7 @@ static void em28xx_isocIrq(struct urb *urb, struct pt_regs *regs)
545 return; 545 return;
546#ifdef ENABLE_DEBUG_ISOC_FRAMES 546#ifdef ENABLE_DEBUG_ISOC_FRAMES
547 if (isoc_debug>1) 547 if (isoc_debug>1)
548 em28xx_isoc_dump(urb, regs); 548 em28xx_isoc_dump(urb);
549#endif 549#endif
550 550
551 if (urb->status == -ENOENT) 551 if (urb->status == -ENOENT)
diff --git a/drivers/media/video/et61x251/et61x251_core.c b/drivers/media/video/et61x251/et61x251_core.c
index 8992b6e62b9f..bc544cc7ccb8 100644
--- a/drivers/media/video/et61x251/et61x251_core.c
+++ b/drivers/media/video/et61x251/et61x251_core.c
@@ -398,7 +398,7 @@ int et61x251_i2c_write(struct et61x251_device* cam, u8 address, u8 value)
398 398
399/*****************************************************************************/ 399/*****************************************************************************/
400 400
401static void et61x251_urb_complete(struct urb *urb, struct pt_regs* regs) 401static void et61x251_urb_complete(struct urb *urb)
402{ 402{
403 struct et61x251_device* cam = urb->context; 403 struct et61x251_device* cam = urb->context;
404 struct et61x251_frame_t** f; 404 struct et61x251_frame_t** f;
diff --git a/drivers/media/video/meye.c b/drivers/media/video/meye.c
index e278753f8f25..b083338823df 100644
--- a/drivers/media/video/meye.c
+++ b/drivers/media/video/meye.c
@@ -786,7 +786,7 @@ static void mchip_cont_compression_start(void)
786/* Interrupt handling */ 786/* Interrupt handling */
787/****************************************************************************/ 787/****************************************************************************/
788 788
789static irqreturn_t meye_irq(int irq, void *dev_id, struct pt_regs *regs) 789static irqreturn_t meye_irq(int irq, void *dev_id)
790{ 790{
791 u32 v; 791 u32 v;
792 int reqnr; 792 int reqnr;
diff --git a/drivers/media/video/ov511.c b/drivers/media/video/ov511.c
index 5d8cd283fcd8..ce4886f1528d 100644
--- a/drivers/media/video/ov511.c
+++ b/drivers/media/video/ov511.c
@@ -3503,7 +3503,7 @@ check_middle:
3503} 3503}
3504 3504
3505static void 3505static void
3506ov51x_isoc_irq(struct urb *urb, struct pt_regs *regs) 3506ov51x_isoc_irq(struct urb *urb)
3507{ 3507{
3508 int i; 3508 int i;
3509 struct usb_ov511 *ov; 3509 struct usb_ov511 *ov;
diff --git a/drivers/media/video/planb.c b/drivers/media/video/planb.c
index 3484e36b6801..368d6e219fa4 100644
--- a/drivers/media/video/planb.c
+++ b/drivers/media/video/planb.c
@@ -91,7 +91,7 @@ static void planb_close(struct video_device *);
91static int planb_ioctl(struct video_device *, unsigned int, void *); 91static int planb_ioctl(struct video_device *, unsigned int, void *);
92static int planb_init_done(struct video_device *); 92static int planb_init_done(struct video_device *);
93static int planb_mmap(struct video_device *, const char *, unsigned long); 93static int planb_mmap(struct video_device *, const char *, unsigned long);
94static void planb_irq(int, void *, struct pt_regs *); 94static void planb_irq(int, void *);
95static void release_planb(void); 95static void release_planb(void);
96int init_planbs(struct video_init *); 96int init_planbs(struct video_init *);
97 97
@@ -1316,7 +1316,7 @@ cmd_tab_data_end:
1316 return c1; 1316 return c1;
1317} 1317}
1318 1318
1319static void planb_irq(int irq, void *dev_id, struct pt_regs * regs) 1319static void planb_irq(int irq, void *dev_id)
1320{ 1320{
1321 unsigned int stat, astat; 1321 unsigned int stat, astat;
1322 struct planb *pb = (struct planb *)dev_id; 1322 struct planb *pb = (struct planb *)dev_id;
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index 3d8cd0daf6a9..f920e0ccacd3 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -2552,7 +2552,7 @@ void pvr2_hdw_v4l_store_minor_number(struct pvr2_hdw *hdw,int v)
2552} 2552}
2553 2553
2554 2554
2555static void pvr2_ctl_write_complete(struct urb *urb, struct pt_regs *regs) 2555static void pvr2_ctl_write_complete(struct urb *urb)
2556{ 2556{
2557 struct pvr2_hdw *hdw = urb->context; 2557 struct pvr2_hdw *hdw = urb->context;
2558 hdw->ctl_write_pend_flag = 0; 2558 hdw->ctl_write_pend_flag = 0;
@@ -2561,7 +2561,7 @@ static void pvr2_ctl_write_complete(struct urb *urb, struct pt_regs *regs)
2561} 2561}
2562 2562
2563 2563
2564static void pvr2_ctl_read_complete(struct urb *urb, struct pt_regs *regs) 2564static void pvr2_ctl_read_complete(struct urb *urb)
2565{ 2565{
2566 struct pvr2_hdw *hdw = urb->context; 2566 struct pvr2_hdw *hdw = urb->context;
2567 hdw->ctl_read_pend_flag = 0; 2567 hdw->ctl_read_pend_flag = 0;
diff --git a/drivers/media/video/pvrusb2/pvrusb2-io.c b/drivers/media/video/pvrusb2/pvrusb2-io.c
index 1e393762546c..70aa63eba0cb 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-io.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-io.c
@@ -429,7 +429,7 @@ static void pvr2_stream_done(struct pvr2_stream *sp)
429 } while (0); mutex_unlock(&sp->mutex); 429 } while (0); mutex_unlock(&sp->mutex);
430} 430}
431 431
432static void buffer_complete(struct urb *urb, struct pt_regs *regs) 432static void buffer_complete(struct urb *urb)
433{ 433{
434 struct pvr2_buffer *bp = urb->context; 434 struct pvr2_buffer *bp = urb->context;
435 struct pvr2_stream *sp; 435 struct pvr2_stream *sp;
diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c
index 53c4b5790d5c..c77b85cf3d80 100644
--- a/drivers/media/video/pwc/pwc-if.c
+++ b/drivers/media/video/pwc/pwc-if.c
@@ -682,7 +682,7 @@ static int pwc_rcv_short_packet(struct pwc_device *pdev, const struct pwc_frame_
682/* This gets called for the Isochronous pipe (video). This is done in 682/* This gets called for the Isochronous pipe (video). This is done in
683 * interrupt time, so it has to be fast, not crash, and not stall. Neat. 683 * interrupt time, so it has to be fast, not crash, and not stall. Neat.
684 */ 684 */
685static void pwc_isoc_handler(struct urb *urb, struct pt_regs *regs) 685static void pwc_isoc_handler(struct urb *urb)
686{ 686{
687 struct pwc_device *pdev; 687 struct pwc_device *pdev;
688 int i, fst, flen; 688 int i, fst, flen;
diff --git a/drivers/media/video/saa7134/saa7134-alsa.c b/drivers/media/video/saa7134/saa7134-alsa.c
index a39e0136ce3b..4abf5c03a740 100644
--- a/drivers/media/video/saa7134/saa7134-alsa.c
+++ b/drivers/media/video/saa7134/saa7134-alsa.c
@@ -212,7 +212,7 @@ static void saa7134_irq_alsa_done(struct saa7134_dev *dev,
212 * 212 *
213 */ 213 */
214 214
215static irqreturn_t saa7134_alsa_irq(int irq, void *dev_id, struct pt_regs *regs) 215static irqreturn_t saa7134_alsa_irq(int irq, void *dev_id)
216{ 216{
217 struct saa7134_dmasound *dmasound = dev_id; 217 struct saa7134_dmasound *dmasound = dev_id;
218 struct saa7134_dev *dev = dmasound->priv_data; 218 struct saa7134_dev *dev = dmasound->priv_data;
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c
index 09aa62f61af7..5c9e63dfbea6 100644
--- a/drivers/media/video/saa7134/saa7134-core.c
+++ b/drivers/media/video/saa7134/saa7134-core.c
@@ -495,7 +495,7 @@ static void print_irqstatus(struct saa7134_dev *dev, int loop,
495 printk("\n"); 495 printk("\n");
496} 496}
497 497
498static irqreturn_t saa7134_irq(int irq, void *dev_id, struct pt_regs *regs) 498static irqreturn_t saa7134_irq(int irq, void *dev_id)
499{ 499{
500 struct saa7134_dev *dev = (struct saa7134_dev*) dev_id; 500 struct saa7134_dev *dev = (struct saa7134_dev*) dev_id;
501 unsigned long report,status; 501 unsigned long report,status;
diff --git a/drivers/media/video/saa7134/saa7134-oss.c b/drivers/media/video/saa7134/saa7134-oss.c
index 2e3ba5f31453..bfcb860d14cc 100644
--- a/drivers/media/video/saa7134/saa7134-oss.c
+++ b/drivers/media/video/saa7134/saa7134-oss.c
@@ -814,7 +814,7 @@ struct file_operations saa7134_mixer_fops = {
814 814
815/* ------------------------------------------------------------------ */ 815/* ------------------------------------------------------------------ */
816 816
817static irqreturn_t saa7134_oss_irq(int irq, void *dev_id, struct pt_regs *regs) 817static irqreturn_t saa7134_oss_irq(int irq, void *dev_id)
818{ 818{
819 struct saa7134_dmasound *dmasound = dev_id; 819 struct saa7134_dmasound *dmasound = dev_id;
820 struct saa7134_dev *dev = dmasound->priv_data; 820 struct saa7134_dev *dev = dmasound->priv_data;
diff --git a/drivers/media/video/se401.c b/drivers/media/video/se401.c
index 67987baee77a..7aeec574d7ce 100644
--- a/drivers/media/video/se401.c
+++ b/drivers/media/video/se401.c
@@ -282,7 +282,7 @@ static void se401_auto_resetlevel(struct usb_se401 *se401)
282} 282}
283 283
284/* irq handler for snapshot button */ 284/* irq handler for snapshot button */
285static void se401_button_irq(struct urb *urb, struct pt_regs *regs) 285static void se401_button_irq(struct urb *urb)
286{ 286{
287 struct usb_se401 *se401 = urb->context; 287 struct usb_se401 *se401 = urb->context;
288 int status; 288 int status;
@@ -318,7 +318,7 @@ exit:
318 __FUNCTION__, status); 318 __FUNCTION__, status);
319} 319}
320 320
321static void se401_video_irq(struct urb *urb, struct pt_regs *regs) 321static void se401_video_irq(struct urb *urb)
322{ 322{
323 struct usb_se401 *se401 = urb->context; 323 struct usb_se401 *se401 = urb->context;
324 int length = urb->actual_length; 324 int length = urb->actual_length;
diff --git a/drivers/media/video/sn9c102/sn9c102_core.c b/drivers/media/video/sn9c102/sn9c102_core.c
index 48d138a7c723..3e0ff8a78468 100644
--- a/drivers/media/video/sn9c102/sn9c102_core.c
+++ b/drivers/media/video/sn9c102/sn9c102_core.c
@@ -518,7 +518,7 @@ sn9c102_find_eof_header(struct sn9c102_device* cam, void* mem, size_t len)
518} 518}
519 519
520 520
521static void sn9c102_urb_complete(struct urb *urb, struct pt_regs* regs) 521static void sn9c102_urb_complete(struct urb *urb)
522{ 522{
523 struct sn9c102_device* cam = urb->context; 523 struct sn9c102_device* cam = urb->context;
524 struct sn9c102_frame_t** f; 524 struct sn9c102_frame_t** f;
diff --git a/drivers/media/video/stradis.c b/drivers/media/video/stradis.c
index 5686547ba76a..525d81288d55 100644
--- a/drivers/media/video/stradis.c
+++ b/drivers/media/video/stradis.c
@@ -406,7 +406,7 @@ static void send_osd_data(struct saa7146 *saa)
406 } 406 }
407} 407}
408 408
409static irqreturn_t saa7146_irq(int irq, void *dev_id, struct pt_regs *regs) 409static irqreturn_t saa7146_irq(int irq, void *dev_id)
410{ 410{
411 struct saa7146 *saa = dev_id; 411 struct saa7146 *saa = dev_id;
412 u32 stat, astat; 412 u32 stat, astat;
diff --git a/drivers/media/video/stv680.c b/drivers/media/video/stv680.c
index 2ba2991a214f..87e11300181d 100644
--- a/drivers/media/video/stv680.c
+++ b/drivers/media/video/stv680.c
@@ -582,7 +582,7 @@ static int stv680_set_pict (struct usb_stv *stv680, struct video_picture *p)
582 return 0; 582 return 0;
583} 583}
584 584
585static void stv680_video_irq (struct urb *urb, struct pt_regs *regs) 585static void stv680_video_irq (struct urb *urb)
586{ 586{
587 struct usb_stv *stv680 = urb->context; 587 struct usb_stv *stv680 = urb->context;
588 int length = urb->actual_length; 588 int length = urb->actual_length;
diff --git a/drivers/media/video/usbvideo/konicawc.c b/drivers/media/video/usbvideo/konicawc.c
index 4eee8be88314..abe214619092 100644
--- a/drivers/media/video/usbvideo/konicawc.c
+++ b/drivers/media/video/usbvideo/konicawc.c
@@ -387,7 +387,7 @@ static void resubmit_urb(struct uvd *uvd, struct urb *urb)
387} 387}
388 388
389 389
390static void konicawc_isoc_irq(struct urb *urb, struct pt_regs *regs) 390static void konicawc_isoc_irq(struct urb *urb)
391{ 391{
392 struct uvd *uvd = urb->context; 392 struct uvd *uvd = urb->context;
393 struct konicawc *cam = (struct konicawc *)uvd->user_data; 393 struct konicawc *cam = (struct konicawc *)uvd->user_data;
diff --git a/drivers/media/video/usbvideo/quickcam_messenger.c b/drivers/media/video/usbvideo/quickcam_messenger.c
index 56e01b622417..9a26b9484aae 100644
--- a/drivers/media/video/usbvideo/quickcam_messenger.c
+++ b/drivers/media/video/usbvideo/quickcam_messenger.c
@@ -125,7 +125,7 @@ static void qcm_report_buttonstat(struct qcm *cam)
125 } 125 }
126} 126}
127 127
128static void qcm_int_irq(struct urb *urb, struct pt_regs *regs) 128static void qcm_int_irq(struct urb *urb)
129{ 129{
130 int ret; 130 int ret;
131 struct uvd *uvd = urb->context; 131 struct uvd *uvd = urb->context;
@@ -606,7 +606,7 @@ static void resubmit_urb(struct uvd *uvd, struct urb *urb)
606 err("usb_submit_urb error (%d)", ret); 606 err("usb_submit_urb error (%d)", ret);
607} 607}
608 608
609static void qcm_isoc_irq(struct urb *urb, struct pt_regs *regs) 609static void qcm_isoc_irq(struct urb *urb)
610{ 610{
611 int len; 611 int len;
612 struct uvd *uvd = urb->context; 612 struct uvd *uvd = urb->context;
diff --git a/drivers/media/video/usbvideo/usbvideo.c b/drivers/media/video/usbvideo/usbvideo.c
index 13b37c8c0d56..d8b88024bc2f 100644
--- a/drivers/media/video/usbvideo/usbvideo.c
+++ b/drivers/media/video/usbvideo/usbvideo.c
@@ -1680,7 +1680,7 @@ static int usbvideo_CompressIsochronous(struct uvd *uvd, struct urb *urb)
1680 return totlen; 1680 return totlen;
1681} 1681}
1682 1682
1683static void usbvideo_IsocIrq(struct urb *urb, struct pt_regs *regs) 1683static void usbvideo_IsocIrq(struct urb *urb)
1684{ 1684{
1685 int i, ret, len; 1685 int i, ret, len;
1686 struct uvd *uvd = urb->context; 1686 struct uvd *uvd = urb->context;
diff --git a/drivers/media/video/vino.c b/drivers/media/video/vino.c
index d1e04f7c530b..6b6dff4d236a 100644
--- a/drivers/media/video/vino.c
+++ b/drivers/media/video/vino.c
@@ -2325,7 +2325,7 @@ static void vino_capture_tasklet(unsigned long channel) {
2325 } 2325 }
2326} 2326}
2327 2327
2328static irqreturn_t vino_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2328static irqreturn_t vino_interrupt(int irq, void *dev_id)
2329{ 2329{
2330 u32 ctrl, intr; 2330 u32 ctrl, intr;
2331 unsigned int fc_a, fc_b; 2331 unsigned int fc_a, fc_b;
diff --git a/drivers/media/video/w9968cf.c b/drivers/media/video/w9968cf.c
index 2912326a5aef..ddce2fb83424 100644
--- a/drivers/media/video/w9968cf.c
+++ b/drivers/media/video/w9968cf.c
@@ -417,7 +417,7 @@ static int w9968cf_write_fsb(struct w9968cf_device*, u16* data);
417static int w9968cf_write_sb(struct w9968cf_device*, u16 value); 417static int w9968cf_write_sb(struct w9968cf_device*, u16 value);
418static int w9968cf_read_sb(struct w9968cf_device*); 418static int w9968cf_read_sb(struct w9968cf_device*);
419static int w9968cf_upload_quantizationtables(struct w9968cf_device*); 419static int w9968cf_upload_quantizationtables(struct w9968cf_device*);
420static void w9968cf_urb_complete(struct urb *urb, struct pt_regs *regs); 420static void w9968cf_urb_complete(struct urb *urb);
421 421
422/* Low-level I2C (SMBus) I/O */ 422/* Low-level I2C (SMBus) I/O */
423static int w9968cf_smbus_start(struct w9968cf_device*); 423static int w9968cf_smbus_start(struct w9968cf_device*);
@@ -781,7 +781,7 @@ static int w9968cf_allocate_memory(struct w9968cf_device* cam)
781 If there are no requested frames in the FIFO list, packets are collected into 781 If there are no requested frames in the FIFO list, packets are collected into
782 a temporary buffer. 782 a temporary buffer.
783 --------------------------------------------------------------------------*/ 783 --------------------------------------------------------------------------*/
784static void w9968cf_urb_complete(struct urb *urb, struct pt_regs *regs) 784static void w9968cf_urb_complete(struct urb *urb)
785{ 785{
786 struct w9968cf_device* cam = (struct w9968cf_device*)urb->context; 786 struct w9968cf_device* cam = (struct w9968cf_device*)urb->context;
787 struct w9968cf_frame_t** f; 787 struct w9968cf_frame_t** f;
diff --git a/drivers/media/video/zc0301/zc0301_core.c b/drivers/media/video/zc0301/zc0301_core.c
index 1b2be2d2a3ec..5b5563424422 100644
--- a/drivers/media/video/zc0301/zc0301_core.c
+++ b/drivers/media/video/zc0301/zc0301_core.c
@@ -303,7 +303,7 @@ int zc0301_i2c_write(struct zc0301_device* cam, u16 address, u16 value)
303 303
304/*****************************************************************************/ 304/*****************************************************************************/
305 305
306static void zc0301_urb_complete(struct urb *urb, struct pt_regs* regs) 306static void zc0301_urb_complete(struct urb *urb)
307{ 307{
308 struct zc0301_device* cam = urb->context; 308 struct zc0301_device* cam = urb->context;
309 struct zc0301_frame_t** f; 309 struct zc0301_frame_t** f;
diff --git a/drivers/media/video/zoran_device.c b/drivers/media/video/zoran_device.c
index 3cbac2e8aed3..d9d5020a2224 100644
--- a/drivers/media/video/zoran_device.c
+++ b/drivers/media/video/zoran_device.c
@@ -1408,8 +1408,7 @@ error_handler (struct zoran *zr,
1408 1408
1409irqreturn_t 1409irqreturn_t
1410zoran_irq (int irq, 1410zoran_irq (int irq,
1411 void *dev_id, 1411 void *dev_id)
1412 struct pt_regs *regs)
1413{ 1412{
1414 u32 stat, astat; 1413 u32 stat, astat;
1415 int count; 1414 int count;
diff --git a/drivers/media/video/zoran_device.h b/drivers/media/video/zoran_device.h
index f19705cbdb39..37fa86a34083 100644
--- a/drivers/media/video/zoran_device.h
+++ b/drivers/media/video/zoran_device.h
@@ -64,9 +64,7 @@ extern int wait_grab_pending(struct zoran *zr);
64/* interrupts */ 64/* interrupts */
65extern void print_interrupts(struct zoran *zr); 65extern void print_interrupts(struct zoran *zr);
66extern void clear_interrupt_counters(struct zoran *zr); 66extern void clear_interrupt_counters(struct zoran *zr);
67extern irqreturn_t zoran_irq(int irq, 67extern irqreturn_t zoran_irq(int irq, void *dev_id);
68 void *dev_id,
69 struct pt_regs *regs);
70 68
71/* JPEG codec access */ 69/* JPEG codec access */
72extern void jpeg_start(struct zoran *zr); 70extern void jpeg_start(struct zoran *zr);
diff --git a/drivers/media/video/zr36120.c b/drivers/media/video/zr36120.c
index b5ffe53c40d8..0cbf564388a6 100644
--- a/drivers/media/video/zr36120.c
+++ b/drivers/media/video/zr36120.c
@@ -335,13 +335,13 @@ DEBUG(printk(CARD_DEBUG "turning off\n",CARD));
335} 335}
336 336
337static 337static
338void zoran_irq(int irq, void *dev_id, struct pt_regs * regs) 338void zoran_irq(int irq, void *dev_id)
339{ 339{
340 u32 stat,estat; 340 u32 stat,estat;
341 int count = 0; 341 int count = 0;
342 struct zoran *ztv = dev_id; 342 struct zoran *ztv = dev_id;
343 343
344 UNUSED(irq); UNUSED(regs); 344 UNUSED(irq);
345 for (;;) { 345 for (;;) {
346 /* get/clear interrupt status bits */ 346 /* get/clear interrupt status bits */
347 stat=zrread(ZORAN_ISR); 347 stat=zrread(ZORAN_ISR);
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index 29d0635cce1d..e5c72719debc 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -122,7 +122,7 @@ static DECLARE_WAIT_QUEUE_HEAD(mpt_waitq);
122/* 122/*
123 * Forward protos... 123 * Forward protos...
124 */ 124 */
125static irqreturn_t mpt_interrupt(int irq, void *bus_id, struct pt_regs *r); 125static irqreturn_t mpt_interrupt(int irq, void *bus_id);
126static int mpt_base_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req, MPT_FRAME_HDR *reply); 126static int mpt_base_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req, MPT_FRAME_HDR *reply);
127static int mpt_handshake_req_reply_wait(MPT_ADAPTER *ioc, int reqBytes, 127static int mpt_handshake_req_reply_wait(MPT_ADAPTER *ioc, int reqBytes,
128 u32 *req, int replyBytes, u16 *u16reply, int maxwait, 128 u32 *req, int replyBytes, u16 *u16reply, int maxwait,
@@ -351,7 +351,6 @@ mpt_reply(MPT_ADAPTER *ioc, u32 pa)
351 * mpt_interrupt - MPT adapter (IOC) specific interrupt handler. 351 * mpt_interrupt - MPT adapter (IOC) specific interrupt handler.
352 * @irq: irq number (not used) 352 * @irq: irq number (not used)
353 * @bus_id: bus identifier cookie == pointer to MPT_ADAPTER structure 353 * @bus_id: bus identifier cookie == pointer to MPT_ADAPTER structure
354 * @r: pt_regs pointer (not used)
355 * 354 *
356 * This routine is registered via the request_irq() kernel API call, 355 * This routine is registered via the request_irq() kernel API call,
357 * and handles all interrupts generated from a specific MPT adapter 356 * and handles all interrupts generated from a specific MPT adapter
@@ -365,7 +364,7 @@ mpt_reply(MPT_ADAPTER *ioc, u32 pa)
365 * the protocol-specific details of the MPT request completion. 364 * the protocol-specific details of the MPT request completion.
366 */ 365 */
367static irqreturn_t 366static irqreturn_t
368mpt_interrupt(int irq, void *bus_id, struct pt_regs *r) 367mpt_interrupt(int irq, void *bus_id)
369{ 368{
370 MPT_ADAPTER *ioc = bus_id; 369 MPT_ADAPTER *ioc = bus_id;
371 u32 pa = CHIPREG_READ32_dmasync(&ioc->chip->ReplyFifo); 370 u32 pa = CHIPREG_READ32_dmasync(&ioc->chip->ReplyFifo);
diff --git a/drivers/message/i2o/pci.c b/drivers/message/i2o/pci.c
index dec41cc89937..62f1ac08332c 100644
--- a/drivers/message/i2o/pci.c
+++ b/drivers/message/i2o/pci.c
@@ -224,12 +224,11 @@ static int __devinit i2o_pci_alloc(struct i2o_controller *c)
224 * i2o_pci_interrupt - Interrupt handler for I2O controller 224 * i2o_pci_interrupt - Interrupt handler for I2O controller
225 * @irq: interrupt line 225 * @irq: interrupt line
226 * @dev_id: pointer to the I2O controller 226 * @dev_id: pointer to the I2O controller
227 * @r: pointer to registers
228 * 227 *
229 * Handle an interrupt from a PCI based I2O controller. This turns out 228 * Handle an interrupt from a PCI based I2O controller. This turns out
230 * to be rather simple. We keep the controller pointer in the cookie. 229 * to be rather simple. We keep the controller pointer in the cookie.
231 */ 230 */
232static irqreturn_t i2o_pci_interrupt(int irq, void *dev_id, struct pt_regs *r) 231static irqreturn_t i2o_pci_interrupt(int irq, void *dev_id)
233{ 232{
234 struct i2o_controller *c = dev_id; 233 struct i2o_controller *c = dev_id;
235 u32 m; 234 u32 m;
diff --git a/drivers/mfd/ucb1x00-core.c b/drivers/mfd/ucb1x00-core.c
index 2bf32721eb53..149810a084f5 100644
--- a/drivers/mfd/ucb1x00-core.c
+++ b/drivers/mfd/ucb1x00-core.c
@@ -203,7 +203,7 @@ void ucb1x00_adc_disable(struct ucb1x00 *ucb)
203 * SIBCLK to talk to the chip. We leave the clock running until 203 * SIBCLK to talk to the chip. We leave the clock running until
204 * we have finished processing all interrupts from the chip. 204 * we have finished processing all interrupts from the chip.
205 */ 205 */
206static irqreturn_t ucb1x00_irq(int irqnr, void *devid, struct pt_regs *regs) 206static irqreturn_t ucb1x00_irq(int irqnr, void *devid)
207{ 207{
208 struct ucb1x00 *ucb = devid; 208 struct ucb1x00 *ucb = devid;
209 struct ucb1x00_irq *irq; 209 struct ucb1x00_irq *irq;
diff --git a/drivers/misc/ibmasm/ibmasm.h b/drivers/misc/ibmasm/ibmasm.h
index 634d538ccd14..48d5abebfc30 100644
--- a/drivers/misc/ibmasm/ibmasm.h
+++ b/drivers/misc/ibmasm/ibmasm.h
@@ -196,10 +196,10 @@ extern int ibmasm_send_os_state(struct service_processor *sp, int os_state);
196 196
197/* low level message processing */ 197/* low level message processing */
198extern int ibmasm_send_i2o_message(struct service_processor *sp); 198extern int ibmasm_send_i2o_message(struct service_processor *sp);
199extern irqreturn_t ibmasm_interrupt_handler(int irq, void * dev_id, struct pt_regs *regs); 199extern irqreturn_t ibmasm_interrupt_handler(int irq, void * dev_id);
200 200
201/* remote console */ 201/* remote console */
202extern void ibmasm_handle_mouse_interrupt(struct service_processor *sp, struct pt_regs *regs); 202extern void ibmasm_handle_mouse_interrupt(struct service_processor *sp);
203extern int ibmasm_init_remote_input_dev(struct service_processor *sp); 203extern int ibmasm_init_remote_input_dev(struct service_processor *sp);
204extern void ibmasm_free_remote_input_dev(struct service_processor *sp); 204extern void ibmasm_free_remote_input_dev(struct service_processor *sp);
205 205
diff --git a/drivers/misc/ibmasm/lowlevel.c b/drivers/misc/ibmasm/lowlevel.c
index 47949a2c7e94..a3c589b7cbfa 100644
--- a/drivers/misc/ibmasm/lowlevel.c
+++ b/drivers/misc/ibmasm/lowlevel.c
@@ -54,7 +54,7 @@ int ibmasm_send_i2o_message(struct service_processor *sp)
54 return 0; 54 return 0;
55} 55}
56 56
57irqreturn_t ibmasm_interrupt_handler(int irq, void * dev_id, struct pt_regs *regs) 57irqreturn_t ibmasm_interrupt_handler(int irq, void * dev_id)
58{ 58{
59 u32 mfa; 59 u32 mfa;
60 struct service_processor *sp = (struct service_processor *)dev_id; 60 struct service_processor *sp = (struct service_processor *)dev_id;
@@ -67,7 +67,7 @@ irqreturn_t ibmasm_interrupt_handler(int irq, void * dev_id, struct pt_regs *reg
67 dbg("respond to interrupt at %s\n", get_timestamp(tsbuf)); 67 dbg("respond to interrupt at %s\n", get_timestamp(tsbuf));
68 68
69 if (mouse_interrupt_pending(sp)) { 69 if (mouse_interrupt_pending(sp)) {
70 ibmasm_handle_mouse_interrupt(sp, regs); 70 ibmasm_handle_mouse_interrupt(sp);
71 clear_mouse_interrupt(sp); 71 clear_mouse_interrupt(sp);
72 } 72 }
73 73
diff --git a/drivers/misc/ibmasm/remote.c b/drivers/misc/ibmasm/remote.c
index 0f9e3aa34d07..a40fda6c402c 100644
--- a/drivers/misc/ibmasm/remote.c
+++ b/drivers/misc/ibmasm/remote.c
@@ -158,12 +158,10 @@ static void print_input(struct remote_input *input)
158 } 158 }
159} 159}
160 160
161static void send_mouse_event(struct input_dev *dev, struct pt_regs *regs, 161static void send_mouse_event(struct input_dev *dev, struct remote_input *input)
162 struct remote_input *input)
163{ 162{
164 unsigned char buttons = input->mouse_buttons; 163 unsigned char buttons = input->mouse_buttons;
165 164
166 input_regs(dev, regs);
167 input_report_abs(dev, ABS_X, input->data.mouse.x); 165 input_report_abs(dev, ABS_X, input->data.mouse.x);
168 input_report_abs(dev, ABS_Y, input->data.mouse.y); 166 input_report_abs(dev, ABS_Y, input->data.mouse.y);
169 input_report_key(dev, BTN_LEFT, buttons & REMOTE_BUTTON_LEFT); 167 input_report_key(dev, BTN_LEFT, buttons & REMOTE_BUTTON_LEFT);
@@ -172,7 +170,7 @@ static void send_mouse_event(struct input_dev *dev, struct pt_regs *regs,
172 input_sync(dev); 170 input_sync(dev);
173} 171}
174 172
175static void send_keyboard_event(struct input_dev *dev, struct pt_regs *regs, 173static void send_keyboard_event(struct input_dev *dev,
176 struct remote_input *input) 174 struct remote_input *input)
177{ 175{
178 unsigned int key; 176 unsigned int key;
@@ -182,13 +180,11 @@ static void send_keyboard_event(struct input_dev *dev, struct pt_regs *regs,
182 key = xlate_high[code & 0xff]; 180 key = xlate_high[code & 0xff];
183 else 181 else
184 key = xlate[code]; 182 key = xlate[code];
185 input_regs(dev, regs);
186 input_report_key(dev, key, (input->data.keyboard.key_down) ? 1 : 0); 183 input_report_key(dev, key, (input->data.keyboard.key_down) ? 1 : 0);
187 input_sync(dev); 184 input_sync(dev);
188} 185}
189 186
190void ibmasm_handle_mouse_interrupt(struct service_processor *sp, 187void ibmasm_handle_mouse_interrupt(struct service_processor *sp)
191 struct pt_regs *regs)
192{ 188{
193 unsigned long reader; 189 unsigned long reader;
194 unsigned long writer; 190 unsigned long writer;
@@ -203,9 +199,9 @@ void ibmasm_handle_mouse_interrupt(struct service_processor *sp,
203 199
204 print_input(&input); 200 print_input(&input);
205 if (input.type == INPUT_TYPE_MOUSE) { 201 if (input.type == INPUT_TYPE_MOUSE) {
206 send_mouse_event(sp->remote.mouse_dev, regs, &input); 202 send_mouse_event(sp->remote.mouse_dev, &input);
207 } else if (input.type == INPUT_TYPE_KEYBOARD) { 203 } else if (input.type == INPUT_TYPE_KEYBOARD) {
208 send_keyboard_event(sp->remote.keybd_dev, regs, &input); 204 send_keyboard_event(sp->remote.keybd_dev, &input);
209 } else 205 } else
210 break; 206 break;
211 207
diff --git a/drivers/misc/lkdtm.c b/drivers/misc/lkdtm.c
index e689ee94ac3d..bbdba7b37e11 100644
--- a/drivers/misc/lkdtm.c
+++ b/drivers/misc/lkdtm.c
@@ -127,15 +127,14 @@ module_param(cpoint_count, int, 06444);
127MODULE_PARM_DESC(cpoint_count, "Crash Point Count, number of times the \ 127MODULE_PARM_DESC(cpoint_count, "Crash Point Count, number of times the \
128 crash point is to be hit to trigger action"); 128 crash point is to be hit to trigger action");
129 129
130unsigned int jp_do_irq(unsigned int irq, struct pt_regs *regs) 130unsigned int jp_do_irq(unsigned int irq)
131{ 131{
132 lkdtm_handler(); 132 lkdtm_handler();
133 jprobe_return(); 133 jprobe_return();
134 return 0; 134 return 0;
135} 135}
136 136
137irqreturn_t jp_handle_irq_event(unsigned int irq, struct pt_regs *regs, 137irqreturn_t jp_handle_irq_event(unsigned int irq, struct irqaction *action)
138 struct irqaction *action)
139{ 138{
140 lkdtm_handler(); 139 lkdtm_handler();
141 jprobe_return(); 140 jprobe_return();
diff --git a/drivers/misc/tifm_7xx1.c b/drivers/misc/tifm_7xx1.c
index a7ed30446185..b1748669e05b 100644
--- a/drivers/misc/tifm_7xx1.c
+++ b/drivers/misc/tifm_7xx1.c
@@ -67,7 +67,7 @@ static void tifm_7xx1_remove_media(void *adapter)
67 class_device_put(&fm->cdev); 67 class_device_put(&fm->cdev);
68} 68}
69 69
70static irqreturn_t tifm_7xx1_isr(int irq, void *dev_id, struct pt_regs *regs) 70static irqreturn_t tifm_7xx1_isr(int irq, void *dev_id)
71{ 71{
72 struct tifm_adapter *fm = dev_id; 72 struct tifm_adapter *fm = dev_id;
73 unsigned int irq_status; 73 unsigned int irq_status;
diff --git a/drivers/mmc/at91_mci.c b/drivers/mmc/at91_mci.c
index cb142a66098c..494b23fb0a01 100644
--- a/drivers/mmc/at91_mci.c
+++ b/drivers/mmc/at91_mci.c
@@ -661,7 +661,7 @@ static void at91_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
661/* 661/*
662 * Handle an interrupt 662 * Handle an interrupt
663 */ 663 */
664static irqreturn_t at91_mci_irq(int irq, void *devid, struct pt_regs *regs) 664static irqreturn_t at91_mci_irq(int irq, void *devid)
665{ 665{
666 struct at91mci_host *host = devid; 666 struct at91mci_host *host = devid;
667 int completed = 0; 667 int completed = 0;
@@ -754,7 +754,7 @@ static irqreturn_t at91_mci_irq(int irq, void *devid, struct pt_regs *regs)
754 return IRQ_HANDLED; 754 return IRQ_HANDLED;
755} 755}
756 756
757static irqreturn_t at91_mmc_det_irq(int irq, void *_host, struct pt_regs *regs) 757static irqreturn_t at91_mmc_det_irq(int irq, void *_host)
758{ 758{
759 struct at91mci_host *host = _host; 759 struct at91mci_host *host = _host;
760 int present = !at91_get_gpio_value(irq); 760 int present = !at91_get_gpio_value(irq);
diff --git a/drivers/mmc/au1xmmc.c b/drivers/mmc/au1xmmc.c
index 61268da13957..53ffcbb14a97 100644
--- a/drivers/mmc/au1xmmc.c
+++ b/drivers/mmc/au1xmmc.c
@@ -750,7 +750,7 @@ static void au1xmmc_dma_callback(int irq, void *dev_id)
750#define STATUS_DATA_IN (SD_STATUS_NE) 750#define STATUS_DATA_IN (SD_STATUS_NE)
751#define STATUS_DATA_OUT (SD_STATUS_TH) 751#define STATUS_DATA_OUT (SD_STATUS_TH)
752 752
753static irqreturn_t au1xmmc_irq(int irq, void *dev_id, struct pt_regs *regs) 753static irqreturn_t au1xmmc_irq(int irq, void *dev_id)
754{ 754{
755 755
756 u32 status; 756 u32 status;
diff --git a/drivers/mmc/imxmmc.c b/drivers/mmc/imxmmc.c
index 1b79dd271aae..659d4a822cc5 100644
--- a/drivers/mmc/imxmmc.c
+++ b/drivers/mmc/imxmmc.c
@@ -635,7 +635,7 @@ static int imxmci_cpu_driven_data(struct imxmci_host *host, unsigned int *pstat)
635 return trans_done; 635 return trans_done;
636} 636}
637 637
638static void imxmci_dma_irq(int dma, void *devid, struct pt_regs *regs) 638static void imxmci_dma_irq(int dma, void *devid)
639{ 639{
640 struct imxmci_host *host = devid; 640 struct imxmci_host *host = devid;
641 uint32_t stat = MMC_STATUS; 641 uint32_t stat = MMC_STATUS;
@@ -646,7 +646,7 @@ static void imxmci_dma_irq(int dma, void *devid, struct pt_regs *regs)
646 tasklet_schedule(&host->tasklet); 646 tasklet_schedule(&host->tasklet);
647} 647}
648 648
649static irqreturn_t imxmci_irq(int irq, void *devid, struct pt_regs *regs) 649static irqreturn_t imxmci_irq(int irq, void *devid)
650{ 650{
651 struct imxmci_host *host = devid; 651 struct imxmci_host *host = devid;
652 uint32_t stat = MMC_STATUS; 652 uint32_t stat = MMC_STATUS;
diff --git a/drivers/mmc/mmci.c b/drivers/mmc/mmci.c
index 2b5a0cc9ea56..828503c4ee62 100644
--- a/drivers/mmc/mmci.c
+++ b/drivers/mmc/mmci.c
@@ -261,7 +261,7 @@ static int mmci_pio_write(struct mmci_host *host, char *buffer, unsigned int rem
261/* 261/*
262 * PIO data transfer IRQ handler. 262 * PIO data transfer IRQ handler.
263 */ 263 */
264static irqreturn_t mmci_pio_irq(int irq, void *dev_id, struct pt_regs *regs) 264static irqreturn_t mmci_pio_irq(int irq, void *dev_id)
265{ 265{
266 struct mmci_host *host = dev_id; 266 struct mmci_host *host = dev_id;
267 void __iomem *base = host->base; 267 void __iomem *base = host->base;
@@ -347,7 +347,7 @@ static irqreturn_t mmci_pio_irq(int irq, void *dev_id, struct pt_regs *regs)
347/* 347/*
348 * Handle completion of command and data transfers. 348 * Handle completion of command and data transfers.
349 */ 349 */
350static irqreturn_t mmci_irq(int irq, void *dev_id, struct pt_regs *regs) 350static irqreturn_t mmci_irq(int irq, void *dev_id)
351{ 351{
352 struct mmci_host *host = dev_id; 352 struct mmci_host *host = dev_id;
353 u32 status; 353 u32 status;
diff --git a/drivers/mmc/omap.c b/drivers/mmc/omap.c
index 52c9e52e6b78..762fa2895891 100644
--- a/drivers/mmc/omap.c
+++ b/drivers/mmc/omap.c
@@ -377,7 +377,7 @@ static inline void mmc_omap_report_irq(u16 status)
377 } 377 }
378} 378}
379 379
380static irqreturn_t mmc_omap_irq(int irq, void *dev_id, struct pt_regs *regs) 380static irqreturn_t mmc_omap_irq(int irq, void *dev_id)
381{ 381{
382 struct mmc_omap_host * host = (struct mmc_omap_host *)dev_id; 382 struct mmc_omap_host * host = (struct mmc_omap_host *)dev_id;
383 u16 status; 383 u16 status;
@@ -514,7 +514,7 @@ static irqreturn_t mmc_omap_irq(int irq, void *dev_id, struct pt_regs *regs)
514 return IRQ_HANDLED; 514 return IRQ_HANDLED;
515} 515}
516 516
517static irqreturn_t mmc_omap_switch_irq(int irq, void *dev_id, struct pt_regs *regs) 517static irqreturn_t mmc_omap_switch_irq(int irq, void *dev_id)
518{ 518{
519 struct mmc_omap_host *host = (struct mmc_omap_host *) dev_id; 519 struct mmc_omap_host *host = (struct mmc_omap_host *) dev_id;
520 520
diff --git a/drivers/mmc/pxamci.c b/drivers/mmc/pxamci.c
index ef350908478c..a526698b8c91 100644
--- a/drivers/mmc/pxamci.c
+++ b/drivers/mmc/pxamci.c
@@ -299,7 +299,7 @@ static int pxamci_data_done(struct pxamci_host *host, unsigned int stat)
299 return 1; 299 return 1;
300} 300}
301 301
302static irqreturn_t pxamci_irq(int irq, void *devid, struct pt_regs *regs) 302static irqreturn_t pxamci_irq(int irq, void *devid)
303{ 303{
304 struct pxamci_host *host = devid; 304 struct pxamci_host *host = devid;
305 unsigned int ireg; 305 unsigned int ireg;
@@ -399,13 +399,13 @@ static struct mmc_host_ops pxamci_ops = {
399 .set_ios = pxamci_set_ios, 399 .set_ios = pxamci_set_ios,
400}; 400};
401 401
402static void pxamci_dma_irq(int dma, void *devid, struct pt_regs *regs) 402static void pxamci_dma_irq(int dma, void *devid)
403{ 403{
404 printk(KERN_ERR "DMA%d: IRQ???\n", dma); 404 printk(KERN_ERR "DMA%d: IRQ???\n", dma);
405 DCSR(dma) = DCSR_STARTINTR|DCSR_ENDINTR|DCSR_BUSERR; 405 DCSR(dma) = DCSR_STARTINTR|DCSR_ENDINTR|DCSR_BUSERR;
406} 406}
407 407
408static irqreturn_t pxamci_detect_irq(int irq, void *devid, struct pt_regs *regs) 408static irqreturn_t pxamci_detect_irq(int irq, void *devid)
409{ 409{
410 struct pxamci_host *host = mmc_priv(devid); 410 struct pxamci_host *host = mmc_priv(devid);
411 411
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index 20711acb0120..6d024342b2fd 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -985,7 +985,7 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
985 } 985 }
986} 986}
987 987
988static irqreturn_t sdhci_irq(int irq, void *dev_id, struct pt_regs *regs) 988static irqreturn_t sdhci_irq(int irq, void *dev_id)
989{ 989{
990 irqreturn_t result; 990 irqreturn_t result;
991 struct sdhci_host* host = dev_id; 991 struct sdhci_host* host = dev_id;
diff --git a/drivers/mmc/wbsd.c b/drivers/mmc/wbsd.c
index 88c6f0b129f5..ced309b37a8f 100644
--- a/drivers/mmc/wbsd.c
+++ b/drivers/mmc/wbsd.c
@@ -1256,7 +1256,7 @@ end:
1256 * Interrupt handling 1256 * Interrupt handling
1257 */ 1257 */
1258 1258
1259static irqreturn_t wbsd_irq(int irq, void *dev_id, struct pt_regs *regs) 1259static irqreturn_t wbsd_irq(int irq, void *dev_id)
1260{ 1260{
1261 struct wbsd_host *host = dev_id; 1261 struct wbsd_host *host = dev_id;
1262 int isr; 1262 int isr;
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..7ad0a54779c4 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,7 +910,7 @@ 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 = (struct net_device *)dev_id;
916 struct el3_private *lp; 916 struct el3_private *lp;
@@ -1006,7 +1006,7 @@ el3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1006static void el3_poll_controller(struct net_device *dev) 1006static void el3_poll_controller(struct net_device *dev)
1007{ 1007{
1008 disable_irq(dev->irq); 1008 disable_irq(dev->irq);
1009 el3_interrupt(dev->irq, dev, NULL); 1009 el3_interrupt(dev->irq, dev);
1010 enable_irq(dev->irq); 1010 enable_irq(dev->irq);
1011} 1011}
1012#endif 1012#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..1c97271112d0 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,14 +900,14 @@ 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 = (struct net_device *) 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 (dev == NULL) {
910 printk(KERN_ERR "elmc-interrupt: irq %d for unknown device.\n", (int) -(((struct pt_regs *) reg_ptr)->orig_eax + 2)); 910 printk(KERN_ERR "elmc-interrupt: irq %d for unknown device.\n", irq);
911 return IRQ_NONE; 911 return IRQ_NONE;
912 } else if (!netif_running(dev)) { 912 } else if (!netif_running(dev)) {
913 /* The 3c523 has this habit of generating interrupts during the 913 /* The 3c523 has this habit of generating interrupts during the
diff --git a/drivers/net/3c527.c b/drivers/net/3c527.c
index 625e57dc3b4a..d516c3225ca4 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;
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..8e996b4a34ea 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);
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..fa3442cb1a49 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,7 +399,7 @@ 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;
@@ -506,7 +505,7 @@ irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs)
506void ei_poll(struct net_device *dev) 505void ei_poll(struct net_device *dev)
507{ 506{
508 disable_irq_lockdep(dev->irq); 507 disable_irq_lockdep(dev->irq);
509 ei_interrupt(dev->irq, dev, NULL); 508 ei_interrupt(dev->irq, dev);
510 enable_irq_lockdep(dev->irq); 509 enable_irq_lockdep(dev->irq);
511} 510}
512#endif 511#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..062f80e20874 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,8 +596,7 @@ 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 = (struct net_device *)dev_instance;
603 struct net_local *lp; 602 struct net_local *lp;
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 e891ea2ecc3c..b124eee4eb10 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/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..d9b006c9e367 100644
--- a/drivers/net/de600.c
+++ b/drivers/net/de600.c
@@ -258,7 +258,7 @@ 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;
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..e179aa1c1ba0 100644
--- a/drivers/net/declance.c
+++ b/drivers/net/declance.c
@@ -694,8 +694,7 @@ 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 = (struct net_device *) dev_id;
701 700
@@ -703,8 +702,7 @@ static irqreturn_t lance_dma_merr_int(const int irq, void *dev_id,
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 = (struct net_device *) dev_id;
710 struct lance_private *lp = netdev_priv(dev); 708 struct lance_private *lp = netdev_priv(dev);
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..6b1234b09fb3 100644
--- a/drivers/net/dgrs.c
+++ b/drivers/net/dgrs.c
@@ -895,7 +895,7 @@ 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 = (struct net_device *) dev_id;
901 DGRS_PRIV *priv0 = (DGRS_PRIV *) dev0->priv; 901 DGRS_PRIV *priv0 = (DGRS_PRIV *) dev0->priv;
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..3641f3b4a2cc 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,
@@ -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..aae454aaa1c6 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);
@@ -1196,7 +1196,7 @@ static int eepro_send_packet(struct sk_buff *skb, struct net_device *dev)
1196 Handle the network interface interrupts. */ 1196 Handle the network interface interrupts. */
1197 1197
1198static irqreturn_t 1198static irqreturn_t
1199eepro_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1199eepro_interrupt(int irq, void *dev_id)
1200{ 1200{
1201 struct net_device *dev = (struct net_device *)dev_id; 1201 struct net_device *dev = (struct net_device *)dev_id;
1202 /* (struct net_device *)(irq2dev_map[irq]);*/ 1202 /* (struct net_device *)(irq2dev_map[irq]);*/
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..05ca730fe81e 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,7 +789,7 @@ 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;
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 eea1d66c530e..99b7a411db28 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);
@@ -2576,7 +2576,7 @@ static int nv_napi_poll(struct net_device *dev, int *budget)
2576#endif 2576#endif
2577 2577
2578#ifdef CONFIG_FORCEDETH_NAPI 2578#ifdef CONFIG_FORCEDETH_NAPI
2579static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs) 2579static irqreturn_t nv_nic_irq_rx(int foo, void *data)
2580{ 2580{
2581 struct net_device *dev = (struct net_device *) data; 2581 struct net_device *dev = (struct net_device *) data;
2582 u8 __iomem *base = get_hwbase(dev); 2582 u8 __iomem *base = get_hwbase(dev);
@@ -2594,7 +2594,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs)
2594 return IRQ_HANDLED; 2594 return IRQ_HANDLED;
2595} 2595}
2596#else 2596#else
2597static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs) 2597static irqreturn_t nv_nic_irq_rx(int foo, void *data)
2598{ 2598{
2599 struct net_device *dev = (struct net_device *) data; 2599 struct net_device *dev = (struct net_device *) data;
2600 struct fe_priv *np = netdev_priv(dev); 2600 struct fe_priv *np = netdev_priv(dev);
@@ -2641,7 +2641,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs)
2641} 2641}
2642#endif 2642#endif
2643 2643
2644static irqreturn_t nv_nic_irq_other(int foo, void *data, struct pt_regs *regs) 2644static irqreturn_t nv_nic_irq_other(int foo, void *data)
2645{ 2645{
2646 struct net_device *dev = (struct net_device *) data; 2646 struct net_device *dev = (struct net_device *) data;
2647 struct fe_priv *np = netdev_priv(dev); 2647 struct fe_priv *np = netdev_priv(dev);
@@ -2695,7 +2695,7 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data, struct pt_regs *regs)
2695 return IRQ_RETVAL(i); 2695 return IRQ_RETVAL(i);
2696} 2696}
2697 2697
2698static irqreturn_t nv_nic_irq_test(int foo, void *data, struct pt_regs *regs) 2698static irqreturn_t nv_nic_irq_test(int foo, void *data)
2699{ 2699{
2700 struct net_device *dev = (struct net_device *) data; 2700 struct net_device *dev = (struct net_device *) data;
2701 struct fe_priv *np = netdev_priv(dev); 2701 struct fe_priv *np = netdev_priv(dev);
@@ -2905,22 +2905,22 @@ static void nv_do_nic_poll(unsigned long data)
2905 pci_push(base); 2905 pci_push(base);
2906 2906
2907 if (!using_multi_irqs(dev)) { 2907 if (!using_multi_irqs(dev)) {
2908 nv_nic_irq(0, dev, NULL); 2908 nv_nic_irq(0, dev);
2909 if (np->msi_flags & NV_MSI_X_ENABLED) 2909 if (np->msi_flags & NV_MSI_X_ENABLED)
2910 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); 2910 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector);
2911 else 2911 else
2912 enable_irq_lockdep(dev->irq); 2912 enable_irq_lockdep(dev->irq);
2913 } else { 2913 } else {
2914 if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { 2914 if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) {
2915 nv_nic_irq_rx(0, dev, NULL); 2915 nv_nic_irq_rx(0, dev);
2916 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); 2916 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector);
2917 } 2917 }
2918 if (np->nic_poll_irq & NVREG_IRQ_TX_ALL) { 2918 if (np->nic_poll_irq & NVREG_IRQ_TX_ALL) {
2919 nv_nic_irq_tx(0, dev, NULL); 2919 nv_nic_irq_tx(0, dev);
2920 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); 2920 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector);
2921 } 2921 }
2922 if (np->nic_poll_irq & NVREG_IRQ_OTHER) { 2922 if (np->nic_poll_irq & NVREG_IRQ_OTHER) {
2923 nv_nic_irq_other(0, dev, NULL); 2923 nv_nic_irq_other(0, dev);
2924 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); 2924 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector);
2925 } 2925 }
2926 } 2926 }
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 767203d35bc2..4bac3cd8f235 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
@@ -543,7 +543,7 @@ static int ibmveth_open(struct net_device *netdev)
543 } 543 }
544 544
545 ibmveth_debug_printk("initial replenish cycle\n"); 545 ibmveth_debug_printk("initial replenish cycle\n");
546 ibmveth_interrupt(netdev->irq, netdev, NULL); 546 ibmveth_interrupt(netdev->irq, netdev);
547 547
548 netif_start_queue(netdev); 548 netif_start_queue(netdev);
549 549
@@ -816,7 +816,7 @@ static int ibmveth_poll(struct net_device *netdev, int *budget)
816 return 0; 816 return 0;
817} 817}
818 818
819static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 819static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance)
820{ 820{
821 struct net_device *netdev = dev_instance; 821 struct net_device *netdev = dev_instance;
822 struct ibmveth_adapter *adapter = netdev->priv; 822 struct ibmveth_adapter *adapter = netdev->priv;
@@ -1261,7 +1261,7 @@ const char * buf, size_t count)
1261 } 1261 }
1262 1262
1263 /* kick the interrupt handler to allocate/deallocate pools */ 1263 /* kick the interrupt handler to allocate/deallocate pools */
1264 ibmveth_interrupt(netdev->irq, netdev, NULL); 1264 ibmveth_interrupt(netdev->irq, netdev);
1265 return count; 1265 return count;
1266} 1266}
1267 1267
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..971e2dee1e6b 100644
--- a/drivers/net/irda/ali-ircc.c
+++ b/drivers/net/irda/ali-ircc.c
@@ -660,8 +660,7 @@ 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 = (struct net_device *) dev_id;
667 struct ali_ircc_cb *self; 666 struct ali_ircc_cb *self;
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..7a9128181e68 100644
--- a/drivers/net/irda/donauboe.c
+++ b/drivers/net/irda/donauboe.c
@@ -709,7 +709,7 @@ stuff_byte (__u8 byte, __u8 * buf)
709} 709}
710 710
711static irqreturn_t 711static irqreturn_t
712toshoboe_probeinterrupt (int irq, void *dev_id, struct pt_regs *regs) 712toshoboe_probeinterrupt (int irq, void *dev_id)
713{ 713{
714 struct toshoboe_cb *self = (struct toshoboe_cb *) dev_id; 714 struct toshoboe_cb *self = (struct toshoboe_cb *) dev_id;
715 __u8 irqstat; 715 __u8 irqstat;
@@ -1161,7 +1161,7 @@ dumpbufs(skb->data,skb->len,'>');
1161 1161
1162/*interrupt handler */ 1162/*interrupt handler */
1163static irqreturn_t 1163static irqreturn_t
1164toshoboe_interrupt (int irq, void *dev_id, struct pt_regs *regs) 1164toshoboe_interrupt (int irq, void *dev_id)
1165{ 1165{
1166 struct toshoboe_cb *self = (struct toshoboe_cb *) dev_id; 1166 struct toshoboe_cb *self = (struct toshoboe_cb *) dev_id;
1167 __u8 irqstat; 1167 __u8 irqstat;
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..6ea78ececca7 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,12 +760,11 @@ 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 = (struct net_device *) dev_id;
772 struct irport_cb *self; 770 struct irport_cb *self;
diff --git a/drivers/net/irda/irport.h b/drivers/net/irda/irport.h
index fc89c8c3dd7f..4393168347e3 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 int (*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..ea12e999814a 100644
--- a/drivers/net/irda/nsc-ircc.c
+++ b/drivers/net/irda/nsc-ircc.c
@@ -2066,8 +2066,7 @@ 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 = (struct net_device *) dev_id;
2073 struct nsc_ircc_cb *self; 2072 struct nsc_ircc_cb *self;
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..b4fb92a7baa8 100644
--- a/drivers/net/irda/w83977af_ir.c
+++ b/drivers/net/irda/w83977af_ir.c
@@ -1111,8 +1111,7 @@ 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 = (struct net_device *) dev_id;
1118 struct w83977af_ir *self; 1117 struct w83977af_ir *self;
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..7afac47e59ad 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,8 +1012,7 @@ 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;
diff --git a/drivers/net/lasi_82596.c b/drivers/net/lasi_82596.c
index da1eedef0b55..8cbd940f0ac2 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;
@@ -1257,7 +1257,7 @@ static void i596_poll_controller(struct net_device *dev)
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 7f8e5ad1b704..d26a819a9735 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);
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..e5f366910914 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;
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..c73e2f210774 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;
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..c0b333d2917a 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,7 +902,7 @@ 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;
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..72f52dc98f53 100644
--- a/drivers/net/s2io.h
+++ b/drivers/net/s2io.h
@@ -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..c9efad8a917e 100644
--- a/drivers/net/saa9730.c
+++ b/drivers/net/saa9730.c
@@ -745,8 +745,7 @@ 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 = (struct net_device *) dev_id;
752 struct lan_saa9730_private *lp = netdev_priv(dev); 751 struct lan_saa9730_private *lp = netdev_priv(dev);
diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c
index a1789ae59278..dc30dee5537f 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,7 +1079,7 @@ 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;
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..06ea2626c6f4 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,7 +614,7 @@ 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 = (struct net_device *) dev_id;
621 struct s_smc *smc; /* private board structure pointer */ 620 struct s_smc *smc; /* private board structure pointer */
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 396e7df3c61b..459c845d6648 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..506807fa5268 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);
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..cfece9676aff 100644
--- a/drivers/net/sonic.c
+++ b/drivers/net/sonic.c
@@ -293,7 +293,7 @@ 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 = (struct net_device *) dev_id;
299 struct sonic_local *lp = netdev_priv(dev); 299 struct sonic_local *lp = netdev_priv(dev);
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..45d07faf7b96 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2093,7 +2093,7 @@ 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 = (struct net_device *) dev_id;
2099 struct happy_meal *hp = dev->priv; 2099 struct happy_meal *hp = dev->priv;
@@ -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..9207e19cac34 100644
--- a/drivers/net/sunlance.c
+++ b/drivers/net/sunlance.c
@@ -820,7 +820,7 @@ 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 = (struct net_device *)dev_id;
826 struct lance_private *lp = netdev_priv(dev); 826 struct lance_private *lp = netdev_priv(dev);
diff --git a/drivers/net/sunqe.c b/drivers/net/sunqe.c
index 9202a1c369dd..020e78170595 100644
--- a/drivers/net/sunqe.c
+++ b/drivers/net/sunqe.c
@@ -466,7 +466,7 @@ 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 = (struct sunqec *) dev_id;
472 u32 qec_status; 472 u32 qec_status;
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..9bd4cba87872 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;
diff --git a/drivers/net/tokenring/tms380tr.c b/drivers/net/tokenring/tms380tr.c
index c1925590a0e1..c0ab6e44eb1f 100644
--- a/drivers/net/tokenring/tms380tr.c
+++ b/drivers/net/tokenring/tms380tr.c
@@ -744,7 +744,7 @@ 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;
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..e17f9779ead2 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,7 +1538,7 @@ 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 = (struct net_device *)dev_id;
1544 struct de4x5_private *lp; 1544 struct de4x5_private *lp;
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..12363e056b63 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,7 +301,7 @@ 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 = (struct cycx_device *)dev_id;
307 307
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..5715d25271f1 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;
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..793da5f69344 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -1952,7 +1952,7 @@ 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 = (struct net_device *)dev_id;
1958 struct orinoco_private *priv = netdev_priv(dev); 1958 struct orinoco_private *priv = netdev_priv(dev);
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..cadfe132db84 100644
--- a/drivers/net/wireless/wavelan_cs.c
+++ b/drivers/net/wireless/wavelan_cs.c
@@ -4117,8 +4117,7 @@ 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;
4124 net_local * lp; 4123 net_local * lp;
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..a1430352169b 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,7 +1153,7 @@ 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 = (struct net_device *)dev_id;
1160 struct wl3501_card *this; 1159 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..ac600212d9a9 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;
diff --git a/drivers/net/znet.c b/drivers/net/znet.c
index 656d5a02908b..2068a109a86c 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;
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
index 0d96c50ffe9c..a0a8fd8d2124 100644
--- a/drivers/parisc/dino.c
+++ b/drivers/parisc/dino.c
@@ -368,8 +368,7 @@ static struct hw_interrupt_type dino_interrupt_type = {
368 * ilr_loop counter is a kluge to prevent a "stuck" IRQ line from 368 * ilr_loop counter is a kluge to prevent a "stuck" IRQ line from
369 * wedging the CPU. Could be removed or made optional at some point. 369 * wedging the CPU. Could be removed or made optional at some point.
370 */ 370 */
371static irqreturn_t 371static irqreturn_t dino_isr(int irq, void *intr_dev)
372dino_isr(int irq, void *intr_dev, struct pt_regs *regs)
373{ 372{
374 struct dino_device *dino_dev = intr_dev; 373 struct dino_device *dino_dev = intr_dev;
375 u32 mask; 374 u32 mask;
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c
index 884965cedec9..094562e044f3 100644
--- a/drivers/parisc/eisa.c
+++ b/drivers/parisc/eisa.c
@@ -199,7 +199,7 @@ static struct hw_interrupt_type eisa_interrupt_type = {
199 .end = no_end_irq, 199 .end = no_end_irq,
200}; 200};
201 201
202static irqreturn_t eisa_irq(int wax_irq, void *intr_dev, struct pt_regs *regs) 202static irqreturn_t eisa_irq(int wax_irq, void *intr_dev)
203{ 203{
204 int irq = gsc_readb(0xfc01f000); /* EISA supports 16 irqs */ 204 int irq = gsc_readb(0xfc01f000); /* EISA supports 16 irqs */
205 unsigned long flags; 205 unsigned long flags;
@@ -249,7 +249,7 @@ static irqreturn_t eisa_irq(int wax_irq, void *intr_dev, struct pt_regs *regs)
249 return IRQ_HANDLED; 249 return IRQ_HANDLED;
250} 250}
251 251
252static irqreturn_t dummy_irq2_handler(int _, void *dev, struct pt_regs *regs) 252static irqreturn_t dummy_irq2_handler(int _, void *dev)
253{ 253{
254 printk(KERN_ALERT "eisa: uhh, irq2?\n"); 254 printk(KERN_ALERT "eisa: uhh, irq2?\n");
255 return IRQ_HANDLED; 255 return IRQ_HANDLED;
diff --git a/drivers/parisc/gsc.c b/drivers/parisc/gsc.c
index b45aa5c675a0..1b3e3fd12d95 100644
--- a/drivers/parisc/gsc.c
+++ b/drivers/parisc/gsc.c
@@ -73,7 +73,7 @@ EXPORT_SYMBOL(gsc_alloc_irq);
73EXPORT_SYMBOL(gsc_claim_irq); 73EXPORT_SYMBOL(gsc_claim_irq);
74 74
75/* Common interrupt demultiplexer used by Asp, Lasi & Wax. */ 75/* Common interrupt demultiplexer used by Asp, Lasi & Wax. */
76irqreturn_t gsc_asic_intr(int gsc_asic_irq, void *dev, struct pt_regs *regs) 76irqreturn_t gsc_asic_intr(int gsc_asic_irq, void *dev)
77{ 77{
78 unsigned long irr; 78 unsigned long irr;
79 struct gsc_asic *gsc_asic = dev; 79 struct gsc_asic *gsc_asic = dev;
@@ -87,7 +87,7 @@ irqreturn_t gsc_asic_intr(int gsc_asic_irq, void *dev, struct pt_regs *regs)
87 do { 87 do {
88 int local_irq = __ffs(irr); 88 int local_irq = __ffs(irr);
89 unsigned int irq = gsc_asic->global_irq[local_irq]; 89 unsigned int irq = gsc_asic->global_irq[local_irq];
90 __do_IRQ(irq, regs); 90 __do_IRQ(irq);
91 irr &= ~(1 << local_irq); 91 irr &= ~(1 << local_irq);
92 } while (irr); 92 } while (irr);
93 93
diff --git a/drivers/parisc/gsc.h b/drivers/parisc/gsc.h
index a3dc456709d7..762a1babad60 100644
--- a/drivers/parisc/gsc.h
+++ b/drivers/parisc/gsc.h
@@ -44,4 +44,4 @@ void gsc_fixup_irqs(struct parisc_device *parent, void *ctrl,
44 void (*choose)(struct parisc_device *child, void *ctrl)); 44 void (*choose)(struct parisc_device *child, void *ctrl));
45void gsc_asic_assign_irq(struct gsc_asic *asic, int local_irq, int *irqp); 45void gsc_asic_assign_irq(struct gsc_asic *asic, int local_irq, int *irqp);
46 46
47irqreturn_t gsc_asic_intr(int irq, void *dev, struct pt_regs *regs); 47irqreturn_t gsc_asic_intr(int irq, void *dev);
diff --git a/drivers/parisc/power.c b/drivers/parisc/power.c
index 2eb3577a88c5..97e9dc066f95 100644
--- a/drivers/parisc/power.c
+++ b/drivers/parisc/power.c
@@ -188,7 +188,7 @@ static void polling_tasklet_func(unsigned long soft_power_reg)
188 * powerfail interruption handler (irq IRQ_FROM_REGION(CPU_IRQ_REGION)+2) 188 * powerfail interruption handler (irq IRQ_FROM_REGION(CPU_IRQ_REGION)+2)
189 */ 189 */
190#if 0 190#if 0
191static void powerfail_interrupt(int code, void *x, struct pt_regs *regs) 191static void powerfail_interrupt(int code, void *x)
192{ 192{
193 printk(KERN_CRIT "POWERFAIL INTERRUPTION !\n"); 193 printk(KERN_CRIT "POWERFAIL INTERRUPTION !\n");
194 poweroff(); 194 poweroff();
diff --git a/drivers/parisc/superio.c b/drivers/parisc/superio.c
index 4ee26a6d9e25..1fd97f7c8b98 100644
--- a/drivers/parisc/superio.c
+++ b/drivers/parisc/superio.c
@@ -94,7 +94,7 @@ static struct superio_device sio_dev;
94#define PFX SUPERIO ": " 94#define PFX SUPERIO ": "
95 95
96static irqreturn_t 96static irqreturn_t
97superio_interrupt(int parent_irq, void *devp, struct pt_regs *regs) 97superio_interrupt(int parent_irq, void *devp)
98{ 98{
99 u8 results; 99 u8 results;
100 u8 local_irq; 100 u8 local_irq;
@@ -138,7 +138,7 @@ superio_interrupt(int parent_irq, void *devp, struct pt_regs *regs)
138 } 138 }
139 139
140 /* Call the appropriate device's interrupt */ 140 /* Call the appropriate device's interrupt */
141 __do_IRQ(local_irq, regs); 141 __do_IRQ(local_irq);
142 142
143 /* set EOI - forces a new interrupt if a lower priority device 143 /* set EOI - forces a new interrupt if a lower priority device
144 * still needs service. 144 * still needs service.
diff --git a/drivers/parport/daisy.c b/drivers/parport/daisy.c
index 83ee095ec6e2..ff9f34453530 100644
--- a/drivers/parport/daisy.c
+++ b/drivers/parport/daisy.c
@@ -216,7 +216,7 @@ void parport_daisy_fini(struct parport *port)
216 216
217struct pardevice *parport_open(int devnum, const char *name, 217struct pardevice *parport_open(int devnum, const char *name,
218 int (*pf) (void *), void (*kf) (void *), 218 int (*pf) (void *), void (*kf) (void *),
219 void (*irqf) (int, void *, struct pt_regs *), 219 void (*irqf) (int, void *),
220 int flags, void *handle) 220 int flags, void *handle)
221{ 221{
222 struct daisydev *p = topology; 222 struct daisydev *p = topology;
diff --git a/drivers/parport/ieee1284.c b/drivers/parport/ieee1284.c
index 7ff09f0f858f..5accaa7bde31 100644
--- a/drivers/parport/ieee1284.c
+++ b/drivers/parport/ieee1284.c
@@ -571,7 +571,7 @@ static int parport_ieee1284_ack_data_avail (struct parport *port)
571#endif /* IEEE1284 support */ 571#endif /* IEEE1284 support */
572 572
573/* Handle an interrupt. */ 573/* Handle an interrupt. */
574void parport_ieee1284_interrupt (int which, void *handle, struct pt_regs *regs) 574void parport_ieee1284_interrupt (int which, void *handle)
575{ 575{
576 struct parport *port = handle; 576 struct parport *port = handle;
577 parport_ieee1284_wakeup (port); 577 parport_ieee1284_wakeup (port);
diff --git a/drivers/parport/parport_amiga.c b/drivers/parport/parport_amiga.c
index 5126e74ac2ec..a0afaee5ebe5 100644
--- a/drivers/parport/parport_amiga.c
+++ b/drivers/parport/parport_amiga.c
@@ -138,9 +138,9 @@ static unsigned char amiga_read_status(struct parport *p)
138} 138}
139 139
140/* as this ports irq handling is already done, we use a generic funktion */ 140/* as this ports irq handling is already done, we use a generic funktion */
141static irqreturn_t amiga_interrupt(int irq, void *dev_id, struct pt_regs *regs) 141static irqreturn_t amiga_interrupt(int irq, void *dev_id)
142{ 142{
143 parport_generic_irq(irq, (struct parport *) dev_id, regs); 143 parport_generic_irq(irq, (struct parport *) dev_id);
144 return IRQ_HANDLED; 144 return IRQ_HANDLED;
145} 145}
146 146
diff --git a/drivers/parport/parport_atari.c b/drivers/parport/parport_atari.c
index 78c3f34108bc..6ea9929b8c7f 100644
--- a/drivers/parport/parport_atari.c
+++ b/drivers/parport/parport_atari.c
@@ -104,9 +104,9 @@ parport_atari_restore_state(struct parport *p, struct parport_state *s)
104} 104}
105 105
106static irqreturn_t 106static irqreturn_t
107parport_atari_interrupt(int irq, void *dev_id, struct pt_regs *regs) 107parport_atari_interrupt(int irq, void *dev_id)
108{ 108{
109 parport_generic_irq(irq, (struct parport *) dev_id, regs); 109 parport_generic_irq(irq, (struct parport *) dev_id);
110 return IRQ_HANDLED; 110 return IRQ_HANDLED;
111} 111}
112 112
diff --git a/drivers/parport/parport_ax88796.c b/drivers/parport/parport_ax88796.c
index 1850632590fd..74f4e9742c6c 100644
--- a/drivers/parport/parport_ax88796.c
+++ b/drivers/parport/parport_ax88796.c
@@ -233,9 +233,9 @@ parport_ax88796_restore_state(struct parport *p, struct parport_state *s)
233} 233}
234 234
235static irqreturn_t 235static irqreturn_t
236parport_ax88796_interrupt(int irq, void *dev_id, struct pt_regs *regs) 236parport_ax88796_interrupt(int irq, void *dev_id)
237{ 237{
238 parport_generic_irq(irq, dev_id, regs); 238 parport_generic_irq(irq, dev_id);
239 return IRQ_HANDLED; 239 return IRQ_HANDLED;
240} 240}
241 241
diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c
index 7352104f7b30..a7c5ead9a3d3 100644
--- a/drivers/parport/parport_gsc.c
+++ b/drivers/parport/parport_gsc.c
@@ -81,9 +81,9 @@ static int clear_epp_timeout(struct parport *pb)
81 * of these are in parport_gsc.h. 81 * of these are in parport_gsc.h.
82 */ 82 */
83 83
84static irqreturn_t parport_gsc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 84static irqreturn_t parport_gsc_interrupt(int irq, void *dev_id)
85{ 85{
86 parport_generic_irq(irq, (struct parport *) dev_id, regs); 86 parport_generic_irq(irq, (struct parport *) dev_id);
87 return IRQ_HANDLED; 87 return IRQ_HANDLED;
88} 88}
89 89
diff --git a/drivers/parport/parport_ip32.c b/drivers/parport/parport_ip32.c
index 46e06e596d73..e3e19277030a 100644
--- a/drivers/parport/parport_ip32.c
+++ b/drivers/parport/parport_ip32.c
@@ -548,10 +548,8 @@ static void parport_ip32_dma_setup_context(unsigned int limit)
548 * parport_ip32_dma_interrupt - DMA interrupt handler 548 * parport_ip32_dma_interrupt - DMA interrupt handler
549 * @irq: interrupt number 549 * @irq: interrupt number
550 * @dev_id: unused 550 * @dev_id: unused
551 * @regs: pointer to &struct pt_regs
552 */ 551 */
553static irqreturn_t parport_ip32_dma_interrupt(int irq, void *dev_id, 552static irqreturn_t parport_ip32_dma_interrupt(int irq, void *dev_id)
554 struct pt_regs *regs)
555{ 553{
556 if (parport_ip32_dma.left) 554 if (parport_ip32_dma.left)
557 pr_trace(NULL, "(%d): ctx=%d", irq, parport_ip32_dma.ctx); 555 pr_trace(NULL, "(%d): ctx=%d", irq, parport_ip32_dma.ctx);
@@ -560,8 +558,7 @@ static irqreturn_t parport_ip32_dma_interrupt(int irq, void *dev_id,
560} 558}
561 559
562#if DEBUG_PARPORT_IP32 560#if DEBUG_PARPORT_IP32
563static irqreturn_t parport_ip32_merr_interrupt(int irq, void *dev_id, 561static irqreturn_t parport_ip32_merr_interrupt(int irq, void *dev_id)
564 struct pt_regs *regs)
565{ 562{
566 pr_trace1(NULL, "(%d)", irq); 563 pr_trace1(NULL, "(%d)", irq);
567 return IRQ_HANDLED; 564 return IRQ_HANDLED;
@@ -772,13 +769,11 @@ static inline void parport_ip32_wakeup(struct parport *p)
772 * parport_ip32_interrupt - interrupt handler 769 * parport_ip32_interrupt - interrupt handler
773 * @irq: interrupt number 770 * @irq: interrupt number
774 * @dev_id: pointer to &struct parport 771 * @dev_id: pointer to &struct parport
775 * @regs: pointer to &struct pt_regs
776 * 772 *
777 * Caught interrupts are forwarded to the upper parport layer if IRQ_mode is 773 * Caught interrupts are forwarded to the upper parport layer if IRQ_mode is
778 * %PARPORT_IP32_IRQ_FWD. 774 * %PARPORT_IP32_IRQ_FWD.
779 */ 775 */
780static irqreturn_t parport_ip32_interrupt(int irq, void *dev_id, 776static irqreturn_t parport_ip32_interrupt(int irq, void *dev_id)
781 struct pt_regs *regs)
782{ 777{
783 struct parport * const p = dev_id; 778 struct parport * const p = dev_id;
784 struct parport_ip32_private * const priv = p->physport->private_data; 779 struct parport_ip32_private * const priv = p->physport->private_data;
diff --git a/drivers/parport/parport_mfc3.c b/drivers/parport/parport_mfc3.c
index b2b8092a2b39..6541cde4df00 100644
--- a/drivers/parport/parport_mfc3.c
+++ b/drivers/parport/parport_mfc3.c
@@ -211,7 +211,7 @@ static void mfc3_change_mode( struct parport *p, int m)
211 211
212static int use_cnt = 0; 212static int use_cnt = 0;
213 213
214static irqreturn_t mfc3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 214static irqreturn_t mfc3_interrupt(int irq, void *dev_id)
215{ 215{
216 int i; 216 int i;
217 217
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index fe800dc0be9f..39c96641bc72 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -270,9 +270,9 @@ static int clear_epp_timeout(struct parport *pb)
270 * of these are in parport_pc.h. 270 * of these are in parport_pc.h.
271 */ 271 */
272 272
273static irqreturn_t parport_pc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 273static irqreturn_t parport_pc_interrupt(int irq, void *dev_id)
274{ 274{
275 parport_generic_irq(irq, (struct parport *) dev_id, regs); 275 parport_generic_irq(irq, (struct parport *) dev_id);
276 /* FIXME! Was it really ours? */ 276 /* FIXME! Was it really ours? */
277 return IRQ_HANDLED; 277 return IRQ_HANDLED;
278} 278}
diff --git a/drivers/parport/parport_sunbpp.c b/drivers/parport/parport_sunbpp.c
index fac333b279bf..d758c90c86af 100644
--- a/drivers/parport/parport_sunbpp.c
+++ b/drivers/parport/parport_sunbpp.c
@@ -46,7 +46,7 @@
46#define dprintk(x) 46#define dprintk(x)
47#endif 47#endif
48 48
49static irqreturn_t parport_sunbpp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 49static irqreturn_t parport_sunbpp_interrupt(int irq, void *dev_id)
50{ 50{
51 parport_generic_irq(irq, (struct parport *) dev_id, regs); 51 parport_generic_irq(irq, (struct parport *) dev_id, regs);
52 return IRQ_HANDLED; 52 return IRQ_HANDLED;
diff --git a/drivers/parport/share.c b/drivers/parport/share.c
index 94dc506b83d1..fd9129e424f9 100644
--- a/drivers/parport/share.c
+++ b/drivers/parport/share.c
@@ -519,7 +519,7 @@ void parport_remove_port(struct parport *port)
519struct pardevice * 519struct pardevice *
520parport_register_device(struct parport *port, const char *name, 520parport_register_device(struct parport *port, const char *name,
521 int (*pf)(void *), void (*kf)(void *), 521 int (*pf)(void *), void (*kf)(void *),
522 void (*irq_func)(int, void *, struct pt_regs *), 522 void (*irq_func)(int, void *),
523 int flags, void *handle) 523 int flags, void *handle)
524{ 524{
525 struct pardevice *tmp; 525 struct pardevice *tmp;
diff --git a/drivers/pci/hotplug/cpci_hotplug_core.c b/drivers/pci/hotplug/cpci_hotplug_core.c
index d5df5871cfa2..d06ab4045134 100644
--- a/drivers/pci/hotplug/cpci_hotplug_core.c
+++ b/drivers/pci/hotplug/cpci_hotplug_core.c
@@ -342,7 +342,7 @@ cpci_hp_unregister_bus(struct pci_bus *bus)
342 342
343/* This is the interrupt mode interrupt handler */ 343/* This is the interrupt mode interrupt handler */
344static irqreturn_t 344static irqreturn_t
345cpci_hp_intr(int irq, void *data, struct pt_regs *regs) 345cpci_hp_intr(int irq, void *data)
346{ 346{
347 dbg("entered cpci_hp_intr"); 347 dbg("entered cpci_hp_intr");
348 348
diff --git a/drivers/pci/hotplug/cpqphp.h b/drivers/pci/hotplug/cpqphp.h
index c74e9e37e76b..ea040c32f47d 100644
--- a/drivers/pci/hotplug/cpqphp.h
+++ b/drivers/pci/hotplug/cpqphp.h
@@ -409,7 +409,7 @@ extern void cpqhp_remove_debugfs_files (struct controller *ctrl);
409 409
410/* controller functions */ 410/* controller functions */
411extern void cpqhp_pushbutton_thread (unsigned long event_pointer); 411extern void cpqhp_pushbutton_thread (unsigned long event_pointer);
412extern irqreturn_t cpqhp_ctrl_intr (int IRQ, void *data, struct pt_regs *regs); 412extern irqreturn_t cpqhp_ctrl_intr (int IRQ, void *data);
413extern int cpqhp_find_available_resources (struct controller *ctrl, void __iomem *rom_start); 413extern int cpqhp_find_available_resources (struct controller *ctrl, void __iomem *rom_start);
414extern int cpqhp_event_start_thread (void); 414extern int cpqhp_event_start_thread (void);
415extern void cpqhp_event_stop_thread (void); 415extern void cpqhp_event_stop_thread (void);
diff --git a/drivers/pci/hotplug/cpqphp_ctrl.c b/drivers/pci/hotplug/cpqphp_ctrl.c
index ae2dd36efef2..3ec2ad7db49a 100644
--- a/drivers/pci/hotplug/cpqphp_ctrl.c
+++ b/drivers/pci/hotplug/cpqphp_ctrl.c
@@ -889,7 +889,7 @@ int cpqhp_resource_sort_and_combine(struct pci_resource **head)
889} 889}
890 890
891 891
892irqreturn_t cpqhp_ctrl_intr(int IRQ, void *data, struct pt_regs *regs) 892irqreturn_t cpqhp_ctrl_intr(int IRQ, void *data)
893{ 893{
894 struct controller *ctrl = data; 894 struct controller *ctrl = data;
895 u8 schedule_flag = 0; 895 u8 schedule_flag = 0;
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
index 6ab3b6cd2b54..703a64a39fe8 100644
--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -222,7 +222,7 @@ static struct php_ctlr_state_s *php_ctlr_list_head; /* HPC state linked list */
222static int ctlr_seq_num = 0; /* Controller sequence # */ 222static int ctlr_seq_num = 0; /* Controller sequence # */
223static spinlock_t list_lock; 223static spinlock_t list_lock;
224 224
225static irqreturn_t pcie_isr(int IRQ, void *dev_id, struct pt_regs *regs); 225static irqreturn_t pcie_isr(int IRQ, void *dev_id);
226 226
227static void start_int_poll_timer(struct php_ctlr_state_s *php_ctlr, int seconds); 227static void start_int_poll_timer(struct php_ctlr_state_s *php_ctlr, int seconds);
228 228
@@ -239,7 +239,7 @@ static void int_poll_timeout(unsigned long lphp_ctlr)
239 } 239 }
240 240
241 /* Poll for interrupt events. regs == NULL => polling */ 241 /* Poll for interrupt events. regs == NULL => polling */
242 pcie_isr( 0, (void *)php_ctlr, NULL ); 242 pcie_isr( 0, (void *)php_ctlr );
243 243
244 init_timer(&php_ctlr->int_poll_timer); 244 init_timer(&php_ctlr->int_poll_timer);
245 245
@@ -863,7 +863,7 @@ static int hpc_power_off_slot(struct slot * slot)
863 return retval; 863 return retval;
864} 864}
865 865
866static irqreturn_t pcie_isr(int IRQ, void *dev_id, struct pt_regs *regs) 866static irqreturn_t pcie_isr(int IRQ, void *dev_id)
867{ 867{
868 struct controller *ctrl = NULL; 868 struct controller *ctrl = NULL;
869 struct php_ctlr_state_s *php_ctlr; 869 struct php_ctlr_state_s *php_ctlr;
diff --git a/drivers/pci/hotplug/shpchp_hpc.c b/drivers/pci/hotplug/shpchp_hpc.c
index 0f9798df4704..4d8aee119134 100644
--- a/drivers/pci/hotplug/shpchp_hpc.c
+++ b/drivers/pci/hotplug/shpchp_hpc.c
@@ -218,7 +218,7 @@ static spinlock_t list_lock;
218 218
219static atomic_t shpchp_num_controllers = ATOMIC_INIT(0); 219static atomic_t shpchp_num_controllers = ATOMIC_INIT(0);
220 220
221static irqreturn_t shpc_isr(int irq, void *dev_id, struct pt_regs *regs); 221static irqreturn_t shpc_isr(int irq, void *dev_id);
222static void start_int_poll_timer(struct php_ctlr_state_s *php_ctlr, int sec); 222static void start_int_poll_timer(struct php_ctlr_state_s *php_ctlr, int sec);
223static int hpc_check_cmd_status(struct controller *ctrl); 223static int hpc_check_cmd_status(struct controller *ctrl);
224 224
@@ -276,7 +276,7 @@ static void int_poll_timeout(unsigned long lphp_ctlr)
276 DBG_ENTER_ROUTINE 276 DBG_ENTER_ROUTINE
277 277
278 /* Poll for interrupt events. regs == NULL => polling */ 278 /* Poll for interrupt events. regs == NULL => polling */
279 shpc_isr(0, php_ctlr->callback_instance_id, NULL); 279 shpc_isr(0, php_ctlr->callback_instance_id);
280 280
281 init_timer(&php_ctlr->int_poll_timer); 281 init_timer(&php_ctlr->int_poll_timer);
282 if (!shpchp_poll_time) 282 if (!shpchp_poll_time)
@@ -870,7 +870,7 @@ static int hpc_set_bus_speed_mode(struct slot * slot, enum pci_bus_speed value)
870 return retval; 870 return retval;
871} 871}
872 872
873static irqreturn_t shpc_isr(int irq, void *dev_id, struct pt_regs *regs) 873static irqreturn_t shpc_isr(int irq, void *dev_id)
874{ 874{
875 struct controller *ctrl = (struct controller *)dev_id; 875 struct controller *ctrl = (struct controller *)dev_id;
876 struct php_ctlr_state_s *php_ctlr = ctrl->hpc_ctlr_handle; 876 struct php_ctlr_state_s *php_ctlr = ctrl->hpc_ctlr_handle;
diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c
index 0d4ac027d53e..04c43ef529ac 100644
--- a/drivers/pci/pcie/aer/aerdrv.c
+++ b/drivers/pci/pcie/aer/aerdrv.c
@@ -85,11 +85,10 @@ static struct pcie_port_service_driver aerdrv = {
85 * aer_irq - Root Port's ISR 85 * aer_irq - Root Port's ISR
86 * @irq: IRQ assigned to Root Port 86 * @irq: IRQ assigned to Root Port
87 * @context: pointer to Root Port data structure 87 * @context: pointer to Root Port data structure
88 * @r: pointer struct pt_regs
89 * 88 *
90 * Invoked when Root Port detects AER messages. 89 * Invoked when Root Port detects AER messages.
91 **/ 90 **/
92static irqreturn_t aer_irq(int irq, void *context, struct pt_regs * r) 91static irqreturn_t aer_irq(int irq, void *context)
93{ 92{
94 unsigned int status, id; 93 unsigned int status, id;
95 struct pcie_device *pdev = (struct pcie_device *)context; 94 struct pcie_device *pdev = (struct pcie_device *)context;
diff --git a/drivers/pcmcia/at91_cf.c b/drivers/pcmcia/at91_cf.c
index 40569f40e90e..991e084db2d6 100644
--- a/drivers/pcmcia/at91_cf.c
+++ b/drivers/pcmcia/at91_cf.c
@@ -64,7 +64,7 @@ static int at91_cf_ss_init(struct pcmcia_socket *s)
64 return 0; 64 return 0;
65} 65}
66 66
67static irqreturn_t at91_cf_irq(int irq, void *_cf, struct pt_regs *r) 67static irqreturn_t at91_cf_irq(int irq, void *_cf)
68{ 68{
69 struct at91_cf_socket *cf = (struct at91_cf_socket *) _cf; 69 struct at91_cf_socket *cf = (struct at91_cf_socket *) _cf;
70 70
diff --git a/drivers/pcmcia/hd64465_ss.c b/drivers/pcmcia/hd64465_ss.c
index ad02629c8be2..db3c26b5de14 100644
--- a/drivers/pcmcia/hd64465_ss.c
+++ b/drivers/pcmcia/hd64465_ss.c
@@ -671,7 +671,7 @@ static int hs_irq_demux(int irq, void *dev)
671 * Interrupt handling routine. 671 * Interrupt handling routine.
672 */ 672 */
673 673
674static irqreturn_t hs_interrupt(int irq, void *dev, struct pt_regs *regs) 674static irqreturn_t hs_interrupt(int irq, void *dev)
675{ 675{
676 hs_socket_t *sp = (hs_socket_t *)dev; 676 hs_socket_t *sp = (hs_socket_t *)dev;
677 u_int events = 0; 677 u_int events = 0;
diff --git a/drivers/pcmcia/i82092.c b/drivers/pcmcia/i82092.c
index 2163aa75a257..82715f448957 100644
--- a/drivers/pcmcia/i82092.c
+++ b/drivers/pcmcia/i82092.c
@@ -315,7 +315,7 @@ static int to_cycles(int ns)
315 315
316/* Interrupt handler functionality */ 316/* Interrupt handler functionality */
317 317
318static irqreturn_t i82092aa_interrupt(int irq, void *dev, struct pt_regs *regs) 318static irqreturn_t i82092aa_interrupt(int irq, void *dev)
319{ 319{
320 int i; 320 int i;
321 int loopcount = 0; 321 int loopcount = 0;
diff --git a/drivers/pcmcia/i82092aa.h b/drivers/pcmcia/i82092aa.h
index 9c14599d0673..b0d453303c5d 100644
--- a/drivers/pcmcia/i82092aa.h
+++ b/drivers/pcmcia/i82092aa.h
@@ -23,7 +23,7 @@
23static int i82092aa_pci_probe(struct pci_dev *dev, const struct pci_device_id *id); 23static int i82092aa_pci_probe(struct pci_dev *dev, const struct pci_device_id *id);
24static void i82092aa_pci_remove(struct pci_dev *dev); 24static void i82092aa_pci_remove(struct pci_dev *dev);
25static int card_present(int socketno); 25static int card_present(int socketno);
26static irqreturn_t i82092aa_interrupt(int irq, void *dev, struct pt_regs *regs); 26static irqreturn_t i82092aa_interrupt(int irq, void *dev);
27 27
28 28
29 29
diff --git a/drivers/pcmcia/i82365.c b/drivers/pcmcia/i82365.c
index 1cc2682394b1..ea74f98a7350 100644
--- a/drivers/pcmcia/i82365.c
+++ b/drivers/pcmcia/i82365.c
@@ -80,7 +80,7 @@ module_param(pc_debug, int, 0644);
80#define debug(lvl, fmt, arg...) do { } while (0) 80#define debug(lvl, fmt, arg...) do { } while (0)
81#endif 81#endif
82 82
83static irqreturn_t i365_count_irq(int, void *, struct pt_regs *); 83static irqreturn_t i365_count_irq(int, void *);
84static inline int _check_irq(int irq, int flags) 84static inline int _check_irq(int irq, int flags)
85{ 85{
86 if (request_irq(irq, i365_count_irq, flags, "x", i365_count_irq) != 0) 86 if (request_irq(irq, i365_count_irq, flags, "x", i365_count_irq) != 0)
@@ -498,7 +498,7 @@ static u_int __init set_bridge_opts(u_short s, u_short ns)
498static volatile u_int irq_hits; 498static volatile u_int irq_hits;
499static u_short irq_sock; 499static u_short irq_sock;
500 500
501static irqreturn_t i365_count_irq(int irq, void *dev, struct pt_regs *regs) 501static irqreturn_t i365_count_irq(int irq, void *dev)
502{ 502{
503 i365_get(irq_sock, I365_CSC); 503 i365_get(irq_sock, I365_CSC);
504 irq_hits++; 504 irq_hits++;
@@ -848,8 +848,7 @@ static void __init isa_probe(void)
848 848
849/*====================================================================*/ 849/*====================================================================*/
850 850
851static irqreturn_t pcic_interrupt(int irq, void *dev, 851static irqreturn_t pcic_interrupt(int irq, void *dev)
852 struct pt_regs *regs)
853{ 852{
854 int i, j, csc; 853 int i, j, csc;
855 u_int events, active; 854 u_int events, active;
@@ -898,7 +897,7 @@ static irqreturn_t pcic_interrupt(int irq, void *dev,
898 897
899static void pcic_interrupt_wrapper(u_long data) 898static void pcic_interrupt_wrapper(u_long data)
900{ 899{
901 pcic_interrupt(0, NULL, NULL); 900 pcic_interrupt(0, NULL);
902 poll_timer.expires = jiffies + poll_interval; 901 poll_timer.expires = jiffies + poll_interval;
903 add_timer(&poll_timer); 902 add_timer(&poll_timer);
904} 903}
diff --git a/drivers/pcmcia/m32r_cfc.c b/drivers/pcmcia/m32r_cfc.c
index 9e768eaef17a..36fdaa58458c 100644
--- a/drivers/pcmcia/m32r_cfc.c
+++ b/drivers/pcmcia/m32r_cfc.c
@@ -254,7 +254,7 @@ static pcc_t pcc[] = {
254#endif /* CONFIG_PLAT_USRV */ 254#endif /* CONFIG_PLAT_USRV */
255}; 255};
256 256
257static irqreturn_t pcc_interrupt(int, void *, struct pt_regs *); 257static irqreturn_t pcc_interrupt(int, void *);
258 258
259/*====================================================================*/ 259/*====================================================================*/
260 260
@@ -372,14 +372,13 @@ static void add_pcc_socket(ulong base, int irq, ulong mapaddr, kio_addr_t ioaddr
372 372
373/*====================================================================*/ 373/*====================================================================*/
374 374
375static irqreturn_t pcc_interrupt(int irq, void *dev, struct pt_regs *regs) 375static irqreturn_t pcc_interrupt(int irq, void *dev)
376{ 376{
377 int i; 377 int i;
378 u_int events = 0; 378 u_int events = 0;
379 int handled = 0; 379 int handled = 0;
380 380
381 debug(3, "m32r_cfc: pcc_interrupt: irq=%d, dev=%p, regs=%p\n", 381 debug(3, "m32r_cfc: pcc_interrupt: irq=%d, dev=%p\n", irq, dev);
382 irq, dev, regs);
383 for (i = 0; i < pcc_sockets; i++) { 382 for (i = 0; i < pcc_sockets; i++) {
384 if (socket[i].cs_irq1 != irq && socket[i].cs_irq2 != irq) 383 if (socket[i].cs_irq1 != irq && socket[i].cs_irq2 != irq)
385 continue; 384 continue;
diff --git a/drivers/pcmcia/m32r_pcc.c b/drivers/pcmcia/m32r_pcc.c
index 61d50b5620dd..0964fd76bfe3 100644
--- a/drivers/pcmcia/m32r_pcc.c
+++ b/drivers/pcmcia/m32r_pcc.c
@@ -267,7 +267,7 @@ static pcc_t pcc[] = {
267 { "xnux2", 0 }, { "xnux2", 0 }, 267 { "xnux2", 0 }, { "xnux2", 0 },
268}; 268};
269 269
270static irqreturn_t pcc_interrupt(int, void *, struct pt_regs *); 270static irqreturn_t pcc_interrupt(int, void *);
271 271
272/*====================================================================*/ 272/*====================================================================*/
273 273
@@ -352,7 +352,7 @@ static void add_pcc_socket(ulong base, int irq, ulong mapaddr, kio_addr_t ioaddr
352 352
353/*====================================================================*/ 353/*====================================================================*/
354 354
355static irqreturn_t pcc_interrupt(int irq, void *dev, struct pt_regs *regs) 355static irqreturn_t pcc_interrupt(int irq, void *dev)
356{ 356{
357 int i, j, irc; 357 int i, j, irc;
358 u_int events, active; 358 u_int events, active;
diff --git a/drivers/pcmcia/m8xx_pcmcia.c b/drivers/pcmcia/m8xx_pcmcia.c
index d0f68ab8f041..e070a2896769 100644
--- a/drivers/pcmcia/m8xx_pcmcia.c
+++ b/drivers/pcmcia/m8xx_pcmcia.c
@@ -266,7 +266,7 @@ static const u32 m8xx_size_to_gray[M8XX_SIZES_NO] =
266 266
267/* ------------------------------------------------------------------------- */ 267/* ------------------------------------------------------------------------- */
268 268
269static irqreturn_t m8xx_interrupt(int irq, void *dev, struct pt_regs *regs); 269static irqreturn_t m8xx_interrupt(int irq, void *dev);
270 270
271#define PCMCIA_BMT_LIMIT (15*4) /* Bus Monitor Timeout value */ 271#define PCMCIA_BMT_LIMIT (15*4) /* Bus Monitor Timeout value */
272 272
@@ -646,7 +646,7 @@ static struct platform_device m8xx_device = {
646static u32 pending_events[PCMCIA_SOCKETS_NO]; 646static u32 pending_events[PCMCIA_SOCKETS_NO];
647static DEFINE_SPINLOCK(pending_event_lock); 647static DEFINE_SPINLOCK(pending_event_lock);
648 648
649static irqreturn_t m8xx_interrupt(int irq, void *dev, struct pt_regs *regs) 649static irqreturn_t m8xx_interrupt(int irq, void *dev)
650{ 650{
651 struct socket_info *s; 651 struct socket_info *s;
652 struct event_table *e; 652 struct event_table *e;
diff --git a/drivers/pcmcia/omap_cf.c b/drivers/pcmcia/omap_cf.c
index 01be47e72730..c8e838c69766 100644
--- a/drivers/pcmcia/omap_cf.c
+++ b/drivers/pcmcia/omap_cf.c
@@ -102,7 +102,7 @@ static void omap_cf_timer(unsigned long _cf)
102 * claim the card's IRQ. It may also detect some card insertions, but 102 * claim the card's IRQ. It may also detect some card insertions, but
103 * not removals; it can't always eliminate timer irqs. 103 * not removals; it can't always eliminate timer irqs.
104 */ 104 */
105static irqreturn_t omap_cf_irq(int irq, void *_cf, struct pt_regs *r) 105static irqreturn_t omap_cf_irq(int irq, void *_cf)
106{ 106{
107 omap_cf_timer((unsigned long)_cf); 107 omap_cf_timer((unsigned long)_cf);
108 return IRQ_HANDLED; 108 return IRQ_HANDLED;
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index c8323399e9e4..74cebd424032 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -784,7 +784,7 @@ EXPORT_SYMBOL(pcmcia_request_io);
784 */ 784 */
785 785
786#ifdef CONFIG_PCMCIA_PROBE 786#ifdef CONFIG_PCMCIA_PROBE
787static irqreturn_t test_action(int cpl, void *dev_id, struct pt_regs *regs) 787static irqreturn_t test_action(int cpl, void *dev_id)
788{ 788{
789 return IRQ_NONE; 789 return IRQ_NONE;
790} 790}
diff --git a/drivers/pcmcia/pd6729.c b/drivers/pcmcia/pd6729.c
index 22c5e7427ddd..c83a0a6b158f 100644
--- a/drivers/pcmcia/pd6729.c
+++ b/drivers/pcmcia/pd6729.c
@@ -182,7 +182,7 @@ static void indirect_write16(struct pd6729_socket *socket, unsigned short reg,
182 182
183/* Interrupt handler functionality */ 183/* Interrupt handler functionality */
184 184
185static irqreturn_t pd6729_interrupt(int irq, void *dev, struct pt_regs *regs) 185static irqreturn_t pd6729_interrupt(int irq, void *dev)
186{ 186{
187 struct pd6729_socket *socket = (struct pd6729_socket *)dev; 187 struct pd6729_socket *socket = (struct pd6729_socket *)dev;
188 int i; 188 int i;
@@ -249,7 +249,7 @@ static void pd6729_interrupt_wrapper(unsigned long data)
249{ 249{
250 struct pd6729_socket *socket = (struct pd6729_socket *) data; 250 struct pd6729_socket *socket = (struct pd6729_socket *) data;
251 251
252 pd6729_interrupt(0, (void *)socket, NULL); 252 pd6729_interrupt(0, (void *)socket);
253 mod_timer(&socket->poll_timer, jiffies + HZ); 253 mod_timer(&socket->poll_timer, jiffies + HZ);
254} 254}
255 255
@@ -575,7 +575,7 @@ static struct pccard_operations pd6729_operations = {
575 .set_mem_map = pd6729_set_mem_map, 575 .set_mem_map = pd6729_set_mem_map,
576}; 576};
577 577
578static irqreturn_t pd6729_test(int irq, void *dev, struct pt_regs *regs) 578static irqreturn_t pd6729_test(int irq, void *dev)
579{ 579{
580 dprintk("-> hit on irq %d\n", irq); 580 dprintk("-> hit on irq %d\n", irq);
581 return IRQ_HANDLED; 581 return IRQ_HANDLED;
diff --git a/drivers/pcmcia/soc_common.c b/drivers/pcmcia/soc_common.c
index ecaa132fa592..3627e52e0c27 100644
--- a/drivers/pcmcia/soc_common.c
+++ b/drivers/pcmcia/soc_common.c
@@ -256,7 +256,7 @@ static void soc_common_pcmcia_poll_event(unsigned long dummy)
256 * handling code performs scheduling operations which cannot be 256 * handling code performs scheduling operations which cannot be
257 * executed from within an interrupt context. 257 * executed from within an interrupt context.
258 */ 258 */
259static irqreturn_t soc_common_pcmcia_interrupt(int irq, void *dev, struct pt_regs *regs) 259static irqreturn_t soc_common_pcmcia_interrupt(int irq, void *dev)
260{ 260{
261 struct soc_pcmcia_socket *skt = dev; 261 struct soc_pcmcia_socket *skt = dev;
262 262
diff --git a/drivers/pcmcia/tcic.c b/drivers/pcmcia/tcic.c
index 65a60671659f..2d2f415f80a8 100644
--- a/drivers/pcmcia/tcic.c
+++ b/drivers/pcmcia/tcic.c
@@ -116,7 +116,7 @@ module_param(cycle_time, int, 0444);
116 116
117/*====================================================================*/ 117/*====================================================================*/
118 118
119static irqreturn_t tcic_interrupt(int irq, void *dev, struct pt_regs *regs); 119static irqreturn_t tcic_interrupt(int irq, void *dev);
120static void tcic_timer(u_long data); 120static void tcic_timer(u_long data);
121static struct pccard_operations tcic_operations; 121static struct pccard_operations tcic_operations;
122 122
@@ -218,7 +218,7 @@ static int to_cycles(int ns)
218 218
219static volatile u_int irq_hits; 219static volatile u_int irq_hits;
220 220
221static irqreturn_t __init tcic_irq_count(int irq, void *dev, struct pt_regs *regs) 221static irqreturn_t __init tcic_irq_count(int irq, void *dev)
222{ 222{
223 irq_hits++; 223 irq_hits++;
224 return IRQ_HANDLED; 224 return IRQ_HANDLED;
@@ -505,7 +505,7 @@ static int __init init_tcic(void)
505 } 505 }
506 506
507 /* jump start interrupt handler, if needed */ 507 /* jump start interrupt handler, if needed */
508 tcic_interrupt(0, NULL, NULL); 508 tcic_interrupt(0, NULL);
509 509
510 platform_device_register(&tcic_device); 510 platform_device_register(&tcic_device);
511 511
@@ -547,7 +547,7 @@ static void __exit exit_tcic(void)
547 547
548/*====================================================================*/ 548/*====================================================================*/
549 549
550static irqreturn_t tcic_interrupt(int irq, void *dev, struct pt_regs *regs) 550static irqreturn_t tcic_interrupt(int irq, void *dev)
551{ 551{
552 int i, quick = 0; 552 int i, quick = 0;
553 u_char latch, sstat; 553 u_char latch, sstat;
@@ -606,7 +606,7 @@ static void tcic_timer(u_long data)
606{ 606{
607 debug(2, "tcic_timer()\n"); 607 debug(2, "tcic_timer()\n");
608 tcic_timer_pending = 0; 608 tcic_timer_pending = 0;
609 tcic_interrupt(0, NULL, NULL); 609 tcic_interrupt(0, NULL);
610} /* tcic_timer */ 610} /* tcic_timer */
611 611
612/*====================================================================*/ 612/*====================================================================*/
diff --git a/drivers/pcmcia/vrc4171_card.c b/drivers/pcmcia/vrc4171_card.c
index e076a13db555..e90d8e8c5fd6 100644
--- a/drivers/pcmcia/vrc4171_card.c
+++ b/drivers/pcmcia/vrc4171_card.c
@@ -514,7 +514,7 @@ static inline unsigned int get_events(int slot)
514 return events; 514 return events;
515} 515}
516 516
517static irqreturn_t pccard_interrupt(int irq, void *dev_id, struct pt_regs *regs) 517static irqreturn_t pccard_interrupt(int irq, void *dev_id)
518{ 518{
519 vrc4171_socket_t *socket; 519 vrc4171_socket_t *socket;
520 unsigned int events; 520 unsigned int events;
diff --git a/drivers/pcmcia/vrc4173_cardu.c b/drivers/pcmcia/vrc4173_cardu.c
index d19a9138135f..812f038e9bda 100644
--- a/drivers/pcmcia/vrc4173_cardu.c
+++ b/drivers/pcmcia/vrc4173_cardu.c
@@ -440,7 +440,7 @@ static uint16_t get_events(vrc4173_socket_t *socket)
440 return events; 440 return events;
441} 441}
442 442
443static void cardu_interrupt(int irq, void *dev_id, struct pt_regs *regs) 443static void cardu_interrupt(int irq, void *dev_id)
444{ 444{
445 vrc4173_socket_t *socket = (vrc4173_socket_t *)dev_id; 445 vrc4173_socket_t *socket = (vrc4173_socket_t *)dev_id;
446 uint16_t events; 446 uint16_t events;
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c
index 1344746381e8..26229d9da762 100644
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
@@ -442,7 +442,7 @@ static int yenta_set_mem_map(struct pcmcia_socket *sock, struct pccard_mem_map *
442 442
443 443
444 444
445static irqreturn_t yenta_interrupt(int irq, void *dev_id, struct pt_regs *regs) 445static irqreturn_t yenta_interrupt(int irq, void *dev_id)
446{ 446{
447 unsigned int events; 447 unsigned int events;
448 struct yenta_socket *socket = (struct yenta_socket *) dev_id; 448 struct yenta_socket *socket = (struct yenta_socket *) dev_id;
@@ -478,7 +478,7 @@ static void yenta_interrupt_wrapper(unsigned long data)
478{ 478{
479 struct yenta_socket *socket = (struct yenta_socket *) data; 479 struct yenta_socket *socket = (struct yenta_socket *) data;
480 480
481 yenta_interrupt(0, (void *)socket, NULL); 481 yenta_interrupt(0, (void *)socket);
482 socket->poll_timer.expires = jiffies + HZ; 482 socket->poll_timer.expires = jiffies + HZ;
483 add_timer(&socket->poll_timer); 483 add_timer(&socket->poll_timer);
484} 484}
@@ -896,7 +896,7 @@ static unsigned int yenta_probe_irq(struct yenta_socket *socket, u32 isa_irq_mas
896#ifdef CONFIG_YENTA_TI 896#ifdef CONFIG_YENTA_TI
897 897
898/* interrupt handler, only used during probing */ 898/* interrupt handler, only used during probing */
899static irqreturn_t yenta_probe_handler(int irq, void *dev_id, struct pt_regs *regs) 899static irqreturn_t yenta_probe_handler(int irq, void *dev_id)
900{ 900{
901 struct yenta_socket *socket = (struct yenta_socket *) dev_id; 901 struct yenta_socket *socket = (struct yenta_socket *) dev_id;
902 u8 csc; 902 u8 csc;
diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c
index 5c8ec21e1086..a685fbec4604 100644
--- a/drivers/pnp/resource.c
+++ b/drivers/pnp/resource.c
@@ -348,7 +348,7 @@ int pnp_check_mem(struct pnp_dev * dev, int idx)
348 return 1; 348 return 1;
349} 349}
350 350
351static irqreturn_t pnp_test_handler(int irq, void *dev_id, struct pt_regs *regs) 351static irqreturn_t pnp_test_handler(int irq, void *dev_id)
352{ 352{
353 return IRQ_HANDLED; 353 return IRQ_HANDLED;
354} 354}
diff --git a/drivers/rtc/rtc-at91.c b/drivers/rtc/rtc-at91.c
index c0714da44920..bd61e99540a3 100644
--- a/drivers/rtc/rtc-at91.c
+++ b/drivers/rtc/rtc-at91.c
@@ -238,8 +238,7 @@ static int at91_rtc_proc(struct device *dev, struct seq_file *seq)
238/* 238/*
239 * IRQ handler for the RTC 239 * IRQ handler for the RTC
240 */ 240 */
241static irqreturn_t at91_rtc_interrupt(int irq, void *dev_id, 241static irqreturn_t at91_rtc_interrupt(int irq, void *dev_id)
242 struct pt_regs *regs)
243{ 242{
244 struct platform_device *pdev = dev_id; 243 struct platform_device *pdev = dev_id;
245 struct rtc_device *rtc = platform_get_drvdata(pdev); 244 struct rtc_device *rtc = platform_get_drvdata(pdev);
diff --git a/drivers/rtc/rtc-ds1553.c b/drivers/rtc/rtc-ds1553.c
index 9647188fee2c..78552e6e76aa 100644
--- a/drivers/rtc/rtc-ds1553.c
+++ b/drivers/rtc/rtc-ds1553.c
@@ -189,8 +189,7 @@ static int ds1553_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
189 return 0; 189 return 0;
190} 190}
191 191
192static irqreturn_t ds1553_rtc_interrupt(int irq, void *dev_id, 192static irqreturn_t ds1553_rtc_interrupt(int irq, void *dev_id)
193 struct pt_regs *regs)
194{ 193{
195 struct platform_device *pdev = dev_id; 194 struct platform_device *pdev = dev_id;
196 struct rtc_plat_data *pdata = platform_get_drvdata(pdev); 195 struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c
index 739d1a6e14eb..f13daa9fecaa 100644
--- a/drivers/rtc/rtc-pl031.c
+++ b/drivers/rtc/rtc-pl031.c
@@ -47,7 +47,7 @@ struct pl031_local {
47 void __iomem *base; 47 void __iomem *base;
48}; 48};
49 49
50static irqreturn_t pl031_interrupt(int irq, void *dev_id, struct pt_regs *regs) 50static irqreturn_t pl031_interrupt(int irq, void *dev_id)
51{ 51{
52 struct rtc_device *rtc = dev_id; 52 struct rtc_device *rtc = dev_id;
53 53
diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
index 625dad2eeb4f..e301dea57bb3 100644
--- a/drivers/rtc/rtc-s3c.c
+++ b/drivers/rtc/rtc-s3c.c
@@ -46,7 +46,7 @@ static unsigned int tick_count;
46 46
47/* IRQ Handlers */ 47/* IRQ Handlers */
48 48
49static irqreturn_t s3c_rtc_alarmirq(int irq, void *id, struct pt_regs *r) 49static irqreturn_t s3c_rtc_alarmirq(int irq, void *id)
50{ 50{
51 struct rtc_device *rdev = id; 51 struct rtc_device *rdev = id;
52 52
@@ -54,7 +54,7 @@ static irqreturn_t s3c_rtc_alarmirq(int irq, void *id, struct pt_regs *r)
54 return IRQ_HANDLED; 54 return IRQ_HANDLED;
55} 55}
56 56
57static irqreturn_t s3c_rtc_tickirq(int irq, void *id, struct pt_regs *r) 57static irqreturn_t s3c_rtc_tickirq(int irq, void *id)
58{ 58{
59 struct rtc_device *rdev = id; 59 struct rtc_device *rdev = id;
60 60
diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c
index 439c41aea31c..bd4d7d174ef4 100644
--- a/drivers/rtc/rtc-sa1100.c
+++ b/drivers/rtc/rtc-sa1100.c
@@ -68,8 +68,7 @@ static int rtc_update_alarm(struct rtc_time *alrm)
68 return ret; 68 return ret;
69} 69}
70 70
71static irqreturn_t sa1100_rtc_interrupt(int irq, void *dev_id, 71static irqreturn_t sa1100_rtc_interrupt(int irq, void *dev_id)
72 struct pt_regs *regs)
73{ 72{
74 struct platform_device *pdev = to_platform_device(dev_id); 73 struct platform_device *pdev = to_platform_device(dev_id);
75 struct rtc_device *rtc = platform_get_drvdata(pdev); 74 struct rtc_device *rtc = platform_get_drvdata(pdev);
@@ -106,8 +105,7 @@ static irqreturn_t sa1100_rtc_interrupt(int irq, void *dev_id,
106 105
107static int rtc_timer1_count; 106static int rtc_timer1_count;
108 107
109static irqreturn_t timer1_interrupt(int irq, void *dev_id, 108static irqreturn_t timer1_interrupt(int irq, void *dev_id)
110 struct pt_regs *regs)
111{ 109{
112 struct platform_device *pdev = to_platform_device(dev_id); 110 struct platform_device *pdev = to_platform_device(dev_id);
113 struct rtc_device *rtc = platform_get_drvdata(pdev); 111 struct rtc_device *rtc = platform_get_drvdata(pdev);
diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c
index d2ce0c8bb8f3..8b6efcc05058 100644
--- a/drivers/rtc/rtc-sh.c
+++ b/drivers/rtc/rtc-sh.c
@@ -73,7 +73,7 @@ struct sh_rtc {
73 spinlock_t lock; 73 spinlock_t lock;
74}; 74};
75 75
76static irqreturn_t sh_rtc_interrupt(int irq, void *id, struct pt_regs *regs) 76static irqreturn_t sh_rtc_interrupt(int irq, void *id)
77{ 77{
78 struct platform_device *pdev = id; 78 struct platform_device *pdev = id;
79 struct sh_rtc *rtc = platform_get_drvdata(pdev); 79 struct sh_rtc *rtc = platform_get_drvdata(pdev);
@@ -97,7 +97,7 @@ static irqreturn_t sh_rtc_interrupt(int irq, void *id, struct pt_regs *regs)
97 return IRQ_HANDLED; 97 return IRQ_HANDLED;
98} 98}
99 99
100static irqreturn_t sh_rtc_periodic(int irq, void *id, struct pt_regs *regs) 100static irqreturn_t sh_rtc_periodic(int irq, void *id)
101{ 101{
102 struct sh_rtc *rtc = dev_get_drvdata(id); 102 struct sh_rtc *rtc = dev_get_drvdata(id);
103 103
diff --git a/drivers/rtc/rtc-vr41xx.c b/drivers/rtc/rtc-vr41xx.c
index 58e5ed0aa127..e40322b71938 100644
--- a/drivers/rtc/rtc-vr41xx.c
+++ b/drivers/rtc/rtc-vr41xx.c
@@ -268,7 +268,7 @@ static int vr41xx_rtc_ioctl(struct device *dev, unsigned int cmd, unsigned long
268 return 0; 268 return 0;
269} 269}
270 270
271static irqreturn_t elapsedtime_interrupt(int irq, void *dev_id, struct pt_regs *regs) 271static irqreturn_t elapsedtime_interrupt(int irq, void *dev_id)
272{ 272{
273 struct platform_device *pdev = (struct platform_device *)dev_id; 273 struct platform_device *pdev = (struct platform_device *)dev_id;
274 struct rtc_device *rtc = platform_get_drvdata(pdev); 274 struct rtc_device *rtc = platform_get_drvdata(pdev);
@@ -280,7 +280,7 @@ static irqreturn_t elapsedtime_interrupt(int irq, void *dev_id, struct pt_regs *
280 return IRQ_HANDLED; 280 return IRQ_HANDLED;
281} 281}
282 282
283static irqreturn_t rtclong1_interrupt(int irq, void *dev_id, struct pt_regs *regs) 283static irqreturn_t rtclong1_interrupt(int irq, void *dev_id)
284{ 284{
285 struct platform_device *pdev = (struct platform_device *)dev_id; 285 struct platform_device *pdev = (struct platform_device *)dev_id;
286 struct rtc_device *rtc = platform_get_drvdata(pdev); 286 struct rtc_device *rtc = platform_get_drvdata(pdev);
diff --git a/drivers/sbus/char/aurora.c b/drivers/sbus/char/aurora.c
index a305d4091547..a54b4ac67568 100644
--- a/drivers/sbus/char/aurora.c
+++ b/drivers/sbus/char/aurora.c
@@ -254,7 +254,7 @@ for(i=0;i<TYPE_1_IRQS;i++)
254return 0; 254return 0;
255} 255}
256 256
257static irqreturn_t aurora_interrupt(int irq, void * dev_id, struct pt_regs * regs); 257static irqreturn_t aurora_interrupt(int irq, void * dev_id);
258 258
259/* Main probing routine, also sets irq. */ 259/* Main probing routine, also sets irq. */
260static int aurora_probe(void) 260static int aurora_probe(void)
@@ -689,7 +689,7 @@ static void aurora_check_modem(struct Aurora_board const * bp, int chip)
689} 689}
690 690
691/* The main interrupt processing routine */ 691/* The main interrupt processing routine */
692static irqreturn_t aurora_interrupt(int irq, void * dev_id, struct pt_regs * regs) 692static irqreturn_t aurora_interrupt(int irq, void * dev_id)
693{ 693{
694 unsigned char status; 694 unsigned char status;
695 unsigned char ack,chip/*,chip_id*/; 695 unsigned char ack,chip/*,chip_id*/;
diff --git a/drivers/sbus/char/bbc_i2c.c b/drivers/sbus/char/bbc_i2c.c
index 7186235594f9..22631f8b9b48 100644
--- a/drivers/sbus/char/bbc_i2c.c
+++ b/drivers/sbus/char/bbc_i2c.c
@@ -331,7 +331,7 @@ EXPORT_SYMBOL(bbc_i2c_readb);
331EXPORT_SYMBOL(bbc_i2c_write_buf); 331EXPORT_SYMBOL(bbc_i2c_write_buf);
332EXPORT_SYMBOL(bbc_i2c_read_buf); 332EXPORT_SYMBOL(bbc_i2c_read_buf);
333 333
334static irqreturn_t bbc_i2c_interrupt(int irq, void *dev_id, struct pt_regs *regs) 334static irqreturn_t bbc_i2c_interrupt(int irq, void *dev_id)
335{ 335{
336 struct bbc_i2c_bus *bp = dev_id; 336 struct bbc_i2c_bus *bp = dev_id;
337 337
diff --git a/drivers/sbus/char/cpwatchdog.c b/drivers/sbus/char/cpwatchdog.c
index 40b6fc86f6a8..f5803ecb1999 100644
--- a/drivers/sbus/char/cpwatchdog.c
+++ b/drivers/sbus/char/cpwatchdog.c
@@ -185,7 +185,7 @@ MODULE_SUPPORTED_DEVICE
185#ifdef WD_DEBUG 185#ifdef WD_DEBUG
186static void wd_dumpregs(void); 186static void wd_dumpregs(void);
187#endif 187#endif
188static irqreturn_t wd_interrupt(int irq, void *dev_id, struct pt_regs *regs); 188static irqreturn_t wd_interrupt(int irq, void *dev_id);
189static void wd_toggleintr(struct wd_timer* pTimer, int enable); 189static void wd_toggleintr(struct wd_timer* pTimer, int enable);
190static void wd_pingtimer(struct wd_timer* pTimer); 190static void wd_pingtimer(struct wd_timer* pTimer);
191static void wd_starttimer(struct wd_timer* pTimer); 191static void wd_starttimer(struct wd_timer* pTimer);
@@ -444,7 +444,7 @@ static ssize_t wd_read(struct file * file, char __user *buffer,
444#endif /* ifdef WD_DEBUG */ 444#endif /* ifdef WD_DEBUG */
445} 445}
446 446
447static irqreturn_t wd_interrupt(int irq, void *dev_id, struct pt_regs *regs) 447static irqreturn_t wd_interrupt(int irq, void *dev_id)
448{ 448{
449 /* Only WD0 will interrupt-- others are NMI and we won't 449 /* Only WD0 will interrupt-- others are NMI and we won't
450 * see them here.... 450 * see them here....
diff --git a/drivers/sbus/char/uctrl.c b/drivers/sbus/char/uctrl.c
index 575b1f7ed410..ddc0681ac759 100644
--- a/drivers/sbus/char/uctrl.c
+++ b/drivers/sbus/char/uctrl.c
@@ -217,7 +217,7 @@ uctrl_open(struct inode *inode, struct file *file)
217 return 0; 217 return 0;
218} 218}
219 219
220static irqreturn_t uctrl_interrupt(int irq, void *dev_id, struct pt_regs *regs) 220static irqreturn_t uctrl_interrupt(int irq, void *dev_id)
221{ 221{
222 struct uctrl_driver *driver = (struct uctrl_driver *)dev_id; 222 struct uctrl_driver *driver = (struct uctrl_driver *)dev_id;
223 printk("in uctrl_interrupt\n"); 223 printk("in uctrl_interrupt\n");
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
index da173159cedb..5f8c26cd66ca 100644
--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -1192,7 +1192,7 @@ out:
1192} /* End twa_initialize_device_extension() */ 1192} /* End twa_initialize_device_extension() */
1193 1193
1194/* This function is the interrupt service routine */ 1194/* This function is the interrupt service routine */
1195static irqreturn_t twa_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1195static irqreturn_t twa_interrupt(int irq, void *dev_instance)
1196{ 1196{
1197 int request_id, error = 0; 1197 int request_id, error = 0;
1198 u32 status_reg_value; 1198 u32 status_reg_value;
diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c
index 2d4cb6721fa6..99a259c5a0c0 100644
--- a/drivers/scsi/3w-xxxx.c
+++ b/drivers/scsi/3w-xxxx.c
@@ -2078,8 +2078,7 @@ static int tw_scsi_queue(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd
2078} /* End tw_scsi_queue() */ 2078} /* End tw_scsi_queue() */
2079 2079
2080/* This function is the interrupt service routine */ 2080/* This function is the interrupt service routine */
2081static irqreturn_t tw_interrupt(int irq, void *dev_instance, 2081static irqreturn_t tw_interrupt(int irq, void *dev_instance)
2082 struct pt_regs *regs)
2083{ 2082{
2084 int request_id; 2083 int request_id;
2085 u32 status_reg_value; 2084 u32 status_reg_value;
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c
index 15ce40a7053a..562432d017b0 100644
--- a/drivers/scsi/53c700.c
+++ b/drivers/scsi/53c700.c
@@ -1462,7 +1462,7 @@ NCR_700_start_command(struct scsi_cmnd *SCp)
1462} 1462}
1463 1463
1464irqreturn_t 1464irqreturn_t
1465NCR_700_intr(int irq, void *dev_id, struct pt_regs *regs) 1465NCR_700_intr(int irq, void *dev_id)
1466{ 1466{
1467 struct Scsi_Host *host = (struct Scsi_Host *)dev_id; 1467 struct Scsi_Host *host = (struct Scsi_Host *)dev_id;
1468 struct NCR_700_Host_Parameters *hostdata = 1468 struct NCR_700_Host_Parameters *hostdata =
diff --git a/drivers/scsi/53c700.h b/drivers/scsi/53c700.h
index 97ebe71b701b..f5c3caf344a7 100644
--- a/drivers/scsi/53c700.h
+++ b/drivers/scsi/53c700.h
@@ -57,7 +57,7 @@ struct NCR_700_Host_Parameters;
57struct Scsi_Host *NCR_700_detect(struct scsi_host_template *, 57struct Scsi_Host *NCR_700_detect(struct scsi_host_template *,
58 struct NCR_700_Host_Parameters *, struct device *); 58 struct NCR_700_Host_Parameters *, struct device *);
59int NCR_700_release(struct Scsi_Host *host); 59int NCR_700_release(struct Scsi_Host *host);
60irqreturn_t NCR_700_intr(int, void *, struct pt_regs *); 60irqreturn_t NCR_700_intr(int, void *);
61 61
62 62
63enum NCR_700_Host_State { 63enum NCR_700_Host_State {
diff --git a/drivers/scsi/53c7xx.c b/drivers/scsi/53c7xx.c
index acf292736b4e..640536ef77dc 100644
--- a/drivers/scsi/53c7xx.c
+++ b/drivers/scsi/53c7xx.c
@@ -323,7 +323,7 @@ static int shutdown (struct Scsi_Host *host);
323static void abnormal_finished (struct NCR53c7x0_cmd *cmd, int result); 323static void abnormal_finished (struct NCR53c7x0_cmd *cmd, int result);
324static int disable (struct Scsi_Host *host); 324static int disable (struct Scsi_Host *host);
325static int NCR53c7xx_run_tests (struct Scsi_Host *host); 325static int NCR53c7xx_run_tests (struct Scsi_Host *host);
326static irqreturn_t NCR53c7x0_intr(int irq, void *dev_id, struct pt_regs * regs); 326static irqreturn_t NCR53c7x0_intr(int irq, void *dev_id);
327static void NCR53c7x0_intfly (struct Scsi_Host *host); 327static void NCR53c7x0_intfly (struct Scsi_Host *host);
328static int ncr_halt (struct Scsi_Host *host); 328static int ncr_halt (struct Scsi_Host *host);
329static void intr_phase_mismatch (struct Scsi_Host *host, struct NCR53c7x0_cmd 329static void intr_phase_mismatch (struct Scsi_Host *host, struct NCR53c7x0_cmd
@@ -4227,7 +4227,7 @@ restart:
4227} 4227}
4228 4228
4229/* 4229/*
4230 * Function : static irqreturn_t NCR53c7x0_intr (int irq, void *dev_id, struct pt_regs * regs) 4230 * Function : static irqreturn_t NCR53c7x0_intr (int irq, void *dev_id)
4231 * 4231 *
4232 * Purpose : handle NCR53c7x0 interrupts for all NCR devices sharing 4232 * Purpose : handle NCR53c7x0 interrupts for all NCR devices sharing
4233 * the same IRQ line. 4233 * the same IRQ line.
@@ -4241,7 +4241,7 @@ restart:
4241 */ 4241 */
4242 4242
4243static irqreturn_t 4243static irqreturn_t
4244NCR53c7x0_intr (int irq, void *dev_id, struct pt_regs * regs) 4244NCR53c7x0_intr (int irq, void *dev_id)
4245{ 4245{
4246 NCR53c7x0_local_declare(); 4246 NCR53c7x0_local_declare();
4247 struct Scsi_Host *host; /* Host we are looking at */ 4247 struct Scsi_Host *host; /* Host we are looking at */
diff --git a/drivers/scsi/BusLogic.c b/drivers/scsi/BusLogic.c
index 4ea49fd7965e..7c59bba98798 100644
--- a/drivers/scsi/BusLogic.c
+++ b/drivers/scsi/BusLogic.c
@@ -2653,7 +2653,7 @@ static void BusLogic_ProcessCompletedCCBs(struct BusLogic_HostAdapter *HostAdapt
2653 Adapters. 2653 Adapters.
2654*/ 2654*/
2655 2655
2656static irqreturn_t BusLogic_InterruptHandler(int IRQ_Channel, void *DeviceIdentifier, struct pt_regs *InterruptRegisters) 2656static irqreturn_t BusLogic_InterruptHandler(int IRQ_Channel, void *DeviceIdentifier)
2657{ 2657{
2658 struct BusLogic_HostAdapter *HostAdapter = (struct BusLogic_HostAdapter *) DeviceIdentifier; 2658 struct BusLogic_HostAdapter *HostAdapter = (struct BusLogic_HostAdapter *) DeviceIdentifier;
2659 unsigned long ProcessorFlags; 2659 unsigned long ProcessorFlags;
diff --git a/drivers/scsi/BusLogic.h b/drivers/scsi/BusLogic.h
index d6d1d5613c8a..cca6d45eee4d 100644
--- a/drivers/scsi/BusLogic.h
+++ b/drivers/scsi/BusLogic.h
@@ -1347,7 +1347,7 @@ static int BusLogic_BIOSDiskParameters(struct scsi_device *, struct block_device
1347static int BusLogic_ProcDirectoryInfo(struct Scsi_Host *, char *, char **, off_t, int, int); 1347static int BusLogic_ProcDirectoryInfo(struct Scsi_Host *, char *, char **, off_t, int, int);
1348static int BusLogic_SlaveConfigure(struct scsi_device *); 1348static int BusLogic_SlaveConfigure(struct scsi_device *);
1349static void BusLogic_QueueCompletedCCB(struct BusLogic_CCB *); 1349static void BusLogic_QueueCompletedCCB(struct BusLogic_CCB *);
1350static irqreturn_t BusLogic_InterruptHandler(int, void *, struct pt_regs *); 1350static irqreturn_t BusLogic_InterruptHandler(int, void *);
1351static int BusLogic_ResetHostAdapter(struct BusLogic_HostAdapter *, boolean HardReset); 1351static int BusLogic_ResetHostAdapter(struct BusLogic_HostAdapter *, boolean HardReset);
1352static void BusLogic_Message(enum BusLogic_MessageLevel, char *, struct BusLogic_HostAdapter *, ...); 1352static void BusLogic_Message(enum BusLogic_MessageLevel, char *, struct BusLogic_HostAdapter *, ...);
1353static int __init BusLogic_Setup(char *); 1353static int __init BusLogic_Setup(char *);
diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c
index 616810ad17d8..a6aa91072880 100644
--- a/drivers/scsi/NCR5380.c
+++ b/drivers/scsi/NCR5380.c
@@ -558,8 +558,7 @@ static int probe_irq __initdata = 0;
558 * used by the IRQ probe code. 558 * used by the IRQ probe code.
559 */ 559 */
560 560
561static irqreturn_t __init probe_intr(int irq, void *dev_id, 561static irqreturn_t __init probe_intr(int irq, void *dev_id)
562 struct pt_regs *regs)
563{ 562{
564 probe_irq = irq; 563 probe_irq = irq;
565 return IRQ_HANDLED; 564 return IRQ_HANDLED;
@@ -1148,7 +1147,6 @@ static void NCR5380_main(void *p)
1148 * NCR5380_intr - generic NCR5380 irq handler 1147 * NCR5380_intr - generic NCR5380 irq handler
1149 * @irq: interrupt number 1148 * @irq: interrupt number
1150 * @dev_id: device info 1149 * @dev_id: device info
1151 * @regs: registers (unused)
1152 * 1150 *
1153 * Handle interrupts, reestablishing I_T_L or I_T_L_Q nexuses 1151 * Handle interrupts, reestablishing I_T_L or I_T_L_Q nexuses
1154 * from the disconnected queue, and restarting NCR5380_main() 1152 * from the disconnected queue, and restarting NCR5380_main()
@@ -1157,7 +1155,7 @@ static void NCR5380_main(void *p)
1157 * Locks: takes the needed instance locks 1155 * Locks: takes the needed instance locks
1158 */ 1156 */
1159 1157
1160static irqreturn_t NCR5380_intr(int irq, void *dev_id, struct pt_regs *regs) 1158static irqreturn_t NCR5380_intr(int irq, void *dev_id)
1161{ 1159{
1162 NCR5380_local_declare(); 1160 NCR5380_local_declare();
1163 struct Scsi_Host *instance = (struct Scsi_Host *)dev_id; 1161 struct Scsi_Host *instance = (struct Scsi_Host *)dev_id;
diff --git a/drivers/scsi/NCR5380.h b/drivers/scsi/NCR5380.h
index c3462e358d1c..1bc73de496b0 100644
--- a/drivers/scsi/NCR5380.h
+++ b/drivers/scsi/NCR5380.h
@@ -296,7 +296,7 @@ static int NCR5380_init(struct Scsi_Host *instance, int flags);
296static void NCR5380_exit(struct Scsi_Host *instance); 296static void NCR5380_exit(struct Scsi_Host *instance);
297static void NCR5380_information_transfer(struct Scsi_Host *instance); 297static void NCR5380_information_transfer(struct Scsi_Host *instance);
298#ifndef DONT_USE_INTR 298#ifndef DONT_USE_INTR
299static irqreturn_t NCR5380_intr(int irq, void *dev_id, struct pt_regs *regs); 299static irqreturn_t NCR5380_intr(int irq, void *dev_id);
300#endif 300#endif
301static void NCR5380_main(void *ptr); 301static void NCR5380_main(void *ptr);
302static void NCR5380_print_options(struct Scsi_Host *instance); 302static void NCR5380_print_options(struct Scsi_Host *instance);
diff --git a/drivers/scsi/NCR53C9x.c b/drivers/scsi/NCR53C9x.c
index bdc6bb262bce..3c912ee29da0 100644
--- a/drivers/scsi/NCR53C9x.c
+++ b/drivers/scsi/NCR53C9x.c
@@ -96,7 +96,7 @@ enum {
96static struct NCR_ESP *espchain; 96static struct NCR_ESP *espchain;
97int nesps = 0, esps_in_use = 0, esps_running = 0; 97int nesps = 0, esps_in_use = 0, esps_running = 0;
98 98
99irqreturn_t esp_intr(int irq, void *dev_id, struct pt_regs *pregs); 99irqreturn_t esp_intr(int irq, void *dev_id);
100 100
101/* Debugging routines */ 101/* Debugging routines */
102static struct esp_cmdstrings { 102static struct esp_cmdstrings {
@@ -3533,7 +3533,7 @@ state_machine:
3533} 3533}
3534 3534
3535#ifndef CONFIG_SMP 3535#ifndef CONFIG_SMP
3536irqreturn_t esp_intr(int irq, void *dev_id, struct pt_regs *pregs) 3536irqreturn_t esp_intr(int irq, void *dev_id)
3537{ 3537{
3538 struct NCR_ESP *esp; 3538 struct NCR_ESP *esp;
3539 unsigned long flags; 3539 unsigned long flags;
@@ -3570,7 +3570,7 @@ repeat:
3570} 3570}
3571#else 3571#else
3572/* For SMP we only service one ESP on the list list at our IRQ level! */ 3572/* For SMP we only service one ESP on the list list at our IRQ level! */
3573irqreturn_t esp_intr(int irq, void *dev_id, struct pt_regs *pregs) 3573irqreturn_t esp_intr(int irq, void *dev_id)
3574{ 3574{
3575 struct NCR_ESP *esp; 3575 struct NCR_ESP *esp;
3576 unsigned long flags; 3576 unsigned long flags;
diff --git a/drivers/scsi/NCR53C9x.h b/drivers/scsi/NCR53C9x.h
index 481653c977cf..521e3f842cfd 100644
--- a/drivers/scsi/NCR53C9x.h
+++ b/drivers/scsi/NCR53C9x.h
@@ -656,7 +656,7 @@ extern struct NCR_ESP *esp_allocate(struct scsi_host_template *, void *);
656extern void esp_deallocate(struct NCR_ESP *); 656extern void esp_deallocate(struct NCR_ESP *);
657extern void esp_release(void); 657extern void esp_release(void);
658extern void esp_initialize(struct NCR_ESP *); 658extern void esp_initialize(struct NCR_ESP *);
659extern irqreturn_t esp_intr(int, void *, struct pt_regs *); 659extern irqreturn_t esp_intr(int, void *);
660extern const char *esp_info(struct Scsi_Host *); 660extern const char *esp_info(struct Scsi_Host *);
661extern int esp_queue(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *)); 661extern int esp_queue(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
662extern int esp_abort(Scsi_Cmnd *); 662extern int esp_abort(Scsi_Cmnd *);
diff --git a/drivers/scsi/NCR53c406a.c b/drivers/scsi/NCR53c406a.c
index 8472c5359023..3896278594c7 100644
--- a/drivers/scsi/NCR53c406a.c
+++ b/drivers/scsi/NCR53c406a.c
@@ -168,8 +168,8 @@ enum Phase {
168}; 168};
169 169
170/* Static function prototypes */ 170/* Static function prototypes */
171static void NCR53c406a_intr(int, void *, struct pt_regs *); 171static void NCR53c406a_intr(int, void *);
172static irqreturn_t do_NCR53c406a_intr(int, void *, struct pt_regs *); 172static irqreturn_t do_NCR53c406a_intr(int, void *);
173static void chip_init(void); 173static void chip_init(void);
174static void calc_port_addr(void); 174static void calc_port_addr(void);
175#ifndef IRQ_LEV 175#ifndef IRQ_LEV
@@ -761,19 +761,18 @@ static int NCR53c406a_biosparm(struct scsi_device *disk,
761 return 0; 761 return 0;
762} 762}
763 763
764static irqreturn_t do_NCR53c406a_intr(int unused, void *dev_id, 764static irqreturn_t do_NCR53c406a_intr(int unused, void *dev_id)
765 struct pt_regs *regs)
766{ 765{
767 unsigned long flags; 766 unsigned long flags;
768 struct Scsi_Host *dev = dev_id; 767 struct Scsi_Host *dev = dev_id;
769 768
770 spin_lock_irqsave(dev->host_lock, flags); 769 spin_lock_irqsave(dev->host_lock, flags);
771 NCR53c406a_intr(0, dev_id, regs); 770 NCR53c406a_intr(0, dev_id);
772 spin_unlock_irqrestore(dev->host_lock, flags); 771 spin_unlock_irqrestore(dev->host_lock, flags);
773 return IRQ_HANDLED; 772 return IRQ_HANDLED;
774} 773}
775 774
776static void NCR53c406a_intr(int unused, void *dev_id, struct pt_regs *regs) 775static void NCR53c406a_intr(int unused, void *dev_id)
777{ 776{
778 DEB(unsigned char fifo_size; 777 DEB(unsigned char fifo_size;
779 ) 778 )
diff --git a/drivers/scsi/NCR_D700.c b/drivers/scsi/NCR_D700.c
index d05681f9d81a..9859cd17fc57 100644
--- a/drivers/scsi/NCR_D700.c
+++ b/drivers/scsi/NCR_D700.c
@@ -226,14 +226,14 @@ NCR_D700_probe_one(struct NCR_D700_private *p, int siop, int irq,
226} 226}
227 227
228static int 228static int
229NCR_D700_intr(int irq, void *data, struct pt_regs *regs) 229NCR_D700_intr(int irq, void *data)
230{ 230{
231 struct NCR_D700_private *p = (struct NCR_D700_private *)data; 231 struct NCR_D700_private *p = (struct NCR_D700_private *)data;
232 int i, found = 0; 232 int i, found = 0;
233 233
234 for (i = 0; i < 2; i++) 234 for (i = 0; i < 2; i++)
235 if (p->hosts[i] && 235 if (p->hosts[i] &&
236 NCR_700_intr(irq, p->hosts[i], regs) == IRQ_HANDLED) 236 NCR_700_intr(irq, p->hosts[i]) == IRQ_HANDLED)
237 found++; 237 found++;
238 238
239 return found ? IRQ_HANDLED : IRQ_NONE; 239 return found ? IRQ_HANDLED : IRQ_NONE;
diff --git a/drivers/scsi/NCR_Q720.c b/drivers/scsi/NCR_Q720.c
index c39ffbb86e39..778844c3544a 100644
--- a/drivers/scsi/NCR_Q720.c
+++ b/drivers/scsi/NCR_Q720.c
@@ -54,7 +54,7 @@ static struct scsi_host_template NCR_Q720_tpnt = {
54}; 54};
55 55
56static irqreturn_t 56static irqreturn_t
57NCR_Q720_intr(int irq, void *data, struct pt_regs * regs) 57NCR_Q720_intr(int irq, void *data)
58{ 58{
59 struct NCR_Q720_private *p = (struct NCR_Q720_private *)data; 59 struct NCR_Q720_private *p = (struct NCR_Q720_private *)data;
60 __u8 sir = (readb(p->mem_base + 0x0d) & 0xf0) >> 4; 60 __u8 sir = (readb(p->mem_base + 0x0d) & 0xf0) >> 4;
@@ -68,7 +68,7 @@ NCR_Q720_intr(int irq, void *data, struct pt_regs * regs)
68 68
69 while((siop = ffz(sir)) < p->siops) { 69 while((siop = ffz(sir)) < p->siops) {
70 sir |= 1<<siop; 70 sir |= 1<<siop;
71 ncr53c8xx_intr(irq, p->hosts[siop], regs); 71 ncr53c8xx_intr(irq, p->hosts[siop]);
72 } 72 }
73 return IRQ_HANDLED; 73 return IRQ_HANDLED;
74} 74}
diff --git a/drivers/scsi/a100u2w.c b/drivers/scsi/a100u2w.c
index 2684150917e6..2650a5d0a161 100644
--- a/drivers/scsi/a100u2w.c
+++ b/drivers/scsi/a100u2w.c
@@ -1013,7 +1013,7 @@ static void inia100SCBPost(BYTE * pHcb, BYTE * pScb)
1013/* 1013/*
1014 * Interrupt handler (main routine of the driver) 1014 * Interrupt handler (main routine of the driver)
1015 */ 1015 */
1016static irqreturn_t inia100_intr(int irqno, void *devid, struct pt_regs *regs) 1016static irqreturn_t inia100_intr(int irqno, void *devid)
1017{ 1017{
1018 struct Scsi_Host *host = (struct Scsi_Host *)devid; 1018 struct Scsi_Host *host = (struct Scsi_Host *)devid;
1019 ORC_HCS *pHcb = (ORC_HCS *)host->hostdata; 1019 ORC_HCS *pHcb = (ORC_HCS *)host->hostdata;
diff --git a/drivers/scsi/a2091.c b/drivers/scsi/a2091.c
index 085406928605..f77016d31cab 100644
--- a/drivers/scsi/a2091.c
+++ b/drivers/scsi/a2091.c
@@ -24,7 +24,7 @@
24#define DMA(ptr) ((a2091_scsiregs *)((ptr)->base)) 24#define DMA(ptr) ((a2091_scsiregs *)((ptr)->base))
25#define HDATA(ptr) ((struct WD33C93_hostdata *)((ptr)->hostdata)) 25#define HDATA(ptr) ((struct WD33C93_hostdata *)((ptr)->hostdata))
26 26
27static irqreturn_t a2091_intr (int irq, void *_instance, struct pt_regs *fp) 27static irqreturn_t a2091_intr (int irq, void *_instance)
28{ 28{
29 unsigned long flags; 29 unsigned long flags;
30 unsigned int status; 30 unsigned int status;
diff --git a/drivers/scsi/a3000.c b/drivers/scsi/a3000.c
index 7bf46d40b561..1299bc8edef1 100644
--- a/drivers/scsi/a3000.c
+++ b/drivers/scsi/a3000.c
@@ -26,7 +26,7 @@
26 26
27static struct Scsi_Host *a3000_host = NULL; 27static struct Scsi_Host *a3000_host = NULL;
28 28
29static irqreturn_t a3000_intr (int irq, void *dummy, struct pt_regs *fp) 29static irqreturn_t a3000_intr (int irq, void *dummy)
30{ 30{
31 unsigned long flags; 31 unsigned long flags;
32 unsigned int status = DMA(a3000_host)->ISTR; 32 unsigned int status = DMA(a3000_host)->ISTR;
diff --git a/drivers/scsi/aacraid/rx.c b/drivers/scsi/aacraid/rx.c
index a1d214d770eb..dcc8b0ea7a9d 100644
--- a/drivers/scsi/aacraid/rx.c
+++ b/drivers/scsi/aacraid/rx.c
@@ -46,11 +46,11 @@
46 46
47#include "aacraid.h" 47#include "aacraid.h"
48 48
49static irqreturn_t aac_rx_intr(int irq, void *dev_id, struct pt_regs *regs) 49static irqreturn_t aac_rx_intr(int irq, void *dev_id)
50{ 50{
51 struct aac_dev *dev = dev_id; 51 struct aac_dev *dev = dev_id;
52 52
53 dprintk((KERN_DEBUG "aac_rx_intr(%d,%p,%p)\n", irq, dev_id, regs)); 53 dprintk((KERN_DEBUG "aac_rx_intr(%d,%p)\n", irq, dev_id));
54 if (dev->new_comm_interface) { 54 if (dev->new_comm_interface) {
55 u32 Index = rx_readl(dev, MUnit.OutboundQueue); 55 u32 Index = rx_readl(dev, MUnit.OutboundQueue);
56 if (Index == 0xFFFFFFFFL) 56 if (Index == 0xFFFFFFFFL)
diff --git a/drivers/scsi/aacraid/sa.c b/drivers/scsi/aacraid/sa.c
index f906ead239dd..511b0a938fb1 100644
--- a/drivers/scsi/aacraid/sa.c
+++ b/drivers/scsi/aacraid/sa.c
@@ -46,7 +46,7 @@
46 46
47#include "aacraid.h" 47#include "aacraid.h"
48 48
49static irqreturn_t aac_sa_intr(int irq, void *dev_id, struct pt_regs *regs) 49static irqreturn_t aac_sa_intr(int irq, void *dev_id)
50{ 50{
51 struct aac_dev *dev = dev_id; 51 struct aac_dev *dev = dev_id;
52 unsigned short intstat, mask; 52 unsigned short intstat, mask;
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 773f02e3b10b..83695416b2c9 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -3999,7 +3999,7 @@ STATIC PortAddr _asc_def_iop_base[];
3999 * advansys.h contains function prototypes for functions global to Linux. 3999 * advansys.h contains function prototypes for functions global to Linux.
4000 */ 4000 */
4001 4001
4002STATIC irqreturn_t advansys_interrupt(int, void *, struct pt_regs *); 4002STATIC irqreturn_t advansys_interrupt(int, void *);
4003STATIC int advansys_slave_configure(struct scsi_device *); 4003STATIC int advansys_slave_configure(struct scsi_device *);
4004STATIC void asc_scsi_done_list(struct scsi_cmnd *); 4004STATIC void asc_scsi_done_list(struct scsi_cmnd *);
4005STATIC int asc_execute_scsi_cmnd(struct scsi_cmnd *); 4005STATIC int asc_execute_scsi_cmnd(struct scsi_cmnd *);
@@ -5997,7 +5997,7 @@ static struct scsi_host_template driver_template = {
5997 * an AdvanSys adapter. 5997 * an AdvanSys adapter.
5998 */ 5998 */
5999STATIC irqreturn_t 5999STATIC irqreturn_t
6000advansys_interrupt(int irq, void *dev_id, struct pt_regs *regs) 6000advansys_interrupt(int irq, void *dev_id)
6001{ 6001{
6002 ulong flags; 6002 ulong flags;
6003 int i; 6003 int i;
diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index fb6a476eb873..e04c2bc1932b 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -673,7 +673,7 @@ static struct {
673}; 673};
674 674
675/* setup & interrupt */ 675/* setup & interrupt */
676static irqreturn_t intr(int irq, void *dev_id, struct pt_regs *); 676static irqreturn_t intr(int irq, void *dev_id);
677static void reset_ports(struct Scsi_Host *shpnt); 677static void reset_ports(struct Scsi_Host *shpnt);
678static void aha152x_error(struct Scsi_Host *shpnt, char *msg); 678static void aha152x_error(struct Scsi_Host *shpnt, char *msg);
679static void done(struct Scsi_Host *shpnt, int error); 679static void done(struct Scsi_Host *shpnt, int error);
@@ -757,7 +757,7 @@ static inline Scsi_Cmnd *remove_SC(Scsi_Cmnd **SC, Scsi_Cmnd *SCp)
757 return ptr; 757 return ptr;
758} 758}
759 759
760static irqreturn_t swintr(int irqno, void *dev_id, struct pt_regs *regs) 760static irqreturn_t swintr(int irqno, void *dev_id)
761{ 761{
762 struct Scsi_Host *shpnt = (struct Scsi_Host *)dev_id; 762 struct Scsi_Host *shpnt = (struct Scsi_Host *)dev_id;
763 763
@@ -1463,7 +1463,7 @@ static void run(void)
1463 * Interrupt handler 1463 * Interrupt handler
1464 * 1464 *
1465 */ 1465 */
1466static irqreturn_t intr(int irqno, void *dev_id, struct pt_regs *regs) 1466static irqreturn_t intr(int irqno, void *dev_id)
1467{ 1467{
1468 struct Scsi_Host *shpnt = (struct Scsi_Host *)dev_id; 1468 struct Scsi_Host *shpnt = (struct Scsi_Host *)dev_id;
1469 unsigned long flags; 1469 unsigned long flags;
diff --git a/drivers/scsi/aha1542.c b/drivers/scsi/aha1542.c
index 24f0f5461792..d7a61a6bdaae 100644
--- a/drivers/scsi/aha1542.c
+++ b/drivers/scsi/aha1542.c
@@ -174,9 +174,8 @@ static DEFINE_SPINLOCK(aha1542_lock);
174 174
175static void setup_mailboxes(int base_io, struct Scsi_Host *shpnt); 175static void setup_mailboxes(int base_io, struct Scsi_Host *shpnt);
176static int aha1542_restart(struct Scsi_Host *shost); 176static int aha1542_restart(struct Scsi_Host *shost);
177static void aha1542_intr_handle(struct Scsi_Host *shost, void *dev_id, struct pt_regs *regs); 177static void aha1542_intr_handle(struct Scsi_Host *shost, void *dev_id);
178static irqreturn_t do_aha1542_intr_handle(int irq, void *dev_id, 178static irqreturn_t do_aha1542_intr_handle(int irq, void *dev_id);
179 struct pt_regs *regs);
180 179
181#define aha1542_intr_reset(base) outb(IRST, CONTROL(base)) 180#define aha1542_intr_reset(base) outb(IRST, CONTROL(base))
182 181
@@ -416,8 +415,7 @@ fail:
416} 415}
417 416
418/* A quick wrapper for do_aha1542_intr_handle to grab the spin lock */ 417/* A quick wrapper for do_aha1542_intr_handle to grab the spin lock */
419static irqreturn_t do_aha1542_intr_handle(int irq, void *dev_id, 418static irqreturn_t do_aha1542_intr_handle(int irq, void *dev_id)
420 struct pt_regs *regs)
421{ 419{
422 unsigned long flags; 420 unsigned long flags;
423 struct Scsi_Host *shost; 421 struct Scsi_Host *shost;
@@ -427,13 +425,13 @@ static irqreturn_t do_aha1542_intr_handle(int irq, void *dev_id,
427 panic("Splunge!"); 425 panic("Splunge!");
428 426
429 spin_lock_irqsave(shost->host_lock, flags); 427 spin_lock_irqsave(shost->host_lock, flags);
430 aha1542_intr_handle(shost, dev_id, regs); 428 aha1542_intr_handle(shost, dev_id);
431 spin_unlock_irqrestore(shost->host_lock, flags); 429 spin_unlock_irqrestore(shost->host_lock, flags);
432 return IRQ_HANDLED; 430 return IRQ_HANDLED;
433} 431}
434 432
435/* A "high" level interrupt handler */ 433/* A "high" level interrupt handler */
436static void aha1542_intr_handle(struct Scsi_Host *shost, void *dev_id, struct pt_regs *regs) 434static void aha1542_intr_handle(struct Scsi_Host *shost, void *dev_id)
437{ 435{
438 void (*my_done) (Scsi_Cmnd *) = NULL; 436 void (*my_done) (Scsi_Cmnd *) = NULL;
439 int errstatus, mbi, mbo, mbistatus; 437 int errstatus, mbi, mbo, mbistatus;
diff --git a/drivers/scsi/aha1740.c b/drivers/scsi/aha1740.c
index 6b35ed8301e0..c3c38a7e8d32 100644
--- a/drivers/scsi/aha1740.c
+++ b/drivers/scsi/aha1740.c
@@ -223,8 +223,7 @@ static int aha1740_test_port(unsigned int base)
223} 223}
224 224
225/* A "high" level interrupt handler */ 225/* A "high" level interrupt handler */
226static irqreturn_t aha1740_intr_handle(int irq, void *dev_id, 226static irqreturn_t aha1740_intr_handle(int irq, void *dev_id)
227 struct pt_regs *regs)
228{ 227{
229 struct Scsi_Host *host = (struct Scsi_Host *) dev_id; 228 struct Scsi_Host *host = (struct Scsi_Host *) dev_id;
230 void (*my_done)(Scsi_Cmnd *); 229 void (*my_done)(Scsi_Cmnd *);
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c
index 1faa008b5b81..f8e60486167d 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.c
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.c
@@ -1557,7 +1557,7 @@ ahd_linux_run_command(struct ahd_softc *ahd, struct ahd_linux_device *dev,
1557 * SCSI controller interrupt handler. 1557 * SCSI controller interrupt handler.
1558 */ 1558 */
1559irqreturn_t 1559irqreturn_t
1560ahd_linux_isr(int irq, void *dev_id, struct pt_regs * regs) 1560ahd_linux_isr(int irq, void *dev_id)
1561{ 1561{
1562 struct ahd_softc *ahd; 1562 struct ahd_softc *ahd;
1563 u_long flags; 1563 u_long flags;
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.h b/drivers/scsi/aic7xxx/aic79xx_osm.h
index 601340d84410..fb3d4dd54413 100644
--- a/drivers/scsi/aic7xxx/aic79xx_osm.h
+++ b/drivers/scsi/aic7xxx/aic79xx_osm.h
@@ -862,7 +862,7 @@ int ahd_platform_abort_scbs(struct ahd_softc *ahd, int target,
862 char channel, int lun, u_int tag, 862 char channel, int lun, u_int tag,
863 role_t role, uint32_t status); 863 role_t role, uint32_t status);
864irqreturn_t 864irqreturn_t
865 ahd_linux_isr(int irq, void *dev_id, struct pt_regs * regs); 865 ahd_linux_isr(int irq, void *dev_id);
866void ahd_done(struct ahd_softc*, struct scb*); 866void ahd_done(struct ahd_softc*, struct scb*);
867void ahd_send_async(struct ahd_softc *, char channel, 867void ahd_send_async(struct ahd_softc *, char channel,
868 u_int target, u_int lun, ac_code); 868 u_int target, u_int lun, ac_code);
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c
index 339b85cb61cd..43ab753d2739 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_osm.c
+++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c
@@ -1608,7 +1608,7 @@ ahc_linux_run_command(struct ahc_softc *ahc, struct ahc_linux_device *dev,
1608 * SCSI controller interrupt handler. 1608 * SCSI controller interrupt handler.
1609 */ 1609 */
1610irqreturn_t 1610irqreturn_t
1611ahc_linux_isr(int irq, void *dev_id, struct pt_regs * regs) 1611ahc_linux_isr(int irq, void *dev_id)
1612{ 1612{
1613 struct ahc_softc *ahc; 1613 struct ahc_softc *ahc;
1614 u_long flags; 1614 u_long flags;
diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.h b/drivers/scsi/aic7xxx/aic7xxx_osm.h
index d42a71ee076d..a87a4ce090df 100644
--- a/drivers/scsi/aic7xxx/aic7xxx_osm.h
+++ b/drivers/scsi/aic7xxx/aic7xxx_osm.h
@@ -830,7 +830,7 @@ int ahc_platform_abort_scbs(struct ahc_softc *ahc, int target,
830 char channel, int lun, u_int tag, 830 char channel, int lun, u_int tag,
831 role_t role, uint32_t status); 831 role_t role, uint32_t status);
832irqreturn_t 832irqreturn_t
833 ahc_linux_isr(int irq, void *dev_id, struct pt_regs * regs); 833 ahc_linux_isr(int irq, void *dev_id);
834void ahc_platform_flushwork(struct ahc_softc *ahc); 834void ahc_platform_flushwork(struct ahc_softc *ahc);
835void ahc_done(struct ahc_softc*, struct scb*); 835void ahc_done(struct ahc_softc*, struct scb*);
836void ahc_send_async(struct ahc_softc *, char channel, 836void ahc_send_async(struct ahc_softc *, char channel,
diff --git a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c
index 3eae8062a02e..7f0adf9c4c7e 100644
--- a/drivers/scsi/aic7xxx_old.c
+++ b/drivers/scsi/aic7xxx_old.c
@@ -6345,7 +6345,7 @@ aic7xxx_handle_command_completion_intr(struct aic7xxx_host *p)
6345 * SCSI controller interrupt handler. 6345 * SCSI controller interrupt handler.
6346 *-F*************************************************************************/ 6346 *-F*************************************************************************/
6347static void 6347static void
6348aic7xxx_isr(int irq, void *dev_id, struct pt_regs *regs) 6348aic7xxx_isr(int irq, void *dev_id)
6349{ 6349{
6350 struct aic7xxx_host *p; 6350 struct aic7xxx_host *p;
6351 unsigned char intstat; 6351 unsigned char intstat;
@@ -6477,7 +6477,7 @@ aic7xxx_isr(int irq, void *dev_id, struct pt_regs *regs)
6477 * anything like it, please inform the Gross Hack Police immediately 6477 * anything like it, please inform the Gross Hack Police immediately
6478 *-F*************************************************************************/ 6478 *-F*************************************************************************/
6479static irqreturn_t 6479static irqreturn_t
6480do_aic7xxx_isr(int irq, void *dev_id, struct pt_regs *regs) 6480do_aic7xxx_isr(int irq, void *dev_id)
6481{ 6481{
6482 unsigned long cpu_flags; 6482 unsigned long cpu_flags;
6483 struct aic7xxx_host *p; 6483 struct aic7xxx_host *p;
@@ -6489,7 +6489,7 @@ do_aic7xxx_isr(int irq, void *dev_id, struct pt_regs *regs)
6489 p->flags |= AHC_IN_ISR; 6489 p->flags |= AHC_IN_ISR;
6490 do 6490 do
6491 { 6491 {
6492 aic7xxx_isr(irq, dev_id, regs); 6492 aic7xxx_isr(irq, dev_id);
6493 } while ( (aic_inb(p, INTSTAT) & INT_PEND) ); 6493 } while ( (aic_inb(p, INTSTAT) & INT_PEND) );
6494 aic7xxx_done_cmds_complete(p); 6494 aic7xxx_done_cmds_complete(p);
6495 aic7xxx_run_waiting_queues(p); 6495 aic7xxx_run_waiting_queues(p);
@@ -10377,7 +10377,7 @@ static int __aic7xxx_bus_device_reset(struct scsi_cmnd *cmd)
10377 10377
10378 hscb = scb->hscb; 10378 hscb = scb->hscb;
10379 10379
10380 aic7xxx_isr(p->irq, (void *)p, NULL); 10380 aic7xxx_isr(p->irq, (void *)p);
10381 aic7xxx_done_cmds_complete(p); 10381 aic7xxx_done_cmds_complete(p);
10382 /* If the command was already complete or just completed, then we didn't 10382 /* If the command was already complete or just completed, then we didn't
10383 * do a reset, return FAILED */ 10383 * do a reset, return FAILED */
@@ -10608,7 +10608,7 @@ static int __aic7xxx_abort(struct scsi_cmnd *cmd)
10608 else 10608 else
10609 return FAILED; 10609 return FAILED;
10610 10610
10611 aic7xxx_isr(p->irq, (void *)p, NULL); 10611 aic7xxx_isr(p->irq, (void *)p);
10612 aic7xxx_done_cmds_complete(p); 10612 aic7xxx_done_cmds_complete(p);
10613 /* If the command was already complete or just completed, then we didn't 10613 /* If the command was already complete or just completed, then we didn't
10614 * do a reset, return FAILED */ 10614 * do a reset, return FAILED */
@@ -10863,7 +10863,7 @@ static int aic7xxx_reset(struct scsi_cmnd *cmd)
10863 10863
10864 while((aic_inb(p, INTSTAT) & INT_PEND) && !(p->flags & AHC_IN_ISR)) 10864 while((aic_inb(p, INTSTAT) & INT_PEND) && !(p->flags & AHC_IN_ISR))
10865 { 10865 {
10866 aic7xxx_isr(p->irq, p, (void *)NULL ); 10866 aic7xxx_isr(p->irq, p);
10867 pause_sequencer(p); 10867 pause_sequencer(p);
10868 } 10868 }
10869 aic7xxx_done_cmds_complete(p); 10869 aic7xxx_done_cmds_complete(p);
diff --git a/drivers/scsi/aic94xx/aic94xx_hwi.c b/drivers/scsi/aic94xx/aic94xx_hwi.c
index 1d8c5e5f442e..3c2d7a379931 100644
--- a/drivers/scsi/aic94xx/aic94xx_hwi.c
+++ b/drivers/scsi/aic94xx/aic94xx_hwi.c
@@ -996,11 +996,10 @@ static inline void asd_hst_pcix_isr(struct asd_ha_struct *asd_ha)
996 * asd_hw_isr -- host adapter interrupt service routine 996 * asd_hw_isr -- host adapter interrupt service routine
997 * @irq: ignored 997 * @irq: ignored
998 * @dev_id: pointer to host adapter structure 998 * @dev_id: pointer to host adapter structure
999 * @regs: ignored
1000 * 999 *
1001 * The ISR processes done list entries and level 3 error handling. 1000 * The ISR processes done list entries and level 3 error handling.
1002 */ 1001 */
1003irqreturn_t asd_hw_isr(int irq, void *dev_id, struct pt_regs *regs) 1002irqreturn_t asd_hw_isr(int irq, void *dev_id)
1004{ 1003{
1005 struct asd_ha_struct *asd_ha = dev_id; 1004 struct asd_ha_struct *asd_ha = dev_id;
1006 u32 chimint = asd_read_reg_dword(asd_ha, CHIMINT); 1005 u32 chimint = asd_read_reg_dword(asd_ha, CHIMINT);
diff --git a/drivers/scsi/aic94xx/aic94xx_hwi.h b/drivers/scsi/aic94xx/aic94xx_hwi.h
index 8498144aa5e1..14319d1d6804 100644
--- a/drivers/scsi/aic94xx/aic94xx_hwi.h
+++ b/drivers/scsi/aic94xx/aic94xx_hwi.h
@@ -371,7 +371,7 @@ static inline void asd_ascb_free_list(struct asd_ascb *ascb_list)
371/* ---------- Function declarations ---------- */ 371/* ---------- Function declarations ---------- */
372 372
373int asd_init_hw(struct asd_ha_struct *asd_ha); 373int asd_init_hw(struct asd_ha_struct *asd_ha);
374irqreturn_t asd_hw_isr(int irq, void *dev_id, struct pt_regs *regs); 374irqreturn_t asd_hw_isr(int irq, void *dev_id);
375 375
376 376
377struct asd_ascb *asd_ascb_alloc_list(struct asd_ha_struct 377struct asd_ascb *asd_ascb_alloc_list(struct asd_ha_struct
diff --git a/drivers/scsi/amiga7xx.h b/drivers/scsi/amiga7xx.h
index 1b637592d5ae..7cd63a996886 100644
--- a/drivers/scsi/amiga7xx.h
+++ b/drivers/scsi/amiga7xx.h
@@ -8,7 +8,7 @@ int NCR53c7xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
8int NCR53c7xx_abort(Scsi_Cmnd *); 8int NCR53c7xx_abort(Scsi_Cmnd *);
9int NCR53c7x0_release (struct Scsi_Host *); 9int NCR53c7x0_release (struct Scsi_Host *);
10int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int); 10int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int);
11void NCR53c7x0_intr(int irq, void *dev_id, struct pt_regs * regs); 11void NCR53c7x0_intr(int irq, void *dev_id);
12 12
13#ifndef CMD_PER_LUN 13#ifndef CMD_PER_LUN
14#define CMD_PER_LUN 3 14#define CMD_PER_LUN 3
diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
index 475f978ff8f0..086cc97eee8c 100644
--- a/drivers/scsi/arcmsr/arcmsr_hba.c
+++ b/drivers/scsi/arcmsr/arcmsr_hba.c
@@ -147,8 +147,7 @@ static struct pci_driver arcmsr_pci_driver = {
147 .shutdown = arcmsr_shutdown 147 .shutdown = arcmsr_shutdown
148}; 148};
149 149
150static irqreturn_t arcmsr_do_interrupt(int irq, void *dev_id, 150static irqreturn_t arcmsr_do_interrupt(int irq, void *dev_id)
151 struct pt_regs *regs)
152{ 151{
153 irqreturn_t handle_state; 152 irqreturn_t handle_state;
154 struct AdapterControlBlock *acb; 153 struct AdapterControlBlock *acb;
diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c
index 0525d672e1e6..9cf902b7a126 100644
--- a/drivers/scsi/arm/acornscsi.c
+++ b/drivers/scsi/arm/acornscsi.c
@@ -2461,14 +2461,13 @@ intr_ret_t acornscsi_sbicintr(AS_Host *host, int in_irq)
2461} 2461}
2462 2462
2463/* 2463/*
2464 * Prototype: void acornscsi_intr(int irq, void *dev_id, struct pt_regs *regs) 2464 * Prototype: void acornscsi_intr(int irq, void *dev_id)
2465 * Purpose : handle interrupts from Acorn SCSI card 2465 * Purpose : handle interrupts from Acorn SCSI card
2466 * Params : irq - interrupt number 2466 * Params : irq - interrupt number
2467 * dev_id - device specific data (AS_Host structure) 2467 * dev_id - device specific data (AS_Host structure)
2468 * regs - processor registers when interrupt occurred
2469 */ 2468 */
2470static irqreturn_t 2469static irqreturn_t
2471acornscsi_intr(int irq, void *dev_id, struct pt_regs *regs) 2470acornscsi_intr(int irq, void *dev_id)
2472{ 2471{
2473 AS_Host *host = (AS_Host *)dev_id; 2472 AS_Host *host = (AS_Host *)dev_id;
2474 intr_ret_t ret; 2473 intr_ret_t ret;
diff --git a/drivers/scsi/arm/cumana_2.c b/drivers/scsi/arm/cumana_2.c
index 719af0dcc0e5..19edd9c853d9 100644
--- a/drivers/scsi/arm/cumana_2.c
+++ b/drivers/scsi/arm/cumana_2.c
@@ -137,10 +137,9 @@ cumanascsi_2_terminator_ctl(struct Scsi_Host *host, int on_off)
137 * Purpose : handle interrupts from Cumana SCSI 2 card 137 * Purpose : handle interrupts from Cumana SCSI 2 card
138 * Params : irq - interrupt number 138 * Params : irq - interrupt number
139 * dev_id - user-defined (Scsi_Host structure) 139 * dev_id - user-defined (Scsi_Host structure)
140 * regs - processor registers at interrupt
141 */ 140 */
142static irqreturn_t 141static irqreturn_t
143cumanascsi_2_intr(int irq, void *dev_id, struct pt_regs *regs) 142cumanascsi_2_intr(int irq, void *dev_id)
144{ 143{
145 struct cumanascsi2_info *info = dev_id; 144 struct cumanascsi2_info *info = dev_id;
146 145
diff --git a/drivers/scsi/arm/eesox.c b/drivers/scsi/arm/eesox.c
index dcbb4b2b3fe0..3f876fb75469 100644
--- a/drivers/scsi/arm/eesox.c
+++ b/drivers/scsi/arm/eesox.c
@@ -138,10 +138,9 @@ eesoxscsi_terminator_ctl(struct Scsi_Host *host, int on_off)
138 * Purpose : handle interrupts from EESOX SCSI card 138 * Purpose : handle interrupts from EESOX SCSI card
139 * Params : irq - interrupt number 139 * Params : irq - interrupt number
140 * dev_id - user-defined (Scsi_Host structure) 140 * dev_id - user-defined (Scsi_Host structure)
141 * regs - processor registers at interrupt
142 */ 141 */
143static irqreturn_t 142static irqreturn_t
144eesoxscsi_intr(int irq, void *dev_id, struct pt_regs *regs) 143eesoxscsi_intr(int irq, void *dev_id)
145{ 144{
146 struct eesoxscsi_info *info = dev_id; 145 struct eesoxscsi_info *info = dev_id;
147 146
diff --git a/drivers/scsi/arm/powertec.c b/drivers/scsi/arm/powertec.c
index b2c346a47052..ce159c15bc86 100644
--- a/drivers/scsi/arm/powertec.c
+++ b/drivers/scsi/arm/powertec.c
@@ -112,10 +112,8 @@ powertecscsi_terminator_ctl(struct Scsi_Host *host, int on_off)
112 * Purpose : handle interrupts from Powertec SCSI card 112 * Purpose : handle interrupts from Powertec SCSI card
113 * Params : irq - interrupt number 113 * Params : irq - interrupt number
114 * dev_id - user-defined (Scsi_Host structure) 114 * dev_id - user-defined (Scsi_Host structure)
115 * regs - processor registers at interrupt
116 */ 115 */
117static irqreturn_t 116static irqreturn_t powertecscsi_intr(int irq, void *dev_id)
118powertecscsi_intr(int irq, void *dev_id, struct pt_regs *regs)
119{ 117{
120 struct powertec_info *info = dev_id; 118 struct powertec_info *info = dev_id;
121 119
diff --git a/drivers/scsi/atari_NCR5380.c b/drivers/scsi/atari_NCR5380.c
index e397129c90d1..0f920c84ac0f 100644
--- a/drivers/scsi/atari_NCR5380.c
+++ b/drivers/scsi/atari_NCR5380.c
@@ -1262,7 +1262,7 @@ static void NCR5380_dma_complete( struct Scsi_Host *instance )
1262 * 1262 *
1263 */ 1263 */
1264 1264
1265static irqreturn_t NCR5380_intr (int irq, void *dev_id, struct pt_regs *regs) 1265static irqreturn_t NCR5380_intr (int irq, void *dev_id)
1266{ 1266{
1267 struct Scsi_Host *instance = first_instance; 1267 struct Scsi_Host *instance = first_instance;
1268 int done = 1, handled = 0; 1268 int done = 1, handled = 0;
diff --git a/drivers/scsi/atari_dma_emul.c b/drivers/scsi/atari_dma_emul.c
index 8d5d2a5da961..cdc710ea00fa 100644
--- a/drivers/scsi/atari_dma_emul.c
+++ b/drivers/scsi/atari_dma_emul.c
@@ -110,7 +110,7 @@ static inline void set_restdata_reg(unsigned char *cur_addr)
110} 110}
111 111
112/* 112/*
113 * void hades_dma_emulator(int irq, void *dummy, struct pt_regs *fp) 113 * void hades_dma_emulator(int irq, void *dummy)
114 * 114 *
115 * This code emulates TT SCSI DMA on the Hades. 115 * This code emulates TT SCSI DMA on the Hades.
116 * 116 *
@@ -140,7 +140,7 @@ static inline void set_restdata_reg(unsigned char *cur_addr)
140 * increased with one. 140 * increased with one.
141 */ 141 */
142 142
143static irqreturn_t hades_dma_emulator(int irq, void *dummy, struct pt_regs *fp) 143static irqreturn_t hades_dma_emulator(int irq, void *dummy)
144{ 144{
145 unsigned long dma_base; 145 unsigned long dma_base;
146 register unsigned long dma_cnt asm ("d3"); 146 register unsigned long dma_cnt asm ("d3");
diff --git a/drivers/scsi/atari_scsi.c b/drivers/scsi/atari_scsi.c
index e1be4a4387cd..dfb1bcfae82e 100644
--- a/drivers/scsi/atari_scsi.c
+++ b/drivers/scsi/atari_scsi.c
@@ -194,8 +194,8 @@ static int falcon_classify_cmd( Scsi_Cmnd *cmd );
194static unsigned long atari_dma_xfer_len( unsigned long wanted_len, 194static unsigned long atari_dma_xfer_len( unsigned long wanted_len,
195 Scsi_Cmnd *cmd, int write_flag ); 195 Scsi_Cmnd *cmd, int write_flag );
196#endif 196#endif
197static irqreturn_t scsi_tt_intr( int irq, void *dummy, struct pt_regs *fp); 197static irqreturn_t scsi_tt_intr( int irq, void *dummy);
198static irqreturn_t scsi_falcon_intr( int irq, void *dummy, struct pt_regs *fp); 198static irqreturn_t scsi_falcon_intr( int irq, void *dummy);
199static void falcon_release_lock_if_possible( struct NCR5380_hostdata * 199static void falcon_release_lock_if_possible( struct NCR5380_hostdata *
200 hostdata ); 200 hostdata );
201static void falcon_get_lock( void ); 201static void falcon_get_lock( void );
@@ -285,7 +285,7 @@ static int scsi_dma_is_ignored_buserr( unsigned char dma_stat )
285 * end-of-DMA, both SCSI ints are triggered simultaneously, so the NCR int has 285 * end-of-DMA, both SCSI ints are triggered simultaneously, so the NCR int has
286 * to clear the DMA int pending bit before it allows other level 6 interrupts. 286 * to clear the DMA int pending bit before it allows other level 6 interrupts.
287 */ 287 */
288static void scsi_dma_buserr (int irq, void *dummy, struct pt_regs *fp) 288static void scsi_dma_buserr (int irq, void *dummy)
289{ 289{
290 unsigned char dma_stat = tt_scsi_dma.dma_ctrl; 290 unsigned char dma_stat = tt_scsi_dma.dma_ctrl;
291 291
@@ -314,7 +314,7 @@ static void scsi_dma_buserr (int irq, void *dummy, struct pt_regs *fp)
314#endif 314#endif
315 315
316 316
317static irqreturn_t scsi_tt_intr (int irq, void *dummy, struct pt_regs *fp) 317static irqreturn_t scsi_tt_intr (int irq, void *dummy)
318{ 318{
319#ifdef REAL_DMA 319#ifdef REAL_DMA
320 int dma_stat; 320 int dma_stat;
@@ -406,7 +406,7 @@ static irqreturn_t scsi_tt_intr (int irq, void *dummy, struct pt_regs *fp)
406} 406}
407 407
408 408
409static irqreturn_t scsi_falcon_intr (int irq, void *dummy, struct pt_regs *fp) 409static irqreturn_t scsi_falcon_intr (int irq, void *dummy)
410{ 410{
411#ifdef REAL_DMA 411#ifdef REAL_DMA
412 int dma_stat; 412 int dma_stat;
diff --git a/drivers/scsi/atp870u.c b/drivers/scsi/atp870u.c
index 0ec41f34f462..fec58cc47f1c 100644
--- a/drivers/scsi/atp870u.c
+++ b/drivers/scsi/atp870u.c
@@ -44,7 +44,7 @@ static void send_s870(struct atp_unit *dev,unsigned char c);
44static void is885(struct atp_unit *dev, unsigned int wkport,unsigned char c); 44static void is885(struct atp_unit *dev, unsigned int wkport,unsigned char c);
45static void tscam_885(void); 45static void tscam_885(void);
46 46
47static irqreturn_t atp870u_intr_handle(int irq, void *dev_id, struct pt_regs *regs) 47static irqreturn_t atp870u_intr_handle(int irq, void *dev_id)
48{ 48{
49 unsigned long flags; 49 unsigned long flags;
50 unsigned short int tmpcip, id; 50 unsigned short int tmpcip, id;
diff --git a/drivers/scsi/bvme6000.h b/drivers/scsi/bvme6000.h
index 7c9c0366cc08..ea3e4b2b9220 100644
--- a/drivers/scsi/bvme6000.h
+++ b/drivers/scsi/bvme6000.h
@@ -9,7 +9,7 @@ int NCR53c7xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
9int NCR53c7xx_abort(Scsi_Cmnd *); 9int NCR53c7xx_abort(Scsi_Cmnd *);
10int NCR53c7x0_release (struct Scsi_Host *); 10int NCR53c7x0_release (struct Scsi_Host *);
11int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int); 11int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int);
12void NCR53c7x0_intr(int irq, void *dev_id, struct pt_regs * regs); 12void NCR53c7x0_intr(int irq, void *dev_id);
13 13
14#ifndef CMD_PER_LUN 14#ifndef CMD_PER_LUN
15#define CMD_PER_LUN 3 15#define CMD_PER_LUN 3
diff --git a/drivers/scsi/dc395x.c b/drivers/scsi/dc395x.c
index c6118d99385e..81e3ee51d897 100644
--- a/drivers/scsi/dc395x.c
+++ b/drivers/scsi/dc395x.c
@@ -1813,8 +1813,7 @@ static void dc395x_handle_interrupt(struct AdapterCtlBlk *acb,
1813} 1813}
1814 1814
1815 1815
1816static irqreturn_t dc395x_interrupt(int irq, void *dev_id, 1816static irqreturn_t dc395x_interrupt(int irq, void *dev_id)
1817 struct pt_regs *regs)
1818{ 1817{
1819 struct AdapterCtlBlk *acb = (struct AdapterCtlBlk *)dev_id; 1818 struct AdapterCtlBlk *acb = (struct AdapterCtlBlk *)dev_id;
1820 u16 scsi_status; 1819 u16 scsi_status;
diff --git a/drivers/scsi/dec_esp.c b/drivers/scsi/dec_esp.c
index eb32062f7e68..c29ccbc44693 100644
--- a/drivers/scsi/dec_esp.c
+++ b/drivers/scsi/dec_esp.c
@@ -94,9 +94,9 @@ volatile unsigned char pmaz_cmd_buffer[16];
94 * via PIO. 94 * via PIO.
95 */ 95 */
96 96
97static irqreturn_t scsi_dma_merr_int(int, void *, struct pt_regs *); 97static irqreturn_t scsi_dma_merr_int(int, void *);
98static irqreturn_t scsi_dma_err_int(int, void *, struct pt_regs *); 98static irqreturn_t scsi_dma_err_int(int, void *);
99static irqreturn_t scsi_dma_int(int, void *, struct pt_regs *); 99static irqreturn_t scsi_dma_int(int, void *);
100 100
101static int dec_esp_detect(struct scsi_host_template * tpnt); 101static int dec_esp_detect(struct scsi_host_template * tpnt);
102 102
@@ -307,7 +307,7 @@ err_dealloc:
307} 307}
308 308
309/************************************************************* DMA Functions */ 309/************************************************************* DMA Functions */
310static irqreturn_t scsi_dma_merr_int(int irq, void *dev_id, struct pt_regs *regs) 310static irqreturn_t scsi_dma_merr_int(int irq, void *dev_id)
311{ 311{
312 printk("Got unexpected SCSI DMA Interrupt! < "); 312 printk("Got unexpected SCSI DMA Interrupt! < ");
313 printk("SCSI_DMA_MEMRDERR "); 313 printk("SCSI_DMA_MEMRDERR ");
@@ -316,14 +316,14 @@ static irqreturn_t scsi_dma_merr_int(int irq, void *dev_id, struct pt_regs *regs
316 return IRQ_HANDLED; 316 return IRQ_HANDLED;
317} 317}
318 318
319static irqreturn_t scsi_dma_err_int(int irq, void *dev_id, struct pt_regs *regs) 319static irqreturn_t scsi_dma_err_int(int irq, void *dev_id)
320{ 320{
321 /* empty */ 321 /* empty */
322 322
323 return IRQ_HANDLED; 323 return IRQ_HANDLED;
324} 324}
325 325
326static irqreturn_t scsi_dma_int(int irq, void *dev_id, struct pt_regs *regs) 326static irqreturn_t scsi_dma_int(int irq, void *dev_id)
327{ 327{
328 u32 scsi_next_ptr; 328 u32 scsi_next_ptr;
329 329
diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
index b20b37661d6f..60b1b434eba7 100644
--- a/drivers/scsi/dpt_i2o.c
+++ b/drivers/scsi/dpt_i2o.c
@@ -1989,7 +1989,7 @@ static int adpt_ioctl(struct inode *inode, struct file *file, uint cmd,
1989} 1989}
1990 1990
1991 1991
1992static irqreturn_t adpt_isr(int irq, void *dev_id, struct pt_regs *regs) 1992static irqreturn_t adpt_isr(int irq, void *dev_id)
1993{ 1993{
1994 struct scsi_cmnd* cmd; 1994 struct scsi_cmnd* cmd;
1995 adpt_hba* pHba = dev_id; 1995 adpt_hba* pHba = dev_id;
diff --git a/drivers/scsi/dpti.h b/drivers/scsi/dpti.h
index 289983264929..fd79068c5869 100644
--- a/drivers/scsi/dpti.h
+++ b/drivers/scsi/dpti.h
@@ -263,7 +263,7 @@ struct sg_simple_element {
263static void adpt_i2o_sys_shutdown(void); 263static void adpt_i2o_sys_shutdown(void);
264static int adpt_init(void); 264static int adpt_init(void);
265static int adpt_i2o_build_sys_table(void); 265static int adpt_i2o_build_sys_table(void);
266static irqreturn_t adpt_isr(int irq, void *dev_id, struct pt_regs *regs); 266static irqreturn_t adpt_isr(int irq, void *dev_id);
267#ifdef REBOOT_NOTIFIER 267#ifdef REBOOT_NOTIFIER
268static int adpt_reboot_event(struct notifier_block *n, ulong code, void *p); 268static int adpt_reboot_event(struct notifier_block *n, ulong code, void *p);
269#endif 269#endif
diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c
index a5ff43b1b263..2d38025861a5 100644
--- a/drivers/scsi/eata.c
+++ b/drivers/scsi/eata.c
@@ -875,7 +875,7 @@ static unsigned long io_port[] = {
875/* But transfer orientation from the 16 bit data register is Little Endian */ 875/* But transfer orientation from the 16 bit data register is Little Endian */
876#define REG2H(x) le16_to_cpu(x) 876#define REG2H(x) le16_to_cpu(x)
877 877
878static irqreturn_t do_interrupt_handler(int, void *, struct pt_regs *); 878static irqreturn_t do_interrupt_handler(int, void *);
879static void flush_dev(struct scsi_device *, unsigned long, struct hostdata *, 879static void flush_dev(struct scsi_device *, unsigned long, struct hostdata *,
880 unsigned int); 880 unsigned int);
881static int do_trace = 0; 881static int do_trace = 0;
@@ -2555,8 +2555,7 @@ static irqreturn_t ihdlr(int irq, struct Scsi_Host *shost)
2555 return IRQ_NONE; 2555 return IRQ_NONE;
2556} 2556}
2557 2557
2558static irqreturn_t do_interrupt_handler(int irq, void *shap, 2558static irqreturn_t do_interrupt_handler(int irq, void *shap)
2559 struct pt_regs *regs)
2560{ 2559{
2561 struct Scsi_Host *shost; 2560 struct Scsi_Host *shost;
2562 unsigned int j; 2561 unsigned int j;
diff --git a/drivers/scsi/eata_pio.c b/drivers/scsi/eata_pio.c
index d312633db92b..811d8840707e 100644
--- a/drivers/scsi/eata_pio.c
+++ b/drivers/scsi/eata_pio.c
@@ -194,10 +194,9 @@ static void IncStat(struct scsi_pointer *SCp, unsigned int Increment)
194 } 194 }
195} 195}
196 196
197static irqreturn_t eata_pio_int_handler(int irq, void *dev_id, struct pt_regs *regs); 197static irqreturn_t eata_pio_int_handler(int irq, void *dev_id);
198 198
199static irqreturn_t do_eata_pio_int_handler(int irq, void *dev_id, 199static irqreturn_t do_eata_pio_int_handler(int irq, void *dev_id)
200 struct pt_regs *regs)
201{ 200{
202 unsigned long flags; 201 unsigned long flags;
203 struct Scsi_Host *dev = dev_id; 202 struct Scsi_Host *dev = dev_id;
@@ -209,7 +208,7 @@ static irqreturn_t do_eata_pio_int_handler(int irq, void *dev_id,
209 return ret; 208 return ret;
210} 209}
211 210
212static irqreturn_t eata_pio_int_handler(int irq, void *dev_id, struct pt_regs *regs) 211static irqreturn_t eata_pio_int_handler(int irq, void *dev_id)
213{ 212{
214 unsigned int eata_stat = 0xfffff; 213 unsigned int eata_stat = 0xfffff;
215 struct scsi_cmnd *cmd; 214 struct scsi_cmnd *cmd;
diff --git a/drivers/scsi/esp.c b/drivers/scsi/esp.c
index 5630868c1b25..2c2fe80bc42a 100644
--- a/drivers/scsi/esp.c
+++ b/drivers/scsi/esp.c
@@ -184,7 +184,7 @@ enum {
184}; 184};
185 185
186/* Forward declarations. */ 186/* Forward declarations. */
187static irqreturn_t esp_intr(int irq, void *dev_id, struct pt_regs *pregs); 187static irqreturn_t esp_intr(int irq, void *dev_id);
188 188
189/* Debugging routines */ 189/* Debugging routines */
190struct esp_cmdstrings { 190struct esp_cmdstrings {
@@ -4282,7 +4282,7 @@ state_machine:
4282} 4282}
4283 4283
4284/* Service only the ESP described by dev_id. */ 4284/* Service only the ESP described by dev_id. */
4285static irqreturn_t esp_intr(int irq, void *dev_id, struct pt_regs *pregs) 4285static irqreturn_t esp_intr(int irq, void *dev_id)
4286{ 4286{
4287 struct esp *esp = dev_id; 4287 struct esp *esp = dev_id;
4288 unsigned long flags; 4288 unsigned long flags;
diff --git a/drivers/scsi/fd_mcs.c b/drivers/scsi/fd_mcs.c
index dde3edf35c03..ef8285c326e4 100644
--- a/drivers/scsi/fd_mcs.c
+++ b/drivers/scsi/fd_mcs.c
@@ -281,7 +281,7 @@ static struct fd_mcs_adapters_struct fd_mcs_adapters[] = {
281 281
282#define FD_BRDS ARRAY_SIZE(fd_mcs_adapters) 282#define FD_BRDS ARRAY_SIZE(fd_mcs_adapters)
283 283
284static irqreturn_t fd_mcs_intr(int irq, void *dev_id, struct pt_regs *regs); 284static irqreturn_t fd_mcs_intr(int irq, void *dev_id);
285 285
286static unsigned long addresses[] = { 0xc8000, 0xca000, 0xce000, 0xde000 }; 286static unsigned long addresses[] = { 0xc8000, 0xca000, 0xce000, 0xde000 };
287static unsigned short ports[] = { 0x140, 0x150, 0x160, 0x170 }; 287static unsigned short ports[] = { 0x140, 0x150, 0x160, 0x170 };
@@ -617,7 +617,7 @@ static void my_done(struct Scsi_Host *shpnt, int error)
617} 617}
618 618
619/* only my_done needs to be protected */ 619/* only my_done needs to be protected */
620static irqreturn_t fd_mcs_intr(int irq, void *dev_id, struct pt_regs *regs) 620static irqreturn_t fd_mcs_intr(int irq, void *dev_id)
621{ 621{
622 unsigned long flags; 622 unsigned long flags;
623 int status; 623 int status;
diff --git a/drivers/scsi/fdomain.c b/drivers/scsi/fdomain.c
index b0694dcce246..41b05fc45380 100644
--- a/drivers/scsi/fdomain.c
+++ b/drivers/scsi/fdomain.c
@@ -403,8 +403,7 @@ static volatile int in_interrupt_flag;
403static int FIFO_Size = 0x2000; /* 8k FIFO for 403static int FIFO_Size = 0x2000; /* 8k FIFO for
404 pre-tmc18c30 chips */ 404 pre-tmc18c30 chips */
405 405
406static irqreturn_t do_fdomain_16x0_intr( int irq, void *dev_id, 406static irqreturn_t do_fdomain_16x0_intr( int irq, void *dev_id );
407 struct pt_regs * regs );
408/* Allow insmod parameters to be like LILO parameters. For example: 407/* Allow insmod parameters to be like LILO parameters. For example:
409 insmod fdomain fdomain=0x140,11 */ 408 insmod fdomain fdomain=0x140,11 */
410static char * fdomain = NULL; 409static char * fdomain = NULL;
@@ -1094,8 +1093,7 @@ static void my_done(int error)
1094#endif 1093#endif
1095} 1094}
1096 1095
1097static irqreturn_t do_fdomain_16x0_intr(int irq, void *dev_id, 1096static irqreturn_t do_fdomain_16x0_intr(int irq, void *dev_id)
1098 struct pt_regs * regs )
1099{ 1097{
1100 unsigned long flags; 1098 unsigned long flags;
1101 int status; 1099 int status;
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index 0f3eb22b979a..4bc14ad92e22 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -424,7 +424,7 @@
424 424
425static void gdth_delay(int milliseconds); 425static void gdth_delay(int milliseconds);
426static void gdth_eval_mapping(ulong32 size, ulong32 *cyls, int *heads, int *secs); 426static void gdth_eval_mapping(ulong32 size, ulong32 *cyls, int *heads, int *secs);
427static irqreturn_t gdth_interrupt(int irq, void *dev_id, struct pt_regs *regs); 427static irqreturn_t gdth_interrupt(int irq, void *dev_id);
428static int gdth_sync_event(int hanum,int service,unchar index,Scsi_Cmnd *scp); 428static int gdth_sync_event(int hanum,int service,unchar index,Scsi_Cmnd *scp);
429static int gdth_async_event(int hanum); 429static int gdth_async_event(int hanum);
430static void gdth_log_event(gdth_evt_data *dvr, char *buffer); 430static void gdth_log_event(gdth_evt_data *dvr, char *buffer);
@@ -1804,7 +1804,7 @@ static int gdth_wait(int hanum,int index,ulong32 time)
1804 1804
1805 gdth_from_wait = TRUE; 1805 gdth_from_wait = TRUE;
1806 do { 1806 do {
1807 gdth_interrupt((int)ha->irq,ha,NULL); 1807 gdth_interrupt((int)ha->irq,ha);
1808 if (wait_hanum==hanum && wait_index==index) { 1808 if (wait_hanum==hanum && wait_index==index) {
1809 answer_found = TRUE; 1809 answer_found = TRUE;
1810 break; 1810 break;
@@ -3406,7 +3406,7 @@ static void gdth_clear_events(void)
3406 3406
3407/* SCSI interface functions */ 3407/* SCSI interface functions */
3408 3408
3409static irqreturn_t gdth_interrupt(int irq,void *dev_id,struct pt_regs *regs) 3409static irqreturn_t gdth_interrupt(int irq,void *dev_id)
3410{ 3410{
3411 gdth_ha_str *ha2 = (gdth_ha_str *)dev_id; 3411 gdth_ha_str *ha2 = (gdth_ha_str *)dev_id;
3412 register gdth_ha_str *ha; 3412 register gdth_ha_str *ha;
diff --git a/drivers/scsi/gvp11.c b/drivers/scsi/gvp11.c
index 18dbe5c27dac..2f6c1137a6e5 100644
--- a/drivers/scsi/gvp11.c
+++ b/drivers/scsi/gvp11.c
@@ -24,7 +24,7 @@
24#define DMA(ptr) ((gvp11_scsiregs *)((ptr)->base)) 24#define DMA(ptr) ((gvp11_scsiregs *)((ptr)->base))
25#define HDATA(ptr) ((struct WD33C93_hostdata *)((ptr)->hostdata)) 25#define HDATA(ptr) ((struct WD33C93_hostdata *)((ptr)->hostdata))
26 26
27static irqreturn_t gvp11_intr (int irq, void *_instance, struct pt_regs *fp) 27static irqreturn_t gvp11_intr (int irq, void *_instance)
28{ 28{
29 unsigned long flags; 29 unsigned long flags;
30 unsigned int status; 30 unsigned int status;
diff --git a/drivers/scsi/hptiop.c b/drivers/scsi/hptiop.c
index 28bfb8f9f81d..bec83cbee59a 100644
--- a/drivers/scsi/hptiop.c
+++ b/drivers/scsi/hptiop.c
@@ -431,7 +431,7 @@ void hptiop_iop_request_callback(struct hptiop_hba *hba, u32 tag)
431 writel(tag, &hba->iop->outbound_queue); 431 writel(tag, &hba->iop->outbound_queue);
432} 432}
433 433
434static irqreturn_t hptiop_intr(int irq, void *dev_id, struct pt_regs *regs) 434static irqreturn_t hptiop_intr(int irq, void *dev_id)
435{ 435{
436 struct hptiop_hba *hba = dev_id; 436 struct hptiop_hba *hba = dev_id;
437 int handled; 437 int handled;
diff --git a/drivers/scsi/ibmmca.c b/drivers/scsi/ibmmca.c
index 2be1dc5d852a..0e57fb6964d5 100644
--- a/drivers/scsi/ibmmca.c
+++ b/drivers/scsi/ibmmca.c
@@ -497,8 +497,7 @@ static int option_setup(char *);
497static int ldn_access_load(int, int); 497static int ldn_access_load(int, int);
498static int ldn_access_total_read_write(int); 498static int ldn_access_total_read_write(int);
499 499
500static irqreturn_t interrupt_handler(int irq, void *dev_id, 500static irqreturn_t interrupt_handler(int irq, void *dev_id)
501 struct pt_regs *regs)
502{ 501{
503 int host_index, ihost_index; 502 int host_index, ihost_index;
504 unsigned int intr_reg; 503 unsigned int intr_reg;
diff --git a/drivers/scsi/ibmvscsi/rpa_vscsi.c b/drivers/scsi/ibmvscsi/rpa_vscsi.c
index 01b8ac641eb8..227c0f2f4d74 100644
--- a/drivers/scsi/ibmvscsi/rpa_vscsi.c
+++ b/drivers/scsi/ibmvscsi/rpa_vscsi.c
@@ -45,14 +45,11 @@ static unsigned int partition_number = -1;
45 * ibmvscsi_handle_event: - Interrupt handler for crq events 45 * ibmvscsi_handle_event: - Interrupt handler for crq events
46 * @irq: number of irq to handle, not used 46 * @irq: number of irq to handle, not used
47 * @dev_instance: ibmvscsi_host_data of host that received interrupt 47 * @dev_instance: ibmvscsi_host_data of host that received interrupt
48 * @regs: pt_regs with registers
49 * 48 *
50 * Disables interrupts and schedules srp_task 49 * Disables interrupts and schedules srp_task
51 * Always returns IRQ_HANDLED 50 * Always returns IRQ_HANDLED
52 */ 51 */
53static irqreturn_t ibmvscsi_handle_event(int irq, 52static irqreturn_t ibmvscsi_handle_event(int irq, void *dev_instance)
54 void *dev_instance,
55 struct pt_regs *regs)
56{ 53{
57 struct ibmvscsi_host_data *hostdata = 54 struct ibmvscsi_host_data *hostdata =
58 (struct ibmvscsi_host_data *)dev_instance; 55 (struct ibmvscsi_host_data *)dev_instance;
diff --git a/drivers/scsi/in2000.c b/drivers/scsi/in2000.c
index 59a4097f1254..312190a69389 100644
--- a/drivers/scsi/in2000.c
+++ b/drivers/scsi/in2000.c
@@ -829,7 +829,7 @@ static void transfer_bytes(Scsi_Cmnd * cmd, int data_in_dir)
829 * but it _does_ need to be able to compile and run in an SMP kernel.) 829 * but it _does_ need to be able to compile and run in an SMP kernel.)
830 */ 830 */
831 831
832static irqreturn_t in2000_intr(int irqnum, void *dev_id, struct pt_regs *ptregs) 832static irqreturn_t in2000_intr(int irqnum, void *dev_id)
833{ 833{
834 struct Scsi_Host *instance = dev_id; 834 struct Scsi_Host *instance = dev_id;
835 struct IN2000_hostdata *hostdata; 835 struct IN2000_hostdata *hostdata;
diff --git a/drivers/scsi/initio.c b/drivers/scsi/initio.c
index 9e10dac61cfd..911f2ff4a1f2 100644
--- a/drivers/scsi/initio.c
+++ b/drivers/scsi/initio.c
@@ -2748,7 +2748,7 @@ int tul_wait_done_disc(HCS * pCurHcb)
2748 return (tul_bad_seq(pCurHcb)); 2748 return (tul_bad_seq(pCurHcb));
2749} 2749}
2750 2750
2751static irqreturn_t i91u_intr(int irqno, void *dev_id, struct pt_regs *regs) 2751static irqreturn_t i91u_intr(int irqno, void *dev_id)
2752{ 2752{
2753 struct Scsi_Host *dev = dev_id; 2753 struct Scsi_Host *dev = dev_id;
2754 unsigned long flags; 2754 unsigned long flags;
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index e1fe9494125b..2dde821025f3 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -3880,12 +3880,11 @@ static irqreturn_t ipr_handle_other_interrupt(struct ipr_ioa_cfg *ioa_cfg,
3880 * ipr_isr - Interrupt service routine 3880 * ipr_isr - Interrupt service routine
3881 * @irq: irq number 3881 * @irq: irq number
3882 * @devp: pointer to ioa config struct 3882 * @devp: pointer to ioa config struct
3883 * @regs: pt_regs struct
3884 * 3883 *
3885 * Return value: 3884 * Return value:
3886 * IRQ_NONE / IRQ_HANDLED 3885 * IRQ_NONE / IRQ_HANDLED
3887 **/ 3886 **/
3888static irqreturn_t ipr_isr(int irq, void *devp, struct pt_regs *regs) 3887static irqreturn_t ipr_isr(int irq, void *devp)
3889{ 3888{
3890 struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)devp; 3889 struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)devp;
3891 unsigned long lock_flags = 0; 3890 unsigned long lock_flags = 0;
diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c
index 9a9ab297cf17..f06a06ae6092 100644
--- a/drivers/scsi/ips.c
+++ b/drivers/scsi/ips.c
@@ -248,7 +248,7 @@ static int ips_eh_abort(struct scsi_cmnd *);
248static int ips_eh_reset(struct scsi_cmnd *); 248static int ips_eh_reset(struct scsi_cmnd *);
249static int ips_queue(struct scsi_cmnd *, void (*)(struct scsi_cmnd *)); 249static int ips_queue(struct scsi_cmnd *, void (*)(struct scsi_cmnd *));
250static const char *ips_info(struct Scsi_Host *); 250static const char *ips_info(struct Scsi_Host *);
251static irqreturn_t do_ipsintr(int, void *, struct pt_regs *); 251static irqreturn_t do_ipsintr(int, void *);
252static int ips_hainit(ips_ha_t *); 252static int ips_hainit(ips_ha_t *);
253static int ips_map_status(ips_ha_t *, ips_scb_t *, ips_stat_t *); 253static int ips_map_status(ips_ha_t *, ips_scb_t *, ips_stat_t *);
254static int ips_send_wait(ips_ha_t *, ips_scb_t *, int, int); 254static int ips_send_wait(ips_ha_t *, ips_scb_t *, int, int);
@@ -1328,7 +1328,7 @@ ips_slave_configure(struct scsi_device * SDptr)
1328/* */ 1328/* */
1329/****************************************************************************/ 1329/****************************************************************************/
1330static irqreturn_t 1330static irqreturn_t
1331do_ipsintr(int irq, void *dev_id, struct pt_regs * regs) 1331do_ipsintr(int irq, void *dev_id)
1332{ 1332{
1333 ips_ha_t *ha; 1333 ips_ha_t *ha;
1334 unsigned long cpu_flags; 1334 unsigned long cpu_flags;
diff --git a/drivers/scsi/lpfc/lpfc_crtn.h b/drivers/scsi/lpfc/lpfc_crtn.h
index 3d684496acde..1251788ce2a3 100644
--- a/drivers/scsi/lpfc/lpfc_crtn.h
+++ b/drivers/scsi/lpfc/lpfc_crtn.h
@@ -120,7 +120,7 @@ int lpfc_sli_queue_setup(struct lpfc_hba *);
120 120
121void lpfc_handle_eratt(struct lpfc_hba *); 121void lpfc_handle_eratt(struct lpfc_hba *);
122void lpfc_handle_latt(struct lpfc_hba *); 122void lpfc_handle_latt(struct lpfc_hba *);
123irqreturn_t lpfc_intr_handler(int, void *, struct pt_regs *); 123irqreturn_t lpfc_intr_handler(int, void *);
124 124
125void lpfc_read_rev(struct lpfc_hba *, LPFC_MBOXQ_t *); 125void lpfc_read_rev(struct lpfc_hba *, LPFC_MBOXQ_t *);
126void lpfc_config_ring(struct lpfc_hba *, int, LPFC_MBOXQ_t *); 126void lpfc_config_ring(struct lpfc_hba *, int, LPFC_MBOXQ_t *);
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 70f4d5a1348e..24a1779b9af4 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -3119,7 +3119,7 @@ lpfc_sli_flush_mbox_queue(struct lpfc_hba * phba)
3119} 3119}
3120 3120
3121irqreturn_t 3121irqreturn_t
3122lpfc_intr_handler(int irq, void *dev_id, struct pt_regs * regs) 3122lpfc_intr_handler(int irq, void *dev_id)
3123{ 3123{
3124 struct lpfc_hba *phba; 3124 struct lpfc_hba *phba;
3125 uint32_t ha_copy; 3125 uint32_t ha_copy;
diff --git a/drivers/scsi/mac53c94.c b/drivers/scsi/mac53c94.c
index 6422de72bf43..753d88306cd1 100644
--- a/drivers/scsi/mac53c94.c
+++ b/drivers/scsi/mac53c94.c
@@ -60,8 +60,8 @@ struct fsc_state {
60 60
61static void mac53c94_init(struct fsc_state *); 61static void mac53c94_init(struct fsc_state *);
62static void mac53c94_start(struct fsc_state *); 62static void mac53c94_start(struct fsc_state *);
63static void mac53c94_interrupt(int, void *, struct pt_regs *); 63static void mac53c94_interrupt(int, void *);
64static irqreturn_t do_mac53c94_interrupt(int, void *, struct pt_regs *); 64static irqreturn_t do_mac53c94_interrupt(int, void *);
65static void cmd_done(struct fsc_state *, int result); 65static void cmd_done(struct fsc_state *, int result);
66static void set_dma_cmds(struct fsc_state *, struct scsi_cmnd *); 66static void set_dma_cmds(struct fsc_state *, struct scsi_cmnd *);
67 67
@@ -177,18 +177,18 @@ static void mac53c94_start(struct fsc_state *state)
177 set_dma_cmds(state, cmd); 177 set_dma_cmds(state, cmd);
178} 178}
179 179
180static irqreturn_t do_mac53c94_interrupt(int irq, void *dev_id, struct pt_regs *ptregs) 180static irqreturn_t do_mac53c94_interrupt(int irq, void *dev_id)
181{ 181{
182 unsigned long flags; 182 unsigned long flags;
183 struct Scsi_Host *dev = ((struct fsc_state *) dev_id)->current_req->device->host; 183 struct Scsi_Host *dev = ((struct fsc_state *) dev_id)->current_req->device->host;
184 184
185 spin_lock_irqsave(dev->host_lock, flags); 185 spin_lock_irqsave(dev->host_lock, flags);
186 mac53c94_interrupt(irq, dev_id, ptregs); 186 mac53c94_interrupt(irq, dev_id);
187 spin_unlock_irqrestore(dev->host_lock, flags); 187 spin_unlock_irqrestore(dev->host_lock, flags);
188 return IRQ_HANDLED; 188 return IRQ_HANDLED;
189} 189}
190 190
191static void mac53c94_interrupt(int irq, void *dev_id, struct pt_regs *ptregs) 191static void mac53c94_interrupt(int irq, void *dev_id)
192{ 192{
193 struct fsc_state *state = (struct fsc_state *) dev_id; 193 struct fsc_state *state = (struct fsc_state *) dev_id;
194 struct mac53c94_regs __iomem *regs = state->regs; 194 struct mac53c94_regs __iomem *regs = state->regs;
diff --git a/drivers/scsi/mac_esp.c b/drivers/scsi/mac_esp.c
index 118206d68c6c..3586fac9be9a 100644
--- a/drivers/scsi/mac_esp.c
+++ b/drivers/scsi/mac_esp.c
@@ -44,7 +44,7 @@
44/* #define DEBUG_MAC_ESP */ 44/* #define DEBUG_MAC_ESP */
45 45
46extern void esp_handle(struct NCR_ESP *esp); 46extern void esp_handle(struct NCR_ESP *esp);
47extern void mac_esp_intr(int irq, void *dev_id, struct pt_regs *pregs); 47extern void mac_esp_intr(int irq, void *dev_id);
48 48
49static int dma_bytes_sent(struct NCR_ESP * esp, int fifo_count); 49static int dma_bytes_sent(struct NCR_ESP * esp, int fifo_count);
50static int dma_can_transfer(struct NCR_ESP * esp, Scsi_Cmnd *sp); 50static int dma_can_transfer(struct NCR_ESP * esp, Scsi_Cmnd *sp);
@@ -88,7 +88,7 @@ static int setup_hostid = -1;
88 * set up properly! 88 * set up properly!
89 */ 89 */
90 90
91void mac_esp_intr(int irq, void *dev_id, struct pt_regs *pregs) 91void mac_esp_intr(int irq, void *dev_id)
92{ 92{
93 struct NCR_ESP *esp = (struct NCR_ESP *) dev_id; 93 struct NCR_ESP *esp = (struct NCR_ESP *) dev_id;
94 int irq_p = 0; 94 int irq_p = 0;
@@ -122,24 +122,24 @@ void mac_esp_intr(int irq, void *dev_id, struct pt_regs *pregs)
122 * acknowledge on the various machines 122 * acknowledge on the various machines
123 */ 123 */
124 124
125void scsi_esp_polled(int irq, void *dev_id, struct pt_regs *pregs) 125void scsi_esp_polled(int irq, void *dev_id)
126{ 126{
127 if (esp_initialized == 0) 127 if (esp_initialized == 0)
128 return; 128 return;
129 129
130 mac_esp_intr(irq, dev_id, pregs); 130 mac_esp_intr(irq, dev_id);
131} 131}
132 132
133void fake_intr(int irq, void *dev_id, struct pt_regs *pregs) 133void fake_intr(int irq, void *dev_id)
134{ 134{
135#ifdef DEBUG_MAC_ESP 135#ifdef DEBUG_MAC_ESP
136 printk("mac_esp: got irq\n"); 136 printk("mac_esp: got irq\n");
137#endif 137#endif
138 138
139 mac_esp_intr(irq, dev_id, pregs); 139 mac_esp_intr(irq, dev_id);
140} 140}
141 141
142irqreturn_t fake_drq(int irq, void *dev_id, struct pt_regs *pregs) 142irqreturn_t fake_drq(int irq, void *dev_id)
143{ 143{
144 printk("mac_esp: got drq\n"); 144 printk("mac_esp: got drq\n");
145 return IRQ_HANDLED; 145 return IRQ_HANDLED;
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c
index b87bef69ba0f..86099fde1b2a 100644
--- a/drivers/scsi/megaraid.c
+++ b/drivers/scsi/megaraid.c
@@ -1256,14 +1256,13 @@ bug_blocked_mailbox:
1256 * megaraid_isr_iomapped() 1256 * megaraid_isr_iomapped()
1257 * @irq - irq 1257 * @irq - irq
1258 * @devp - pointer to our soft state 1258 * @devp - pointer to our soft state
1259 * @regs - unused
1260 * 1259 *
1261 * Interrupt service routine for io-mapped controllers. 1260 * Interrupt service routine for io-mapped controllers.
1262 * Find out if our device is interrupting. If yes, acknowledge the interrupt 1261 * Find out if our device is interrupting. If yes, acknowledge the interrupt
1263 * and service the completed commands. 1262 * and service the completed commands.
1264 */ 1263 */
1265static irqreturn_t 1264static irqreturn_t
1266megaraid_isr_iomapped(int irq, void *devp, struct pt_regs *regs) 1265megaraid_isr_iomapped(int irq, void *devp)
1267{ 1266{
1268 adapter_t *adapter = devp; 1267 adapter_t *adapter = devp;
1269 unsigned long flags; 1268 unsigned long flags;
@@ -1333,14 +1332,13 @@ megaraid_isr_iomapped(int irq, void *devp, struct pt_regs *regs)
1333 * megaraid_isr_memmapped() 1332 * megaraid_isr_memmapped()
1334 * @irq - irq 1333 * @irq - irq
1335 * @devp - pointer to our soft state 1334 * @devp - pointer to our soft state
1336 * @regs - unused
1337 * 1335 *
1338 * Interrupt service routine for memory-mapped controllers. 1336 * Interrupt service routine for memory-mapped controllers.
1339 * Find out if our device is interrupting. If yes, acknowledge the interrupt 1337 * Find out if our device is interrupting. If yes, acknowledge the interrupt
1340 * and service the completed commands. 1338 * and service the completed commands.
1341 */ 1339 */
1342static irqreturn_t 1340static irqreturn_t
1343megaraid_isr_memmapped(int irq, void *devp, struct pt_regs *regs) 1341megaraid_isr_memmapped(int irq, void *devp)
1344{ 1342{
1345 adapter_t *adapter = devp; 1343 adapter_t *adapter = devp;
1346 unsigned long flags; 1344 unsigned long flags;
diff --git a/drivers/scsi/megaraid.h b/drivers/scsi/megaraid.h
index 4b75fe619d9c..66529f11d23c 100644
--- a/drivers/scsi/megaraid.h
+++ b/drivers/scsi/megaraid.h
@@ -991,8 +991,8 @@ static scb_t * mega_build_cmd(adapter_t *, Scsi_Cmnd *, int *);
991static void __mega_runpendq(adapter_t *); 991static void __mega_runpendq(adapter_t *);
992static int issue_scb_block(adapter_t *, u_char *); 992static int issue_scb_block(adapter_t *, u_char *);
993 993
994static irqreturn_t megaraid_isr_memmapped(int, void *, struct pt_regs *); 994static irqreturn_t megaraid_isr_memmapped(int, void *);
995static irqreturn_t megaraid_isr_iomapped(int, void *, struct pt_regs *); 995static irqreturn_t megaraid_isr_iomapped(int, void *);
996 996
997static void mega_free_scb(adapter_t *, scb_t *); 997static void mega_free_scb(adapter_t *, scb_t *);
998 998
diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c
index 266b3910846b..c0edb662d863 100644
--- a/drivers/scsi/megaraid/megaraid_mbox.c
+++ b/drivers/scsi/megaraid/megaraid_mbox.c
@@ -120,7 +120,7 @@ static void megaraid_mbox_prepare_pthru(adapter_t *, scb_t *,
120static void megaraid_mbox_prepare_epthru(adapter_t *, scb_t *, 120static void megaraid_mbox_prepare_epthru(adapter_t *, scb_t *,
121 struct scsi_cmnd *); 121 struct scsi_cmnd *);
122 122
123static irqreturn_t megaraid_isr(int, void *, struct pt_regs *); 123static irqreturn_t megaraid_isr(int, void *);
124 124
125static void megaraid_mbox_dpc(unsigned long); 125static void megaraid_mbox_dpc(unsigned long);
126 126
@@ -2231,7 +2231,7 @@ megaraid_ack_sequence(adapter_t *adapter)
2231 * Interrupt service routine for memory-mapped mailbox controllers. 2231 * Interrupt service routine for memory-mapped mailbox controllers.
2232 */ 2232 */
2233static irqreturn_t 2233static irqreturn_t
2234megaraid_isr(int irq, void *devp, struct pt_regs *regs) 2234megaraid_isr(int irq, void *devp)
2235{ 2235{
2236 adapter_t *adapter = devp; 2236 adapter_t *adapter = devp;
2237 int handled; 2237 int handled;
diff --git a/drivers/scsi/megaraid/megaraid_sas.c b/drivers/scsi/megaraid/megaraid_sas.c
index 977b6e8d8525..7e4262f2af96 100644
--- a/drivers/scsi/megaraid/megaraid_sas.c
+++ b/drivers/scsi/megaraid/megaraid_sas.c
@@ -1293,7 +1293,7 @@ megasas_deplete_reply_queue(struct megasas_instance *instance, u8 alt_status)
1293/** 1293/**
1294 * megasas_isr - isr entry point 1294 * megasas_isr - isr entry point
1295 */ 1295 */
1296static irqreturn_t megasas_isr(int irq, void *devp, struct pt_regs *regs) 1296static irqreturn_t megasas_isr(int irq, void *devp)
1297{ 1297{
1298 return megasas_deplete_reply_queue((struct megasas_instance *)devp, 1298 return megasas_deplete_reply_queue((struct megasas_instance *)devp,
1299 DID_OK); 1299 DID_OK);
diff --git a/drivers/scsi/mesh.c b/drivers/scsi/mesh.c
index 683fc7ae4b8f..c773e35dace7 100644
--- a/drivers/scsi/mesh.c
+++ b/drivers/scsi/mesh.c
@@ -185,7 +185,7 @@ struct mesh_state {
185 * Driver is too messy, we need a few prototypes... 185 * Driver is too messy, we need a few prototypes...
186 */ 186 */
187static void mesh_done(struct mesh_state *ms, int start_next); 187static void mesh_done(struct mesh_state *ms, int start_next);
188static void mesh_interrupt(int irq, void *dev_id, struct pt_regs *ptregs); 188static void mesh_interrupt(int irq, void *dev_id);
189static void cmd_complete(struct mesh_state *ms); 189static void cmd_complete(struct mesh_state *ms);
190static void set_dma_cmds(struct mesh_state *ms, struct scsi_cmnd *cmd); 190static void set_dma_cmds(struct mesh_state *ms, struct scsi_cmnd *cmd);
191static void halt_dma(struct mesh_state *ms); 191static void halt_dma(struct mesh_state *ms);
@@ -1015,13 +1015,13 @@ static void handle_reset(struct mesh_state *ms)
1015 out_8(&mr->sequence, SEQ_ENBRESEL); 1015 out_8(&mr->sequence, SEQ_ENBRESEL);
1016} 1016}
1017 1017
1018static irqreturn_t do_mesh_interrupt(int irq, void *dev_id, struct pt_regs *ptregs) 1018static irqreturn_t do_mesh_interrupt(int irq, void *dev_id)
1019{ 1019{
1020 unsigned long flags; 1020 unsigned long flags;
1021 struct Scsi_Host *dev = ((struct mesh_state *)dev_id)->host; 1021 struct Scsi_Host *dev = ((struct mesh_state *)dev_id)->host;
1022 1022
1023 spin_lock_irqsave(dev->host_lock, flags); 1023 spin_lock_irqsave(dev->host_lock, flags);
1024 mesh_interrupt(irq, dev_id, ptregs); 1024 mesh_interrupt(irq, dev_id);
1025 spin_unlock_irqrestore(dev->host_lock, flags); 1025 spin_unlock_irqrestore(dev->host_lock, flags);
1026 return IRQ_HANDLED; 1026 return IRQ_HANDLED;
1027} 1027}
@@ -1661,7 +1661,7 @@ static int mesh_queue(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
1661 * handler (do_mesh_interrupt) or by other functions in 1661 * handler (do_mesh_interrupt) or by other functions in
1662 * exceptional circumstances 1662 * exceptional circumstances
1663 */ 1663 */
1664static void mesh_interrupt(int irq, void *dev_id, struct pt_regs *ptregs) 1664static void mesh_interrupt(int irq, void *dev_id)
1665{ 1665{
1666 struct mesh_state *ms = (struct mesh_state *) dev_id; 1666 struct mesh_state *ms = (struct mesh_state *) dev_id;
1667 volatile struct mesh_regs __iomem *mr = ms->mesh; 1667 volatile struct mesh_regs __iomem *mr = ms->mesh;
diff --git a/drivers/scsi/mvme147.c b/drivers/scsi/mvme147.c
index 9b991b746d1e..1ddd7a11a958 100644
--- a/drivers/scsi/mvme147.c
+++ b/drivers/scsi/mvme147.c
@@ -20,7 +20,7 @@
20 20
21static struct Scsi_Host *mvme147_host = NULL; 21static struct Scsi_Host *mvme147_host = NULL;
22 22
23static irqreturn_t mvme147_intr (int irq, void *dummy, struct pt_regs *fp) 23static irqreturn_t mvme147_intr (int irq, void *dummy)
24{ 24{
25 if (irq == MVME147_IRQ_SCSI_PORT) 25 if (irq == MVME147_IRQ_SCSI_PORT)
26 wd33c93_intr (mvme147_host); 26 wd33c93_intr (mvme147_host);
diff --git a/drivers/scsi/mvme16x.h b/drivers/scsi/mvme16x.h
index c7a12533fb2c..73e33b37a3f8 100644
--- a/drivers/scsi/mvme16x.h
+++ b/drivers/scsi/mvme16x.h
@@ -9,7 +9,7 @@ int NCR53c7xx_queue_command(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
9int NCR53c7xx_abort(Scsi_Cmnd *); 9int NCR53c7xx_abort(Scsi_Cmnd *);
10int NCR53c7x0_release (struct Scsi_Host *); 10int NCR53c7x0_release (struct Scsi_Host *);
11int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int); 11int NCR53c7xx_reset(Scsi_Cmnd *, unsigned int);
12void NCR53c7x0_intr(int irq, void *dev_id, struct pt_regs * regs); 12void NCR53c7x0_intr(int irq, void *dev_id);
13 13
14#ifndef CMD_PER_LUN 14#ifndef CMD_PER_LUN
15#define CMD_PER_LUN 3 15#define CMD_PER_LUN 3
diff --git a/drivers/scsi/ncr53c8xx.c b/drivers/scsi/ncr53c8xx.c
index b28712df0b77..6cc2bc2f62be 100644
--- a/drivers/scsi/ncr53c8xx.c
+++ b/drivers/scsi/ncr53c8xx.c
@@ -8111,7 +8111,7 @@ printk("ncr53c8xx : command successfully queued\n");
8111 return sts; 8111 return sts;
8112} 8112}
8113 8113
8114irqreturn_t ncr53c8xx_intr(int irq, void *dev_id, struct pt_regs * regs) 8114irqreturn_t ncr53c8xx_intr(int irq, void *dev_id)
8115{ 8115{
8116 unsigned long flags; 8116 unsigned long flags;
8117 struct Scsi_Host *shost = (struct Scsi_Host *)dev_id; 8117 struct Scsi_Host *shost = (struct Scsi_Host *)dev_id;
diff --git a/drivers/scsi/ncr53c8xx.h b/drivers/scsi/ncr53c8xx.h
index 78818b6684f8..cb8b7701431e 100644
--- a/drivers/scsi/ncr53c8xx.h
+++ b/drivers/scsi/ncr53c8xx.h
@@ -1322,7 +1322,7 @@ struct ncr_device {
1322 1322
1323extern struct Scsi_Host *ncr_attach(struct scsi_host_template *tpnt, int unit, struct ncr_device *device); 1323extern struct Scsi_Host *ncr_attach(struct scsi_host_template *tpnt, int unit, struct ncr_device *device);
1324extern int ncr53c8xx_release(struct Scsi_Host *host); 1324extern int ncr53c8xx_release(struct Scsi_Host *host);
1325irqreturn_t ncr53c8xx_intr(int irq, void *dev_id, struct pt_regs * regs); 1325irqreturn_t ncr53c8xx_intr(int irq, void *dev_id);
1326extern int ncr53c8xx_init(void); 1326extern int ncr53c8xx_init(void);
1327extern void ncr53c8xx_exit(void); 1327extern void ncr53c8xx_exit(void);
1328 1328
diff --git a/drivers/scsi/nsp32.c b/drivers/scsi/nsp32.c
index 1c624ce81897..7c13f6f4a4c6 100644
--- a/drivers/scsi/nsp32.c
+++ b/drivers/scsi/nsp32.c
@@ -256,7 +256,7 @@ static void nsp32_sack_negate (nsp32_hw_data *);
256static void nsp32_do_bus_reset(nsp32_hw_data *); 256static void nsp32_do_bus_reset(nsp32_hw_data *);
257 257
258/* hardware interrupt handler */ 258/* hardware interrupt handler */
259static irqreturn_t do_nsp32_isr(int, void *, struct pt_regs *); 259static irqreturn_t do_nsp32_isr(int, void *);
260 260
261/* initialize hardware */ 261/* initialize hardware */
262static int nsp32hw_init(nsp32_hw_data *); 262static int nsp32hw_init(nsp32_hw_data *);
@@ -1201,7 +1201,7 @@ static int nsp32hw_init(nsp32_hw_data *data)
1201 1201
1202 1202
1203/* interrupt routine */ 1203/* interrupt routine */
1204static irqreturn_t do_nsp32_isr(int irq, void *dev_id, struct pt_regs *regs) 1204static irqreturn_t do_nsp32_isr(int irq, void *dev_id)
1205{ 1205{
1206 nsp32_hw_data *data = dev_id; 1206 nsp32_hw_data *data = dev_id;
1207 unsigned int base = data->BaseAddress; 1207 unsigned int base = data->BaseAddress;
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
index 053303d36118..b1d346049525 100644
--- a/drivers/scsi/pcmcia/nsp_cs.c
+++ b/drivers/scsi/pcmcia/nsp_cs.c
@@ -948,7 +948,7 @@ static int nsp_nexus(Scsi_Cmnd *SCpnt)
948/* 948/*
949 * interrupt handler 949 * interrupt handler
950 */ 950 */
951static irqreturn_t nspintr(int irq, void *dev_id, struct pt_regs *regs) 951static irqreturn_t nspintr(int irq, void *dev_id)
952{ 952{
953 unsigned int base; 953 unsigned int base;
954 unsigned char irq_status, irq_phase, phase; 954 unsigned char irq_status, irq_phase, phase;
diff --git a/drivers/scsi/pcmcia/nsp_cs.h b/drivers/scsi/pcmcia/nsp_cs.h
index 8908b8e5b78a..a88714f4c05b 100644
--- a/drivers/scsi/pcmcia/nsp_cs.h
+++ b/drivers/scsi/pcmcia/nsp_cs.h
@@ -346,7 +346,7 @@ static int nsp_reselected (Scsi_Cmnd *SCpnt);
346static struct Scsi_Host *nsp_detect(struct scsi_host_template *sht); 346static struct Scsi_Host *nsp_detect(struct scsi_host_template *sht);
347 347
348/* Interrupt handler */ 348/* Interrupt handler */
349//static irqreturn_t nspintr(int irq, void *dev_id, struct pt_regs *regs); 349//static irqreturn_t nspintr(int irq, void *dev_id);
350 350
351/* Module entry point*/ 351/* Module entry point*/
352static int __init nsp_cs_init(void); 352static int __init nsp_cs_init(void);
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c
index 0b65099acb1a..72fe5d055de1 100644
--- a/drivers/scsi/pcmcia/sym53c500_cs.c
+++ b/drivers/scsi/pcmcia/sym53c500_cs.c
@@ -363,7 +363,7 @@ SYM53C500_pio_write(int fast_pio, int base, unsigned char *request, unsigned int
363} 363}
364 364
365static irqreturn_t 365static irqreturn_t
366SYM53C500_intr(int irq, void *dev_id, struct pt_regs *regs) 366SYM53C500_intr(int irq, void *dev_id)
367{ 367{
368 unsigned long flags; 368 unsigned long flags;
369 struct Scsi_Host *dev = dev_id; 369 struct Scsi_Host *dev = dev_id;
diff --git a/drivers/scsi/psi240i.c b/drivers/scsi/psi240i.c
index 5c2cdf523c3b..a720c9265e66 100644
--- a/drivers/scsi/psi240i.c
+++ b/drivers/scsi/psi240i.c
@@ -247,12 +247,11 @@ static ULONG DecodeError (struct Scsi_Host *pshost, UCHAR status)
247 * 247 *
248 * Parameters: irq - Hardware IRQ number. 248 * Parameters: irq - Hardware IRQ number.
249 * dev_id - 249 * dev_id -
250 * regs -
251 * 250 *
252 * Returns: TRUE if drive is not ready in time. 251 * Returns: TRUE if drive is not ready in time.
253 * 252 *
254 ****************************************************************/ 253 ****************************************************************/
255static void Irq_Handler (int irq, void *dev_id, struct pt_regs *regs) 254static void Irq_Handler (int irq, void *dev_id)
256 { 255 {
257 struct Scsi_Host *shost; // Pointer to host data block 256 struct Scsi_Host *shost; // Pointer to host data block
258 PADAPTER240I padapter; // Pointer to adapter control structure 257 PADAPTER240I padapter; // Pointer to adapter control structure
@@ -368,13 +367,13 @@ irqerror:;
368 SCpnt->scsi_done (SCpnt); 367 SCpnt->scsi_done (SCpnt);
369 } 368 }
370 369
371static irqreturn_t do_Irq_Handler (int irq, void *dev_id, struct pt_regs *regs) 370static irqreturn_t do_Irq_Handler (int irq, void *dev_id)
372{ 371{
373 unsigned long flags; 372 unsigned long flags;
374 struct Scsi_Host *dev = dev_id; 373 struct Scsi_Host *dev = dev_id;
375 374
376 spin_lock_irqsave(dev->host_lock, flags); 375 spin_lock_irqsave(dev->host_lock, flags);
377 Irq_Handler(irq, dev_id, regs); 376 Irq_Handler(irq, dev_id);
378 spin_unlock_irqrestore(dev->host_lock, flags); 377 spin_unlock_irqrestore(dev->host_lock, flags);
379 return IRQ_HANDLED; 378 return IRQ_HANDLED;
380} 379}
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
index 9f33e5946c0d..2521d548dd59 100644
--- a/drivers/scsi/qla1280.c
+++ b/drivers/scsi/qla1280.c
@@ -1113,7 +1113,7 @@ qla1280_enable_intrs(struct scsi_qla_host *ha)
1113 * Handles the H/W interrupt 1113 * Handles the H/W interrupt
1114 **************************************************************************/ 1114 **************************************************************************/
1115static irqreturn_t 1115static irqreturn_t
1116qla1280_intr_handler(int irq, void *dev_id, struct pt_regs *regs) 1116qla1280_intr_handler(int irq, void *dev_id)
1117{ 1117{
1118 struct scsi_qla_host *ha; 1118 struct scsi_qla_host *ha;
1119 struct device_reg __iomem *reg; 1119 struct device_reg __iomem *reg;
diff --git a/drivers/scsi/qla2xxx/qla_dbg.h b/drivers/scsi/qla2xxx/qla_dbg.h
index 533425338e05..90dad7e88985 100644
--- a/drivers/scsi/qla2xxx/qla_dbg.h
+++ b/drivers/scsi/qla2xxx/qla_dbg.h
@@ -38,7 +38,7 @@
38* Macros use for debugging the driver. 38* Macros use for debugging the driver.
39*/ 39*/
40 40
41#define DEBUG(x) do { if (extended_error_logging) { x; } } while (0) 41#define DEBUG(x) do { if (qla2_extended_error_logging) { x; } } while (0)
42 42
43#if defined(QL_DEBUG_LEVEL_1) 43#if defined(QL_DEBUG_LEVEL_1)
44#define DEBUG1(x) do {x;} while (0) 44#define DEBUG1(x) do {x;} while (0)
@@ -46,12 +46,12 @@
46#define DEBUG1(x) do {} while (0) 46#define DEBUG1(x) do {} while (0)
47#endif 47#endif
48 48
49#define DEBUG2(x) do { if (extended_error_logging) { x; } } while (0) 49#define DEBUG2(x) do { if (qla2_extended_error_logging) { x; } } while (0)
50#define DEBUG2_3(x) do { if (extended_error_logging) { x; } } while (0) 50#define DEBUG2_3(x) do { if (qla2_extended_error_logging) { x; } } while (0)
51#define DEBUG2_3_11(x) do { if (extended_error_logging) { x; } } while (0) 51#define DEBUG2_3_11(x) do { if (qla2_extended_error_logging) { x; } } while (0)
52#define DEBUG2_9_10(x) do { if (extended_error_logging) { x; } } while (0) 52#define DEBUG2_9_10(x) do { if (qla2_extended_error_logging) { x; } } while (0)
53#define DEBUG2_11(x) do { if (extended_error_logging) { x; } } while (0) 53#define DEBUG2_11(x) do { if (qla2_extended_error_logging) { x; } } while (0)
54#define DEBUG2_13(x) do { if (extended_error_logging) { x; } } while (0) 54#define DEBUG2_13(x) do { if (qla2_extended_error_logging) { x; } } while (0)
55 55
56#if defined(QL_DEBUG_LEVEL_3) 56#if defined(QL_DEBUG_LEVEL_3)
57#define DEBUG3(x) do {x;} while (0) 57#define DEBUG3(x) do {x;} while (0)
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
index c37a30aa2146..bab33f6d0bdb 100644
--- a/drivers/scsi/qla2xxx/qla_def.h
+++ b/drivers/scsi/qla2xxx/qla_def.h
@@ -2009,7 +2009,7 @@ struct isp_operations {
2009 char * (*pci_info_str) (struct scsi_qla_host *, char *); 2009 char * (*pci_info_str) (struct scsi_qla_host *, char *);
2010 char * (*fw_version_str) (struct scsi_qla_host *, char *); 2010 char * (*fw_version_str) (struct scsi_qla_host *, char *);
2011 2011
2012 irqreturn_t (*intr_handler) (int, void *, struct pt_regs *); 2012 irq_handler_t intr_handler;
2013 void (*enable_intrs) (struct scsi_qla_host *); 2013 void (*enable_intrs) (struct scsi_qla_host *);
2014 void (*disable_intrs) (struct scsi_qla_host *); 2014 void (*disable_intrs) (struct scsi_qla_host *);
2015 2015
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
index bef7011378c6..7da69832d74c 100644
--- a/drivers/scsi/qla2xxx/qla_gbl.h
+++ b/drivers/scsi/qla2xxx/qla_gbl.h
@@ -60,7 +60,7 @@ extern int ql2xplogiabsentdevice;
60extern int ql2xloginretrycount; 60extern int ql2xloginretrycount;
61extern int ql2xfdmienable; 61extern int ql2xfdmienable;
62extern int ql2xallocfwdump; 62extern int ql2xallocfwdump;
63extern int extended_error_logging; 63extern int qla2_extended_error_logging;
64 64
65extern void qla2x00_sp_compl(scsi_qla_host_t *, srb_t *); 65extern void qla2x00_sp_compl(scsi_qla_host_t *, srb_t *);
66 66
@@ -217,9 +217,9 @@ qla2x00_set_idma_speed(scsi_qla_host_t *, uint16_t, uint16_t, uint16_t *);
217/* 217/*
218 * Global Function Prototypes in qla_isr.c source file. 218 * Global Function Prototypes in qla_isr.c source file.
219 */ 219 */
220extern irqreturn_t qla2100_intr_handler(int, void *, struct pt_regs *); 220extern irqreturn_t qla2100_intr_handler(int, void *);
221extern irqreturn_t qla2300_intr_handler(int, void *, struct pt_regs *); 221extern irqreturn_t qla2300_intr_handler(int, void *);
222extern irqreturn_t qla24xx_intr_handler(int, void *, struct pt_regs *); 222extern irqreturn_t qla24xx_intr_handler(int, void *);
223extern void qla2x00_process_response_queue(struct scsi_qla_host *); 223extern void qla2x00_process_response_queue(struct scsi_qla_host *);
224extern void qla24xx_process_response_queue(struct scsi_qla_host *); 224extern void qla24xx_process_response_queue(struct scsi_qla_host *);
225 225
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index d5d26273c04e..833b93085fd3 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1644,7 +1644,7 @@ qla2x00_nvram_config(scsi_qla_host_t *ha)
1644 * Set host adapter parameters. 1644 * Set host adapter parameters.
1645 */ 1645 */
1646 if (nv->host_p[0] & BIT_7) 1646 if (nv->host_p[0] & BIT_7)
1647 extended_error_logging = 1; 1647 qla2_extended_error_logging = 1;
1648 ha->flags.disable_risc_code_load = ((nv->host_p[0] & BIT_4) ? 1 : 0); 1648 ha->flags.disable_risc_code_load = ((nv->host_p[0] & BIT_4) ? 1 : 0);
1649 /* Always load RISC code on non ISP2[12]00 chips. */ 1649 /* Always load RISC code on non ISP2[12]00 chips. */
1650 if (!IS_QLA2100(ha) && !IS_QLA2200(ha)) 1650 if (!IS_QLA2100(ha) && !IS_QLA2200(ha))
diff --git a/drivers/scsi/qla2xxx/qla_inline.h b/drivers/scsi/qla2xxx/qla_inline.h
index 45007ee58067..d3023338628f 100644
--- a/drivers/scsi/qla2xxx/qla_inline.h
+++ b/drivers/scsi/qla2xxx/qla_inline.h
@@ -104,7 +104,7 @@ static __inline__ void qla2x00_poll(scsi_qla_host_t *);
104static inline void 104static inline void
105qla2x00_poll(scsi_qla_host_t *ha) 105qla2x00_poll(scsi_qla_host_t *ha)
106{ 106{
107 ha->isp_ops.intr_handler(0, ha, NULL); 107 ha->isp_ops.intr_handler(0, ha);
108} 108}
109 109
110static __inline__ void qla2x00_check_fabric_devices(scsi_qla_host_t *); 110static __inline__ void qla2x00_check_fabric_devices(scsi_qla_host_t *);
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 5fa933cda992..626c7178a434 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -20,14 +20,13 @@ static void qla24xx_ms_entry(scsi_qla_host_t *, struct ct_entry_24xx *);
20 * qla2100_intr_handler() - Process interrupts for the ISP2100 and ISP2200. 20 * qla2100_intr_handler() - Process interrupts for the ISP2100 and ISP2200.
21 * @irq: 21 * @irq:
22 * @dev_id: SCSI driver HA context 22 * @dev_id: SCSI driver HA context
23 * @regs:
24 * 23 *
25 * Called by system whenever the host adapter generates an interrupt. 24 * Called by system whenever the host adapter generates an interrupt.
26 * 25 *
27 * Returns handled flag. 26 * Returns handled flag.
28 */ 27 */
29irqreturn_t 28irqreturn_t
30qla2100_intr_handler(int irq, void *dev_id, struct pt_regs *regs) 29qla2100_intr_handler(int irq, void *dev_id)
31{ 30{
32 scsi_qla_host_t *ha; 31 scsi_qla_host_t *ha;
33 struct device_reg_2xxx __iomem *reg; 32 struct device_reg_2xxx __iomem *reg;
@@ -100,14 +99,13 @@ qla2100_intr_handler(int irq, void *dev_id, struct pt_regs *regs)
100 * qla2300_intr_handler() - Process interrupts for the ISP23xx and ISP63xx. 99 * qla2300_intr_handler() - Process interrupts for the ISP23xx and ISP63xx.
101 * @irq: 100 * @irq:
102 * @dev_id: SCSI driver HA context 101 * @dev_id: SCSI driver HA context
103 * @regs:
104 * 102 *
105 * Called by system whenever the host adapter generates an interrupt. 103 * Called by system whenever the host adapter generates an interrupt.
106 * 104 *
107 * Returns handled flag. 105 * Returns handled flag.
108 */ 106 */
109irqreturn_t 107irqreturn_t
110qla2300_intr_handler(int irq, void *dev_id, struct pt_regs *regs) 108qla2300_intr_handler(int irq, void *dev_id)
111{ 109{
112 scsi_qla_host_t *ha; 110 scsi_qla_host_t *ha;
113 struct device_reg_2xxx __iomem *reg; 111 struct device_reg_2xxx __iomem *reg;
@@ -1338,14 +1336,13 @@ qla24xx_process_response_queue(struct scsi_qla_host *ha)
1338 * qla24xx_intr_handler() - Process interrupts for the ISP23xx and ISP63xx. 1336 * qla24xx_intr_handler() - Process interrupts for the ISP23xx and ISP63xx.
1339 * @irq: 1337 * @irq:
1340 * @dev_id: SCSI driver HA context 1338 * @dev_id: SCSI driver HA context
1341 * @regs:
1342 * 1339 *
1343 * Called by system whenever the host adapter generates an interrupt. 1340 * Called by system whenever the host adapter generates an interrupt.
1344 * 1341 *
1345 * Returns handled flag. 1342 * Returns handled flag.
1346 */ 1343 */
1347irqreturn_t 1344irqreturn_t
1348qla24xx_intr_handler(int irq, void *dev_id, struct pt_regs *regs) 1345qla24xx_intr_handler(int irq, void *dev_id)
1349{ 1346{
1350 scsi_qla_host_t *ha; 1347 scsi_qla_host_t *ha;
1351 struct device_reg_24xx __iomem *reg; 1348 struct device_reg_24xx __iomem *reg;
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 3ba8c239f171..3f20d765563e 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -61,9 +61,9 @@ MODULE_PARM_DESC(ql2xallocfwdump,
61 "during HBA initialization. Memory allocation requirements " 61 "during HBA initialization. Memory allocation requirements "
62 "vary by ISP type. Default is 1 - allocate memory."); 62 "vary by ISP type. Default is 1 - allocate memory.");
63 63
64int extended_error_logging; 64int qla2_extended_error_logging;
65module_param(extended_error_logging, int, S_IRUGO|S_IRUSR); 65module_param(qla2_extended_error_logging, int, S_IRUGO|S_IRUSR);
66MODULE_PARM_DESC(extended_error_logging, 66MODULE_PARM_DESC(qla2_extended_error_logging,
67 "Option to enable extended error logging, " 67 "Option to enable extended error logging, "
68 "Default is 0 - no logging. 1 - log errors."); 68 "Default is 0 - no logging. 1 - log errors.");
69 69
@@ -2697,7 +2697,7 @@ qla2x00_module_init(void)
2697 2697
2698 /* Derive version string. */ 2698 /* Derive version string. */
2699 strcpy(qla2x00_version_str, QLA2XXX_VERSION); 2699 strcpy(qla2x00_version_str, QLA2XXX_VERSION);
2700 if (extended_error_logging) 2700 if (qla2_extended_error_logging)
2701 strcat(qla2x00_version_str, "-debug"); 2701 strcat(qla2x00_version_str, "-debug");
2702 2702
2703 qla2xxx_transport_template = 2703 qla2xxx_transport_template =
diff --git a/drivers/scsi/qla4xxx/ql4_dbg.h b/drivers/scsi/qla4xxx/ql4_dbg.h
index 56ddc227f846..3e99dcfd5a9f 100644
--- a/drivers/scsi/qla4xxx/ql4_dbg.h
+++ b/drivers/scsi/qla4xxx/ql4_dbg.h
@@ -22,14 +22,14 @@
22#endif 22#endif
23 23
24#if defined(QL_DEBUG_LEVEL_2) 24#if defined(QL_DEBUG_LEVEL_2)
25#define DEBUG2(x) do {if(extended_error_logging == 2) x;} while (0); 25#define DEBUG2(x) do {if(qla4_extended_error_logging == 2) x;} while (0);
26#define DEBUG2_3(x) do {x;} while (0); 26#define DEBUG2_3(x) do {x;} while (0);
27#else /* */ 27#else /* */
28#define DEBUG2(x) do {} while (0); 28#define DEBUG2(x) do {} while (0);
29#endif /* */ 29#endif /* */
30 30
31#if defined(QL_DEBUG_LEVEL_3) 31#if defined(QL_DEBUG_LEVEL_3)
32#define DEBUG3(x) do {if(extended_error_logging == 3) x;} while (0); 32#define DEBUG3(x) do {if(qla4_extended_error_logging == 3) x;} while (0);
33#else /* */ 33#else /* */
34#define DEBUG3(x) do {} while (0); 34#define DEBUG3(x) do {} while (0);
35#if !defined(QL_DEBUG_LEVEL_2) 35#if !defined(QL_DEBUG_LEVEL_2)
diff --git a/drivers/scsi/qla4xxx/ql4_glbl.h b/drivers/scsi/qla4xxx/ql4_glbl.h
index 418fb7a13a65..2c803edf2de8 100644
--- a/drivers/scsi/qla4xxx/ql4_glbl.h
+++ b/drivers/scsi/qla4xxx/ql4_glbl.h
@@ -13,7 +13,7 @@ int qla4xxx_send_command_to_isp(struct scsi_qla_host *ha, struct srb * srb);
13int qla4xxx_initialize_adapter(struct scsi_qla_host * ha, 13int qla4xxx_initialize_adapter(struct scsi_qla_host * ha,
14 uint8_t renew_ddb_list); 14 uint8_t renew_ddb_list);
15int qla4xxx_soft_reset(struct scsi_qla_host *ha); 15int qla4xxx_soft_reset(struct scsi_qla_host *ha);
16irqreturn_t qla4xxx_intr_handler(int irq, void *dev_id, struct pt_regs *regs); 16irqreturn_t qla4xxx_intr_handler(int irq, void *dev_id);
17 17
18void qla4xxx_free_ddb_list(struct scsi_qla_host * ha); 18void qla4xxx_free_ddb_list(struct scsi_qla_host * ha);
19void qla4xxx_process_aen(struct scsi_qla_host * ha, uint8_t process_aen); 19void qla4xxx_process_aen(struct scsi_qla_host * ha, uint8_t process_aen);
@@ -72,7 +72,7 @@ int qla4xxx_reinitialize_ddb_list(struct scsi_qla_host * ha);
72int qla4xxx_process_ddb_changed(struct scsi_qla_host * ha, 72int qla4xxx_process_ddb_changed(struct scsi_qla_host * ha,
73 uint32_t fw_ddb_index, uint32_t state); 73 uint32_t fw_ddb_index, uint32_t state);
74 74
75extern int extended_error_logging; 75extern int qla4_extended_error_logging;
76extern int ql4xdiscoverywait; 76extern int ql4xdiscoverywait;
77extern int ql4xdontresethba; 77extern int ql4xdontresethba;
78#endif /* _QLA4x_GBL_H */ 78#endif /* _QLA4x_GBL_H */
diff --git a/drivers/scsi/qla4xxx/ql4_isr.c b/drivers/scsi/qla4xxx/ql4_isr.c
index b584317608d1..1e283321a59d 100644
--- a/drivers/scsi/qla4xxx/ql4_isr.c
+++ b/drivers/scsi/qla4xxx/ql4_isr.c
@@ -610,9 +610,8 @@ void qla4xxx_interrupt_service_routine(struct scsi_qla_host * ha,
610 * qla4xxx_intr_handler - hardware interrupt handler. 610 * qla4xxx_intr_handler - hardware interrupt handler.
611 * @irq: Unused 611 * @irq: Unused
612 * @dev_id: Pointer to host adapter structure 612 * @dev_id: Pointer to host adapter structure
613 * @regs: Unused
614 **/ 613 **/
615irqreturn_t qla4xxx_intr_handler(int irq, void *dev_id, struct pt_regs *regs) 614irqreturn_t qla4xxx_intr_handler(int irq, void *dev_id)
616{ 615{
617 struct scsi_qla_host *ha; 616 struct scsi_qla_host *ha;
618 uint32_t intr_status; 617 uint32_t intr_status;
diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c
index ed977f70b2db..ef82399c0858 100644
--- a/drivers/scsi/qla4xxx/ql4_mbx.c
+++ b/drivers/scsi/qla4xxx/ql4_mbx.c
@@ -701,7 +701,7 @@ void qla4xxx_get_conn_event_log(struct scsi_qla_host * ha)
701 DEBUG3(printk("scsi%ld: Connection Event Log Dump (%d entries):\n", 701 DEBUG3(printk("scsi%ld: Connection Event Log Dump (%d entries):\n",
702 ha->host_no, num_valid_entries)); 702 ha->host_no, num_valid_entries));
703 703
704 if (extended_error_logging == 3) { 704 if (qla4_extended_error_logging == 3) {
705 if (oldest_entry == 0) { 705 if (oldest_entry == 0) {
706 /* Circular Buffer has not wrapped around */ 706 /* Circular Buffer has not wrapped around */
707 for (i=0; i < num_valid_entries; i++) { 707 for (i=0; i < num_valid_entries; i++) {
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index 5036ebf013a5..178fcddcfd81 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -34,9 +34,9 @@ MODULE_PARM_DESC(ql4xdontresethba,
34 " default it will reset hba :0" 34 " default it will reset hba :0"
35 " set to 1 to avoid resetting HBA"); 35 " set to 1 to avoid resetting HBA");
36 36
37int extended_error_logging = 0; /* 0 = off, 1 = log errors */ 37int qla4_extended_error_logging = 0; /* 0 = off, 1 = log errors */
38module_param(extended_error_logging, int, S_IRUGO | S_IRUSR); 38module_param(qla4_extended_error_logging, int, S_IRUGO | S_IRUSR);
39MODULE_PARM_DESC(extended_error_logging, 39MODULE_PARM_DESC(qla4_extended_error_logging,
40 "Option to enable extended error logging, " 40 "Option to enable extended error logging, "
41 "Default is 0 - no logging, 1 - debug logging"); 41 "Default is 0 - no logging, 1 - debug logging");
42 42
@@ -1714,7 +1714,7 @@ static int __init qla4xxx_module_init(void)
1714 1714
1715 /* Derive version string. */ 1715 /* Derive version string. */
1716 strcpy(qla4xxx_version_str, QLA4XXX_DRIVER_VERSION); 1716 strcpy(qla4xxx_version_str, QLA4XXX_DRIVER_VERSION);
1717 if (extended_error_logging) 1717 if (qla4_extended_error_logging)
1718 strcat(qla4xxx_version_str, "-debug"); 1718 strcat(qla4xxx_version_str, "-debug");
1719 1719
1720 qla4xxx_scsi_transport = 1720 qla4xxx_scsi_transport =
diff --git a/drivers/scsi/qlogicfas408.c b/drivers/scsi/qlogicfas408.c
index 52fb2ec3da70..1a7de3bd796f 100644
--- a/drivers/scsi/qlogicfas408.c
+++ b/drivers/scsi/qlogicfas408.c
@@ -405,7 +405,7 @@ static unsigned int ql_pcmd(Scsi_Cmnd * cmd)
405 * Interrupt handler 405 * Interrupt handler
406 */ 406 */
407 407
408static void ql_ihandl(int irq, void *dev_id, struct pt_regs *regs) 408static void ql_ihandl(int irq, void *dev_id)
409{ 409{
410 Scsi_Cmnd *icmd; 410 Scsi_Cmnd *icmd;
411 struct Scsi_Host *host = (struct Scsi_Host *)dev_id; 411 struct Scsi_Host *host = (struct Scsi_Host *)dev_id;
@@ -432,13 +432,13 @@ static void ql_ihandl(int irq, void *dev_id, struct pt_regs *regs)
432 (icmd->scsi_done) (icmd); 432 (icmd->scsi_done) (icmd);
433} 433}
434 434
435irqreturn_t qlogicfas408_ihandl(int irq, void *dev_id, struct pt_regs *regs) 435irqreturn_t qlogicfas408_ihandl(int irq, void *dev_id)
436{ 436{
437 unsigned long flags; 437 unsigned long flags;
438 struct Scsi_Host *host = dev_id; 438 struct Scsi_Host *host = dev_id;
439 439
440 spin_lock_irqsave(host->host_lock, flags); 440 spin_lock_irqsave(host->host_lock, flags);
441 ql_ihandl(irq, dev_id, regs); 441 ql_ihandl(irq, dev_id);
442 spin_unlock_irqrestore(host->host_lock, flags); 442 spin_unlock_irqrestore(host->host_lock, flags);
443 return IRQ_HANDLED; 443 return IRQ_HANDLED;
444} 444}
diff --git a/drivers/scsi/qlogicfas408.h b/drivers/scsi/qlogicfas408.h
index 4b3df2003660..8fd5555c75b1 100644
--- a/drivers/scsi/qlogicfas408.h
+++ b/drivers/scsi/qlogicfas408.h
@@ -102,7 +102,7 @@ struct qlogicfas408_priv {
102#define get_priv_by_cmd(x) (struct qlogicfas408_priv *)&((x)->device->host->hostdata[0]) 102#define get_priv_by_cmd(x) (struct qlogicfas408_priv *)&((x)->device->host->hostdata[0])
103#define get_priv_by_host(x) (struct qlogicfas408_priv *)&((x)->hostdata[0]) 103#define get_priv_by_host(x) (struct qlogicfas408_priv *)&((x)->hostdata[0])
104 104
105irqreturn_t qlogicfas408_ihandl(int irq, void *dev_id, struct pt_regs *regs); 105irqreturn_t qlogicfas408_ihandl(int irq, void *dev_id);
106int qlogicfas408_queuecommand(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *)); 106int qlogicfas408_queuecommand(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *));
107int qlogicfas408_biosparam(struct scsi_device * disk, 107int qlogicfas408_biosparam(struct scsi_device * disk,
108 struct block_device *dev, 108 struct block_device *dev,
diff --git a/drivers/scsi/qlogicpti.c b/drivers/scsi/qlogicpti.c
index 5b2f0741a55b..ed58bb489889 100644
--- a/drivers/scsi/qlogicpti.c
+++ b/drivers/scsi/qlogicpti.c
@@ -649,7 +649,7 @@ static int qlogicpti_verify_tmon(struct qlogicpti *qpti)
649 return 0; 649 return 0;
650} 650}
651 651
652static irqreturn_t qpti_intr(int irq, void *dev_id, struct pt_regs *regs); 652static irqreturn_t qpti_intr(int irq, void *dev_id);
653 653
654static void __init qpti_chain_add(struct qlogicpti *qpti) 654static void __init qpti_chain_add(struct qlogicpti *qpti)
655{ 655{
@@ -1297,7 +1297,7 @@ static struct scsi_cmnd *qlogicpti_intr_handler(struct qlogicpti *qpti)
1297 return done_queue; 1297 return done_queue;
1298} 1298}
1299 1299
1300static irqreturn_t qpti_intr(int irq, void *dev_id, struct pt_regs *regs) 1300static irqreturn_t qpti_intr(int irq, void *dev_id)
1301{ 1301{
1302 struct qlogicpti *qpti = dev_id; 1302 struct qlogicpti *qpti = dev_id;
1303 unsigned long flags; 1303 unsigned long flags;
diff --git a/drivers/scsi/seagate.c b/drivers/scsi/seagate.c
index 4e6666ceae26..8ff1f2866f7b 100644
--- a/drivers/scsi/seagate.c
+++ b/drivers/scsi/seagate.c
@@ -320,8 +320,8 @@ static Signature __initdata signatures[] = {
320 */ 320 */
321 321
322static int hostno = -1; 322static int hostno = -1;
323static void seagate_reconnect_intr (int, void *, struct pt_regs *); 323static void seagate_reconnect_intr (int, void *);
324static irqreturn_t do_seagate_reconnect_intr (int, void *, struct pt_regs *); 324static irqreturn_t do_seagate_reconnect_intr (int, void *);
325static int seagate_st0x_bus_reset(struct scsi_cmnd *); 325static int seagate_st0x_bus_reset(struct scsi_cmnd *);
326 326
327#ifdef FAST 327#ifdef FAST
@@ -619,19 +619,18 @@ static int should_reconnect = 0;
619 * asserting SEL. 619 * asserting SEL.
620 */ 620 */
621 621
622static irqreturn_t do_seagate_reconnect_intr(int irq, void *dev_id, 622static irqreturn_t do_seagate_reconnect_intr(int irq, void *dev_id)
623 struct pt_regs *regs)
624{ 623{
625 unsigned long flags; 624 unsigned long flags;
626 struct Scsi_Host *dev = dev_id; 625 struct Scsi_Host *dev = dev_id;
627 626
628 spin_lock_irqsave (dev->host_lock, flags); 627 spin_lock_irqsave (dev->host_lock, flags);
629 seagate_reconnect_intr (irq, dev_id, regs); 628 seagate_reconnect_intr (irq, dev_id);
630 spin_unlock_irqrestore (dev->host_lock, flags); 629 spin_unlock_irqrestore (dev->host_lock, flags);
631 return IRQ_HANDLED; 630 return IRQ_HANDLED;
632} 631}
633 632
634static void seagate_reconnect_intr (int irq, void *dev_id, struct pt_regs *regs) 633static void seagate_reconnect_intr (int irq, void *dev_id)
635{ 634{
636 int temp; 635 int temp;
637 struct scsi_cmnd *SCtmp; 636 struct scsi_cmnd *SCtmp;
diff --git a/drivers/scsi/sgiwd93.c b/drivers/scsi/sgiwd93.c
index 4f1db6f2aae8..e81f97a35bc8 100644
--- a/drivers/scsi/sgiwd93.c
+++ b/drivers/scsi/sgiwd93.c
@@ -84,7 +84,7 @@ static inline unsigned long read_wd33c93_count(const wd33c93_regs regs)
84 return value; 84 return value;
85} 85}
86 86
87static irqreturn_t sgiwd93_intr(int irq, void *dev_id, struct pt_regs *regs) 87static irqreturn_t sgiwd93_intr(int irq, void *dev_id)
88{ 88{
89 struct Scsi_Host * host = (struct Scsi_Host *) dev_id; 89 struct Scsi_Host * host = (struct Scsi_Host *) dev_id;
90 unsigned long flags; 90 unsigned long flags;
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index a54e6c1026b7..185c270bb043 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -871,7 +871,7 @@ update_status:
871 readl(base + IMR1); /* flush */ 871 readl(base + IMR1); /* flush */
872} 872}
873 873
874static irqreturn_t stex_intr(int irq, void *__hba, struct pt_regs *regs) 874static irqreturn_t stex_intr(int irq, void *__hba)
875{ 875{
876 struct st_hba *hba = __hba; 876 struct st_hba *hba = __hba;
877 void __iomem *base = hba->mmio_base; 877 void __iomem *base = hba->mmio_base;
diff --git a/drivers/scsi/sun3_NCR5380.c b/drivers/scsi/sun3_NCR5380.c
index 7f9bcef6adfa..5ec5af8e3379 100644
--- a/drivers/scsi/sun3_NCR5380.c
+++ b/drivers/scsi/sun3_NCR5380.c
@@ -1252,7 +1252,7 @@ static void NCR5380_dma_complete( struct Scsi_Host *instance )
1252 * 1252 *
1253 */ 1253 */
1254 1254
1255static irqreturn_t NCR5380_intr (int irq, void *dev_id, struct pt_regs *regs) 1255static irqreturn_t NCR5380_intr (int irq, void *dev_id)
1256{ 1256{
1257 struct Scsi_Host *instance = first_instance; 1257 struct Scsi_Host *instance = first_instance;
1258 int done = 1, handled = 0; 1258 int done = 1, handled = 0;
diff --git a/drivers/scsi/sun3_scsi.c b/drivers/scsi/sun3_scsi.c
index 44a99aeb8180..e625b4c5833a 100644
--- a/drivers/scsi/sun3_scsi.c
+++ b/drivers/scsi/sun3_scsi.c
@@ -102,7 +102,7 @@ static void NCR5380_print(struct Scsi_Host *instance);
102#define ENABLE_IRQ() enable_irq( IRQ_SUN3_SCSI ); 102#define ENABLE_IRQ() enable_irq( IRQ_SUN3_SCSI );
103 103
104 104
105static irqreturn_t scsi_sun3_intr(int irq, void *dummy, struct pt_regs *fp); 105static irqreturn_t scsi_sun3_intr(int irq, void *dummy);
106static inline unsigned char sun3scsi_read(int reg); 106static inline unsigned char sun3scsi_read(int reg);
107static inline void sun3scsi_write(int reg, int value); 107static inline void sun3scsi_write(int reg, int value);
108 108
@@ -371,7 +371,7 @@ const char * sun3scsi_info (struct Scsi_Host *spnt) {
371// safe bits for the CSR 371// safe bits for the CSR
372#define CSR_GOOD 0x060f 372#define CSR_GOOD 0x060f
373 373
374static irqreturn_t scsi_sun3_intr(int irq, void *dummy, struct pt_regs *fp) 374static irqreturn_t scsi_sun3_intr(int irq, void *dummy)
375{ 375{
376 unsigned short csr = dregs->csr; 376 unsigned short csr = dregs->csr;
377 int handled = 0; 377 int handled = 0;
@@ -388,7 +388,7 @@ static irqreturn_t scsi_sun3_intr(int irq, void *dummy, struct pt_regs *fp)
388 } 388 }
389 389
390 if(csr & (CSR_SDB_INT | CSR_DMA_INT)) { 390 if(csr & (CSR_SDB_INT | CSR_DMA_INT)) {
391 NCR5380_intr(irq, dummy, fp); 391 NCR5380_intr(irq, dummy);
392 handled = 1; 392 handled = 1;
393 } 393 }
394 394
diff --git a/drivers/scsi/sun3_scsi_vme.c b/drivers/scsi/sun3_scsi_vme.c
index f5742b84b27a..e8faab16567b 100644
--- a/drivers/scsi/sun3_scsi_vme.c
+++ b/drivers/scsi/sun3_scsi_vme.c
@@ -67,7 +67,7 @@ extern int sun3_map_test(unsigned long, char *);
67#define ENABLE_IRQ() 67#define ENABLE_IRQ()
68 68
69 69
70static irqreturn_t scsi_sun3_intr(int irq, void *dummy, struct pt_regs *fp); 70static irqreturn_t scsi_sun3_intr(int irq, void *dummy);
71static inline unsigned char sun3scsi_read(int reg); 71static inline unsigned char sun3scsi_read(int reg);
72static inline void sun3scsi_write(int reg, int value); 72static inline void sun3scsi_write(int reg, int value);
73 73
@@ -340,7 +340,7 @@ static const char * sun3scsi_info (struct Scsi_Host *spnt) {
340// safe bits for the CSR 340// safe bits for the CSR
341#define CSR_GOOD 0x060f 341#define CSR_GOOD 0x060f
342 342
343static irqreturn_t scsi_sun3_intr(int irq, void *dummy, struct pt_regs *fp) 343static irqreturn_t scsi_sun3_intr(int irq, void *dummy)
344{ 344{
345 unsigned short csr = dregs->csr; 345 unsigned short csr = dregs->csr;
346 int handled = 0; 346 int handled = 0;
@@ -371,7 +371,7 @@ static irqreturn_t scsi_sun3_intr(int irq, void *dummy, struct pt_regs *fp)
371 } 371 }
372 372
373 if(csr & (CSR_SDB_INT | CSR_DMA_INT)) { 373 if(csr & (CSR_SDB_INT | CSR_DMA_INT)) {
374 NCR5380_intr(irq, dummy, fp); 374 NCR5380_intr(irq, dummy);
375 handled = 1; 375 handled = 1;
376 } 376 }
377 377
diff --git a/drivers/scsi/sym53c416.c b/drivers/scsi/sym53c416.c
index 8640253d6215..32c883f1efa1 100644
--- a/drivers/scsi/sym53c416.c
+++ b/drivers/scsi/sym53c416.c
@@ -326,8 +326,7 @@ static __inline__ unsigned int sym53c416_write(int base, unsigned char *buffer,
326 return orig_len - len; 326 return orig_len - len;
327} 327}
328 328
329static irqreturn_t sym53c416_intr_handle(int irq, void *dev_id, 329static irqreturn_t sym53c416_intr_handle(int irq, void *dev_id)
330 struct pt_regs *regs)
331{ 330{
332 struct Scsi_Host *dev = dev_id; 331 struct Scsi_Host *dev = dev_id;
333 int base = 0; 332 int base = 0;
diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c
index 739d3ef46a40..4d78c7e87cca 100644
--- a/drivers/scsi/sym53c8xx_2/sym_glue.c
+++ b/drivers/scsi/sym53c8xx_2/sym_glue.c
@@ -652,7 +652,7 @@ static int sym53c8xx_queue_command(struct scsi_cmnd *cmd,
652/* 652/*
653 * Linux entry point of the interrupt handler. 653 * Linux entry point of the interrupt handler.
654 */ 654 */
655static irqreturn_t sym53c8xx_intr(int irq, void *dev_id, struct pt_regs * regs) 655static irqreturn_t sym53c8xx_intr(int irq, void *dev_id)
656{ 656{
657 unsigned long flags; 657 unsigned long flags;
658 struct sym_hcb *np = (struct sym_hcb *)dev_id; 658 struct sym_hcb *np = (struct sym_hcb *)dev_id;
diff --git a/drivers/scsi/tmscsim.c b/drivers/scsi/tmscsim.c
index 028d5f641cc6..0f0ac925d319 100644
--- a/drivers/scsi/tmscsim.c
+++ b/drivers/scsi/tmscsim.c
@@ -700,7 +700,7 @@ dc390_InvalidCmd(struct dc390_acb* pACB)
700 700
701 701
702static irqreturn_t __inline__ 702static irqreturn_t __inline__
703DC390_Interrupt(int irq, void *dev_id, struct pt_regs *regs) 703DC390_Interrupt(int irq, void *dev_id)
704{ 704{
705 struct dc390_acb *pACB = (struct dc390_acb*)dev_id; 705 struct dc390_acb *pACB = (struct dc390_acb*)dev_id;
706 struct dc390_dcb *pDCB; 706 struct dc390_dcb *pDCB;
@@ -811,12 +811,12 @@ DC390_Interrupt(int irq, void *dev_id, struct pt_regs *regs)
811 return IRQ_HANDLED; 811 return IRQ_HANDLED;
812} 812}
813 813
814static irqreturn_t do_DC390_Interrupt( int irq, void *dev_id, struct pt_regs *regs) 814static irqreturn_t do_DC390_Interrupt( int irq, void *dev_id)
815{ 815{
816 irqreturn_t ret; 816 irqreturn_t ret;
817 DEBUG1(printk (KERN_INFO "DC390: Irq (%i) caught: ", irq)); 817 DEBUG1(printk (KERN_INFO "DC390: Irq (%i) caught: ", irq));
818 /* Locking is done in DC390_Interrupt */ 818 /* Locking is done in DC390_Interrupt */
819 ret = DC390_Interrupt(irq, dev_id, regs); 819 ret = DC390_Interrupt(irq, dev_id);
820 DEBUG1(printk (".. IRQ returned\n")); 820 DEBUG1(printk (".. IRQ returned\n"));
821 return ret; 821 return ret;
822} 822}
diff --git a/drivers/scsi/u14-34f.c b/drivers/scsi/u14-34f.c
index 57449611e714..3de08a15de40 100644
--- a/drivers/scsi/u14-34f.c
+++ b/drivers/scsi/u14-34f.c
@@ -634,7 +634,7 @@ static unsigned long io_port[] = {
634#define H2DEV(x) cpu_to_le32(x) 634#define H2DEV(x) cpu_to_le32(x)
635#define DEV2H(x) le32_to_cpu(x) 635#define DEV2H(x) le32_to_cpu(x)
636 636
637static irqreturn_t do_interrupt_handler(int, void *, struct pt_regs *); 637static irqreturn_t do_interrupt_handler(int, void *);
638static void flush_dev(struct scsi_device *, unsigned long, unsigned int, unsigned int); 638static void flush_dev(struct scsi_device *, unsigned long, unsigned int, unsigned int);
639static int do_trace = FALSE; 639static int do_trace = FALSE;
640static int setup_done = FALSE; 640static int setup_done = FALSE;
@@ -1932,8 +1932,7 @@ none:
1932 return IRQ_NONE; 1932 return IRQ_NONE;
1933} 1933}
1934 1934
1935static irqreturn_t do_interrupt_handler(int irq, void *shap, 1935static irqreturn_t do_interrupt_handler(int irq, void *shap) {
1936 struct pt_regs *regs) {
1937 unsigned int j; 1936 unsigned int j;
1938 unsigned long spin_flags; 1937 unsigned long spin_flags;
1939 irqreturn_t ret; 1938 irqreturn_t ret;
diff --git a/drivers/scsi/ultrastor.c b/drivers/scsi/ultrastor.c
index 0372aa9fa190..107f0fc34949 100644
--- a/drivers/scsi/ultrastor.c
+++ b/drivers/scsi/ultrastor.c
@@ -287,8 +287,8 @@ static const unsigned short ultrastor_ports_14f[] = {
287}; 287};
288#endif 288#endif
289 289
290static void ultrastor_interrupt(int, void *, struct pt_regs *); 290static void ultrastor_interrupt(int, void *);
291static irqreturn_t do_ultrastor_interrupt(int, void *, struct pt_regs *); 291static irqreturn_t do_ultrastor_interrupt(int, void *);
292static inline void build_sg_list(struct mscp *, struct scsi_cmnd *SCpnt); 292static inline void build_sg_list(struct mscp *, struct scsi_cmnd *SCpnt);
293 293
294 294
@@ -893,7 +893,7 @@ static int ultrastor_abort(struct scsi_cmnd *SCpnt)
893 893
894 spin_lock_irqsave(host->host_lock, flags); 894 spin_lock_irqsave(host->host_lock, flags);
895 /* FIXME: Ewww... need to think about passing host around properly */ 895 /* FIXME: Ewww... need to think about passing host around properly */
896 ultrastor_interrupt(0, NULL, NULL); 896 ultrastor_interrupt(0, NULL);
897 spin_unlock_irqrestore(host->host_lock, flags); 897 spin_unlock_irqrestore(host->host_lock, flags);
898 return SUCCESS; 898 return SUCCESS;
899 } 899 }
@@ -1039,7 +1039,7 @@ int ultrastor_biosparam(struct scsi_device *sdev, struct block_device *bdev,
1039 return 0; 1039 return 0;
1040} 1040}
1041 1041
1042static void ultrastor_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1042static void ultrastor_interrupt(int irq, void *dev_id)
1043{ 1043{
1044 unsigned int status; 1044 unsigned int status;
1045#if ULTRASTOR_MAX_CMDS > 1 1045#if ULTRASTOR_MAX_CMDS > 1
@@ -1171,14 +1171,13 @@ static void ultrastor_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1171#endif 1171#endif
1172} 1172}
1173 1173
1174static irqreturn_t do_ultrastor_interrupt(int irq, void *dev_id, 1174static irqreturn_t do_ultrastor_interrupt(int irq, void *dev_id)
1175 struct pt_regs *regs)
1176{ 1175{
1177 unsigned long flags; 1176 unsigned long flags;
1178 struct Scsi_Host *dev = dev_id; 1177 struct Scsi_Host *dev = dev_id;
1179 1178
1180 spin_lock_irqsave(dev->host_lock, flags); 1179 spin_lock_irqsave(dev->host_lock, flags);
1181 ultrastor_interrupt(irq, dev_id, regs); 1180 ultrastor_interrupt(irq, dev_id);
1182 spin_unlock_irqrestore(dev->host_lock, flags); 1181 spin_unlock_irqrestore(dev->host_lock, flags);
1183 return IRQ_HANDLED; 1182 return IRQ_HANDLED;
1184} 1183}
diff --git a/drivers/scsi/wd7000.c b/drivers/scsi/wd7000.c
index a0b61af48f1c..331e1cf159b0 100644
--- a/drivers/scsi/wd7000.c
+++ b/drivers/scsi/wd7000.c
@@ -998,7 +998,7 @@ static int make_code(unsigned hosterr, unsigned scsierr)
998#define wd7000_intr_ack(host) outb (0, host->iobase + ASC_INTR_ACK) 998#define wd7000_intr_ack(host) outb (0, host->iobase + ASC_INTR_ACK)
999 999
1000 1000
1001static irqreturn_t wd7000_intr(int irq, void *dev_id, struct pt_regs *regs) 1001static irqreturn_t wd7000_intr(int irq, void *dev_id)
1002{ 1002{
1003 Adapter *host = (Adapter *) dev_id; 1003 Adapter *host = (Adapter *) dev_id;
1004 int flag, icmb, errstatus, icmb_status; 1004 int flag, icmb, errstatus, icmb_status;
diff --git a/drivers/serial/21285.c b/drivers/serial/21285.c
index 76d83ade9857..6a1a568ca649 100644
--- a/drivers/serial/21285.c
+++ b/drivers/serial/21285.c
@@ -85,7 +85,7 @@ static void serial21285_enable_ms(struct uart_port *port)
85{ 85{
86} 86}
87 87
88static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *regs) 88static irqreturn_t serial21285_rx_chars(int irq, void *dev_id)
89{ 89{
90 struct uart_port *port = dev_id; 90 struct uart_port *port = dev_id;
91 struct tty_struct *tty = port->info->tty; 91 struct tty_struct *tty = port->info->tty;
@@ -123,7 +123,7 @@ static irqreturn_t serial21285_rx_chars(int irq, void *dev_id, struct pt_regs *r
123 return IRQ_HANDLED; 123 return IRQ_HANDLED;
124} 124}
125 125
126static irqreturn_t serial21285_tx_chars(int irq, void *dev_id, struct pt_regs *regs) 126static irqreturn_t serial21285_tx_chars(int irq, void *dev_id)
127{ 127{
128 struct uart_port *port = dev_id; 128 struct uart_port *port = dev_id;
129 struct circ_buf *xmit = &port->info->xmit; 129 struct circ_buf *xmit = &port->info->xmit;
diff --git a/drivers/serial/68328serial.c b/drivers/serial/68328serial.c
index bac853c5abb5..9b8b585513ec 100644
--- a/drivers/serial/68328serial.c
+++ b/drivers/serial/68328serial.c
@@ -275,8 +275,7 @@ static void status_handle(struct m68k_serial *info, unsigned short status)
275 return; 275 return;
276} 276}
277 277
278static void receive_chars(struct m68k_serial *info, struct pt_regs *regs, 278static void receive_chars(struct m68k_serial *info, unsigned short rx)
279 unsigned short rx)
280{ 279{
281 struct tty_struct *tty = info->tty; 280 struct tty_struct *tty = info->tty;
282 m68328_uart *uart = &uart_addr[info->line]; 281 m68328_uart *uart = &uart_addr[info->line];
@@ -377,7 +376,7 @@ clear_and_return:
377/* 376/*
378 * This is the serial driver's generic interrupt routine 377 * This is the serial driver's generic interrupt routine
379 */ 378 */
380irqreturn_t rs_interrupt(int irq, void *dev_id, struct pt_regs * regs) 379irqreturn_t rs_interrupt(int irq, void *dev_id)
381{ 380{
382 struct m68k_serial * info; 381 struct m68k_serial * info;
383 m68328_uart *uart; 382 m68328_uart *uart;
@@ -394,10 +393,10 @@ irqreturn_t rs_interrupt(int irq, void *dev_id, struct pt_regs * regs)
394#ifdef USE_INTS 393#ifdef USE_INTS
395 tx = uart->utx.w; 394 tx = uart->utx.w;
396 395
397 if (rx & URX_DATA_READY) receive_chars(info, regs, rx); 396 if (rx & URX_DATA_READY) receive_chars(info, rx);
398 if (tx & UTX_TX_AVAIL) transmit_chars(info); 397 if (tx & UTX_TX_AVAIL) transmit_chars(info);
399#else 398#else
400 receive_chars(info, regs, rx); 399 receive_chars(info, rx);
401#endif 400#endif
402 return IRQ_HANDLED; 401 return IRQ_HANDLED;
403} 402}
diff --git a/drivers/serial/68360serial.c b/drivers/serial/68360serial.c
index 1b299e8c57cd..4e56ec803861 100644
--- a/drivers/serial/68360serial.c
+++ b/drivers/serial/68360serial.c
@@ -612,7 +612,7 @@ static _INLINE_ void check_modem_status(struct async_struct *info)
612 * This is the serial driver's interrupt routine for a single port 612 * This is the serial driver's interrupt routine for a single port
613 */ 613 */
614/* static void rs_360_interrupt(void *dev_id) */ /* until and if we start servicing irqs here */ 614/* static void rs_360_interrupt(void *dev_id) */ /* until and if we start servicing irqs here */
615static void rs_360_interrupt(int vec, void *dev_id, struct pt_regs *fp) 615static void rs_360_interrupt(int vec, void *dev_id)
616{ 616{
617 u_char events; 617 u_char events;
618 int idx; 618 int idx;
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index cc2a205d4230..e34bd03cfce7 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1175,7 +1175,7 @@ static void serial8250_enable_ms(struct uart_port *port)
1175} 1175}
1176 1176
1177static void 1177static void
1178receive_chars(struct uart_8250_port *up, int *status, struct pt_regs *regs) 1178receive_chars(struct uart_8250_port *up, int *status)
1179{ 1179{
1180 struct tty_struct *tty = up->port.info->tty; 1180 struct tty_struct *tty = up->port.info->tty;
1181 unsigned char ch, lsr = *status; 1181 unsigned char ch, lsr = *status;
@@ -1233,7 +1233,7 @@ receive_chars(struct uart_8250_port *up, int *status, struct pt_regs *regs)
1233 else if (lsr & UART_LSR_FE) 1233 else if (lsr & UART_LSR_FE)
1234 flag = TTY_FRAME; 1234 flag = TTY_FRAME;
1235 } 1235 }
1236 if (uart_handle_sysrq_char(&up->port, ch, regs)) 1236 if (uart_handle_sysrq_char(&up->port, ch))
1237 goto ignore_char; 1237 goto ignore_char;
1238 1238
1239 uart_insert_char(&up->port, lsr, UART_LSR_OE, ch, flag); 1239 uart_insert_char(&up->port, lsr, UART_LSR_OE, ch, flag);
@@ -1309,7 +1309,7 @@ static unsigned int check_modem_status(struct uart_8250_port *up)
1309 * This handles the interrupt from one port. 1309 * This handles the interrupt from one port.
1310 */ 1310 */
1311static inline void 1311static inline void
1312serial8250_handle_port(struct uart_8250_port *up, struct pt_regs *regs) 1312serial8250_handle_port(struct uart_8250_port *up)
1313{ 1313{
1314 unsigned int status; 1314 unsigned int status;
1315 1315
@@ -1320,7 +1320,7 @@ serial8250_handle_port(struct uart_8250_port *up, struct pt_regs *regs)
1320 DEBUG_INTR("status = %x...", status); 1320 DEBUG_INTR("status = %x...", status);
1321 1321
1322 if (status & UART_LSR_DR) 1322 if (status & UART_LSR_DR)
1323 receive_chars(up, &status, regs); 1323 receive_chars(up, &status);
1324 check_modem_status(up); 1324 check_modem_status(up);
1325 if (status & UART_LSR_THRE) 1325 if (status & UART_LSR_THRE)
1326 transmit_chars(up); 1326 transmit_chars(up);
@@ -1342,7 +1342,7 @@ serial8250_handle_port(struct uart_8250_port *up, struct pt_regs *regs)
1342 * This means we need to loop through all ports. checking that they 1342 * This means we need to loop through all ports. checking that they
1343 * don't have an interrupt pending. 1343 * don't have an interrupt pending.
1344 */ 1344 */
1345static irqreturn_t serial8250_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1345static irqreturn_t serial8250_interrupt(int irq, void *dev_id)
1346{ 1346{
1347 struct irq_info *i = dev_id; 1347 struct irq_info *i = dev_id;
1348 struct list_head *l, *end = NULL; 1348 struct list_head *l, *end = NULL;
@@ -1361,7 +1361,7 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id, struct pt_regs *r
1361 1361
1362 iir = serial_in(up, UART_IIR); 1362 iir = serial_in(up, UART_IIR);
1363 if (!(iir & UART_IIR_NO_INT)) { 1363 if (!(iir & UART_IIR_NO_INT)) {
1364 serial8250_handle_port(up, regs); 1364 serial8250_handle_port(up);
1365 1365
1366 handled = 1; 1366 handled = 1;
1367 1367
@@ -1461,7 +1461,7 @@ static void serial8250_timeout(unsigned long data)
1461 1461
1462 iir = serial_in(up, UART_IIR); 1462 iir = serial_in(up, UART_IIR);
1463 if (!(iir & UART_IIR_NO_INT)) 1463 if (!(iir & UART_IIR_NO_INT))
1464 serial8250_handle_port(up, NULL); 1464 serial8250_handle_port(up);
1465 1465
1466 timeout = up->port.timeout; 1466 timeout = up->port.timeout;
1467 timeout = timeout > 6 ? (timeout / 2 - 2) : 1; 1467 timeout = timeout > 6 ? (timeout / 2 - 2) : 1;
diff --git a/drivers/serial/amba-pl010.c b/drivers/serial/amba-pl010.c
index 7311d8487c96..4213fabc62bf 100644
--- a/drivers/serial/amba-pl010.c
+++ b/drivers/serial/amba-pl010.c
@@ -111,12 +111,7 @@ static void pl010_enable_ms(struct uart_port *port)
111 writel(cr, port->membase + UART010_CR); 111 writel(cr, port->membase + UART010_CR);
112} 112}
113 113
114static void 114static void pl010_rx_chars(struct uart_port *port)
115#ifdef SUPPORT_SYSRQ
116pl010_rx_chars(struct uart_port *port, struct pt_regs *regs)
117#else
118pl010_rx_chars(struct uart_port *port)
119#endif
120{ 115{
121 struct tty_struct *tty = port->info->tty; 116 struct tty_struct *tty = port->info->tty;
122 unsigned int status, ch, flag, rsr, max_count = 256; 117 unsigned int status, ch, flag, rsr, max_count = 256;
@@ -156,7 +151,7 @@ pl010_rx_chars(struct uart_port *port)
156 flag = TTY_FRAME; 151 flag = TTY_FRAME;
157 } 152 }
158 153
159 if (uart_handle_sysrq_char(port, ch, regs)) 154 if (uart_handle_sysrq_char(port, ch))
160 goto ignore_char; 155 goto ignore_char;
161 156
162 uart_insert_char(port, rsr, UART01x_RSR_OE, ch, flag); 157 uart_insert_char(port, rsr, UART01x_RSR_OE, ch, flag);
@@ -227,7 +222,7 @@ static void pl010_modem_status(struct uart_port *port)
227 wake_up_interruptible(&uap->port.info->delta_msr_wait); 222 wake_up_interruptible(&uap->port.info->delta_msr_wait);
228} 223}
229 224
230static irqreturn_t pl010_int(int irq, void *dev_id, struct pt_regs *regs) 225static irqreturn_t pl010_int(int irq, void *dev_id)
231{ 226{
232 struct uart_port *port = dev_id; 227 struct uart_port *port = dev_id;
233 unsigned int status, pass_counter = AMBA_ISR_PASS_LIMIT; 228 unsigned int status, pass_counter = AMBA_ISR_PASS_LIMIT;
@@ -239,11 +234,7 @@ static irqreturn_t pl010_int(int irq, void *dev_id, struct pt_regs *regs)
239 if (status) { 234 if (status) {
240 do { 235 do {
241 if (status & (UART010_IIR_RTIS | UART010_IIR_RIS)) 236 if (status & (UART010_IIR_RTIS | UART010_IIR_RIS))
242#ifdef SUPPORT_SYSRQ
243 pl010_rx_chars(port, regs);
244#else
245 pl010_rx_chars(port); 237 pl010_rx_chars(port);
246#endif
247 if (status & UART010_IIR_MIS) 238 if (status & UART010_IIR_MIS)
248 pl010_modem_status(port); 239 pl010_modem_status(port);
249 if (status & UART010_IIR_TIS) 240 if (status & UART010_IIR_TIS)
diff --git a/drivers/serial/amba-pl011.c b/drivers/serial/amba-pl011.c
index a8d7124e84a1..d503625730df 100644
--- a/drivers/serial/amba-pl011.c
+++ b/drivers/serial/amba-pl011.c
@@ -107,12 +107,7 @@ static void pl011_enable_ms(struct uart_port *port)
107 writew(uap->im, uap->port.membase + UART011_IMSC); 107 writew(uap->im, uap->port.membase + UART011_IMSC);
108} 108}
109 109
110static void 110static void pl011_rx_chars(struct uart_amba_port *uap)
111#ifdef SUPPORT_SYSRQ
112pl011_rx_chars(struct uart_amba_port *uap, struct pt_regs *regs)
113#else
114pl011_rx_chars(struct uart_amba_port *uap)
115#endif
116{ 111{
117 struct tty_struct *tty = uap->port.info->tty; 112 struct tty_struct *tty = uap->port.info->tty;
118 unsigned int status, ch, flag, max_count = 256; 113 unsigned int status, ch, flag, max_count = 256;
@@ -150,7 +145,7 @@ pl011_rx_chars(struct uart_amba_port *uap)
150 flag = TTY_FRAME; 145 flag = TTY_FRAME;
151 } 146 }
152 147
153 if (uart_handle_sysrq_char(&uap->port, ch & 255, regs)) 148 if (uart_handle_sysrq_char(&uap->port, ch & 255))
154 goto ignore_char; 149 goto ignore_char;
155 150
156 uart_insert_char(&uap->port, ch, UART011_DR_OE, ch, flag); 151 uart_insert_char(&uap->port, ch, UART011_DR_OE, ch, flag);
@@ -218,7 +213,7 @@ static void pl011_modem_status(struct uart_amba_port *uap)
218 wake_up_interruptible(&uap->port.info->delta_msr_wait); 213 wake_up_interruptible(&uap->port.info->delta_msr_wait);
219} 214}
220 215
221static irqreturn_t pl011_int(int irq, void *dev_id, struct pt_regs *regs) 216static irqreturn_t pl011_int(int irq, void *dev_id)
222{ 217{
223 struct uart_amba_port *uap = dev_id; 218 struct uart_amba_port *uap = dev_id;
224 unsigned int status, pass_counter = AMBA_ISR_PASS_LIMIT; 219 unsigned int status, pass_counter = AMBA_ISR_PASS_LIMIT;
@@ -234,11 +229,7 @@ static irqreturn_t pl011_int(int irq, void *dev_id, struct pt_regs *regs)
234 uap->port.membase + UART011_ICR); 229 uap->port.membase + UART011_ICR);
235 230
236 if (status & (UART011_RTIS|UART011_RXIS)) 231 if (status & (UART011_RTIS|UART011_RXIS))
237#ifdef SUPPORT_SYSRQ
238 pl011_rx_chars(uap, regs);
239#else
240 pl011_rx_chars(uap); 232 pl011_rx_chars(uap);
241#endif
242 if (status & (UART011_DSRMIS|UART011_DCDMIS| 233 if (status & (UART011_DSRMIS|UART011_DCDMIS|
243 UART011_CTSMIS|UART011_RIMIS)) 234 UART011_CTSMIS|UART011_RIMIS))
244 pl011_modem_status(uap); 235 pl011_modem_status(uap);
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c
index 955c46da5800..391a1f4167a4 100644
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
@@ -249,7 +249,7 @@ static void atmel_break_ctl(struct uart_port *port, int break_state)
249/* 249/*
250 * Characters received (called from interrupt handler) 250 * Characters received (called from interrupt handler)
251 */ 251 */
252static void atmel_rx_chars(struct uart_port *port, struct pt_regs *regs) 252static void atmel_rx_chars(struct uart_port *port)
253{ 253{
254 struct tty_struct *tty = port->info->tty; 254 struct tty_struct *tty = port->info->tty;
255 unsigned int status, ch, flg; 255 unsigned int status, ch, flg;
@@ -291,7 +291,7 @@ static void atmel_rx_chars(struct uart_port *port, struct pt_regs *regs)
291 flg = TTY_FRAME; 291 flg = TTY_FRAME;
292 } 292 }
293 293
294 if (uart_handle_sysrq_char(port, ch, regs)) 294 if (uart_handle_sysrq_char(port, ch))
295 goto ignore_char; 295 goto ignore_char;
296 296
297 uart_insert_char(port, status, ATMEL_US_OVRE, ch, flg); 297 uart_insert_char(port, status, ATMEL_US_OVRE, ch, flg);
@@ -339,7 +339,7 @@ static void atmel_tx_chars(struct uart_port *port)
339/* 339/*
340 * Interrupt handler 340 * Interrupt handler
341 */ 341 */
342static irqreturn_t atmel_interrupt(int irq, void *dev_id, struct pt_regs *regs) 342static irqreturn_t atmel_interrupt(int irq, void *dev_id)
343{ 343{
344 struct uart_port *port = dev_id; 344 struct uart_port *port = dev_id;
345 struct atmel_uart_port *atmel_port = (struct atmel_uart_port *) port; 345 struct atmel_uart_port *atmel_port = (struct atmel_uart_port *) port;
@@ -350,7 +350,7 @@ static irqreturn_t atmel_interrupt(int irq, void *dev_id, struct pt_regs *regs)
350 while (pending) { 350 while (pending) {
351 /* Interrupt receive */ 351 /* Interrupt receive */
352 if (pending & ATMEL_US_RXRDY) 352 if (pending & ATMEL_US_RXRDY)
353 atmel_rx_chars(port, regs); 353 atmel_rx_chars(port);
354 354
355 // TODO: All reads to CSR will clear these interrupts! 355 // TODO: All reads to CSR will clear these interrupts!
356 if (pending & ATMEL_US_RIIC) port->icount.rng++; 356 if (pending & ATMEL_US_RIIC) port->icount.rng++;
diff --git a/drivers/serial/clps711x.c b/drivers/serial/clps711x.c
index f27d852ce50d..598012714882 100644
--- a/drivers/serial/clps711x.c
+++ b/drivers/serial/clps711x.c
@@ -93,7 +93,7 @@ static void clps711xuart_enable_ms(struct uart_port *port)
93{ 93{
94} 94}
95 95
96static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *regs) 96static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id)
97{ 97{
98 struct uart_port *port = dev_id; 98 struct uart_port *port = dev_id;
99 struct tty_struct *tty = port->info->tty; 99 struct tty_struct *tty = port->info->tty;
@@ -131,7 +131,7 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re
131#endif 131#endif
132 } 132 }
133 133
134 if (uart_handle_sysrq_char(port, ch, regs)) 134 if (uart_handle_sysrq_char(port, ch))
135 goto ignore_char; 135 goto ignore_char;
136 136
137 /* 137 /*
@@ -147,7 +147,7 @@ static irqreturn_t clps711xuart_int_rx(int irq, void *dev_id, struct pt_regs *re
147 return IRQ_HANDLED; 147 return IRQ_HANDLED;
148} 148}
149 149
150static irqreturn_t clps711xuart_int_tx(int irq, void *dev_id, struct pt_regs *regs) 150static irqreturn_t clps711xuart_int_tx(int irq, void *dev_id)
151{ 151{
152 struct uart_port *port = dev_id; 152 struct uart_port *port = dev_id;
153 struct circ_buf *xmit = &port->info->xmit; 153 struct circ_buf *xmit = &port->info->xmit;
diff --git a/drivers/serial/cpm_uart/cpm_uart_core.c b/drivers/serial/cpm_uart/cpm_uart_core.c
index a0d6136deb9b..0abb544ae63d 100644
--- a/drivers/serial/cpm_uart/cpm_uart_core.c
+++ b/drivers/serial/cpm_uart/cpm_uart_core.c
@@ -248,7 +248,7 @@ static void cpm_uart_break_ctl(struct uart_port *port, int break_state)
248/* 248/*
249 * Transmit characters, refill buffer descriptor, if possible 249 * Transmit characters, refill buffer descriptor, if possible
250 */ 250 */
251static void cpm_uart_int_tx(struct uart_port *port, struct pt_regs *regs) 251static void cpm_uart_int_tx(struct uart_port *port)
252{ 252{
253 pr_debug("CPM uart[%d]:TX INT\n", port->line); 253 pr_debug("CPM uart[%d]:TX INT\n", port->line);
254 254
@@ -258,7 +258,7 @@ static void cpm_uart_int_tx(struct uart_port *port, struct pt_regs *regs)
258/* 258/*
259 * Receive characters 259 * Receive characters
260 */ 260 */
261static void cpm_uart_int_rx(struct uart_port *port, struct pt_regs *regs) 261static void cpm_uart_int_rx(struct uart_port *port)
262{ 262{
263 int i; 263 int i;
264 unsigned char ch, *cp; 264 unsigned char ch, *cp;
@@ -304,7 +304,7 @@ static void cpm_uart_int_rx(struct uart_port *port, struct pt_regs *regs)
304 if (status & 304 if (status &
305 (BD_SC_BR | BD_SC_FR | BD_SC_PR | BD_SC_OV)) 305 (BD_SC_BR | BD_SC_FR | BD_SC_PR | BD_SC_OV))
306 goto handle_error; 306 goto handle_error;
307 if (uart_handle_sysrq_char(port, ch, regs)) 307 if (uart_handle_sysrq_char(port, ch))
308 continue; 308 continue;
309 309
310 error_return: 310 error_return:
@@ -373,7 +373,7 @@ static void cpm_uart_int_rx(struct uart_port *port, struct pt_regs *regs)
373/* 373/*
374 * Asynchron mode interrupt handler 374 * Asynchron mode interrupt handler
375 */ 375 */
376static irqreturn_t cpm_uart_int(int irq, void *data, struct pt_regs *regs) 376static irqreturn_t cpm_uart_int(int irq, void *data)
377{ 377{
378 u8 events; 378 u8 events;
379 struct uart_port *port = (struct uart_port *)data; 379 struct uart_port *port = (struct uart_port *)data;
@@ -389,18 +389,18 @@ static irqreturn_t cpm_uart_int(int irq, void *data, struct pt_regs *regs)
389 if (events & SMCM_BRKE) 389 if (events & SMCM_BRKE)
390 uart_handle_break(port); 390 uart_handle_break(port);
391 if (events & SMCM_RX) 391 if (events & SMCM_RX)
392 cpm_uart_int_rx(port, regs); 392 cpm_uart_int_rx(port);
393 if (events & SMCM_TX) 393 if (events & SMCM_TX)
394 cpm_uart_int_tx(port, regs); 394 cpm_uart_int_tx(port);
395 } else { 395 } else {
396 events = sccp->scc_scce; 396 events = sccp->scc_scce;
397 sccp->scc_scce = events; 397 sccp->scc_scce = events;
398 if (events & UART_SCCM_BRKE) 398 if (events & UART_SCCM_BRKE)
399 uart_handle_break(port); 399 uart_handle_break(port);
400 if (events & UART_SCCM_RX) 400 if (events & UART_SCCM_RX)
401 cpm_uart_int_rx(port, regs); 401 cpm_uart_int_rx(port);
402 if (events & UART_SCCM_TX) 402 if (events & UART_SCCM_TX)
403 cpm_uart_int_tx(port, regs); 403 cpm_uart_int_tx(port);
404 } 404 }
405 return (events) ? IRQ_HANDLED : IRQ_NONE; 405 return (events) ? IRQ_HANDLED : IRQ_NONE;
406} 406}
diff --git a/drivers/serial/crisv10.c b/drivers/serial/crisv10.c
index 9851d9eff022..7a24e53546c7 100644
--- a/drivers/serial/crisv10.c
+++ b/drivers/serial/crisv10.c
@@ -2346,7 +2346,7 @@ start_receive(struct e100_serial *info)
2346*/ 2346*/
2347 2347
2348static irqreturn_t 2348static irqreturn_t
2349tr_interrupt(int irq, void *dev_id, struct pt_regs * regs) 2349tr_interrupt(int irq, void *dev_id)
2350{ 2350{
2351 struct e100_serial *info; 2351 struct e100_serial *info;
2352 unsigned long ireg; 2352 unsigned long ireg;
@@ -2395,7 +2395,7 @@ tr_interrupt(int irq, void *dev_id, struct pt_regs * regs)
2395/* dma input channel interrupt handler */ 2395/* dma input channel interrupt handler */
2396 2396
2397static irqreturn_t 2397static irqreturn_t
2398rec_interrupt(int irq, void *dev_id, struct pt_regs * regs) 2398rec_interrupt(int irq, void *dev_id)
2399{ 2399{
2400 struct e100_serial *info; 2400 struct e100_serial *info;
2401 unsigned long ireg; 2401 unsigned long ireg;
@@ -3054,7 +3054,7 @@ static void handle_ser_tx_interrupt(struct e100_serial *info)
3054 * ser_int duration: just sending: 8-15 us normally, up to 73 us 3054 * ser_int duration: just sending: 8-15 us normally, up to 73 us
3055 */ 3055 */
3056static irqreturn_t 3056static irqreturn_t
3057ser_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3057ser_interrupt(int irq, void *dev_id)
3058{ 3058{
3059 static volatile int tx_started = 0; 3059 static volatile int tx_started = 0;
3060 struct e100_serial *info; 3060 struct e100_serial *info;
diff --git a/drivers/serial/dz.c b/drivers/serial/dz.c
index 8a98aae80e22..53662b33b841 100644
--- a/drivers/serial/dz.c
+++ b/drivers/serial/dz.c
@@ -339,7 +339,7 @@ static inline void check_modem_status(struct dz_port *dport)
339 * It deals with the multiple ports. 339 * It deals with the multiple ports.
340 * ------------------------------------------------------------ 340 * ------------------------------------------------------------
341 */ 341 */
342static irqreturn_t dz_interrupt(int irq, void *dev, struct pt_regs *regs) 342static irqreturn_t dz_interrupt(int irq, void *dev)
343{ 343{
344 struct dz_port *dport; 344 struct dz_port *dport;
345 unsigned short status; 345 unsigned short status;
diff --git a/drivers/serial/icom.c b/drivers/serial/icom.c
index a3c00a252149..8aa0f641866b 100644
--- a/drivers/serial/icom.c
+++ b/drivers/serial/icom.c
@@ -844,8 +844,7 @@ static void process_interrupt(u16 port_int_reg,
844 spin_unlock(&icom_port->uart_port.lock); 844 spin_unlock(&icom_port->uart_port.lock);
845} 845}
846 846
847static irqreturn_t icom_interrupt(int irq, void *dev_id, 847static irqreturn_t icom_interrupt(int irq, void *dev_id)
848 struct pt_regs *regs)
849{ 848{
850 void __iomem * int_reg; 849 void __iomem * int_reg;
851 u32 adapter_interrupts; 850 u32 adapter_interrupts;
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c
index 4a142d6b8f38..ee5c782597dd 100644
--- a/drivers/serial/imx.c
+++ b/drivers/serial/imx.c
@@ -182,7 +182,7 @@ static void imx_start_tx(struct uart_port *port)
182 imx_transmit_buffer(sport); 182 imx_transmit_buffer(sport);
183} 183}
184 184
185static irqreturn_t imx_rtsint(int irq, void *dev_id, struct pt_regs *regs) 185static irqreturn_t imx_rtsint(int irq, void *dev_id)
186{ 186{
187 struct imx_port *sport = (struct imx_port *)dev_id; 187 struct imx_port *sport = (struct imx_port *)dev_id;
188 unsigned int val = USR1((u32)sport->port.membase)&USR1_RTSS; 188 unsigned int val = USR1((u32)sport->port.membase)&USR1_RTSS;
@@ -198,7 +198,7 @@ static irqreturn_t imx_rtsint(int irq, void *dev_id, struct pt_regs *regs)
198 return IRQ_HANDLED; 198 return IRQ_HANDLED;
199} 199}
200 200
201static irqreturn_t imx_txint(int irq, void *dev_id, struct pt_regs *regs) 201static irqreturn_t imx_txint(int irq, void *dev_id)
202{ 202{
203 struct imx_port *sport = (struct imx_port *)dev_id; 203 struct imx_port *sport = (struct imx_port *)dev_id;
204 struct circ_buf *xmit = &sport->port.info->xmit; 204 struct circ_buf *xmit = &sport->port.info->xmit;
@@ -227,7 +227,7 @@ out:
227 return IRQ_HANDLED; 227 return IRQ_HANDLED;
228} 228}
229 229
230static irqreturn_t imx_rxint(int irq, void *dev_id, struct pt_regs *regs) 230static irqreturn_t imx_rxint(int irq, void *dev_id)
231{ 231{
232 struct imx_port *sport = dev_id; 232 struct imx_port *sport = dev_id;
233 unsigned int rx,flg,ignored = 0; 233 unsigned int rx,flg,ignored = 0;
@@ -248,7 +248,7 @@ static irqreturn_t imx_rxint(int irq, void *dev_id, struct pt_regs *regs)
248 } 248 }
249 249
250 if (uart_handle_sysrq_char 250 if (uart_handle_sysrq_char
251 (&sport->port, (unsigned char)rx, regs)) 251 (&sport->port, (unsigned char)rx))
252 goto ignore_char; 252 goto ignore_char;
253 253
254 if( rx & (URXD_PRERR | URXD_OVRRUN | URXD_FRMERR) ) 254 if( rx & (URXD_PRERR | URXD_OVRRUN | URXD_FRMERR) )
diff --git a/drivers/serial/ioc3_serial.c b/drivers/serial/ioc3_serial.c
index 8097cd91f16b..2308d26c8629 100644
--- a/drivers/serial/ioc3_serial.c
+++ b/drivers/serial/ioc3_serial.c
@@ -1428,13 +1428,12 @@ static int receive_chars(struct uart_port *the_port)
1428 * @is : submodule 1428 * @is : submodule
1429 * @idd: driver data 1429 * @idd: driver data
1430 * @pending: interrupts to handle 1430 * @pending: interrupts to handle
1431 * @regs: pt_regs
1432 */ 1431 */
1433 1432
1434static int inline 1433static int inline
1435ioc3uart_intr_one(struct ioc3_submodule *is, 1434ioc3uart_intr_one(struct ioc3_submodule *is,
1436 struct ioc3_driver_data *idd, 1435 struct ioc3_driver_data *idd,
1437 unsigned int pending, struct pt_regs *regs) 1436 unsigned int pending)
1438{ 1437{
1439 int port_num = GET_PORT_FROM_SIO_IR(pending); 1438 int port_num = GET_PORT_FROM_SIO_IR(pending);
1440 struct port_hooks *hooks; 1439 struct port_hooks *hooks;
@@ -1628,13 +1627,12 @@ ioc3uart_intr_one(struct ioc3_submodule *is,
1628 * @is : submodule 1627 * @is : submodule
1629 * @idd: driver data 1628 * @idd: driver data
1630 * @pending: interrupts to handle 1629 * @pending: interrupts to handle
1631 * @regs: pt_regs
1632 * 1630 *
1633 */ 1631 */
1634 1632
1635static int ioc3uart_intr(struct ioc3_submodule *is, 1633static int ioc3uart_intr(struct ioc3_submodule *is,
1636 struct ioc3_driver_data *idd, 1634 struct ioc3_driver_data *idd,
1637 unsigned int pending, struct pt_regs *regs) 1635 unsigned int pending)
1638{ 1636{
1639 int ret = 0; 1637 int ret = 0;
1640 1638
@@ -1644,9 +1642,9 @@ static int ioc3uart_intr(struct ioc3_submodule *is,
1644 */ 1642 */
1645 1643
1646 if (pending & SIO_IR_SA) 1644 if (pending & SIO_IR_SA)
1647 ret |= ioc3uart_intr_one(is, idd, pending & SIO_IR_SA, regs); 1645 ret |= ioc3uart_intr_one(is, idd, pending & SIO_IR_SA);
1648 if (pending & SIO_IR_SB) 1646 if (pending & SIO_IR_SB)
1649 ret |= ioc3uart_intr_one(is, idd, pending & SIO_IR_SB, regs); 1647 ret |= ioc3uart_intr_one(is, idd, pending & SIO_IR_SB);
1650 1648
1651 return ret; 1649 return ret;
1652} 1650}
diff --git a/drivers/serial/ioc4_serial.c b/drivers/serial/ioc4_serial.c
index 5ec4716c99bf..98ce88d80207 100644
--- a/drivers/serial/ioc4_serial.c
+++ b/drivers/serial/ioc4_serial.c
@@ -987,10 +987,9 @@ intr_connect(struct ioc4_soft *soft, int type,
987 * ioc4_intr - Top level IOC4 interrupt handler. 987 * ioc4_intr - Top level IOC4 interrupt handler.
988 * @irq: irq value 988 * @irq: irq value
989 * @arg: handler arg 989 * @arg: handler arg
990 * @regs: registers
991 */ 990 */
992 991
993static irqreturn_t ioc4_intr(int irq, void *arg, struct pt_regs *regs) 992static irqreturn_t ioc4_intr(int irq, void *arg)
994{ 993{
995 struct ioc4_soft *soft; 994 struct ioc4_soft *soft;
996 uint32_t this_ir, this_mir; 995 uint32_t this_ir, this_mir;
diff --git a/drivers/serial/ip22zilog.c b/drivers/serial/ip22zilog.c
index dbf13c03a1bb..dca6c1bde8f9 100644
--- a/drivers/serial/ip22zilog.c
+++ b/drivers/serial/ip22zilog.c
@@ -252,8 +252,7 @@ static void ip22zilog_maybe_update_regs(struct uart_ip22zilog_port *up,
252} 252}
253 253
254static void ip22zilog_receive_chars(struct uart_ip22zilog_port *up, 254static void ip22zilog_receive_chars(struct uart_ip22zilog_port *up,
255 struct zilog_channel *channel, 255 struct zilog_channel *channel)
256 struct pt_regs *regs)
257{ 256{
258 struct tty_struct *tty = up->port.info->tty; /* XXX info==NULL? */ 257 struct tty_struct *tty = up->port.info->tty; /* XXX info==NULL? */
259 258
@@ -319,7 +318,7 @@ static void ip22zilog_receive_chars(struct uart_ip22zilog_port *up,
319 else if (r1 & CRC_ERR) 318 else if (r1 & CRC_ERR)
320 flag = TTY_FRAME; 319 flag = TTY_FRAME;
321 } 320 }
322 if (uart_handle_sysrq_char(&up->port, ch, regs)) 321 if (uart_handle_sysrq_char(&up->port, ch))
323 goto next_char; 322 goto next_char;
324 323
325 if (up->port.ignore_status_mask == 0xff || 324 if (up->port.ignore_status_mask == 0xff ||
@@ -339,8 +338,7 @@ static void ip22zilog_receive_chars(struct uart_ip22zilog_port *up,
339} 338}
340 339
341static void ip22zilog_status_handle(struct uart_ip22zilog_port *up, 340static void ip22zilog_status_handle(struct uart_ip22zilog_port *up,
342 struct zilog_channel *channel, 341 struct zilog_channel *channel)
343 struct pt_regs *regs)
344{ 342{
345 unsigned char status; 343 unsigned char status;
346 344
@@ -443,7 +441,7 @@ ack_tx_int:
443 ZS_WSYNC(channel); 441 ZS_WSYNC(channel);
444} 442}
445 443
446static irqreturn_t ip22zilog_interrupt(int irq, void *dev_id, struct pt_regs *regs) 444static irqreturn_t ip22zilog_interrupt(int irq, void *dev_id)
447{ 445{
448 struct uart_ip22zilog_port *up = dev_id; 446 struct uart_ip22zilog_port *up = dev_id;
449 447
@@ -462,9 +460,9 @@ static irqreturn_t ip22zilog_interrupt(int irq, void *dev_id, struct pt_regs *re
462 ZS_WSYNC(channel); 460 ZS_WSYNC(channel);
463 461
464 if (r3 & CHARxIP) 462 if (r3 & CHARxIP)
465 ip22zilog_receive_chars(up, channel, regs); 463 ip22zilog_receive_chars(up, channel);
466 if (r3 & CHAEXT) 464 if (r3 & CHAEXT)
467 ip22zilog_status_handle(up, channel, regs); 465 ip22zilog_status_handle(up, channel);
468 if (r3 & CHATxIP) 466 if (r3 & CHATxIP)
469 ip22zilog_transmit_chars(up, channel); 467 ip22zilog_transmit_chars(up, channel);
470 } 468 }
@@ -481,9 +479,9 @@ static irqreturn_t ip22zilog_interrupt(int irq, void *dev_id, struct pt_regs *re
481 ZS_WSYNC(channel); 479 ZS_WSYNC(channel);
482 480
483 if (r3 & CHBRxIP) 481 if (r3 & CHBRxIP)
484 ip22zilog_receive_chars(up, channel, regs); 482 ip22zilog_receive_chars(up, channel);
485 if (r3 & CHBEXT) 483 if (r3 & CHBEXT)
486 ip22zilog_status_handle(up, channel, regs); 484 ip22zilog_status_handle(up, channel);
487 if (r3 & CHBTxIP) 485 if (r3 & CHBTxIP)
488 ip22zilog_transmit_chars(up, channel); 486 ip22zilog_transmit_chars(up, channel);
489 } 487 }
diff --git a/drivers/serial/jsm/jsm.h b/drivers/serial/jsm/jsm.h
index 043f50b1d10c..12c934a1f274 100644
--- a/drivers/serial/jsm/jsm.h
+++ b/drivers/serial/jsm/jsm.h
@@ -99,7 +99,7 @@ struct jsm_channel;
99 * Per board operations structure * 99 * Per board operations structure *
100 ************************************************************************/ 100 ************************************************************************/
101struct board_ops { 101struct board_ops {
102 irqreturn_t (*intr) (int irq, void *voidbrd, struct pt_regs *regs); 102 irq_handler_t intr;
103 void (*uart_init) (struct jsm_channel *ch); 103 void (*uart_init) (struct jsm_channel *ch);
104 void (*uart_off) (struct jsm_channel *ch); 104 void (*uart_off) (struct jsm_channel *ch);
105 void (*param) (struct jsm_channel *ch); 105 void (*param) (struct jsm_channel *ch);
diff --git a/drivers/serial/jsm/jsm_neo.c b/drivers/serial/jsm/jsm_neo.c
index a5fc589d6ef5..8fa31e68989a 100644
--- a/drivers/serial/jsm/jsm_neo.c
+++ b/drivers/serial/jsm/jsm_neo.c
@@ -1114,7 +1114,7 @@ static void neo_param(struct jsm_channel *ch)
1114 * 1114 *
1115 * Neo specific interrupt handler. 1115 * Neo specific interrupt handler.
1116 */ 1116 */
1117static irqreturn_t neo_intr(int irq, void *voidbrd, struct pt_regs *regs) 1117static irqreturn_t neo_intr(int irq, void *voidbrd)
1118{ 1118{
1119 struct jsm_board *brd = (struct jsm_board *) voidbrd; 1119 struct jsm_board *brd = (struct jsm_board *) voidbrd;
1120 struct jsm_channel *ch; 1120 struct jsm_channel *ch;
diff --git a/drivers/serial/m32r_sio.c b/drivers/serial/m32r_sio.c
index 28c9ce6f0bdc..c85ac1a77608 100644
--- a/drivers/serial/m32r_sio.c
+++ b/drivers/serial/m32r_sio.c
@@ -323,8 +323,7 @@ static void m32r_sio_enable_ms(struct uart_port *port)
323 serial_out(up, UART_IER, up->ier); 323 serial_out(up, UART_IER, up->ier);
324} 324}
325 325
326static void receive_chars(struct uart_sio_port *up, int *status, 326static void receive_chars(struct uart_sio_port *up, int *status)
327 struct pt_regs *regs)
328{ 327{
329 struct tty_struct *tty = up->port.info->tty; 328 struct tty_struct *tty = up->port.info->tty;
330 unsigned char ch; 329 unsigned char ch;
@@ -378,7 +377,7 @@ static void receive_chars(struct uart_sio_port *up, int *status,
378 else if (*status & UART_LSR_FE) 377 else if (*status & UART_LSR_FE)
379 flag = TTY_FRAME; 378 flag = TTY_FRAME;
380 } 379 }
381 if (uart_handle_sysrq_char(&up->port, ch, regs)) 380 if (uart_handle_sysrq_char(&up->port, ch))
382 goto ignore_char; 381 goto ignore_char;
383 if ((*status & up->port.ignore_status_mask) == 0) 382 if ((*status & up->port.ignore_status_mask) == 0)
384 tty_insert_flip_char(tty, ch, flag); 383 tty_insert_flip_char(tty, ch, flag);
@@ -439,12 +438,12 @@ static void transmit_chars(struct uart_sio_port *up)
439 * This handles the interrupt from one port. 438 * This handles the interrupt from one port.
440 */ 439 */
441static inline void m32r_sio_handle_port(struct uart_sio_port *up, 440static inline void m32r_sio_handle_port(struct uart_sio_port *up,
442 unsigned int status, struct pt_regs *regs) 441 unsigned int status)
443{ 442{
444 DEBUG_INTR("status = %x...", status); 443 DEBUG_INTR("status = %x...", status);
445 444
446 if (status & 0x04) 445 if (status & 0x04)
447 receive_chars(up, &status, regs); 446 receive_chars(up, &status);
448 if (status & 0x01) 447 if (status & 0x01)
449 transmit_chars(up); 448 transmit_chars(up);
450} 449}
@@ -463,8 +462,7 @@ static inline void m32r_sio_handle_port(struct uart_sio_port *up,
463 * This means we need to loop through all ports. checking that they 462 * This means we need to loop through all ports. checking that they
464 * don't have an interrupt pending. 463 * don't have an interrupt pending.
465 */ 464 */
466static irqreturn_t m32r_sio_interrupt(int irq, void *dev_id, 465static irqreturn_t m32r_sio_interrupt(int irq, void *dev_id)
467 struct pt_regs *regs)
468{ 466{
469 struct irq_info *i = dev_id; 467 struct irq_info *i = dev_id;
470 struct list_head *l, *end = NULL; 468 struct list_head *l, *end = NULL;
@@ -492,7 +490,7 @@ static irqreturn_t m32r_sio_interrupt(int irq, void *dev_id,
492 sts = sio_in(up, SIOSTS); 490 sts = sio_in(up, SIOSTS);
493 if (sts & 0x5) { 491 if (sts & 0x5) {
494 spin_lock(&up->port.lock); 492 spin_lock(&up->port.lock);
495 m32r_sio_handle_port(up, sts, regs); 493 m32r_sio_handle_port(up, sts);
496 spin_unlock(&up->port.lock); 494 spin_unlock(&up->port.lock);
497 495
498 end = NULL; 496 end = NULL;
diff --git a/drivers/serial/mcfserial.c b/drivers/serial/mcfserial.c
index 00d7859c167e..aee1b31f1a1c 100644
--- a/drivers/serial/mcfserial.c
+++ b/drivers/serial/mcfserial.c
@@ -385,7 +385,7 @@ static inline void transmit_chars(struct mcf_serial *info)
385/* 385/*
386 * This is the serial driver's generic interrupt routine 386 * This is the serial driver's generic interrupt routine
387 */ 387 */
388irqreturn_t mcfrs_interrupt(int irq, void *dev_id, struct pt_regs *regs) 388irqreturn_t mcfrs_interrupt(int irq, void *dev_id)
389{ 389{
390 struct mcf_serial *info; 390 struct mcf_serial *info;
391 unsigned char isr; 391 unsigned char isr;
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index dbad0e31e005..039c2fd6d496 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -85,7 +85,7 @@ static struct uart_port mpc52xx_uart_ports[MPC52xx_PSC_MAXNUM];
85 85
86 86
87/* Forward declaration of the interruption handling routine */ 87/* Forward declaration of the interruption handling routine */
88static irqreturn_t mpc52xx_uart_int(int irq,void *dev_id,struct pt_regs *regs); 88static irqreturn_t mpc52xx_uart_int(int irq,void *dev_id);
89 89
90 90
91/* Simple macro to test if a port is console or not. This one is taken 91/* Simple macro to test if a port is console or not. This one is taken
@@ -410,7 +410,7 @@ static struct uart_ops mpc52xx_uart_ops = {
410/* ======================================================================== */ 410/* ======================================================================== */
411 411
412static inline int 412static inline int
413mpc52xx_uart_int_rx_chars(struct uart_port *port, struct pt_regs *regs) 413mpc52xx_uart_int_rx_chars(struct uart_port *port)
414{ 414{
415 struct tty_struct *tty = port->info->tty; 415 struct tty_struct *tty = port->info->tty;
416 unsigned char ch, flag; 416 unsigned char ch, flag;
@@ -425,7 +425,7 @@ mpc52xx_uart_int_rx_chars(struct uart_port *port, struct pt_regs *regs)
425 425
426 /* Handle sysreq char */ 426 /* Handle sysreq char */
427#ifdef SUPPORT_SYSRQ 427#ifdef SUPPORT_SYSRQ
428 if (uart_handle_sysrq_char(port, ch, regs)) { 428 if (uart_handle_sysrq_char(port, ch)) {
429 port->sysrq = 0; 429 port->sysrq = 0;
430 continue; 430 continue;
431 } 431 }
@@ -510,7 +510,7 @@ mpc52xx_uart_int_tx_chars(struct uart_port *port)
510} 510}
511 511
512static irqreturn_t 512static irqreturn_t
513mpc52xx_uart_int(int irq, void *dev_id, struct pt_regs *regs) 513mpc52xx_uart_int(int irq, void *dev_id)
514{ 514{
515 struct uart_port *port = (struct uart_port *) dev_id; 515 struct uart_port *port = (struct uart_port *) dev_id;
516 unsigned long pass = ISR_PASS_LIMIT; 516 unsigned long pass = ISR_PASS_LIMIT;
@@ -539,7 +539,7 @@ mpc52xx_uart_int(int irq, void *dev_id, struct pt_regs *regs)
539 /* Do we need to receive chars ? */ 539 /* Do we need to receive chars ? */
540 /* For this RX interrupts must be on and some chars waiting */ 540 /* For this RX interrupts must be on and some chars waiting */
541 if ( status & MPC52xx_PSC_IMR_RXRDY ) 541 if ( status & MPC52xx_PSC_IMR_RXRDY )
542 keepgoing |= mpc52xx_uart_int_rx_chars(port, regs); 542 keepgoing |= mpc52xx_uart_int_rx_chars(port);
543 543
544 /* Do we need to send chars ? */ 544 /* Do we need to send chars ? */
545 /* For this, TX must be ready and TX interrupt enabled */ 545 /* For this, TX must be ready and TX interrupt enabled */
diff --git a/drivers/serial/mpsc.c b/drivers/serial/mpsc.c
index 704243c9f78a..8eea69f29989 100644
--- a/drivers/serial/mpsc.c
+++ b/drivers/serial/mpsc.c
@@ -992,7 +992,7 @@ mpsc_make_ready(struct mpsc_port_info *pi)
992 */ 992 */
993 993
994static inline int 994static inline int
995mpsc_rx_intr(struct mpsc_port_info *pi, struct pt_regs *regs) 995mpsc_rx_intr(struct mpsc_port_info *pi)
996{ 996{
997 struct mpsc_rx_desc *rxre; 997 struct mpsc_rx_desc *rxre;
998 struct tty_struct *tty = pi->port.info->tty; 998 struct tty_struct *tty = pi->port.info->tty;
@@ -1072,7 +1072,7 @@ mpsc_rx_intr(struct mpsc_port_info *pi, struct pt_regs *regs)
1072 flag = TTY_PARITY; 1072 flag = TTY_PARITY;
1073 } 1073 }
1074 1074
1075 if (uart_handle_sysrq_char(&pi->port, *bp, regs)) { 1075 if (uart_handle_sysrq_char(&pi->port, *bp)) {
1076 bp++; 1076 bp++;
1077 bytes_in--; 1077 bytes_in--;
1078 goto next_frame; 1078 goto next_frame;
@@ -1257,7 +1257,7 @@ mpsc_tx_intr(struct mpsc_port_info *pi)
1257 * handling those descriptors, we restart the Rx/Tx engines if they're stopped. 1257 * handling those descriptors, we restart the Rx/Tx engines if they're stopped.
1258 */ 1258 */
1259static irqreturn_t 1259static irqreturn_t
1260mpsc_sdma_intr(int irq, void *dev_id, struct pt_regs *regs) 1260mpsc_sdma_intr(int irq, void *dev_id)
1261{ 1261{
1262 struct mpsc_port_info *pi = dev_id; 1262 struct mpsc_port_info *pi = dev_id;
1263 ulong iflags; 1263 ulong iflags;
@@ -1267,7 +1267,7 @@ mpsc_sdma_intr(int irq, void *dev_id, struct pt_regs *regs)
1267 1267
1268 spin_lock_irqsave(&pi->port.lock, iflags); 1268 spin_lock_irqsave(&pi->port.lock, iflags);
1269 mpsc_sdma_intr_ack(pi); 1269 mpsc_sdma_intr_ack(pi);
1270 if (mpsc_rx_intr(pi, regs)) 1270 if (mpsc_rx_intr(pi))
1271 rc = IRQ_HANDLED; 1271 rc = IRQ_HANDLED;
1272 if (mpsc_tx_intr(pi)) 1272 if (mpsc_tx_intr(pi))
1273 rc = IRQ_HANDLED; 1273 rc = IRQ_HANDLED;
diff --git a/drivers/serial/netx-serial.c b/drivers/serial/netx-serial.c
index 7502109d37f0..e92d7e1c22cf 100644
--- a/drivers/serial/netx-serial.c
+++ b/drivers/serial/netx-serial.c
@@ -200,7 +200,7 @@ static void netx_txint(struct uart_port *port)
200 uart_write_wakeup(port); 200 uart_write_wakeup(port);
201} 201}
202 202
203static void netx_rxint(struct uart_port *port, struct pt_regs *regs) 203static void netx_rxint(struct uart_port *port)
204{ 204{
205 unsigned char rx, flg, status; 205 unsigned char rx, flg, status;
206 struct tty_struct *tty = port->info->tty; 206 struct tty_struct *tty = port->info->tty;
@@ -235,7 +235,7 @@ static void netx_rxint(struct uart_port *port, struct pt_regs *regs)
235 flg = TTY_FRAME; 235 flg = TTY_FRAME;
236 } 236 }
237 237
238 if (uart_handle_sysrq_char(port, rx, regs)) 238 if (uart_handle_sysrq_char(port, rx))
239 continue; 239 continue;
240 240
241 uart_insert_char(port, status, SR_OE, rx, flg); 241 uart_insert_char(port, status, SR_OE, rx, flg);
@@ -245,7 +245,7 @@ static void netx_rxint(struct uart_port *port, struct pt_regs *regs)
245 return; 245 return;
246} 246}
247 247
248static irqreturn_t netx_int(int irq, void *dev_id, struct pt_regs *regs) 248static irqreturn_t netx_int(int irq, void *dev_id)
249{ 249{
250 struct uart_port *port = (struct uart_port *)dev_id; 250 struct uart_port *port = (struct uart_port *)dev_id;
251 unsigned long flags; 251 unsigned long flags;
@@ -256,7 +256,7 @@ static irqreturn_t netx_int(int irq, void *dev_id, struct pt_regs *regs)
256 status = readl(port->membase + UART_IIR) & IIR_MASK; 256 status = readl(port->membase + UART_IIR) & IIR_MASK;
257 while (status) { 257 while (status) {
258 if (status & IIR_RIS) 258 if (status & IIR_RIS)
259 netx_rxint(port, regs); 259 netx_rxint(port);
260 if (status & IIR_TIS) 260 if (status & IIR_TIS)
261 netx_txint(port); 261 netx_txint(port);
262 if (status & IIR_MIS) { 262 if (status & IIR_MIS) {
diff --git a/drivers/serial/pmac_zilog.c b/drivers/serial/pmac_zilog.c
index a3b99caf80e6..bf9809ed9c0b 100644
--- a/drivers/serial/pmac_zilog.c
+++ b/drivers/serial/pmac_zilog.c
@@ -204,8 +204,7 @@ static void pmz_maybe_update_regs(struct uart_pmac_port *uap)
204 } 204 }
205} 205}
206 206
207static struct tty_struct *pmz_receive_chars(struct uart_pmac_port *uap, 207static struct tty_struct *pmz_receive_chars(struct uart_pmac_port *uap)
208 struct pt_regs *regs)
209{ 208{
210 struct tty_struct *tty = NULL; 209 struct tty_struct *tty = NULL;
211 unsigned char ch, r1, drop, error, flag; 210 unsigned char ch, r1, drop, error, flag;
@@ -267,7 +266,7 @@ static struct tty_struct *pmz_receive_chars(struct uart_pmac_port *uap,
267 if (uap->port.sysrq) { 266 if (uap->port.sysrq) {
268 int swallow; 267 int swallow;
269 spin_unlock(&uap->port.lock); 268 spin_unlock(&uap->port.lock);
270 swallow = uart_handle_sysrq_char(&uap->port, ch, regs); 269 swallow = uart_handle_sysrq_char(&uap->port, ch);
271 spin_lock(&uap->port.lock); 270 spin_lock(&uap->port.lock);
272 if (swallow) 271 if (swallow)
273 goto next_char; 272 goto next_char;
@@ -335,7 +334,7 @@ static struct tty_struct *pmz_receive_chars(struct uart_pmac_port *uap,
335 return tty; 334 return tty;
336} 335}
337 336
338static void pmz_status_handle(struct uart_pmac_port *uap, struct pt_regs *regs) 337static void pmz_status_handle(struct uart_pmac_port *uap)
339{ 338{
340 unsigned char status; 339 unsigned char status;
341 340
@@ -438,7 +437,7 @@ ack_tx_int:
438} 437}
439 438
440/* Hrm... we register that twice, fixme later.... */ 439/* Hrm... we register that twice, fixme later.... */
441static irqreturn_t pmz_interrupt(int irq, void *dev_id, struct pt_regs *regs) 440static irqreturn_t pmz_interrupt(int irq, void *dev_id)
442{ 441{
443 struct uart_pmac_port *uap = dev_id; 442 struct uart_pmac_port *uap = dev_id;
444 struct uart_pmac_port *uap_a; 443 struct uart_pmac_port *uap_a;
@@ -462,9 +461,9 @@ static irqreturn_t pmz_interrupt(int irq, void *dev_id, struct pt_regs *regs)
462 write_zsreg(uap_a, R0, RES_H_IUS); 461 write_zsreg(uap_a, R0, RES_H_IUS);
463 zssync(uap_a); 462 zssync(uap_a);
464 if (r3 & CHAEXT) 463 if (r3 & CHAEXT)
465 pmz_status_handle(uap_a, regs); 464 pmz_status_handle(uap_a);
466 if (r3 & CHARxIP) 465 if (r3 & CHARxIP)
467 tty = pmz_receive_chars(uap_a, regs); 466 tty = pmz_receive_chars(uap_a);
468 if (r3 & CHATxIP) 467 if (r3 & CHATxIP)
469 pmz_transmit_chars(uap_a); 468 pmz_transmit_chars(uap_a);
470 rc = IRQ_HANDLED; 469 rc = IRQ_HANDLED;
@@ -482,9 +481,9 @@ static irqreturn_t pmz_interrupt(int irq, void *dev_id, struct pt_regs *regs)
482 write_zsreg(uap_b, R0, RES_H_IUS); 481 write_zsreg(uap_b, R0, RES_H_IUS);
483 zssync(uap_b); 482 zssync(uap_b);
484 if (r3 & CHBEXT) 483 if (r3 & CHBEXT)
485 pmz_status_handle(uap_b, regs); 484 pmz_status_handle(uap_b);
486 if (r3 & CHBRxIP) 485 if (r3 & CHBRxIP)
487 tty = pmz_receive_chars(uap_b, regs); 486 tty = pmz_receive_chars(uap_b);
488 if (r3 & CHBTxIP) 487 if (r3 & CHBTxIP)
489 pmz_transmit_chars(uap_b); 488 pmz_transmit_chars(uap_b);
490 rc = IRQ_HANDLED; 489 rc = IRQ_HANDLED;
diff --git a/drivers/serial/pxa.c b/drivers/serial/pxa.c
index a720953a404e..846089f222d4 100644
--- a/drivers/serial/pxa.c
+++ b/drivers/serial/pxa.c
@@ -98,8 +98,7 @@ static void serial_pxa_stop_rx(struct uart_port *port)
98 serial_out(up, UART_IER, up->ier); 98 serial_out(up, UART_IER, up->ier);
99} 99}
100 100
101static inline void 101static inline void receive_chars(struct uart_pxa_port *up, int *status)
102receive_chars(struct uart_pxa_port *up, int *status, struct pt_regs *regs)
103{ 102{
104 struct tty_struct *tty = up->port.info->tty; 103 struct tty_struct *tty = up->port.info->tty;
105 unsigned int ch, flag; 104 unsigned int ch, flag;
@@ -153,7 +152,7 @@ receive_chars(struct uart_pxa_port *up, int *status, struct pt_regs *regs)
153 flag = TTY_FRAME; 152 flag = TTY_FRAME;
154 } 153 }
155 154
156 if (uart_handle_sysrq_char(&up->port, ch, regs)) 155 if (uart_handle_sysrq_char(&up->port, ch))
157 goto ignore_char; 156 goto ignore_char;
158 157
159 uart_insert_char(&up->port, *status, UART_LSR_OE, ch, flag); 158 uart_insert_char(&up->port, *status, UART_LSR_OE, ch, flag);
@@ -231,8 +230,7 @@ static inline void check_modem_status(struct uart_pxa_port *up)
231/* 230/*
232 * This handles the interrupt from one port. 231 * This handles the interrupt from one port.
233 */ 232 */
234static inline irqreturn_t 233static inline irqreturn_t serial_pxa_irq(int irq, void *dev_id)
235serial_pxa_irq(int irq, void *dev_id, struct pt_regs *regs)
236{ 234{
237 struct uart_pxa_port *up = (struct uart_pxa_port *)dev_id; 235 struct uart_pxa_port *up = (struct uart_pxa_port *)dev_id;
238 unsigned int iir, lsr; 236 unsigned int iir, lsr;
@@ -242,7 +240,7 @@ serial_pxa_irq(int irq, void *dev_id, struct pt_regs *regs)
242 return IRQ_NONE; 240 return IRQ_NONE;
243 lsr = serial_in(up, UART_LSR); 241 lsr = serial_in(up, UART_LSR);
244 if (lsr & UART_LSR_DR) 242 if (lsr & UART_LSR_DR)
245 receive_chars(up, &lsr, regs); 243 receive_chars(up, &lsr);
246 check_modem_status(up); 244 check_modem_status(up);
247 if (lsr & UART_LSR_THRE) 245 if (lsr & UART_LSR_THRE)
248 transmit_chars(up); 246 transmit_chars(up);
diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c
index 95738a19cde7..8dfc2dd058ca 100644
--- a/drivers/serial/s3c2410.c
+++ b/drivers/serial/s3c2410.c
@@ -310,7 +310,7 @@ static int s3c24xx_serial_rx_fifocnt(struct s3c24xx_uart_port *ourport,
310#define S3C2410_UERSTAT_PARITY (0x1000) 310#define S3C2410_UERSTAT_PARITY (0x1000)
311 311
312static irqreturn_t 312static irqreturn_t
313s3c24xx_serial_rx_chars(int irq, void *dev_id, struct pt_regs *regs) 313s3c24xx_serial_rx_chars(int irq, void *dev_id)
314{ 314{
315 struct s3c24xx_uart_port *ourport = dev_id; 315 struct s3c24xx_uart_port *ourport = dev_id;
316 struct uart_port *port = &ourport->port; 316 struct uart_port *port = &ourport->port;
@@ -379,7 +379,7 @@ s3c24xx_serial_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
379 flag = TTY_FRAME; 379 flag = TTY_FRAME;
380 } 380 }
381 381
382 if (uart_handle_sysrq_char(port, ch, regs)) 382 if (uart_handle_sysrq_char(port, ch))
383 goto ignore_char; 383 goto ignore_char;
384 384
385 uart_insert_char(port, uerstat, S3C2410_UERSTAT_OVERRUN, ch, flag); 385 uart_insert_char(port, uerstat, S3C2410_UERSTAT_OVERRUN, ch, flag);
@@ -393,7 +393,7 @@ s3c24xx_serial_rx_chars(int irq, void *dev_id, struct pt_regs *regs)
393 return IRQ_HANDLED; 393 return IRQ_HANDLED;
394} 394}
395 395
396static irqreturn_t s3c24xx_serial_tx_chars(int irq, void *id, struct pt_regs *regs) 396static irqreturn_t s3c24xx_serial_tx_chars(int irq, void *id)
397{ 397{
398 struct s3c24xx_uart_port *ourport = id; 398 struct s3c24xx_uart_port *ourport = id;
399 struct uart_port *port = &ourport->port; 399 struct uart_port *port = &ourport->port;
diff --git a/drivers/serial/sa1100.c b/drivers/serial/sa1100.c
index db3486d33870..d4065266b6fc 100644
--- a/drivers/serial/sa1100.c
+++ b/drivers/serial/sa1100.c
@@ -190,7 +190,7 @@ static void sa1100_enable_ms(struct uart_port *port)
190} 190}
191 191
192static void 192static void
193sa1100_rx_chars(struct sa1100_port *sport, struct pt_regs *regs) 193sa1100_rx_chars(struct sa1100_port *sport)
194{ 194{
195 struct tty_struct *tty = sport->port.info->tty; 195 struct tty_struct *tty = sport->port.info->tty;
196 unsigned int status, ch, flg; 196 unsigned int status, ch, flg;
@@ -228,7 +228,7 @@ sa1100_rx_chars(struct sa1100_port *sport, struct pt_regs *regs)
228#endif 228#endif
229 } 229 }
230 230
231 if (uart_handle_sysrq_char(&sport->port, ch, regs)) 231 if (uart_handle_sysrq_char(&sport->port, ch))
232 goto ignore_char; 232 goto ignore_char;
233 233
234 uart_insert_char(&sport->port, status, UTSR1_TO_SM(UTSR1_ROR), ch, flg); 234 uart_insert_char(&sport->port, status, UTSR1_TO_SM(UTSR1_ROR), ch, flg);
@@ -281,7 +281,7 @@ static void sa1100_tx_chars(struct sa1100_port *sport)
281 sa1100_stop_tx(&sport->port); 281 sa1100_stop_tx(&sport->port);
282} 282}
283 283
284static irqreturn_t sa1100_int(int irq, void *dev_id, struct pt_regs *regs) 284static irqreturn_t sa1100_int(int irq, void *dev_id)
285{ 285{
286 struct sa1100_port *sport = dev_id; 286 struct sa1100_port *sport = dev_id;
287 unsigned int status, pass_counter = 0; 287 unsigned int status, pass_counter = 0;
@@ -294,7 +294,7 @@ static irqreturn_t sa1100_int(int irq, void *dev_id, struct pt_regs *regs)
294 /* Clear the receiver idle bit, if set */ 294 /* Clear the receiver idle bit, if set */
295 if (status & UTSR0_RID) 295 if (status & UTSR0_RID)
296 UART_PUT_UTSR0(sport, UTSR0_RID); 296 UART_PUT_UTSR0(sport, UTSR0_RID);
297 sa1100_rx_chars(sport, regs); 297 sa1100_rx_chars(sport);
298 } 298 }
299 299
300 /* Clear the relevant break bits */ 300 /* Clear the relevant break bits */
diff --git a/drivers/serial/serial_lh7a40x.c b/drivers/serial/serial_lh7a40x.c
index 23ddedbaec08..5e1ac356bbb0 100644
--- a/drivers/serial/serial_lh7a40x.c
+++ b/drivers/serial/serial_lh7a40x.c
@@ -135,12 +135,7 @@ static void lh7a40xuart_enable_ms (struct uart_port* port)
135 BIT_SET (port, UART_R_INTEN, ModemInt); 135 BIT_SET (port, UART_R_INTEN, ModemInt);
136} 136}
137 137
138static void 138static void lh7a40xuart_rx_chars (struct uart_port* port)
139#ifdef SUPPORT_SYSRQ
140lh7a40xuart_rx_chars (struct uart_port* port, struct pt_regs* regs)
141#else
142lh7a40xuart_rx_chars (struct uart_port* port)
143#endif
144{ 139{
145 struct tty_struct* tty = port->info->tty; 140 struct tty_struct* tty = port->info->tty;
146 int cbRxMax = 256; /* (Gross) limit on receive */ 141 int cbRxMax = 256; /* (Gross) limit on receive */
@@ -177,7 +172,7 @@ lh7a40xuart_rx_chars (struct uart_port* port)
177 flag = TTY_FRAME; 172 flag = TTY_FRAME;
178 } 173 }
179 174
180 if (uart_handle_sysrq_char (port, (unsigned char) data, regs)) 175 if (uart_handle_sysrq_char (port, (unsigned char) data))
181 continue; 176 continue;
182 177
183 uart_insert_char(port, data, RxOverrunError, data, flag); 178 uart_insert_char(port, data, RxOverrunError, data, flag);
@@ -248,8 +243,7 @@ static void lh7a40xuart_modem_status (struct uart_port* port)
248 wake_up_interruptible (&port->info->delta_msr_wait); 243 wake_up_interruptible (&port->info->delta_msr_wait);
249} 244}
250 245
251static irqreturn_t lh7a40xuart_int (int irq, void* dev_id, 246static irqreturn_t lh7a40xuart_int (int irq, void* dev_id)
252 struct pt_regs* regs)
253{ 247{
254 struct uart_port* port = dev_id; 248 struct uart_port* port = dev_id;
255 unsigned int cLoopLimit = ISR_LOOP_LIMIT; 249 unsigned int cLoopLimit = ISR_LOOP_LIMIT;
@@ -258,11 +252,7 @@ static irqreturn_t lh7a40xuart_int (int irq, void* dev_id,
258 252
259 do { 253 do {
260 if (isr & (RxInt | RxTimeoutInt)) 254 if (isr & (RxInt | RxTimeoutInt))
261#ifdef SUPPORT_SYSRQ
262 lh7a40xuart_rx_chars(port, regs);
263#else
264 lh7a40xuart_rx_chars(port); 255 lh7a40xuart_rx_chars(port);
265#endif
266 if (isr & ModemInt) 256 if (isr & ModemInt)
267 lh7a40xuart_modem_status (port); 257 lh7a40xuart_modem_status (port);
268 if (isr & TxInt) 258 if (isr & TxInt)
diff --git a/drivers/serial/serial_txx9.c b/drivers/serial/serial_txx9.c
index ebd8d2bb17fd..2a48289ac722 100644
--- a/drivers/serial/serial_txx9.c
+++ b/drivers/serial/serial_txx9.c
@@ -283,7 +283,7 @@ static void serial_txx9_enable_ms(struct uart_port *port)
283} 283}
284 284
285static inline void 285static inline void
286receive_chars(struct uart_txx9_port *up, unsigned int *status, struct pt_regs *regs) 286receive_chars(struct uart_txx9_port *up, unsigned int *status)
287{ 287{
288 struct tty_struct *tty = up->port.info->tty; 288 struct tty_struct *tty = up->port.info->tty;
289 unsigned char ch; 289 unsigned char ch;
@@ -344,7 +344,7 @@ receive_chars(struct uart_txx9_port *up, unsigned int *status, struct pt_regs *r
344 else if (disr & TXX9_SIDISR_UFER) 344 else if (disr & TXX9_SIDISR_UFER)
345 flag = TTY_FRAME; 345 flag = TTY_FRAME;
346 } 346 }
347 if (uart_handle_sysrq_char(&up->port, ch, regs)) 347 if (uart_handle_sysrq_char(&up->port, ch))
348 goto ignore_char; 348 goto ignore_char;
349 349
350 uart_insert_char(&up->port, disr, TXX9_SIDISR_UOER, ch, flag); 350 uart_insert_char(&up->port, disr, TXX9_SIDISR_UOER, ch, flag);
@@ -391,7 +391,7 @@ static inline void transmit_chars(struct uart_txx9_port *up)
391 serial_txx9_stop_tx(&up->port); 391 serial_txx9_stop_tx(&up->port);
392} 392}
393 393
394static irqreturn_t serial_txx9_interrupt(int irq, void *dev_id, struct pt_regs *regs) 394static irqreturn_t serial_txx9_interrupt(int irq, void *dev_id)
395{ 395{
396 int pass_counter = 0; 396 int pass_counter = 0;
397 struct uart_txx9_port *up = dev_id; 397 struct uart_txx9_port *up = dev_id;
@@ -409,7 +409,7 @@ static irqreturn_t serial_txx9_interrupt(int irq, void *dev_id, struct pt_regs *
409 } 409 }
410 410
411 if (status & TXX9_SIDISR_RDIS) 411 if (status & TXX9_SIDISR_RDIS)
412 receive_chars(up, &status, regs); 412 receive_chars(up, &status);
413 if (status & TXX9_SIDISR_TDIS) 413 if (status & TXX9_SIDISR_TDIS)
414 transmit_chars(up); 414 transmit_chars(up);
415 /* Clear TX/RX Int. Status */ 415 /* Clear TX/RX Int. Status */
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c
index 5c025d1190c1..266aa325569e 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -446,8 +446,7 @@ static void sci_transmit_chars(struct uart_port *port)
446/* On SH3, SCIF may read end-of-break as a space->mark char */ 446/* On SH3, SCIF may read end-of-break as a space->mark char */
447#define STEPFN(c) ({int __c=(c); (((__c-1)|(__c)) == -1); }) 447#define STEPFN(c) ({int __c=(c); (((__c-1)|(__c)) == -1); })
448 448
449static inline void sci_receive_chars(struct uart_port *port, 449static inline void sci_receive_chars(struct uart_port *port)
450 struct pt_regs *regs)
451{ 450{
452 struct sci_port *sci_port = (struct sci_port *)port; 451 struct sci_port *sci_port = (struct sci_port *)port;
453 struct tty_struct *tty = port->info->tty; 452 struct tty_struct *tty = port->info->tty;
@@ -476,7 +475,7 @@ static inline void sci_receive_chars(struct uart_port *port,
476 475
477 if (port->type == PORT_SCI) { 476 if (port->type == PORT_SCI) {
478 char c = sci_in(port, SCxRDR); 477 char c = sci_in(port, SCxRDR);
479 if (uart_handle_sysrq_char(port, c, regs) || sci_port->break_flag) 478 if (uart_handle_sysrq_char(port, c) || sci_port->break_flag)
480 count = 0; 479 count = 0;
481 else { 480 else {
482 tty_insert_flip_char(tty, c, TTY_NORMAL); 481 tty_insert_flip_char(tty, c, TTY_NORMAL);
@@ -504,7 +503,7 @@ static inline void sci_receive_chars(struct uart_port *port,
504 } 503 }
505 } 504 }
506#endif /* CONFIG_CPU_SH3 */ 505#endif /* CONFIG_CPU_SH3 */
507 if (uart_handle_sysrq_char(port, c, regs)) { 506 if (uart_handle_sysrq_char(port, c)) {
508 count--; i--; 507 count--; i--;
509 continue; 508 continue;
510 } 509 }
@@ -652,18 +651,18 @@ static inline int sci_handle_breaks(struct uart_port *port)
652 return copied; 651 return copied;
653} 652}
654 653
655static irqreturn_t sci_rx_interrupt(int irq, void *port, struct pt_regs *regs) 654static irqreturn_t sci_rx_interrupt(int irq, void *port)
656{ 655{
657 /* I think sci_receive_chars has to be called irrespective 656 /* I think sci_receive_chars has to be called irrespective
658 * of whether the I_IXOFF is set, otherwise, how is the interrupt 657 * of whether the I_IXOFF is set, otherwise, how is the interrupt
659 * to be disabled? 658 * to be disabled?
660 */ 659 */
661 sci_receive_chars(port, regs); 660 sci_receive_chars(port);
662 661
663 return IRQ_HANDLED; 662 return IRQ_HANDLED;
664} 663}
665 664
666static irqreturn_t sci_tx_interrupt(int irq, void *ptr, struct pt_regs *regs) 665static irqreturn_t sci_tx_interrupt(int irq, void *ptr)
667{ 666{
668 struct uart_port *port = ptr; 667 struct uart_port *port = ptr;
669 668
@@ -674,7 +673,7 @@ static irqreturn_t sci_tx_interrupt(int irq, void *ptr, struct pt_regs *regs)
674 return IRQ_HANDLED; 673 return IRQ_HANDLED;
675} 674}
676 675
677static irqreturn_t sci_er_interrupt(int irq, void *ptr, struct pt_regs *regs) 676static irqreturn_t sci_er_interrupt(int irq, void *ptr)
678{ 677{
679 struct uart_port *port = ptr; 678 struct uart_port *port = ptr;
680 679
@@ -696,18 +695,18 @@ static irqreturn_t sci_er_interrupt(int irq, void *ptr, struct pt_regs *regs)
696 pr_debug("scif: overrun error\n"); 695 pr_debug("scif: overrun error\n");
697 } 696 }
698#endif 697#endif
699 sci_rx_interrupt(irq, ptr, regs); 698 sci_rx_interrupt(irq, ptr);
700 } 699 }
701 700
702 sci_out(port, SCxSR, SCxSR_ERROR_CLEAR(port)); 701 sci_out(port, SCxSR, SCxSR_ERROR_CLEAR(port));
703 702
704 /* Kick the transmission */ 703 /* Kick the transmission */
705 sci_tx_interrupt(irq, ptr, regs); 704 sci_tx_interrupt(irq, ptr);
706 705
707 return IRQ_HANDLED; 706 return IRQ_HANDLED;
708} 707}
709 708
710static irqreturn_t sci_br_interrupt(int irq, void *ptr, struct pt_regs *regs) 709static irqreturn_t sci_br_interrupt(int irq, void *ptr)
711{ 710{
712 struct uart_port *port = ptr; 711 struct uart_port *port = ptr;
713 712
@@ -724,7 +723,7 @@ static irqreturn_t sci_br_interrupt(int irq, void *ptr, struct pt_regs *regs)
724 return IRQ_HANDLED; 723 return IRQ_HANDLED;
725} 724}
726 725
727static irqreturn_t sci_mpxed_interrupt(int irq, void *ptr, struct pt_regs *regs) 726static irqreturn_t sci_mpxed_interrupt(int irq, void *ptr)
728{ 727{
729 unsigned short ssr_status, scr_status; 728 unsigned short ssr_status, scr_status;
730 struct uart_port *port = ptr; 729 struct uart_port *port = ptr;
@@ -734,16 +733,16 @@ static irqreturn_t sci_mpxed_interrupt(int irq, void *ptr, struct pt_regs *regs)
734 733
735 /* Tx Interrupt */ 734 /* Tx Interrupt */
736 if ((ssr_status & 0x0020) && (scr_status & 0x0080)) 735 if ((ssr_status & 0x0020) && (scr_status & 0x0080))
737 sci_tx_interrupt(irq, ptr, regs); 736 sci_tx_interrupt(irq, ptr);
738 /* Rx Interrupt */ 737 /* Rx Interrupt */
739 if ((ssr_status & 0x0002) && (scr_status & 0x0040)) 738 if ((ssr_status & 0x0002) && (scr_status & 0x0040))
740 sci_rx_interrupt(irq, ptr, regs); 739 sci_rx_interrupt(irq, ptr);
741 /* Error Interrupt */ 740 /* Error Interrupt */
742 if ((ssr_status & 0x0080) && (scr_status & 0x0400)) 741 if ((ssr_status & 0x0080) && (scr_status & 0x0400))
743 sci_er_interrupt(irq, ptr, regs); 742 sci_er_interrupt(irq, ptr);
744 /* Break Interrupt */ 743 /* Break Interrupt */
745 if ((ssr_status & 0x0010) && (scr_status & 0x0200)) 744 if ((ssr_status & 0x0010) && (scr_status & 0x0200))
746 sci_br_interrupt(irq, ptr, regs); 745 sci_br_interrupt(irq, ptr);
747 746
748 return IRQ_HANDLED; 747 return IRQ_HANDLED;
749} 748}
@@ -795,7 +794,7 @@ static struct notifier_block sci_nb = { &sci_notifier, NULL, 0 };
795static int sci_request_irq(struct sci_port *port) 794static int sci_request_irq(struct sci_port *port)
796{ 795{
797 int i; 796 int i;
798 irqreturn_t (*handlers[4])(int irq, void *ptr, struct pt_regs *regs) = { 797 irqreturn_t (*handlers[4])(int irq, void *ptr) = {
799 sci_er_interrupt, sci_rx_interrupt, sci_tx_interrupt, 798 sci_er_interrupt, sci_rx_interrupt, sci_tx_interrupt,
800 sci_br_interrupt, 799 sci_br_interrupt,
801 }; 800 };
diff --git a/drivers/serial/sn_console.c b/drivers/serial/sn_console.c
index 2f148e5b9255..709f93a6c18c 100644
--- a/drivers/serial/sn_console.c
+++ b/drivers/serial/sn_console.c
@@ -447,7 +447,6 @@ static int sn_debug_printf(const char *fmt, ...)
447/** 447/**
448 * sn_receive_chars - Grab characters, pass them to tty layer 448 * sn_receive_chars - Grab characters, pass them to tty layer
449 * @port: Port to operate on 449 * @port: Port to operate on
450 * @regs: Saved registers (needed by uart_handle_sysrq_char)
451 * @flags: irq flags 450 * @flags: irq flags
452 * 451 *
453 * Note: If we're not registered with the serial core infrastructure yet, 452 * Note: If we're not registered with the serial core infrastructure yet,
@@ -455,8 +454,7 @@ static int sn_debug_printf(const char *fmt, ...)
455 * 454 *
456 */ 455 */
457static void 456static void
458sn_receive_chars(struct sn_cons_port *port, struct pt_regs *regs, 457sn_receive_chars(struct sn_cons_port *port, unsigned long flags)
459 unsigned long flags)
460{ 458{
461 int ch; 459 int ch;
462 struct tty_struct *tty; 460 struct tty_struct *tty;
@@ -494,7 +492,7 @@ sn_receive_chars(struct sn_cons_port *port, struct pt_regs *regs,
494 sysrq_requested = 0; 492 sysrq_requested = 0;
495 if (ch && time_before(jiffies, sysrq_timeout)) { 493 if (ch && time_before(jiffies, sysrq_timeout)) {
496 spin_unlock_irqrestore(&port->sc_port.lock, flags); 494 spin_unlock_irqrestore(&port->sc_port.lock, flags);
497 handle_sysrq(ch, regs, NULL); 495 handle_sysrq(ch, NULL);
498 spin_lock_irqsave(&port->sc_port.lock, flags); 496 spin_lock_irqsave(&port->sc_port.lock, flags);
499 /* ignore actual sysrq command char */ 497 /* ignore actual sysrq command char */
500 continue; 498 continue;
@@ -615,10 +613,9 @@ static void sn_transmit_chars(struct sn_cons_port *port, int raw)
615 * sn_sal_interrupt - Handle console interrupts 613 * sn_sal_interrupt - Handle console interrupts
616 * @irq: irq #, useful for debug statements 614 * @irq: irq #, useful for debug statements
617 * @dev_id: our pointer to our port (sn_cons_port which contains the uart port) 615 * @dev_id: our pointer to our port (sn_cons_port which contains the uart port)
618 * @regs: Saved registers, used by sn_receive_chars for uart_handle_sysrq_char
619 * 616 *
620 */ 617 */
621static irqreturn_t sn_sal_interrupt(int irq, void *dev_id, struct pt_regs *regs) 618static irqreturn_t sn_sal_interrupt(int irq, void *dev_id)
622{ 619{
623 struct sn_cons_port *port = (struct sn_cons_port *)dev_id; 620 struct sn_cons_port *port = (struct sn_cons_port *)dev_id;
624 unsigned long flags; 621 unsigned long flags;
@@ -629,7 +626,7 @@ static irqreturn_t sn_sal_interrupt(int irq, void *dev_id, struct pt_regs *regs)
629 626
630 spin_lock_irqsave(&port->sc_port.lock, flags); 627 spin_lock_irqsave(&port->sc_port.lock, flags);
631 if (status & SAL_CONSOLE_INTR_RECV) { 628 if (status & SAL_CONSOLE_INTR_RECV) {
632 sn_receive_chars(port, regs, flags); 629 sn_receive_chars(port, flags);
633 } 630 }
634 if (status & SAL_CONSOLE_INTR_XMIT) { 631 if (status & SAL_CONSOLE_INTR_XMIT) {
635 sn_transmit_chars(port, TRANSMIT_BUFFERED); 632 sn_transmit_chars(port, TRANSMIT_BUFFERED);
diff --git a/drivers/serial/sunhv.c b/drivers/serial/sunhv.c
index f851f0f44f9b..03941d27d15d 100644
--- a/drivers/serial/sunhv.c
+++ b/drivers/serial/sunhv.c
@@ -73,7 +73,7 @@ static inline long hypervisor_con_putchar(long ch)
73 73
74static int hung_up = 0; 74static int hung_up = 0;
75 75
76static struct tty_struct *receive_chars(struct uart_port *port, struct pt_regs *regs) 76static struct tty_struct *receive_chars(struct uart_port *port)
77{ 77{
78 struct tty_struct *tty = NULL; 78 struct tty_struct *tty = NULL;
79 int saw_console_brk = 0; 79 int saw_console_brk = 0;
@@ -106,7 +106,7 @@ static struct tty_struct *receive_chars(struct uart_port *port, struct pt_regs *
106 } 106 }
107 107
108 if (tty == NULL) { 108 if (tty == NULL) {
109 uart_handle_sysrq_char(port, c, regs); 109 uart_handle_sysrq_char(port, c);
110 continue; 110 continue;
111 } 111 }
112 112
@@ -119,7 +119,7 @@ static struct tty_struct *receive_chars(struct uart_port *port, struct pt_regs *
119 flag = TTY_BREAK; 119 flag = TTY_BREAK;
120 } 120 }
121 121
122 if (uart_handle_sysrq_char(port, c, regs)) 122 if (uart_handle_sysrq_char(port, c))
123 continue; 123 continue;
124 124
125 if ((port->ignore_status_mask & IGNORE_ALL) || 125 if ((port->ignore_status_mask & IGNORE_ALL) ||
@@ -161,14 +161,14 @@ static void transmit_chars(struct uart_port *port)
161 uart_write_wakeup(port); 161 uart_write_wakeup(port);
162} 162}
163 163
164static irqreturn_t sunhv_interrupt(int irq, void *dev_id, struct pt_regs *regs) 164static irqreturn_t sunhv_interrupt(int irq, void *dev_id)
165{ 165{
166 struct uart_port *port = dev_id; 166 struct uart_port *port = dev_id;
167 struct tty_struct *tty; 167 struct tty_struct *tty;
168 unsigned long flags; 168 unsigned long flags;
169 169
170 spin_lock_irqsave(&port->lock, flags); 170 spin_lock_irqsave(&port->lock, flags);
171 tty = receive_chars(port, regs); 171 tty = receive_chars(port);
172 transmit_chars(port); 172 transmit_chars(port);
173 spin_unlock_irqrestore(&port->lock, flags); 173 spin_unlock_irqrestore(&port->lock, flags);
174 174
diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c
index cfe20f730436..08a7cd6a3a0c 100644
--- a/drivers/serial/sunsab.c
+++ b/drivers/serial/sunsab.c
@@ -108,8 +108,7 @@ static __inline__ void sunsab_cec_wait(struct uart_sunsab_port *up)
108 108
109static struct tty_struct * 109static struct tty_struct *
110receive_chars(struct uart_sunsab_port *up, 110receive_chars(struct uart_sunsab_port *up,
111 union sab82532_irq_status *stat, 111 union sab82532_irq_status *stat)
112 struct pt_regs *regs)
113{ 112{
114 struct tty_struct *tty = NULL; 113 struct tty_struct *tty = NULL;
115 unsigned char buf[32]; 114 unsigned char buf[32];
@@ -161,7 +160,7 @@ receive_chars(struct uart_sunsab_port *up,
161 unsigned char ch = buf[i], flag; 160 unsigned char ch = buf[i], flag;
162 161
163 if (tty == NULL) { 162 if (tty == NULL) {
164 uart_handle_sysrq_char(&up->port, ch, regs); 163 uart_handle_sysrq_char(&up->port, ch);
165 continue; 164 continue;
166 } 165 }
167 166
@@ -208,7 +207,7 @@ receive_chars(struct uart_sunsab_port *up,
208 flag = TTY_FRAME; 207 flag = TTY_FRAME;
209 } 208 }
210 209
211 if (uart_handle_sysrq_char(&up->port, ch, regs)) 210 if (uart_handle_sysrq_char(&up->port, ch))
212 continue; 211 continue;
213 212
214 if ((stat->sreg.isr0 & (up->port.ignore_status_mask & 0xff)) == 0 && 213 if ((stat->sreg.isr0 & (up->port.ignore_status_mask & 0xff)) == 0 &&
@@ -301,7 +300,7 @@ static void check_status(struct uart_sunsab_port *up,
301 wake_up_interruptible(&up->port.info->delta_msr_wait); 300 wake_up_interruptible(&up->port.info->delta_msr_wait);
302} 301}
303 302
304static irqreturn_t sunsab_interrupt(int irq, void *dev_id, struct pt_regs *regs) 303static irqreturn_t sunsab_interrupt(int irq, void *dev_id)
305{ 304{
306 struct uart_sunsab_port *up = dev_id; 305 struct uart_sunsab_port *up = dev_id;
307 struct tty_struct *tty; 306 struct tty_struct *tty;
@@ -321,7 +320,7 @@ static irqreturn_t sunsab_interrupt(int irq, void *dev_id, struct pt_regs *regs)
321 if ((status.sreg.isr0 & (SAB82532_ISR0_TCD | SAB82532_ISR0_TIME | 320 if ((status.sreg.isr0 & (SAB82532_ISR0_TCD | SAB82532_ISR0_TIME |
322 SAB82532_ISR0_RFO | SAB82532_ISR0_RPF)) || 321 SAB82532_ISR0_RFO | SAB82532_ISR0_RPF)) ||
323 (status.sreg.isr1 & SAB82532_ISR1_BRK)) 322 (status.sreg.isr1 & SAB82532_ISR1_BRK))
324 tty = receive_chars(up, &status, regs); 323 tty = receive_chars(up, &status);
325 if ((status.sreg.isr0 & SAB82532_ISR0_CDSC) || 324 if ((status.sreg.isr0 & SAB82532_ISR0_CDSC) ||
326 (status.sreg.isr1 & SAB82532_ISR1_CSC)) 325 (status.sreg.isr1 & SAB82532_ISR1_CSC))
327 check_status(up, &status); 326 check_status(up, &status);
@@ -350,7 +349,7 @@ static irqreturn_t sunsab_interrupt(int irq, void *dev_id, struct pt_regs *regs)
350 SAB82532_ISR0_RFO | SAB82532_ISR0_RPF)) || 349 SAB82532_ISR0_RFO | SAB82532_ISR0_RPF)) ||
351 (status.sreg.isr1 & SAB82532_ISR1_BRK)) 350 (status.sreg.isr1 & SAB82532_ISR1_BRK))
352 351
353 tty = receive_chars(up, &status, regs); 352 tty = receive_chars(up, &status);
354 if ((status.sreg.isr0 & SAB82532_ISR0_CDSC) || 353 if ((status.sreg.isr0 & SAB82532_ISR0_CDSC) ||
355 (status.sreg.isr1 & (SAB82532_ISR1_BRK | SAB82532_ISR1_CSC))) 354 (status.sreg.isr1 & (SAB82532_ISR1_BRK | SAB82532_ISR1_CSC)))
356 check_status(up, &status); 355 check_status(up, &status);
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c
index 9b3b9aaa6b90..c577faea60e8 100644
--- a/drivers/serial/sunsu.c
+++ b/drivers/serial/sunsu.c
@@ -310,7 +310,7 @@ static void sunsu_enable_ms(struct uart_port *port)
310} 310}
311 311
312static struct tty_struct * 312static struct tty_struct *
313receive_chars(struct uart_sunsu_port *up, unsigned char *status, struct pt_regs *regs) 313receive_chars(struct uart_sunsu_port *up, unsigned char *status)
314{ 314{
315 struct tty_struct *tty = up->port.info->tty; 315 struct tty_struct *tty = up->port.info->tty;
316 unsigned char ch, flag; 316 unsigned char ch, flag;
@@ -367,7 +367,7 @@ receive_chars(struct uart_sunsu_port *up, unsigned char *status, struct pt_regs
367 else if (*status & UART_LSR_FE) 367 else if (*status & UART_LSR_FE)
368 flag = TTY_FRAME; 368 flag = TTY_FRAME;
369 } 369 }
370 if (uart_handle_sysrq_char(&up->port, ch, regs)) 370 if (uart_handle_sysrq_char(&up->port, ch))
371 goto ignore_char; 371 goto ignore_char;
372 if ((*status & up->port.ignore_status_mask) == 0) 372 if ((*status & up->port.ignore_status_mask) == 0)
373 tty_insert_flip_char(tty, ch, flag); 373 tty_insert_flip_char(tty, ch, flag);
@@ -445,7 +445,7 @@ static void check_modem_status(struct uart_sunsu_port *up)
445 wake_up_interruptible(&up->port.info->delta_msr_wait); 445 wake_up_interruptible(&up->port.info->delta_msr_wait);
446} 446}
447 447
448static irqreturn_t sunsu_serial_interrupt(int irq, void *dev_id, struct pt_regs *regs) 448static irqreturn_t sunsu_serial_interrupt(int irq, void *dev_id)
449{ 449{
450 struct uart_sunsu_port *up = dev_id; 450 struct uart_sunsu_port *up = dev_id;
451 unsigned long flags; 451 unsigned long flags;
@@ -459,7 +459,7 @@ static irqreturn_t sunsu_serial_interrupt(int irq, void *dev_id, struct pt_regs
459 status = serial_inp(up, UART_LSR); 459 status = serial_inp(up, UART_LSR);
460 tty = NULL; 460 tty = NULL;
461 if (status & UART_LSR_DR) 461 if (status & UART_LSR_DR)
462 tty = receive_chars(up, &status, regs); 462 tty = receive_chars(up, &status);
463 check_modem_status(up); 463 check_modem_status(up);
464 if (status & UART_LSR_THRE) 464 if (status & UART_LSR_THRE)
465 transmit_chars(up); 465 transmit_chars(up);
@@ -497,7 +497,7 @@ static void sunsu_change_mouse_baud(struct uart_sunsu_port *up)
497 sunsu_change_speed(&up->port, up->cflag, 0, quot); 497 sunsu_change_speed(&up->port, up->cflag, 0, quot);
498} 498}
499 499
500static void receive_kbd_ms_chars(struct uart_sunsu_port *up, struct pt_regs *regs, int is_break) 500static void receive_kbd_ms_chars(struct uart_sunsu_port *up, int is_break)
501{ 501{
502 do { 502 do {
503 unsigned char ch = serial_inp(up, UART_RX); 503 unsigned char ch = serial_inp(up, UART_RX);
@@ -505,7 +505,7 @@ static void receive_kbd_ms_chars(struct uart_sunsu_port *up, struct pt_regs *reg
505 /* Stop-A is handled by drivers/char/keyboard.c now. */ 505 /* Stop-A is handled by drivers/char/keyboard.c now. */
506 if (up->su_type == SU_PORT_KBD) { 506 if (up->su_type == SU_PORT_KBD) {
507#ifdef CONFIG_SERIO 507#ifdef CONFIG_SERIO
508 serio_interrupt(&up->serio, ch, 0, regs); 508 serio_interrupt(&up->serio, ch, 0);
509#endif 509#endif
510 } else if (up->su_type == SU_PORT_MS) { 510 } else if (up->su_type == SU_PORT_MS) {
511 int ret = suncore_mouse_baud_detection(ch, is_break); 511 int ret = suncore_mouse_baud_detection(ch, is_break);
@@ -519,7 +519,7 @@ static void receive_kbd_ms_chars(struct uart_sunsu_port *up, struct pt_regs *reg
519 519
520 case 0: 520 case 0:
521#ifdef CONFIG_SERIO 521#ifdef CONFIG_SERIO
522 serio_interrupt(&up->serio, ch, 0, regs); 522 serio_interrupt(&up->serio, ch, 0);
523#endif 523#endif
524 break; 524 break;
525 }; 525 };
@@ -527,7 +527,7 @@ static void receive_kbd_ms_chars(struct uart_sunsu_port *up, struct pt_regs *reg
527 } while (serial_in(up, UART_LSR) & UART_LSR_DR); 527 } while (serial_in(up, UART_LSR) & UART_LSR_DR);
528} 528}
529 529
530static irqreturn_t sunsu_kbd_ms_interrupt(int irq, void *dev_id, struct pt_regs *regs) 530static irqreturn_t sunsu_kbd_ms_interrupt(int irq, void *dev_id)
531{ 531{
532 struct uart_sunsu_port *up = dev_id; 532 struct uart_sunsu_port *up = dev_id;
533 533
@@ -535,8 +535,7 @@ static irqreturn_t sunsu_kbd_ms_interrupt(int irq, void *dev_id, struct pt_regs
535 unsigned char status = serial_inp(up, UART_LSR); 535 unsigned char status = serial_inp(up, UART_LSR);
536 536
537 if ((status & UART_LSR_DR) || (status & UART_LSR_BI)) 537 if ((status & UART_LSR_DR) || (status & UART_LSR_BI))
538 receive_kbd_ms_chars(up, regs, 538 receive_kbd_ms_chars(up, (status & UART_LSR_BI) != 0);
539 (status & UART_LSR_BI) != 0);
540 } 539 }
541 540
542 return IRQ_HANDLED; 541 return IRQ_HANDLED;
diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c
index 0da3ebfff82d..b11f6dea2704 100644
--- a/drivers/serial/sunzilog.c
+++ b/drivers/serial/sunzilog.c
@@ -277,14 +277,13 @@ static void sunzilog_change_mouse_baud(struct uart_sunzilog_port *up)
277} 277}
278 278
279static void sunzilog_kbdms_receive_chars(struct uart_sunzilog_port *up, 279static void sunzilog_kbdms_receive_chars(struct uart_sunzilog_port *up,
280 unsigned char ch, int is_break, 280 unsigned char ch, int is_break)
281 struct pt_regs *regs)
282{ 281{
283 if (ZS_IS_KEYB(up)) { 282 if (ZS_IS_KEYB(up)) {
284 /* Stop-A is handled by drivers/char/keyboard.c now. */ 283 /* Stop-A is handled by drivers/char/keyboard.c now. */
285#ifdef CONFIG_SERIO 284#ifdef CONFIG_SERIO
286 if (up->serio_open) 285 if (up->serio_open)
287 serio_interrupt(&up->serio, ch, 0, regs); 286 serio_interrupt(&up->serio, ch, 0);
288#endif 287#endif
289 } else if (ZS_IS_MOUSE(up)) { 288 } else if (ZS_IS_MOUSE(up)) {
290 int ret = suncore_mouse_baud_detection(ch, is_break); 289 int ret = suncore_mouse_baud_detection(ch, is_break);
@@ -299,7 +298,7 @@ static void sunzilog_kbdms_receive_chars(struct uart_sunzilog_port *up,
299 case 0: 298 case 0:
300#ifdef CONFIG_SERIO 299#ifdef CONFIG_SERIO
301 if (up->serio_open) 300 if (up->serio_open)
302 serio_interrupt(&up->serio, ch, 0, regs); 301 serio_interrupt(&up->serio, ch, 0);
303#endif 302#endif
304 break; 303 break;
305 }; 304 };
@@ -308,8 +307,7 @@ static void sunzilog_kbdms_receive_chars(struct uart_sunzilog_port *up,
308 307
309static struct tty_struct * 308static struct tty_struct *
310sunzilog_receive_chars(struct uart_sunzilog_port *up, 309sunzilog_receive_chars(struct uart_sunzilog_port *up,
311 struct zilog_channel __iomem *channel, 310 struct zilog_channel __iomem *channel)
312 struct pt_regs *regs)
313{ 311{
314 struct tty_struct *tty; 312 struct tty_struct *tty;
315 unsigned char ch, r1, flag; 313 unsigned char ch, r1, flag;
@@ -346,12 +344,12 @@ sunzilog_receive_chars(struct uart_sunzilog_port *up,
346 ch &= up->parity_mask; 344 ch &= up->parity_mask;
347 345
348 if (unlikely(ZS_IS_KEYB(up)) || unlikely(ZS_IS_MOUSE(up))) { 346 if (unlikely(ZS_IS_KEYB(up)) || unlikely(ZS_IS_MOUSE(up))) {
349 sunzilog_kbdms_receive_chars(up, ch, 0, regs); 347 sunzilog_kbdms_receive_chars(up, ch, 0);
350 continue; 348 continue;
351 } 349 }
352 350
353 if (tty == NULL) { 351 if (tty == NULL) {
354 uart_handle_sysrq_char(&up->port, ch, regs); 352 uart_handle_sysrq_char(&up->port, ch);
355 continue; 353 continue;
356 } 354 }
357 355
@@ -379,7 +377,7 @@ sunzilog_receive_chars(struct uart_sunzilog_port *up,
379 else if (r1 & CRC_ERR) 377 else if (r1 & CRC_ERR)
380 flag = TTY_FRAME; 378 flag = TTY_FRAME;
381 } 379 }
382 if (uart_handle_sysrq_char(&up->port, ch, regs)) 380 if (uart_handle_sysrq_char(&up->port, ch))
383 continue; 381 continue;
384 382
385 if (up->port.ignore_status_mask == 0xff || 383 if (up->port.ignore_status_mask == 0xff ||
@@ -394,8 +392,7 @@ sunzilog_receive_chars(struct uart_sunzilog_port *up,
394} 392}
395 393
396static void sunzilog_status_handle(struct uart_sunzilog_port *up, 394static void sunzilog_status_handle(struct uart_sunzilog_port *up,
397 struct zilog_channel __iomem *channel, 395 struct zilog_channel __iomem *channel)
398 struct pt_regs *regs)
399{ 396{
400 unsigned char status; 397 unsigned char status;
401 398
@@ -408,7 +405,7 @@ static void sunzilog_status_handle(struct uart_sunzilog_port *up,
408 405
409 if (status & BRK_ABRT) { 406 if (status & BRK_ABRT) {
410 if (ZS_IS_MOUSE(up)) 407 if (ZS_IS_MOUSE(up))
411 sunzilog_kbdms_receive_chars(up, 0, 1, regs); 408 sunzilog_kbdms_receive_chars(up, 0, 1);
412 if (ZS_IS_CONS(up)) { 409 if (ZS_IS_CONS(up)) {
413 /* Wait for BREAK to deassert to avoid potentially 410 /* Wait for BREAK to deassert to avoid potentially
414 * confusing the PROM. 411 * confusing the PROM.
@@ -517,7 +514,7 @@ ack_tx_int:
517 ZS_WSYNC(channel); 514 ZS_WSYNC(channel);
518} 515}
519 516
520static irqreturn_t sunzilog_interrupt(int irq, void *dev_id, struct pt_regs *regs) 517static irqreturn_t sunzilog_interrupt(int irq, void *dev_id)
521{ 518{
522 struct uart_sunzilog_port *up = dev_id; 519 struct uart_sunzilog_port *up = dev_id;
523 520
@@ -538,9 +535,9 @@ static irqreturn_t sunzilog_interrupt(int irq, void *dev_id, struct pt_regs *reg
538 ZS_WSYNC(channel); 535 ZS_WSYNC(channel);
539 536
540 if (r3 & CHARxIP) 537 if (r3 & CHARxIP)
541 tty = sunzilog_receive_chars(up, channel, regs); 538 tty = sunzilog_receive_chars(up, channel);
542 if (r3 & CHAEXT) 539 if (r3 & CHAEXT)
543 sunzilog_status_handle(up, channel, regs); 540 sunzilog_status_handle(up, channel);
544 if (r3 & CHATxIP) 541 if (r3 & CHATxIP)
545 sunzilog_transmit_chars(up, channel); 542 sunzilog_transmit_chars(up, channel);
546 } 543 }
@@ -561,9 +558,9 @@ static irqreturn_t sunzilog_interrupt(int irq, void *dev_id, struct pt_regs *reg
561 ZS_WSYNC(channel); 558 ZS_WSYNC(channel);
562 559
563 if (r3 & CHBRxIP) 560 if (r3 & CHBRxIP)
564 tty = sunzilog_receive_chars(up, channel, regs); 561 tty = sunzilog_receive_chars(up, channel);
565 if (r3 & CHBEXT) 562 if (r3 & CHBEXT)
566 sunzilog_status_handle(up, channel, regs); 563 sunzilog_status_handle(up, channel);
567 if (r3 & CHBTxIP) 564 if (r3 & CHBTxIP)
568 sunzilog_transmit_chars(up, channel); 565 sunzilog_transmit_chars(up, channel);
569 } 566 }
diff --git a/drivers/serial/v850e_uart.c b/drivers/serial/v850e_uart.c
index f802867c95c5..28f3bbff87bf 100644
--- a/drivers/serial/v850e_uart.c
+++ b/drivers/serial/v850e_uart.c
@@ -271,14 +271,14 @@ void v850e_uart_tx (struct uart_port *port)
271 v850e_uart_stop_tx (port, stopped); 271 v850e_uart_stop_tx (port, stopped);
272} 272}
273 273
274static irqreturn_t v850e_uart_tx_irq(int irq, void *data, struct pt_regs *regs) 274static irqreturn_t v850e_uart_tx_irq(int irq, void *data)
275{ 275{
276 struct uart_port *port = data; 276 struct uart_port *port = data;
277 v850e_uart_tx (port); 277 v850e_uart_tx (port);
278 return IRQ_HANDLED; 278 return IRQ_HANDLED;
279} 279}
280 280
281static irqreturn_t v850e_uart_rx_irq(int irq, void *data, struct pt_regs *regs) 281static irqreturn_t v850e_uart_rx_irq(int irq, void *data)
282{ 282{
283 struct uart_port *port = data; 283 struct uart_port *port = data;
284 unsigned ch_stat = TTY_NORMAL; 284 unsigned ch_stat = TTY_NORMAL;
diff --git a/drivers/serial/vr41xx_siu.c b/drivers/serial/vr41xx_siu.c
index 6c8b0ea83c3c..fd51f8182dec 100644
--- a/drivers/serial/vr41xx_siu.c
+++ b/drivers/serial/vr41xx_siu.c
@@ -359,8 +359,7 @@ static void siu_break_ctl(struct uart_port *port, int ctl)
359 spin_unlock_irqrestore(&port->lock, flags); 359 spin_unlock_irqrestore(&port->lock, flags);
360} 360}
361 361
362static inline void receive_chars(struct uart_port *port, uint8_t *status, 362static inline void receive_chars(struct uart_port *port, uint8_t *status)
363 struct pt_regs *regs)
364{ 363{
365 struct tty_struct *tty; 364 struct tty_struct *tty;
366 uint8_t lsr, ch; 365 uint8_t lsr, ch;
@@ -405,7 +404,7 @@ static inline void receive_chars(struct uart_port *port, uint8_t *status,
405 flag = TTY_PARITY; 404 flag = TTY_PARITY;
406 } 405 }
407 406
408 if (uart_handle_sysrq_char(port, ch, regs)) 407 if (uart_handle_sysrq_char(port, ch))
409 goto ignore_char; 408 goto ignore_char;
410 409
411 uart_insert_char(port, lsr, UART_LSR_OE, ch, flag); 410 uart_insert_char(port, lsr, UART_LSR_OE, ch, flag);
@@ -472,7 +471,7 @@ static inline void transmit_chars(struct uart_port *port)
472 siu_stop_tx(port); 471 siu_stop_tx(port);
473} 472}
474 473
475static irqreturn_t siu_interrupt(int irq, void *dev_id, struct pt_regs *regs) 474static irqreturn_t siu_interrupt(int irq, void *dev_id)
476{ 475{
477 struct uart_port *port; 476 struct uart_port *port;
478 uint8_t iir, lsr; 477 uint8_t iir, lsr;
@@ -485,7 +484,7 @@ static irqreturn_t siu_interrupt(int irq, void *dev_id, struct pt_regs *regs)
485 484
486 lsr = siu_read(port, UART_LSR); 485 lsr = siu_read(port, UART_LSR);
487 if (lsr & UART_LSR_DR) 486 if (lsr & UART_LSR_DR)
488 receive_chars(port, &lsr, regs); 487 receive_chars(port, &lsr);
489 488
490 check_modem_status(port); 489 check_modem_status(port);
491 490
diff --git a/drivers/sn/ioc3.c b/drivers/sn/ioc3.c
index 6c7e0352d561..3d91b6b9287d 100644
--- a/drivers/sn/ioc3.c
+++ b/drivers/sn/ioc3.c
@@ -398,7 +398,7 @@ static inline uint32_t get_pending_intrs(struct ioc3_driver_data *idd)
398 return intrs; 398 return intrs;
399} 399}
400 400
401static irqreturn_t ioc3_intr_io(int irq, void *arg, struct pt_regs *regs) 401static irqreturn_t ioc3_intr_io(int irq, void *arg)
402{ 402{
403 unsigned long flags; 403 unsigned long flags;
404 struct ioc3_driver_data *idd = (struct ioc3_driver_data *)arg; 404 struct ioc3_driver_data *idd = (struct ioc3_driver_data *)arg;
@@ -412,7 +412,7 @@ static irqreturn_t ioc3_intr_io(int irq, void *arg, struct pt_regs *regs)
412 if(ioc3_ethernet && idd->active[ioc3_ethernet->id] && 412 if(ioc3_ethernet && idd->active[ioc3_ethernet->id] &&
413 ioc3_ethernet->intr) { 413 ioc3_ethernet->intr) {
414 handled = handled && !ioc3_ethernet->intr(ioc3_ethernet, 414 handled = handled && !ioc3_ethernet->intr(ioc3_ethernet,
415 idd, 0, regs); 415 idd, 0);
416 } 416 }
417 } 417 }
418 pending = get_pending_intrs(idd); /* look at the IO IRQs */ 418 pending = get_pending_intrs(idd); /* look at the IO IRQs */
@@ -424,8 +424,7 @@ static irqreturn_t ioc3_intr_io(int irq, void *arg, struct pt_regs *regs)
424 write_ireg(idd, ioc3_submodules[id]->irq_mask, 424 write_ireg(idd, ioc3_submodules[id]->irq_mask,
425 IOC3_W_IEC); 425 IOC3_W_IEC);
426 if(!ioc3_submodules[id]->intr(ioc3_submodules[id], 426 if(!ioc3_submodules[id]->intr(ioc3_submodules[id],
427 idd, pending & ioc3_submodules[id]->irq_mask, 427 idd, pending & ioc3_submodules[id]->irq_mask))
428 regs))
429 pending &= ~ioc3_submodules[id]->irq_mask; 428 pending &= ~ioc3_submodules[id]->irq_mask;
430 if (ioc3_submodules[id]->reset_mask) 429 if (ioc3_submodules[id]->reset_mask)
431 write_ireg(idd, ioc3_submodules[id]->irq_mask, 430 write_ireg(idd, ioc3_submodules[id]->irq_mask,
@@ -442,7 +441,7 @@ static irqreturn_t ioc3_intr_io(int irq, void *arg, struct pt_regs *regs)
442 return handled?IRQ_HANDLED:IRQ_NONE; 441 return handled?IRQ_HANDLED:IRQ_NONE;
443} 442}
444 443
445static irqreturn_t ioc3_intr_eth(int irq, void *arg, struct pt_regs *regs) 444static irqreturn_t ioc3_intr_eth(int irq, void *arg)
446{ 445{
447 unsigned long flags; 446 unsigned long flags;
448 struct ioc3_driver_data *idd = (struct ioc3_driver_data *)arg; 447 struct ioc3_driver_data *idd = (struct ioc3_driver_data *)arg;
@@ -453,8 +452,7 @@ static irqreturn_t ioc3_intr_eth(int irq, void *arg, struct pt_regs *regs)
453 read_lock_irqsave(&ioc3_submodules_lock, flags); 452 read_lock_irqsave(&ioc3_submodules_lock, flags);
454 if(ioc3_ethernet && idd->active[ioc3_ethernet->id] 453 if(ioc3_ethernet && idd->active[ioc3_ethernet->id]
455 && ioc3_ethernet->intr) 454 && ioc3_ethernet->intr)
456 handled = handled && !ioc3_ethernet->intr(ioc3_ethernet, idd, 0, 455 handled = handled && !ioc3_ethernet->intr(ioc3_ethernet, idd, 0);
457 regs);
458 read_unlock_irqrestore(&ioc3_submodules_lock, flags); 456 read_unlock_irqrestore(&ioc3_submodules_lock, flags);
459 return handled?IRQ_HANDLED:IRQ_NONE; 457 return handled?IRQ_HANDLED:IRQ_NONE;
460} 458}
diff --git a/drivers/spi/pxa2xx_spi.c b/drivers/spi/pxa2xx_spi.c
index 29aec77f98be..77122edeb206 100644
--- a/drivers/spi/pxa2xx_spi.c
+++ b/drivers/spi/pxa2xx_spi.c
@@ -409,7 +409,7 @@ static int wait_dma_channel_stop(int channel)
409 return limit; 409 return limit;
410} 410}
411 411
412static void dma_handler(int channel, void *data, struct pt_regs *regs) 412static void dma_handler(int channel, void *data)
413{ 413{
414 struct driver_data *drv_data = data; 414 struct driver_data *drv_data = data;
415 struct spi_message *msg = drv_data->cur_msg; 415 struct spi_message *msg = drv_data->cur_msg;
@@ -667,7 +667,7 @@ static irqreturn_t interrupt_transfer(struct driver_data *drv_data)
667 return IRQ_HANDLED; 667 return IRQ_HANDLED;
668} 668}
669 669
670static irqreturn_t ssp_int(int irq, void *dev_id, struct pt_regs *regs) 670static irqreturn_t ssp_int(int irq, void *dev_id)
671{ 671{
672 struct driver_data *drv_data = (struct driver_data *)dev_id; 672 struct driver_data *drv_data = (struct driver_data *)dev_id;
673 void *reg = drv_data->ioaddr; 673 void *reg = drv_data->ioaddr;
diff --git a/drivers/spi/spi_mpc83xx.c b/drivers/spi/spi_mpc83xx.c
index 5d92a7e5cb41..ff0b04895db0 100644
--- a/drivers/spi/spi_mpc83xx.c
+++ b/drivers/spi/spi_mpc83xx.c
@@ -296,8 +296,7 @@ static int mpc83xx_spi_bufs(struct spi_device *spi, struct spi_transfer *t)
296 return t->len - mpc83xx_spi->count; 296 return t->len - mpc83xx_spi->count;
297} 297}
298 298
299irqreturn_t mpc83xx_spi_irq(s32 irq, void *context_data, 299irqreturn_t mpc83xx_spi_irq(s32 irq, void *context_data)
300 struct pt_regs * ptregs)
301{ 300{
302 struct mpc83xx_spi *mpc83xx_spi = context_data; 301 struct mpc83xx_spi *mpc83xx_spi = context_data;
303 u32 event; 302 u32 event;
diff --git a/drivers/spi/spi_s3c24xx.c b/drivers/spi/spi_s3c24xx.c
index 20eb6e95a3a0..2ebe1fc4c398 100644
--- a/drivers/spi/spi_s3c24xx.c
+++ b/drivers/spi/spi_s3c24xx.c
@@ -196,7 +196,7 @@ static int s3c24xx_spi_txrx(struct spi_device *spi, struct spi_transfer *t)
196 return hw->count; 196 return hw->count;
197} 197}
198 198
199static irqreturn_t s3c24xx_spi_irq(int irq, void *dev, struct pt_regs *regs) 199static irqreturn_t s3c24xx_spi_irq(int irq, void *dev)
200{ 200{
201 struct s3c24xx_spi *hw = dev; 201 struct s3c24xx_spi *hw = dev;
202 unsigned int spsta = readb(hw->regs + S3C2410_SPSTA); 202 unsigned int spsta = readb(hw->regs + S3C2410_SPSTA);
diff --git a/drivers/tc/zs.c b/drivers/tc/zs.c
index 622881f26761..7c0fe1dc96a9 100644
--- a/drivers/tc/zs.c
+++ b/drivers/tc/zs.c
@@ -347,7 +347,7 @@ static void rs_sched_event(struct dec_serial *info, int event)
347 tasklet_schedule(&info->tlet); 347 tasklet_schedule(&info->tlet);
348} 348}
349 349
350static void receive_chars(struct dec_serial *info, struct pt_regs *regs) 350static void receive_chars(struct dec_serial *info)
351{ 351{
352 struct tty_struct *tty = info->tty; 352 struct tty_struct *tty = info->tty;
353 unsigned char ch, stat, flag; 353 unsigned char ch, stat, flag;
@@ -490,7 +490,7 @@ static void status_handle(struct dec_serial *info)
490/* 490/*
491 * This is the serial driver's generic interrupt routine 491 * This is the serial driver's generic interrupt routine
492 */ 492 */
493static irqreturn_t rs_interrupt(int irq, void *dev_id, struct pt_regs *regs) 493static irqreturn_t rs_interrupt(int irq, void *dev_id)
494{ 494{
495 struct dec_serial *info = (struct dec_serial *) dev_id; 495 struct dec_serial *info = (struct dec_serial *) dev_id;
496 irqreturn_t status = IRQ_NONE; 496 irqreturn_t status = IRQ_NONE;
@@ -518,7 +518,7 @@ static irqreturn_t rs_interrupt(int irq, void *dev_id, struct pt_regs *regs)
518 status = IRQ_HANDLED; 518 status = IRQ_HANDLED;
519 519
520 if (zs_intreg & CHBRxIP) { 520 if (zs_intreg & CHBRxIP) {
521 receive_chars(info, regs); 521 receive_chars(info);
522 } 522 }
523 if (zs_intreg & CHBTxIP) { 523 if (zs_intreg & CHBTxIP) {
524 transmit_chars(info); 524 transmit_chars(info);
diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
index 04631dcbabbc..3892a9e9aee3 100644
--- a/drivers/usb/atm/cxacru.c
+++ b/drivers/usb/atm/cxacru.c
@@ -171,7 +171,7 @@ struct cxacru_data {
171}; 171};
172 172
173/* the following three functions are stolen from drivers/usb/core/message.c */ 173/* the following three functions are stolen from drivers/usb/core/message.c */
174static void cxacru_blocking_completion(struct urb *urb, struct pt_regs *regs) 174static void cxacru_blocking_completion(struct urb *urb)
175{ 175{
176 complete((struct completion *)urb->context); 176 complete((struct completion *)urb->context);
177} 177}
diff --git a/drivers/usb/atm/speedtch.c b/drivers/usb/atm/speedtch.c
index 956b7a1e8af9..7c7b507af29d 100644
--- a/drivers/usb/atm/speedtch.c
+++ b/drivers/usb/atm/speedtch.c
@@ -547,7 +547,7 @@ static void speedtch_resubmit_int(unsigned long data)
547 } 547 }
548} 548}
549 549
550static void speedtch_handle_int(struct urb *int_urb, struct pt_regs *regs) 550static void speedtch_handle_int(struct urb *int_urb)
551{ 551{
552 struct speedtch_instance_data *instance = int_urb->context; 552 struct speedtch_instance_data *instance = int_urb->context;
553 struct usbatm_data *usbatm = instance->usbatm; 553 struct usbatm_data *usbatm = instance->usbatm;
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c
index 465961a26e4a..f5434b1cbb1e 100644
--- a/drivers/usb/atm/ueagle-atm.c
+++ b/drivers/usb/atm/ueagle-atm.c
@@ -1297,7 +1297,7 @@ bad1:
1297/* 1297/*
1298 * interrupt handler 1298 * interrupt handler
1299 */ 1299 */
1300static void uea_intr(struct urb *urb, struct pt_regs *regs) 1300static void uea_intr(struct urb *urb)
1301{ 1301{
1302 struct uea_softc *sc = urb->context; 1302 struct uea_softc *sc = urb->context;
1303 struct intr_pkt *intr = urb->transfer_buffer; 1303 struct intr_pkt *intr = urb->transfer_buffer;
diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
index a38701c742c3..309073f6433a 100644
--- a/drivers/usb/atm/usbatm.c
+++ b/drivers/usb/atm/usbatm.c
@@ -254,7 +254,7 @@ static int usbatm_submit_urb(struct urb *urb)
254 return ret; 254 return ret;
255} 255}
256 256
257static void usbatm_complete(struct urb *urb, struct pt_regs *regs) 257static void usbatm_complete(struct urb *urb)
258{ 258{
259 struct usbatm_channel *channel = urb->context; 259 struct usbatm_channel *channel = urb->context;
260 unsigned long flags; 260 unsigned long flags;
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 71288295df2f..ec4d1d756725 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -218,7 +218,7 @@ static int acm_write_start(struct acm *acm)
218 */ 218 */
219 219
220/* control interface reports status changes with "interrupt" transfers */ 220/* control interface reports status changes with "interrupt" transfers */
221static void acm_ctrl_irq(struct urb *urb, struct pt_regs *regs) 221static void acm_ctrl_irq(struct urb *urb)
222{ 222{
223 struct acm *acm = urb->context; 223 struct acm *acm = urb->context;
224 struct usb_cdc_notification *dr = urb->transfer_buffer; 224 struct usb_cdc_notification *dr = urb->transfer_buffer;
@@ -285,7 +285,7 @@ exit:
285} 285}
286 286
287/* data interface returns incoming bytes, or we got unthrottled */ 287/* data interface returns incoming bytes, or we got unthrottled */
288static void acm_read_bulk(struct urb *urb, struct pt_regs *regs) 288static void acm_read_bulk(struct urb *urb)
289{ 289{
290 struct acm_rb *buf; 290 struct acm_rb *buf;
291 struct acm_ru *rcv = urb->context; 291 struct acm_ru *rcv = urb->context;
@@ -409,7 +409,7 @@ urbs:
409} 409}
410 410
411/* data interface wrote those outgoing bytes */ 411/* data interface wrote those outgoing bytes */
412static void acm_write_bulk(struct urb *urb, struct pt_regs *regs) 412static void acm_write_bulk(struct urb *urb)
413{ 413{
414 struct acm *acm = (struct acm *)urb->context; 414 struct acm *acm = (struct acm *)urb->context;
415 415
diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c
index 9cac11ca1bb7..a161d70e1e42 100644
--- a/drivers/usb/class/usblp.c
+++ b/drivers/usb/class/usblp.c
@@ -271,7 +271,7 @@ static int proto_bias = -1;
271 * URB callback. 271 * URB callback.
272 */ 272 */
273 273
274static void usblp_bulk_read(struct urb *urb, struct pt_regs *regs) 274static void usblp_bulk_read(struct urb *urb)
275{ 275{
276 struct usblp *usblp = urb->context; 276 struct usblp *usblp = urb->context;
277 277
@@ -288,7 +288,7 @@ unplug:
288 wake_up_interruptible(&usblp->wait); 288 wake_up_interruptible(&usblp->wait);
289} 289}
290 290
291static void usblp_bulk_write(struct urb *urb, struct pt_regs *regs) 291static void usblp_bulk_write(struct urb *urb)
292{ 292{
293 struct usblp *usblp = urb->context; 293 struct usblp *usblp = urb->context;
294 294
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index 3f509beb88e4..2c9c9462d899 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -304,7 +304,7 @@ static void snoop_urb(struct urb *urb, void __user *userurb)
304 printk("\n"); 304 printk("\n");
305} 305}
306 306
307static void async_completed(struct urb *urb, struct pt_regs *regs) 307static void async_completed(struct urb *urb)
308{ 308{
309 struct async *as = urb->context; 309 struct async *as = urb->context;
310 struct dev_state *ps = as->ps; 310 struct dev_state *ps = as->ps;
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index e658089f7b50..afa2dd203329 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -522,7 +522,7 @@ error:
522 if (urb->status == -EINPROGRESS) 522 if (urb->status == -EINPROGRESS)
523 urb->status = status; 523 urb->status = status;
524 spin_unlock (&urb->lock); 524 spin_unlock (&urb->lock);
525 usb_hcd_giveback_urb (hcd, urb, NULL); 525 usb_hcd_giveback_urb (hcd, urb);
526 local_irq_restore (flags); 526 local_irq_restore (flags);
527 return 0; 527 return 0;
528} 528}
@@ -572,7 +572,7 @@ void usb_hcd_poll_rh_status(struct usb_hcd *hcd)
572 572
573 /* local irqs are always blocked in completions */ 573 /* local irqs are always blocked in completions */
574 if (length > 0) 574 if (length > 0)
575 usb_hcd_giveback_urb (hcd, urb, NULL); 575 usb_hcd_giveback_urb (hcd, urb);
576 else 576 else
577 hcd->poll_pending = 1; 577 hcd->poll_pending = 1;
578 local_irq_restore (flags); 578 local_irq_restore (flags);
@@ -656,7 +656,7 @@ static int usb_rh_urb_dequeue (struct usb_hcd *hcd, struct urb *urb)
656 urb = NULL; /* wasn't fully queued */ 656 urb = NULL; /* wasn't fully queued */
657 spin_unlock (&hcd_root_hub_lock); 657 spin_unlock (&hcd_root_hub_lock);
658 if (urb) 658 if (urb)
659 usb_hcd_giveback_urb (hcd, urb, NULL); 659 usb_hcd_giveback_urb (hcd, urb);
660 local_irq_restore (flags); 660 local_irq_restore (flags);
661 } 661 }
662 662
@@ -1498,7 +1498,6 @@ EXPORT_SYMBOL (usb_bus_start_enum);
1498 * usb_hcd_giveback_urb - return URB from HCD to device driver 1498 * usb_hcd_giveback_urb - return URB from HCD to device driver
1499 * @hcd: host controller returning the URB 1499 * @hcd: host controller returning the URB
1500 * @urb: urb being returned to the USB device driver. 1500 * @urb: urb being returned to the USB device driver.
1501 * @regs: pt_regs, passed down to the URB completion handler
1502 * Context: in_interrupt() 1501 * Context: in_interrupt()
1503 * 1502 *
1504 * This hands the URB from HCD to its USB device driver, using its 1503 * This hands the URB from HCD to its USB device driver, using its
@@ -1507,7 +1506,7 @@ EXPORT_SYMBOL (usb_bus_start_enum);
1507 * the device driver won't cause problems if it frees, modifies, 1506 * the device driver won't cause problems if it frees, modifies,
1508 * or resubmits this URB. 1507 * or resubmits this URB.
1509 */ 1508 */
1510void usb_hcd_giveback_urb (struct usb_hcd *hcd, struct urb *urb, struct pt_regs *regs) 1509void usb_hcd_giveback_urb (struct usb_hcd *hcd, struct urb *urb)
1511{ 1510{
1512 int at_root_hub; 1511 int at_root_hub;
1513 1512
@@ -1534,7 +1533,7 @@ void usb_hcd_giveback_urb (struct usb_hcd *hcd, struct urb *urb, struct pt_regs
1534 1533
1535 usbmon_urb_complete (&hcd->self, urb); 1534 usbmon_urb_complete (&hcd->self, urb);
1536 /* pass ownership to the completion handler */ 1535 /* pass ownership to the completion handler */
1537 urb->complete (urb, regs); 1536 urb->complete (urb);
1538 atomic_dec (&urb->use_count); 1537 atomic_dec (&urb->use_count);
1539 if (unlikely (urb->reject)) 1538 if (unlikely (urb->reject))
1540 wake_up (&usb_kill_urb_queue); 1539 wake_up (&usb_kill_urb_queue);
@@ -1553,7 +1552,7 @@ EXPORT_SYMBOL (usb_hcd_giveback_urb);
1553 * If the controller isn't HALTed, calls the driver's irq handler. 1552 * If the controller isn't HALTed, calls the driver's irq handler.
1554 * Checks whether the controller is now dead. 1553 * Checks whether the controller is now dead.
1555 */ 1554 */
1556irqreturn_t usb_hcd_irq (int irq, void *__hcd, struct pt_regs * r) 1555irqreturn_t usb_hcd_irq (int irq, void *__hcd)
1557{ 1556{
1558 struct usb_hcd *hcd = __hcd; 1557 struct usb_hcd *hcd = __hcd;
1559 int start = hcd->state; 1558 int start = hcd->state;
@@ -1561,7 +1560,7 @@ irqreturn_t usb_hcd_irq (int irq, void *__hcd, struct pt_regs * r)
1561 if (unlikely(start == HC_STATE_HALT || 1560 if (unlikely(start == HC_STATE_HALT ||
1562 !test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags))) 1561 !test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)))
1563 return IRQ_NONE; 1562 return IRQ_NONE;
1564 if (hcd->driver->irq (hcd, r) == IRQ_NONE) 1563 if (hcd->driver->irq (hcd) == IRQ_NONE)
1565 return IRQ_NONE; 1564 return IRQ_NONE;
1566 1565
1567 set_bit(HCD_FLAG_SAW_IRQ, &hcd->flags); 1566 set_bit(HCD_FLAG_SAW_IRQ, &hcd->flags);
diff --git a/drivers/usb/core/hcd.h b/drivers/usb/core/hcd.h
index 676877c15f81..8f8df0d4382e 100644
--- a/drivers/usb/core/hcd.h
+++ b/drivers/usb/core/hcd.h
@@ -143,15 +143,13 @@ struct hcd_timeout { /* timeouts we allocate */
143/*-------------------------------------------------------------------------*/ 143/*-------------------------------------------------------------------------*/
144 144
145 145
146struct pt_regs;
147
148struct hc_driver { 146struct hc_driver {
149 const char *description; /* "ehci-hcd" etc */ 147 const char *description; /* "ehci-hcd" etc */
150 const char *product_desc; /* product/vendor string */ 148 const char *product_desc; /* product/vendor string */
151 size_t hcd_priv_size; /* size of private data */ 149 size_t hcd_priv_size; /* size of private data */
152 150
153 /* irq handler */ 151 /* irq handler */
154 irqreturn_t (*irq) (struct usb_hcd *hcd, struct pt_regs *regs); 152 irqreturn_t (*irq) (struct usb_hcd *hcd);
155 153
156 int flags; 154 int flags;
157#define HCD_MEMORY 0x0001 /* HC regs use memory (else I/O) */ 155#define HCD_MEMORY 0x0001 /* HC regs use memory (else I/O) */
@@ -205,8 +203,7 @@ struct hc_driver {
205 203
206extern int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags); 204extern int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags);
207extern int usb_hcd_unlink_urb (struct urb *urb, int status); 205extern int usb_hcd_unlink_urb (struct urb *urb, int status);
208extern void usb_hcd_giveback_urb (struct usb_hcd *hcd, struct urb *urb, 206extern void usb_hcd_giveback_urb (struct usb_hcd *hcd, struct urb *urb);
209 struct pt_regs *regs);
210extern void usb_hcd_endpoint_disable (struct usb_device *udev, 207extern void usb_hcd_endpoint_disable (struct usb_device *udev,
211 struct usb_host_endpoint *ep); 208 struct usb_host_endpoint *ep);
212extern int usb_hcd_get_frame_number (struct usb_device *udev); 209extern int usb_hcd_get_frame_number (struct usb_device *udev);
@@ -248,7 +245,7 @@ void hcd_buffer_free (struct usb_bus *bus, size_t size,
248 void *addr, dma_addr_t dma); 245 void *addr, dma_addr_t dma);
249 246
250/* generic bus glue, needed for host controllers that don't use PCI */ 247/* generic bus glue, needed for host controllers that don't use PCI */
251extern irqreturn_t usb_hcd_irq (int irq, void *__hcd, struct pt_regs *r); 248extern irqreturn_t usb_hcd_irq (int irq, void *__hcd);
252 249
253extern void usb_hc_died (struct usb_hcd *hcd); 250extern void usb_hc_died (struct usb_hcd *hcd);
254extern void usb_hcd_poll_rh_status(struct usb_hcd *hcd); 251extern void usb_hcd_poll_rh_status(struct usb_hcd *hcd);
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 7676690a0386..66bff184a30c 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -291,7 +291,7 @@ void usb_kick_khubd(struct usb_device *hdev)
291 291
292 292
293/* completion function, fires on port status changes and various faults */ 293/* completion function, fires on port status changes and various faults */
294static void hub_irq(struct urb *urb, struct pt_regs *regs) 294static void hub_irq(struct urb *urb)
295{ 295{
296 struct usb_hub *hub = urb->context; 296 struct usb_hub *hub = urb->context;
297 int status; 297 int status;
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index 85b1cd18336f..fccd1952bad3 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -17,7 +17,7 @@
17#include "hcd.h" /* for usbcore internals */ 17#include "hcd.h" /* for usbcore internals */
18#include "usb.h" 18#include "usb.h"
19 19
20static void usb_api_blocking_completion(struct urb *urb, struct pt_regs *regs) 20static void usb_api_blocking_completion(struct urb *urb)
21{ 21{
22 complete((struct completion *)urb->context); 22 complete((struct completion *)urb->context);
23} 23}
@@ -246,7 +246,7 @@ static void sg_clean (struct usb_sg_request *io)
246 io->dev = NULL; 246 io->dev = NULL;
247} 247}
248 248
249static void sg_complete (struct urb *urb, struct pt_regs *regs) 249static void sg_complete (struct urb *urb)
250{ 250{
251 struct usb_sg_request *io = urb->context; 251 struct usb_sg_request *io = urb->context;
252 252
diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index 77beba485a84..72f3db99ff94 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -1366,7 +1366,7 @@ static void handle_ep0(struct at91_udc *udc)
1366 } 1366 }
1367} 1367}
1368 1368
1369static irqreturn_t at91_udc_irq (int irq, void *_udc, struct pt_regs *r) 1369static irqreturn_t at91_udc_irq (int irq, void *_udc)
1370{ 1370{
1371 struct at91_udc *udc = _udc; 1371 struct at91_udc *udc = _udc;
1372 u32 rescans = 5; 1372 u32 rescans = 5;
@@ -1552,7 +1552,7 @@ static struct at91_udc controller = {
1552 /* ep6 and ep7 are also reserved (custom silicon might use them) */ 1552 /* ep6 and ep7 are also reserved (custom silicon might use them) */
1553}; 1553};
1554 1554
1555static irqreturn_t at91_vbus_irq(int irq, void *_udc, struct pt_regs *r) 1555static irqreturn_t at91_vbus_irq(int irq, void *_udc)
1556{ 1556{
1557 struct at91_udc *udc = _udc; 1557 struct at91_udc *udc = _udc;
1558 unsigned value; 1558 unsigned value;
diff --git a/drivers/usb/gadget/goku_udc.c b/drivers/usb/gadget/goku_udc.c
index 7cf2999e8616..a3076da3f4eb 100644
--- a/drivers/usb/gadget/goku_udc.c
+++ b/drivers/usb/gadget/goku_udc.c
@@ -1628,7 +1628,7 @@ stall:
1628 handled = 1; \ 1628 handled = 1; \
1629 } 1629 }
1630 1630
1631static irqreturn_t goku_irq(int irq, void *_dev, struct pt_regs *r) 1631static irqreturn_t goku_irq(int irq, void *_dev)
1632{ 1632{
1633 struct goku_udc *dev = _dev; 1633 struct goku_udc *dev = _dev;
1634 struct goku_udc_regs __iomem *regs = dev->regs; 1634 struct goku_udc_regs __iomem *regs = dev->regs;
diff --git a/drivers/usb/gadget/lh7a40x_udc.c b/drivers/usb/gadget/lh7a40x_udc.c
index 36db72579377..179259664c18 100644
--- a/drivers/usb/gadget/lh7a40x_udc.c
+++ b/drivers/usb/gadget/lh7a40x_udc.c
@@ -922,7 +922,7 @@ static void lh7a40x_reset_intr(struct lh7a40x_udc *dev)
922/* 922/*
923 * lh7a40x usb client interrupt handler. 923 * lh7a40x usb client interrupt handler.
924 */ 924 */
925static irqreturn_t lh7a40x_udc_irq(int irq, void *_dev, struct pt_regs *r) 925static irqreturn_t lh7a40x_udc_irq(int irq, void *_dev)
926{ 926{
927 struct lh7a40x_udc *dev = _dev; 927 struct lh7a40x_udc *dev = _dev;
928 928
diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c
index 3bda37f9a35f..d954daa8e9e0 100644
--- a/drivers/usb/gadget/net2280.c
+++ b/drivers/usb/gadget/net2280.c
@@ -2753,7 +2753,7 @@ static void handle_stat1_irqs (struct net2280 *dev, u32 stat)
2753 DEBUG (dev, "unhandled irqstat1 %08x\n", stat); 2753 DEBUG (dev, "unhandled irqstat1 %08x\n", stat);
2754} 2754}
2755 2755
2756static irqreturn_t net2280_irq (int irq, void *_dev, struct pt_regs * r) 2756static irqreturn_t net2280_irq (int irq, void *_dev)
2757{ 2757{
2758 struct net2280 *dev = _dev; 2758 struct net2280 *dev = _dev;
2759 2759
diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index 8c18df869833..48a09fd89d18 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -1815,8 +1815,7 @@ static void devstate_irq(struct omap_udc *udc, u16 irq_src)
1815 UDC_IRQ_SRC_REG = UDC_DS_CHG; 1815 UDC_IRQ_SRC_REG = UDC_DS_CHG;
1816} 1816}
1817 1817
1818static irqreturn_t 1818static irqreturn_t omap_udc_irq(int irq, void *_udc)
1819omap_udc_irq(int irq, void *_udc, struct pt_regs *r)
1820{ 1819{
1821 struct omap_udc *udc = _udc; 1820 struct omap_udc *udc = _udc;
1822 u16 irq_src; 1821 u16 irq_src;
@@ -1888,8 +1887,7 @@ static void pio_out_timer(unsigned long _ep)
1888 spin_unlock_irqrestore(&ep->udc->lock, flags); 1887 spin_unlock_irqrestore(&ep->udc->lock, flags);
1889} 1888}
1890 1889
1891static irqreturn_t 1890static irqreturn_t omap_udc_pio_irq(int irq, void *_dev)
1892omap_udc_pio_irq(int irq, void *_dev, struct pt_regs *r)
1893{ 1891{
1894 u16 epn_stat, irq_src; 1892 u16 epn_stat, irq_src;
1895 irqreturn_t status = IRQ_NONE; 1893 irqreturn_t status = IRQ_NONE;
@@ -1968,8 +1966,7 @@ omap_udc_pio_irq(int irq, void *_dev, struct pt_regs *r)
1968} 1966}
1969 1967
1970#ifdef USE_ISO 1968#ifdef USE_ISO
1971static irqreturn_t 1969static irqreturn_t omap_udc_iso_irq(int irq, void *_dev)
1972omap_udc_iso_irq(int irq, void *_dev, struct pt_regs *r)
1973{ 1970{
1974 struct omap_udc *udc = _dev; 1971 struct omap_udc *udc = _dev;
1975 struct omap_ep *ep; 1972 struct omap_ep *ep;
diff --git a/drivers/usb/gadget/pxa2xx_udc.c b/drivers/usb/gadget/pxa2xx_udc.c
index f1adcf8b2023..f42c00ef0bca 100644
--- a/drivers/usb/gadget/pxa2xx_udc.c
+++ b/drivers/usb/gadget/pxa2xx_udc.c
@@ -110,7 +110,7 @@ static int use_dma = 1;
110module_param(use_dma, bool, 0); 110module_param(use_dma, bool, 0);
111MODULE_PARM_DESC (use_dma, "true to use dma"); 111MODULE_PARM_DESC (use_dma, "true to use dma");
112 112
113static void dma_nodesc_handler (int dmach, void *_ep, struct pt_regs *r); 113static void dma_nodesc_handler (int dmach, void *_ep);
114static void kick_dma(struct pxa2xx_ep *ep, struct pxa2xx_request *req); 114static void kick_dma(struct pxa2xx_ep *ep, struct pxa2xx_request *req);
115 115
116#ifdef USE_OUT_DMA 116#ifdef USE_OUT_DMA
@@ -828,7 +828,7 @@ static void cancel_dma(struct pxa2xx_ep *ep)
828} 828}
829 829
830/* dma channel stopped ... normal tx end (IN), or on error (IN/OUT) */ 830/* dma channel stopped ... normal tx end (IN), or on error (IN/OUT) */
831static void dma_nodesc_handler(int dmach, void *_ep, struct pt_regs *r) 831static void dma_nodesc_handler(int dmach, void *_ep)
832{ 832{
833 struct pxa2xx_ep *ep = _ep; 833 struct pxa2xx_ep *ep = _ep;
834 struct pxa2xx_request *req; 834 struct pxa2xx_request *req;
@@ -1724,7 +1724,7 @@ EXPORT_SYMBOL(usb_gadget_unregister_driver);
1724 */ 1724 */
1725 1725
1726static irqreturn_t 1726static irqreturn_t
1727lubbock_vbus_irq(int irq, void *_dev, struct pt_regs *r) 1727lubbock_vbus_irq(int irq, void *_dev)
1728{ 1728{
1729 struct pxa2xx_udc *dev = _dev; 1729 struct pxa2xx_udc *dev = _dev;
1730 int vbus; 1730 int vbus;
@@ -1754,8 +1754,7 @@ lubbock_vbus_irq(int irq, void *_dev, struct pt_regs *r)
1754 1754
1755#endif 1755#endif
1756 1756
1757static irqreturn_t 1757static irqreturn_t udc_vbus_irq(int irq, void *_dev)
1758udc_vbus_irq(int irq, void *_dev, struct pt_regs *r)
1759{ 1758{
1760 struct pxa2xx_udc *dev = _dev; 1759 struct pxa2xx_udc *dev = _dev;
1761 int vbus = pxa_gpio_get(dev->mach->gpio_vbus); 1760 int vbus = pxa_gpio_get(dev->mach->gpio_vbus);
@@ -2084,7 +2083,7 @@ static void handle_ep(struct pxa2xx_ep *ep)
2084 * could cause usb protocol errors. 2083 * could cause usb protocol errors.
2085 */ 2084 */
2086static irqreturn_t 2085static irqreturn_t
2087pxa2xx_udc_irq(int irq, void *_dev, struct pt_regs *r) 2086pxa2xx_udc_irq(int irq, void *_dev)
2088{ 2087{
2089 struct pxa2xx_udc *dev = _dev; 2088 struct pxa2xx_udc *dev = _dev;
2090 int handled; 2089 int handled;
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 5ac918591131..aac6ec5dd7cf 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -254,8 +254,8 @@ static void ehci_quiesce (struct ehci_hcd *ehci)
254 254
255/*-------------------------------------------------------------------------*/ 255/*-------------------------------------------------------------------------*/
256 256
257static void end_unlink_async (struct ehci_hcd *ehci, struct pt_regs *regs); 257static void end_unlink_async (struct ehci_hcd *ehci);
258static void ehci_work(struct ehci_hcd *ehci, struct pt_regs *regs); 258static void ehci_work(struct ehci_hcd *ehci);
259 259
260#include "ehci-hub.c" 260#include "ehci-hub.c"
261#include "ehci-mem.c" 261#include "ehci-mem.c"
@@ -280,7 +280,7 @@ static void ehci_iaa_watchdog (unsigned long param)
280 ehci_vdbg (ehci, "lost IAA\n"); 280 ehci_vdbg (ehci, "lost IAA\n");
281 COUNT (ehci->stats.lost_iaa); 281 COUNT (ehci->stats.lost_iaa);
282 writel (STS_IAA, &ehci->regs->status); 282 writel (STS_IAA, &ehci->regs->status);
283 end_unlink_async (ehci, NULL); 283 end_unlink_async (ehci);
284 } 284 }
285 } 285 }
286 286
@@ -299,7 +299,7 @@ static void ehci_watchdog (unsigned long param)
299 start_unlink_async (ehci, ehci->async); 299 start_unlink_async (ehci, ehci->async);
300 300
301 /* ehci could run by timer, without IRQs ... */ 301 /* ehci could run by timer, without IRQs ... */
302 ehci_work (ehci, NULL); 302 ehci_work (ehci);
303 303
304 spin_unlock_irqrestore (&ehci->lock, flags); 304 spin_unlock_irqrestore (&ehci->lock, flags);
305} 305}
@@ -342,7 +342,7 @@ static void ehci_port_power (struct ehci_hcd *ehci, int is_on)
342 * ehci_work is called from some interrupts, timers, and so on. 342 * ehci_work is called from some interrupts, timers, and so on.
343 * it calls driver completion functions, after dropping ehci->lock. 343 * it calls driver completion functions, after dropping ehci->lock.
344 */ 344 */
345static void ehci_work (struct ehci_hcd *ehci, struct pt_regs *regs) 345static void ehci_work (struct ehci_hcd *ehci)
346{ 346{
347 timer_action_done (ehci, TIMER_IO_WATCHDOG); 347 timer_action_done (ehci, TIMER_IO_WATCHDOG);
348 348
@@ -353,9 +353,9 @@ static void ehci_work (struct ehci_hcd *ehci, struct pt_regs *regs)
353 if (ehci->scanning) 353 if (ehci->scanning)
354 return; 354 return;
355 ehci->scanning = 1; 355 ehci->scanning = 1;
356 scan_async (ehci, regs); 356 scan_async (ehci);
357 if (ehci->next_uframe != -1) 357 if (ehci->next_uframe != -1)
358 scan_periodic (ehci, regs); 358 scan_periodic (ehci);
359 ehci->scanning = 0; 359 ehci->scanning = 0;
360 360
361 /* the IO watchdog guards against hardware or driver bugs that 361 /* the IO watchdog guards against hardware or driver bugs that
@@ -397,7 +397,7 @@ static void ehci_stop (struct usb_hcd *hcd)
397 /* root hub is shut down separately (first, when possible) */ 397 /* root hub is shut down separately (first, when possible) */
398 spin_lock_irq (&ehci->lock); 398 spin_lock_irq (&ehci->lock);
399 if (ehci->async) 399 if (ehci->async)
400 ehci_work (ehci, NULL); 400 ehci_work (ehci);
401 spin_unlock_irq (&ehci->lock); 401 spin_unlock_irq (&ehci->lock);
402 ehci_mem_cleanup (ehci); 402 ehci_mem_cleanup (ehci);
403 403
@@ -573,7 +573,7 @@ static int ehci_run (struct usb_hcd *hcd)
573 573
574/*-------------------------------------------------------------------------*/ 574/*-------------------------------------------------------------------------*/
575 575
576static irqreturn_t ehci_irq (struct usb_hcd *hcd, struct pt_regs *regs) 576static irqreturn_t ehci_irq (struct usb_hcd *hcd)
577{ 577{
578 struct ehci_hcd *ehci = hcd_to_ehci (hcd); 578 struct ehci_hcd *ehci = hcd_to_ehci (hcd);
579 u32 status; 579 u32 status;
@@ -619,7 +619,7 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd, struct pt_regs *regs)
619 /* complete the unlinking of some qh [4.15.2.3] */ 619 /* complete the unlinking of some qh [4.15.2.3] */
620 if (status & STS_IAA) { 620 if (status & STS_IAA) {
621 COUNT (ehci->stats.reclaim); 621 COUNT (ehci->stats.reclaim);
622 end_unlink_async (ehci, regs); 622 end_unlink_async (ehci);
623 bh = 1; 623 bh = 1;
624 } 624 }
625 625
@@ -670,7 +670,7 @@ dead:
670 } 670 }
671 671
672 if (bh) 672 if (bh)
673 ehci_work (ehci, regs); 673 ehci_work (ehci);
674 spin_unlock (&ehci->lock); 674 spin_unlock (&ehci->lock);
675 return IRQ_HANDLED; 675 return IRQ_HANDLED;
676} 676}
@@ -727,7 +727,7 @@ static void unlink_async (struct ehci_hcd *ehci, struct ehci_qh *qh)
727 727
728 /* failfast */ 728 /* failfast */
729 if (!HC_IS_RUNNING (ehci_to_hcd(ehci)->state)) 729 if (!HC_IS_RUNNING (ehci_to_hcd(ehci)->state))
730 end_unlink_async (ehci, NULL); 730 end_unlink_async (ehci);
731 731
732 /* defer till later if busy */ 732 /* defer till later if busy */
733 else if (ehci->reclaim) { 733 else if (ehci->reclaim) {
@@ -787,7 +787,7 @@ static int ehci_urb_dequeue (struct usb_hcd *hcd, struct urb *urb)
787 intr_deschedule (ehci, qh); 787 intr_deschedule (ehci, qh);
788 /* FALL THROUGH */ 788 /* FALL THROUGH */
789 case QH_STATE_IDLE: 789 case QH_STATE_IDLE:
790 qh_completions (ehci, qh, NULL); 790 qh_completions (ehci, qh);
791 break; 791 break;
792 default: 792 default:
793 ehci_dbg (ehci, "bogus qh %p state %d\n", 793 ehci_dbg (ehci, "bogus qh %p state %d\n",
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
index b2ee13c58517..2012213c0a25 100644
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -48,8 +48,8 @@ static int ehci_bus_suspend (struct usb_hcd *hcd)
48 } 48 }
49 ehci->command = readl (&ehci->regs->command); 49 ehci->command = readl (&ehci->regs->command);
50 if (ehci->reclaim) 50 if (ehci->reclaim)
51 end_unlink_async (ehci, NULL); 51 end_unlink_async (ehci);
52 ehci_work(ehci, NULL); 52 ehci_work(ehci);
53 53
54 /* suspend any active/unsuspended ports, maybe allow wakeup */ 54 /* suspend any active/unsuspended ports, maybe allow wakeup */
55 while (port--) { 55 while (port--) {
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index 08d0472d4f57..35e3fab6fc4e 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -303,8 +303,8 @@ restart:
303 /* emptying the schedule aborts any urbs */ 303 /* emptying the schedule aborts any urbs */
304 spin_lock_irq(&ehci->lock); 304 spin_lock_irq(&ehci->lock);
305 if (ehci->reclaim) 305 if (ehci->reclaim)
306 end_unlink_async (ehci, NULL); 306 end_unlink_async (ehci);
307 ehci_work(ehci, NULL); 307 ehci_work(ehci);
308 spin_unlock_irq(&ehci->lock); 308 spin_unlock_irq(&ehci->lock);
309 309
310 /* restart; khubd will disconnect devices */ 310 /* restart; khubd will disconnect devices */
diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
index 7fc25b6bd7d2..46327272f614 100644
--- a/drivers/usb/host/ehci-q.c
+++ b/drivers/usb/host/ehci-q.c
@@ -214,7 +214,7 @@ static void qtd_copy_status (
214} 214}
215 215
216static void 216static void
217ehci_urb_done (struct ehci_hcd *ehci, struct urb *urb, struct pt_regs *regs) 217ehci_urb_done (struct ehci_hcd *ehci, struct urb *urb)
218__releases(ehci->lock) 218__releases(ehci->lock)
219__acquires(ehci->lock) 219__acquires(ehci->lock)
220{ 220{
@@ -262,7 +262,7 @@ __acquires(ehci->lock)
262 262
263 /* complete() can reenter this HCD */ 263 /* complete() can reenter this HCD */
264 spin_unlock (&ehci->lock); 264 spin_unlock (&ehci->lock);
265 usb_hcd_giveback_urb (ehci_to_hcd(ehci), urb, regs); 265 usb_hcd_giveback_urb (ehci_to_hcd(ehci), urb);
266 spin_lock (&ehci->lock); 266 spin_lock (&ehci->lock);
267} 267}
268 268
@@ -279,7 +279,7 @@ static int qh_schedule (struct ehci_hcd *ehci, struct ehci_qh *qh);
279 */ 279 */
280#define HALT_BIT __constant_cpu_to_le32(QTD_STS_HALT) 280#define HALT_BIT __constant_cpu_to_le32(QTD_STS_HALT)
281static unsigned 281static unsigned
282qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh, struct pt_regs *regs) 282qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh)
283{ 283{
284 struct ehci_qtd *last = NULL, *end = qh->dummy; 284 struct ehci_qtd *last = NULL, *end = qh->dummy;
285 struct list_head *entry, *tmp; 285 struct list_head *entry, *tmp;
@@ -317,7 +317,7 @@ qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh, struct pt_regs *regs)
317 /* clean up any state from previous QTD ...*/ 317 /* clean up any state from previous QTD ...*/
318 if (last) { 318 if (last) {
319 if (likely (last->urb != urb)) { 319 if (likely (last->urb != urb)) {
320 ehci_urb_done (ehci, last->urb, regs); 320 ehci_urb_done (ehci, last->urb);
321 count++; 321 count++;
322 } 322 }
323 ehci_qtd_free (ehci, last); 323 ehci_qtd_free (ehci, last);
@@ -407,7 +407,7 @@ halt:
407 407
408 /* last urb's completion might still need calling */ 408 /* last urb's completion might still need calling */
409 if (likely (last != NULL)) { 409 if (likely (last != NULL)) {
410 ehci_urb_done (ehci, last->urb, regs); 410 ehci_urb_done (ehci, last->urb);
411 count++; 411 count++;
412 ehci_qtd_free (ehci, last); 412 ehci_qtd_free (ehci, last);
413 } 413 }
@@ -962,7 +962,7 @@ submit_async (
962 962
963/* the async qh for the qtds being reclaimed are now unlinked from the HC */ 963/* the async qh for the qtds being reclaimed are now unlinked from the HC */
964 964
965static void end_unlink_async (struct ehci_hcd *ehci, struct pt_regs *regs) 965static void end_unlink_async (struct ehci_hcd *ehci)
966{ 966{
967 struct ehci_qh *qh = ehci->reclaim; 967 struct ehci_qh *qh = ehci->reclaim;
968 struct ehci_qh *next; 968 struct ehci_qh *next;
@@ -979,7 +979,7 @@ static void end_unlink_async (struct ehci_hcd *ehci, struct pt_regs *regs)
979 ehci->reclaim = next; 979 ehci->reclaim = next;
980 qh->reclaim = NULL; 980 qh->reclaim = NULL;
981 981
982 qh_completions (ehci, qh, regs); 982 qh_completions (ehci, qh);
983 983
984 if (!list_empty (&qh->qtd_list) 984 if (!list_empty (&qh->qtd_list)
985 && HC_IS_RUNNING (ehci_to_hcd(ehci)->state)) 985 && HC_IS_RUNNING (ehci_to_hcd(ehci)->state))
@@ -1047,7 +1047,7 @@ static void start_unlink_async (struct ehci_hcd *ehci, struct ehci_qh *qh)
1047 /* if (unlikely (qh->reclaim != 0)) 1047 /* if (unlikely (qh->reclaim != 0))
1048 * this will recurse, probably not much 1048 * this will recurse, probably not much
1049 */ 1049 */
1050 end_unlink_async (ehci, NULL); 1050 end_unlink_async (ehci);
1051 return; 1051 return;
1052 } 1052 }
1053 1053
@@ -1059,8 +1059,7 @@ static void start_unlink_async (struct ehci_hcd *ehci, struct ehci_qh *qh)
1059 1059
1060/*-------------------------------------------------------------------------*/ 1060/*-------------------------------------------------------------------------*/
1061 1061
1062static void 1062static void scan_async (struct ehci_hcd *ehci)
1063scan_async (struct ehci_hcd *ehci, struct pt_regs *regs)
1064{ 1063{
1065 struct ehci_qh *qh; 1064 struct ehci_qh *qh;
1066 enum ehci_timer_action action = TIMER_IO_WATCHDOG; 1065 enum ehci_timer_action action = TIMER_IO_WATCHDOG;
@@ -1084,7 +1083,7 @@ rescan:
1084 */ 1083 */
1085 qh = qh_get (qh); 1084 qh = qh_get (qh);
1086 qh->stamp = ehci->stamp; 1085 qh->stamp = ehci->stamp;
1087 temp = qh_completions (ehci, qh, regs); 1086 temp = qh_completions (ehci, qh);
1088 qh_put (qh); 1087 qh_put (qh);
1089 if (temp != 0) { 1088 if (temp != 0) {
1090 goto rescan; 1089 goto rescan;
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index e5e9c653c907..65c402a0fa7a 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -1553,8 +1553,7 @@ itd_link_urb (
1553static unsigned 1553static unsigned
1554itd_complete ( 1554itd_complete (
1555 struct ehci_hcd *ehci, 1555 struct ehci_hcd *ehci,
1556 struct ehci_itd *itd, 1556 struct ehci_itd *itd
1557 struct pt_regs *regs
1558) { 1557) {
1559 struct urb *urb = itd->urb; 1558 struct urb *urb = itd->urb;
1560 struct usb_iso_packet_descriptor *desc; 1559 struct usb_iso_packet_descriptor *desc;
@@ -1613,7 +1612,7 @@ itd_complete (
1613 1612
1614 /* give urb back to the driver ... can be out-of-order */ 1613 /* give urb back to the driver ... can be out-of-order */
1615 dev = urb->dev; 1614 dev = urb->dev;
1616 ehci_urb_done (ehci, urb, regs); 1615 ehci_urb_done (ehci, urb);
1617 urb = NULL; 1616 urb = NULL;
1618 1617
1619 /* defer stopping schedule; completion can submit */ 1618 /* defer stopping schedule; completion can submit */
@@ -1930,8 +1929,7 @@ sitd_link_urb (
1930static unsigned 1929static unsigned
1931sitd_complete ( 1930sitd_complete (
1932 struct ehci_hcd *ehci, 1931 struct ehci_hcd *ehci,
1933 struct ehci_sitd *sitd, 1932 struct ehci_sitd *sitd
1934 struct pt_regs *regs
1935) { 1933) {
1936 struct urb *urb = sitd->urb; 1934 struct urb *urb = sitd->urb;
1937 struct usb_iso_packet_descriptor *desc; 1935 struct usb_iso_packet_descriptor *desc;
@@ -1978,7 +1976,7 @@ sitd_complete (
1978 1976
1979 /* give urb back to the driver */ 1977 /* give urb back to the driver */
1980 dev = urb->dev; 1978 dev = urb->dev;
1981 ehci_urb_done (ehci, urb, regs); 1979 ehci_urb_done (ehci, urb);
1982 urb = NULL; 1980 urb = NULL;
1983 1981
1984 /* defer stopping schedule; completion can submit */ 1982 /* defer stopping schedule; completion can submit */
@@ -2065,8 +2063,7 @@ sitd_submit (struct ehci_hcd *ehci, struct urb *urb, gfp_t mem_flags)
2065static inline unsigned 2063static inline unsigned
2066sitd_complete ( 2064sitd_complete (
2067 struct ehci_hcd *ehci, 2065 struct ehci_hcd *ehci,
2068 struct ehci_sitd *sitd, 2066 struct ehci_sitd *sitd
2069 struct pt_regs *regs
2070) { 2067) {
2071 ehci_err (ehci, "sitd_complete %p?\n", sitd); 2068 ehci_err (ehci, "sitd_complete %p?\n", sitd);
2072 return 0; 2069 return 0;
@@ -2077,7 +2074,7 @@ sitd_complete (
2077/*-------------------------------------------------------------------------*/ 2074/*-------------------------------------------------------------------------*/
2078 2075
2079static void 2076static void
2080scan_periodic (struct ehci_hcd *ehci, struct pt_regs *regs) 2077scan_periodic (struct ehci_hcd *ehci)
2081{ 2078{
2082 unsigned frame, clock, now_uframe, mod; 2079 unsigned frame, clock, now_uframe, mod;
2083 unsigned modified; 2080 unsigned modified;
@@ -2131,7 +2128,7 @@ restart:
2131 temp.qh = qh_get (q.qh); 2128 temp.qh = qh_get (q.qh);
2132 type = Q_NEXT_TYPE (q.qh->hw_next); 2129 type = Q_NEXT_TYPE (q.qh->hw_next);
2133 q = q.qh->qh_next; 2130 q = q.qh->qh_next;
2134 modified = qh_completions (ehci, temp.qh, regs); 2131 modified = qh_completions (ehci, temp.qh);
2135 if (unlikely (list_empty (&temp.qh->qtd_list))) 2132 if (unlikely (list_empty (&temp.qh->qtd_list)))
2136 intr_deschedule (ehci, temp.qh); 2133 intr_deschedule (ehci, temp.qh);
2137 qh_put (temp.qh); 2134 qh_put (temp.qh);
@@ -2169,7 +2166,7 @@ restart:
2169 *hw_p = q.itd->hw_next; 2166 *hw_p = q.itd->hw_next;
2170 type = Q_NEXT_TYPE (q.itd->hw_next); 2167 type = Q_NEXT_TYPE (q.itd->hw_next);
2171 wmb(); 2168 wmb();
2172 modified = itd_complete (ehci, q.itd, regs); 2169 modified = itd_complete (ehci, q.itd);
2173 q = *q_p; 2170 q = *q_p;
2174 break; 2171 break;
2175 case Q_TYPE_SITD: 2172 case Q_TYPE_SITD:
@@ -2185,7 +2182,7 @@ restart:
2185 *hw_p = q.sitd->hw_next; 2182 *hw_p = q.sitd->hw_next;
2186 type = Q_NEXT_TYPE (q.sitd->hw_next); 2183 type = Q_NEXT_TYPE (q.sitd->hw_next);
2187 wmb(); 2184 wmb();
2188 modified = sitd_complete (ehci, q.sitd, regs); 2185 modified = sitd_complete (ehci, q.sitd);
2189 q = *q_p; 2186 q = *q_p;
2190 break; 2187 break;
2191 default: 2188 default:
diff --git a/drivers/usb/host/hc_crisv10.c b/drivers/usb/host/hc_crisv10.c
index 61e571782cf7..87eca6aeacf2 100644
--- a/drivers/usb/host/hc_crisv10.c
+++ b/drivers/usb/host/hc_crisv10.c
@@ -478,9 +478,9 @@ static int etrax_usb_submit_urb(struct urb *urb, unsigned mem_flags);
478static int etrax_usb_unlink_urb(struct urb *urb, int status); 478static int etrax_usb_unlink_urb(struct urb *urb, int status);
479static int etrax_usb_get_frame_number(struct usb_device *usb_dev); 479static int etrax_usb_get_frame_number(struct usb_device *usb_dev);
480 480
481static irqreturn_t etrax_usb_tx_interrupt(int irq, void *vhc, struct pt_regs *regs); 481static irqreturn_t etrax_usb_tx_interrupt(int irq, void *vhc);
482static irqreturn_t etrax_usb_rx_interrupt(int irq, void *vhc, struct pt_regs *regs); 482static irqreturn_t etrax_usb_rx_interrupt(int irq, void *vhc);
483static irqreturn_t etrax_usb_hc_interrupt_top_half(int irq, void *vhc, struct pt_regs *regs); 483static irqreturn_t etrax_usb_hc_interrupt_top_half(int irq, void *vhc);
484static void etrax_usb_hc_interrupt_bottom_half(void *data); 484static void etrax_usb_hc_interrupt_bottom_half(void *data);
485 485
486static void etrax_usb_isoc_descr_interrupt_bottom_half(void *data); 486static void etrax_usb_isoc_descr_interrupt_bottom_half(void *data);
@@ -1573,7 +1573,7 @@ static int etrax_usb_get_frame_number(struct usb_device *usb_dev)
1573 return (*R_USB_FM_NUMBER & 0x7ff); 1573 return (*R_USB_FM_NUMBER & 0x7ff);
1574} 1574}
1575 1575
1576static irqreturn_t etrax_usb_tx_interrupt(int irq, void *vhc, struct pt_regs *regs) 1576static irqreturn_t etrax_usb_tx_interrupt(int irq, void *vhc)
1577{ 1577{
1578 DBFENTER; 1578 DBFENTER;
1579 1579
@@ -1839,7 +1839,7 @@ static void etrax_usb_isoc_descr_interrupt_bottom_half(void *data)
1839 1839
1840 1840
1841 1841
1842static irqreturn_t etrax_usb_rx_interrupt(int irq, void *vhc, struct pt_regs *regs) 1842static irqreturn_t etrax_usb_rx_interrupt(int irq, void *vhc)
1843{ 1843{
1844 struct urb *urb; 1844 struct urb *urb;
1845 etrax_urb_priv_t *urb_priv; 1845 etrax_urb_priv_t *urb_priv;
@@ -3280,7 +3280,7 @@ static void etrax_usb_complete_urb(struct urb *urb, int status)
3280 3280
3281 3281
3282 3282
3283static irqreturn_t etrax_usb_hc_interrupt_top_half(int irq, void *vhc, struct pt_regs *regs) 3283static irqreturn_t etrax_usb_hc_interrupt_top_half(int irq, void *vhc)
3284{ 3284{
3285 usb_interrupt_registers_t *reg; 3285 usb_interrupt_registers_t *reg;
3286 unsigned long flags; 3286 unsigned long flags;
diff --git a/drivers/usb/host/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c
index a72e041df8e7..2718b5dc4ec1 100644
--- a/drivers/usb/host/isp116x-hcd.c
+++ b/drivers/usb/host/isp116x-hcd.c
@@ -418,7 +418,7 @@ static void postproc_atl_queue(struct isp116x *isp116x)
418 processed urbs. 418 processed urbs.
419*/ 419*/
420static void finish_request(struct isp116x *isp116x, struct isp116x_ep *ep, 420static void finish_request(struct isp116x *isp116x, struct isp116x_ep *ep,
421 struct urb *urb, struct pt_regs *regs) 421 struct urb *urb)
422__releases(isp116x->lock) __acquires(isp116x->lock) 422__releases(isp116x->lock) __acquires(isp116x->lock)
423{ 423{
424 unsigned i; 424 unsigned i;
@@ -432,7 +432,7 @@ __releases(isp116x->lock) __acquires(isp116x->lock)
432 urb_dbg(urb, "Finish"); 432 urb_dbg(urb, "Finish");
433 433
434 spin_unlock(&isp116x->lock); 434 spin_unlock(&isp116x->lock);
435 usb_hcd_giveback_urb(isp116x_to_hcd(isp116x), urb, regs); 435 usb_hcd_giveback_urb(isp116x_to_hcd(isp116x), urb);
436 spin_lock(&isp116x->lock); 436 spin_lock(&isp116x->lock);
437 437
438 /* take idle endpoints out of the schedule */ 438 /* take idle endpoints out of the schedule */
@@ -568,7 +568,7 @@ static void start_atl_transfers(struct isp116x *isp116x)
568/* 568/*
569 Finish the processed transfers 569 Finish the processed transfers
570*/ 570*/
571static void finish_atl_transfers(struct isp116x *isp116x, struct pt_regs *regs) 571static void finish_atl_transfers(struct isp116x *isp116x)
572{ 572{
573 struct isp116x_ep *ep; 573 struct isp116x_ep *ep;
574 struct urb *urb; 574 struct urb *urb;
@@ -590,12 +590,12 @@ static void finish_atl_transfers(struct isp116x *isp116x, struct pt_regs *regs)
590 occured, while URB_SHORT_NOT_OK was set */ 590 occured, while URB_SHORT_NOT_OK was set */
591 if (urb && urb->status != -EINPROGRESS 591 if (urb && urb->status != -EINPROGRESS
592 && ep->nextpid != USB_PID_ACK) 592 && ep->nextpid != USB_PID_ACK)
593 finish_request(isp116x, ep, urb, regs); 593 finish_request(isp116x, ep, urb);
594 } 594 }
595 atomic_dec(&isp116x->atl_finishing); 595 atomic_dec(&isp116x->atl_finishing);
596} 596}
597 597
598static irqreturn_t isp116x_irq(struct usb_hcd *hcd, struct pt_regs *regs) 598static irqreturn_t isp116x_irq(struct usb_hcd *hcd)
599{ 599{
600 struct isp116x *isp116x = hcd_to_isp116x(hcd); 600 struct isp116x *isp116x = hcd_to_isp116x(hcd);
601 u16 irqstat; 601 u16 irqstat;
@@ -608,7 +608,7 @@ static irqreturn_t isp116x_irq(struct usb_hcd *hcd, struct pt_regs *regs)
608 608
609 if (irqstat & (HCuPINT_ATL | HCuPINT_SOF)) { 609 if (irqstat & (HCuPINT_ATL | HCuPINT_SOF)) {
610 ret = IRQ_HANDLED; 610 ret = IRQ_HANDLED;
611 finish_atl_transfers(isp116x, regs); 611 finish_atl_transfers(isp116x);
612 } 612 }
613 613
614 if (irqstat & HCuPINT_OPR) { 614 if (irqstat & HCuPINT_OPR) {
@@ -824,7 +824,7 @@ static int isp116x_urb_enqueue(struct usb_hcd *hcd,
824 spin_lock(&urb->lock); 824 spin_lock(&urb->lock);
825 if (urb->status != -EINPROGRESS) { 825 if (urb->status != -EINPROGRESS) {
826 spin_unlock(&urb->lock); 826 spin_unlock(&urb->lock);
827 finish_request(isp116x, ep, urb, NULL); 827 finish_request(isp116x, ep, urb);
828 ret = 0; 828 ret = 0;
829 goto fail; 829 goto fail;
830 } 830 }
@@ -870,7 +870,7 @@ static int isp116x_urb_dequeue(struct usb_hcd *hcd, struct urb *urb)
870 } 870 }
871 871
872 if (urb) 872 if (urb)
873 finish_request(isp116x, ep, urb, NULL); 873 finish_request(isp116x, ep, urb);
874 874
875 spin_unlock_irqrestore(&isp116x->lock, flags); 875 spin_unlock_irqrestore(&isp116x->lock, flags);
876 return 0; 876 return 0;
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index d1d68c402251..9be6b303e784 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -261,7 +261,7 @@ static int ohci_urb_enqueue (
261 if (urb->status != -EINPROGRESS) { 261 if (urb->status != -EINPROGRESS) {
262 spin_unlock (&urb->lock); 262 spin_unlock (&urb->lock);
263 urb->hcpriv = urb_priv; 263 urb->hcpriv = urb_priv;
264 finish_urb (ohci, urb, NULL); 264 finish_urb (ohci, urb);
265 retval = 0; 265 retval = 0;
266 goto fail; 266 goto fail;
267 } 267 }
@@ -337,7 +337,7 @@ static int ohci_urb_dequeue (struct usb_hcd *hcd, struct urb *urb)
337 * any more ... just clean up every urb's memory. 337 * any more ... just clean up every urb's memory.
338 */ 338 */
339 if (urb->hcpriv) 339 if (urb->hcpriv)
340 finish_urb (ohci, urb, NULL); 340 finish_urb (ohci, urb);
341 } 341 }
342 spin_unlock_irqrestore (&ohci->lock, flags); 342 spin_unlock_irqrestore (&ohci->lock, flags);
343 return 0; 343 return 0;
@@ -369,7 +369,7 @@ rescan:
369 if (!HC_IS_RUNNING (hcd->state)) { 369 if (!HC_IS_RUNNING (hcd->state)) {
370sanitize: 370sanitize:
371 ed->state = ED_IDLE; 371 ed->state = ED_IDLE;
372 finish_unlinks (ohci, 0, NULL); 372 finish_unlinks (ohci, 0);
373 } 373 }
374 374
375 switch (ed->state) { 375 switch (ed->state) {
@@ -691,7 +691,7 @@ retry:
691 691
692/* an interrupt happens */ 692/* an interrupt happens */
693 693
694static irqreturn_t ohci_irq (struct usb_hcd *hcd, struct pt_regs *ptregs) 694static irqreturn_t ohci_irq (struct usb_hcd *hcd)
695{ 695{
696 struct ohci_hcd *ohci = hcd_to_ohci (hcd); 696 struct ohci_hcd *ohci = hcd_to_ohci (hcd);
697 struct ohci_regs __iomem *regs = ohci->regs; 697 struct ohci_regs __iomem *regs = ohci->regs;
@@ -747,7 +747,7 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd, struct pt_regs *ptregs)
747 if (HC_IS_RUNNING(hcd->state)) 747 if (HC_IS_RUNNING(hcd->state))
748 ohci_writel (ohci, OHCI_INTR_WDH, &regs->intrdisable); 748 ohci_writel (ohci, OHCI_INTR_WDH, &regs->intrdisable);
749 spin_lock (&ohci->lock); 749 spin_lock (&ohci->lock);
750 dl_done_list (ohci, ptregs); 750 dl_done_list (ohci);
751 spin_unlock (&ohci->lock); 751 spin_unlock (&ohci->lock);
752 if (HC_IS_RUNNING(hcd->state)) 752 if (HC_IS_RUNNING(hcd->state))
753 ohci_writel (ohci, OHCI_INTR_WDH, &regs->intrenable); 753 ohci_writel (ohci, OHCI_INTR_WDH, &regs->intrenable);
@@ -760,7 +760,7 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd, struct pt_regs *ptregs)
760 */ 760 */
761 spin_lock (&ohci->lock); 761 spin_lock (&ohci->lock);
762 if (ohci->ed_rm_list) 762 if (ohci->ed_rm_list)
763 finish_unlinks (ohci, ohci_frame_no(ohci), ptregs); 763 finish_unlinks (ohci, ohci_frame_no(ohci));
764 if ((ints & OHCI_INTR_SF) != 0 && !ohci->ed_rm_list 764 if ((ints & OHCI_INTR_SF) != 0 && !ohci->ed_rm_list
765 && HC_IS_RUNNING(hcd->state)) 765 && HC_IS_RUNNING(hcd->state))
766 ohci_writel (ohci, OHCI_INTR_SF, &regs->intrdisable); 766 ohci_writel (ohci, OHCI_INTR_SF, &regs->intrdisable);
@@ -852,7 +852,7 @@ static int ohci_restart (struct ohci_hcd *ohci)
852 urb->status = -ESHUTDOWN; 852 urb->status = -ESHUTDOWN;
853 spin_unlock (&urb->lock); 853 spin_unlock (&urb->lock);
854 } 854 }
855 finish_unlinks (ohci, 0, NULL); 855 finish_unlinks (ohci, 0);
856 spin_unlock_irq(&ohci->lock); 856 spin_unlock_irq(&ohci->lock);
857 857
858 /* paranoia, in case that didn't work: */ 858 /* paranoia, in case that didn't work: */
diff --git a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c
index ec75774abeac..6f113596af66 100644
--- a/drivers/usb/host/ohci-hub.c
+++ b/drivers/usb/host/ohci-hub.c
@@ -47,8 +47,8 @@ static void ohci_rhsc_enable (struct usb_hcd *hcd)
47#define OHCI_SCHED_ENABLES \ 47#define OHCI_SCHED_ENABLES \
48 (OHCI_CTRL_CLE|OHCI_CTRL_BLE|OHCI_CTRL_PLE|OHCI_CTRL_IE) 48 (OHCI_CTRL_CLE|OHCI_CTRL_BLE|OHCI_CTRL_PLE|OHCI_CTRL_IE)
49 49
50static void dl_done_list (struct ohci_hcd *, struct pt_regs *); 50static void dl_done_list (struct ohci_hcd *);
51static void finish_unlinks (struct ohci_hcd *, u16 , struct pt_regs *); 51static void finish_unlinks (struct ohci_hcd *, u16);
52 52
53static int ohci_rh_suspend (struct ohci_hcd *ohci, int autostop) 53static int ohci_rh_suspend (struct ohci_hcd *ohci, int autostop)
54__releases(ohci->lock) 54__releases(ohci->lock)
@@ -94,8 +94,8 @@ __acquires(ohci->lock)
94 msleep (8); 94 msleep (8);
95 spin_lock_irq (&ohci->lock); 95 spin_lock_irq (&ohci->lock);
96 } 96 }
97 dl_done_list (ohci, NULL); 97 dl_done_list (ohci);
98 finish_unlinks (ohci, ohci_frame_no(ohci), NULL); 98 finish_unlinks (ohci, ohci_frame_no(ohci));
99 99
100 /* maybe resume can wake root hub */ 100 /* maybe resume can wake root hub */
101 if (device_may_wakeup(&ohci_to_hcd(ohci)->self.root_hub->dev) || 101 if (device_may_wakeup(&ohci_to_hcd(ohci)->self.root_hub->dev) ||
diff --git a/drivers/usb/host/ohci-q.c b/drivers/usb/host/ohci-q.c
index e372306ed0da..e08d1a2664e6 100644
--- a/drivers/usb/host/ohci-q.c
+++ b/drivers/usb/host/ohci-q.c
@@ -7,6 +7,8 @@
7 * This file is licenced under the GPL. 7 * This file is licenced under the GPL.
8 */ 8 */
9 9
10#include <linux/irq.h>
11
10static void urb_free_priv (struct ohci_hcd *hc, urb_priv_t *urb_priv) 12static void urb_free_priv (struct ohci_hcd *hc, urb_priv_t *urb_priv)
11{ 13{
12 int last = urb_priv->length - 1; 14 int last = urb_priv->length - 1;
@@ -34,7 +36,7 @@ static void urb_free_priv (struct ohci_hcd *hc, urb_priv_t *urb_priv)
34 * PRECONDITION: ohci lock held, irqs blocked. 36 * PRECONDITION: ohci lock held, irqs blocked.
35 */ 37 */
36static void 38static void
37finish_urb (struct ohci_hcd *ohci, struct urb *urb, struct pt_regs *regs) 39finish_urb (struct ohci_hcd *ohci, struct urb *urb)
38__releases(ohci->lock) 40__releases(ohci->lock)
39__acquires(ohci->lock) 41__acquires(ohci->lock)
40{ 42{
@@ -73,7 +75,7 @@ __acquires(ohci->lock)
73 75
74 /* urb->complete() can reenter this HCD */ 76 /* urb->complete() can reenter this HCD */
75 spin_unlock (&ohci->lock); 77 spin_unlock (&ohci->lock);
76 usb_hcd_giveback_urb (ohci_to_hcd(ohci), urb, regs); 78 usb_hcd_giveback_urb (ohci_to_hcd(ohci), urb);
77 spin_lock (&ohci->lock); 79 spin_lock (&ohci->lock);
78 80
79 /* stop periodic dma if it's not needed */ 81 /* stop periodic dma if it's not needed */
@@ -910,7 +912,7 @@ static struct td *dl_reverse_done_list (struct ohci_hcd *ohci)
910 912
911/* there are some urbs/eds to unlink; called in_irq(), with HCD locked */ 913/* there are some urbs/eds to unlink; called in_irq(), with HCD locked */
912static void 914static void
913finish_unlinks (struct ohci_hcd *ohci, u16 tick, struct pt_regs *regs) 915finish_unlinks (struct ohci_hcd *ohci, u16 tick)
914{ 916{
915 struct ed *ed, **last; 917 struct ed *ed, **last;
916 918
@@ -923,7 +925,7 @@ rescan_all:
923 /* only take off EDs that the HC isn't using, accounting for 925 /* only take off EDs that the HC isn't using, accounting for
924 * frame counter wraps and EDs with partially retired TDs 926 * frame counter wraps and EDs with partially retired TDs
925 */ 927 */
926 if (likely (regs && HC_IS_RUNNING(ohci_to_hcd(ohci)->state))) { 928 if (likely (get_irq_regs() && HC_IS_RUNNING(ohci_to_hcd(ohci)->state))) {
927 if (tick_before (tick, ed->tick)) { 929 if (tick_before (tick, ed->tick)) {
928skip_ed: 930skip_ed:
929 last = &ed->ed_next; 931 last = &ed->ed_next;
@@ -990,7 +992,7 @@ rescan_this:
990 /* if URB is done, clean up */ 992 /* if URB is done, clean up */
991 if (urb_priv->td_cnt == urb_priv->length) { 993 if (urb_priv->td_cnt == urb_priv->length) {
992 modified = completed = 1; 994 modified = completed = 1;
993 finish_urb (ohci, urb, regs); 995 finish_urb (ohci, urb);
994 } 996 }
995 } 997 }
996 if (completed && !list_empty (&ed->td_list)) 998 if (completed && !list_empty (&ed->td_list))
@@ -1068,7 +1070,7 @@ rescan_this:
1068 * scanning the (re-reversed) donelist as this does. 1070 * scanning the (re-reversed) donelist as this does.
1069 */ 1071 */
1070static void 1072static void
1071dl_done_list (struct ohci_hcd *ohci, struct pt_regs *regs) 1073dl_done_list (struct ohci_hcd *ohci)
1072{ 1074{
1073 struct td *td = dl_reverse_done_list (ohci); 1075 struct td *td = dl_reverse_done_list (ohci);
1074 1076
@@ -1084,7 +1086,7 @@ dl_done_list (struct ohci_hcd *ohci, struct pt_regs *regs)
1084 1086
1085 /* If all this urb's TDs are done, call complete() */ 1087 /* If all this urb's TDs are done, call complete() */
1086 if (urb_priv->td_cnt == urb_priv->length) 1088 if (urb_priv->td_cnt == urb_priv->length)
1087 finish_urb (ohci, urb, regs); 1089 finish_urb (ohci, urb);
1088 1090
1089 /* clean schedule: unlink EDs that are no longer busy */ 1091 /* clean schedule: unlink EDs that are no longer busy */
1090 if (list_empty (&ed->td_list)) { 1092 if (list_empty (&ed->td_list)) {
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c
index 3a586aab3939..5fa5647ea095 100644
--- a/drivers/usb/host/sl811-hcd.c
+++ b/drivers/usb/host/sl811-hcd.c
@@ -428,7 +428,6 @@ static void finish_request(
428 struct sl811 *sl811, 428 struct sl811 *sl811,
429 struct sl811h_ep *ep, 429 struct sl811h_ep *ep,
430 struct urb *urb, 430 struct urb *urb,
431 struct pt_regs *regs,
432 int status 431 int status
433) __releases(sl811->lock) __acquires(sl811->lock) 432) __releases(sl811->lock) __acquires(sl811->lock)
434{ 433{
@@ -444,7 +443,7 @@ static void finish_request(
444 spin_unlock(&urb->lock); 443 spin_unlock(&urb->lock);
445 444
446 spin_unlock(&sl811->lock); 445 spin_unlock(&sl811->lock);
447 usb_hcd_giveback_urb(sl811_to_hcd(sl811), urb, regs); 446 usb_hcd_giveback_urb(sl811_to_hcd(sl811), urb);
448 spin_lock(&sl811->lock); 447 spin_lock(&sl811->lock);
449 448
450 /* leave active endpoints in the schedule */ 449 /* leave active endpoints in the schedule */
@@ -484,7 +483,7 @@ static void finish_request(
484} 483}
485 484
486static void 485static void
487done(struct sl811 *sl811, struct sl811h_ep *ep, u8 bank, struct pt_regs *regs) 486done(struct sl811 *sl811, struct sl811h_ep *ep, u8 bank)
488{ 487{
489 u8 status; 488 u8 status;
490 struct urb *urb; 489 struct urb *urb;
@@ -608,7 +607,7 @@ done(struct sl811 *sl811, struct sl811h_ep *ep, u8 bank, struct pt_regs *regs)
608 } 607 }
609 608
610 if (urb && (urbstat != -EINPROGRESS || urb->status != -EINPROGRESS)) 609 if (urb && (urbstat != -EINPROGRESS || urb->status != -EINPROGRESS))
611 finish_request(sl811, ep, urb, regs, urbstat); 610 finish_request(sl811, ep, urb, urbstat);
612} 611}
613 612
614static inline u8 checkdone(struct sl811 *sl811) 613static inline u8 checkdone(struct sl811 *sl811)
@@ -641,7 +640,7 @@ static inline u8 checkdone(struct sl811 *sl811)
641 return irqstat; 640 return irqstat;
642} 641}
643 642
644static irqreturn_t sl811h_irq(struct usb_hcd *hcd, struct pt_regs *regs) 643static irqreturn_t sl811h_irq(struct usb_hcd *hcd)
645{ 644{
646 struct sl811 *sl811 = hcd_to_sl811(hcd); 645 struct sl811 *sl811 = hcd_to_sl811(hcd);
647 u8 irqstat; 646 u8 irqstat;
@@ -670,13 +669,13 @@ retry:
670 * issued ... that's fine if they're different endpoints. 669 * issued ... that's fine if they're different endpoints.
671 */ 670 */
672 if (irqstat & SL11H_INTMASK_DONE_A) { 671 if (irqstat & SL11H_INTMASK_DONE_A) {
673 done(sl811, sl811->active_a, SL811_EP_A(SL811_HOST_BUF), regs); 672 done(sl811, sl811->active_a, SL811_EP_A(SL811_HOST_BUF));
674 sl811->active_a = NULL; 673 sl811->active_a = NULL;
675 sl811->stat_a++; 674 sl811->stat_a++;
676 } 675 }
677#ifdef USE_B 676#ifdef USE_B
678 if (irqstat & SL11H_INTMASK_DONE_B) { 677 if (irqstat & SL11H_INTMASK_DONE_B) {
679 done(sl811, sl811->active_b, SL811_EP_B(SL811_HOST_BUF), regs); 678 done(sl811, sl811->active_b, SL811_EP_B(SL811_HOST_BUF));
680 sl811->active_b = NULL; 679 sl811->active_b = NULL;
681 sl811->stat_b++; 680 sl811->stat_b++;
682 } 681 }
@@ -723,7 +722,7 @@ retry:
723 container_of(sl811->active_a 722 container_of(sl811->active_a
724 ->hep->urb_list.next, 723 ->hep->urb_list.next,
725 struct urb, urb_list), 724 struct urb, urb_list),
726 NULL, -ESHUTDOWN); 725 -ESHUTDOWN);
727 sl811->active_a = NULL; 726 sl811->active_a = NULL;
728 } 727 }
729#ifdef USE_B 728#ifdef USE_B
@@ -957,7 +956,7 @@ static int sl811h_urb_enqueue(
957 spin_lock(&urb->lock); 956 spin_lock(&urb->lock);
958 if (urb->status != -EINPROGRESS) { 957 if (urb->status != -EINPROGRESS) {
959 spin_unlock(&urb->lock); 958 spin_unlock(&urb->lock);
960 finish_request(sl811, ep, urb, NULL, 0); 959 finish_request(sl811, ep, urb, 0);
961 retval = 0; 960 retval = 0;
962 goto fail; 961 goto fail;
963 } 962 }
@@ -1026,7 +1025,7 @@ static int sl811h_urb_dequeue(struct usb_hcd *hcd, struct urb *urb)
1026 } 1025 }
1027 1026
1028 if (urb) 1027 if (urb)
1029 finish_request(sl811, ep, urb, NULL, 0); 1028 finish_request(sl811, ep, urb, 0);
1030 else 1029 else
1031 VDBG("dequeue, urb %p active %s; wait4irq\n", urb, 1030 VDBG("dequeue, urb %p active %s; wait4irq\n", urb,
1032 (sl811->active_a == ep) ? "A" : "B"); 1031 (sl811->active_a == ep) ? "A" : "B");
@@ -1083,7 +1082,7 @@ sl811h_hub_status_data(struct usb_hcd *hcd, char *buf)
1083 */ 1082 */
1084 local_irq_save(flags); 1083 local_irq_save(flags);
1085 if (!timer_pending(&sl811->timer)) { 1084 if (!timer_pending(&sl811->timer)) {
1086 if (sl811h_irq( /* ~0, */ hcd, NULL) != IRQ_NONE) 1085 if (sl811h_irq( /* ~0, */ hcd) != IRQ_NONE)
1087 sl811->stat_lost++; 1086 sl811->stat_lost++;
1088 } 1087 }
1089 local_irq_restore(flags); 1088 local_irq_restore(flags);
diff --git a/drivers/usb/host/u132-hcd.c b/drivers/usb/host/u132-hcd.c
index 0a315200b331..32c635ecbf31 100644
--- a/drivers/usb/host/u132-hcd.c
+++ b/drivers/usb/host/u132-hcd.c
@@ -557,7 +557,7 @@ static void u132_hcd_giveback_urb(struct u132 *u132, struct u132_endp *endp,
557 u132_ring_queue_work(u132, ring, 0); 557 u132_ring_queue_work(u132, ring, 0);
558 up(&u132->scheduler_lock); 558 up(&u132->scheduler_lock);
559 u132_endp_put_kref(u132, endp); 559 u132_endp_put_kref(u132, endp);
560 usb_hcd_giveback_urb(hcd, urb, NULL); 560 usb_hcd_giveback_urb(hcd, urb);
561 return; 561 return;
562} 562}
563 563
@@ -590,7 +590,7 @@ static void u132_hcd_abandon_urb(struct u132 *u132, struct u132_endp *endp,
590 endp->active = 0; 590 endp->active = 0;
591 spin_unlock_irqrestore(&endp->queue_lock.slock, irqs); 591 spin_unlock_irqrestore(&endp->queue_lock.slock, irqs);
592 kfree(urbq); 592 kfree(urbq);
593 } usb_hcd_giveback_urb(hcd, urb, NULL); 593 } usb_hcd_giveback_urb(hcd, urb);
594 return; 594 return;
595} 595}
596 596
@@ -2434,7 +2434,7 @@ static int dequeue_from_overflow_chain(struct u132 *u132,
2434 endp->queue_size -= 1; 2434 endp->queue_size -= 1;
2435 urb->error_count = 0; 2435 urb->error_count = 0;
2436 urb->hcpriv = NULL; 2436 urb->hcpriv = NULL;
2437 usb_hcd_giveback_urb(hcd, urb, NULL); 2437 usb_hcd_giveback_urb(hcd, urb);
2438 return 0; 2438 return 0;
2439 } else 2439 } else
2440 continue; 2440 continue;
@@ -2512,7 +2512,7 @@ static int u132_endp_urb_dequeue(struct u132 *u132, struct u132_endp *endp,
2512 kfree(urbq); 2512 kfree(urbq);
2513 } urb->error_count = 0; 2513 } urb->error_count = 0;
2514 urb->hcpriv = NULL; 2514 urb->hcpriv = NULL;
2515 usb_hcd_giveback_urb(hcd, urb, NULL); 2515 usb_hcd_giveback_urb(hcd, urb);
2516 return 0; 2516 return 0;
2517 } else if (list_empty(&endp->urb_more)) { 2517 } else if (list_empty(&endp->urb_more)) {
2518 dev_err(&u132->platform_dev->dev, "urb=%p not found in " 2518 dev_err(&u132->platform_dev->dev, "urb=%p not found in "
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
index eb4eab98e8bf..45ee6920a850 100644
--- a/drivers/usb/host/uhci-hcd.c
+++ b/drivers/usb/host/uhci-hcd.c
@@ -252,7 +252,7 @@ __acquires(uhci->lock)
252 uhci->is_stopped = UHCI_IS_STOPPED; 252 uhci->is_stopped = UHCI_IS_STOPPED;
253 uhci_to_hcd(uhci)->poll_rh = !int_enable; 253 uhci_to_hcd(uhci)->poll_rh = !int_enable;
254 254
255 uhci_scan_schedule(uhci, NULL); 255 uhci_scan_schedule(uhci);
256 uhci_fsbr_off(uhci); 256 uhci_fsbr_off(uhci);
257} 257}
258 258
@@ -309,7 +309,7 @@ __acquires(uhci->lock)
309 mod_timer(&uhci_to_hcd(uhci)->rh_timer, jiffies); 309 mod_timer(&uhci_to_hcd(uhci)->rh_timer, jiffies);
310} 310}
311 311
312static irqreturn_t uhci_irq(struct usb_hcd *hcd, struct pt_regs *regs) 312static irqreturn_t uhci_irq(struct usb_hcd *hcd)
313{ 313{
314 struct uhci_hcd *uhci = hcd_to_uhci(hcd); 314 struct uhci_hcd *uhci = hcd_to_uhci(hcd);
315 unsigned short status; 315 unsigned short status;
@@ -358,7 +358,7 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd, struct pt_regs *regs)
358 usb_hcd_poll_rh_status(hcd); 358 usb_hcd_poll_rh_status(hcd);
359 else { 359 else {
360 spin_lock_irqsave(&uhci->lock, flags); 360 spin_lock_irqsave(&uhci->lock, flags);
361 uhci_scan_schedule(uhci, regs); 361 uhci_scan_schedule(uhci);
362 spin_unlock_irqrestore(&uhci->lock, flags); 362 spin_unlock_irqrestore(&uhci->lock, flags);
363 } 363 }
364 364
@@ -671,7 +671,7 @@ static void uhci_stop(struct usb_hcd *hcd)
671 spin_lock_irq(&uhci->lock); 671 spin_lock_irq(&uhci->lock);
672 if (test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags) && !uhci->dead) 672 if (test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags) && !uhci->dead)
673 uhci_hc_died(uhci); 673 uhci_hc_died(uhci);
674 uhci_scan_schedule(uhci, NULL); 674 uhci_scan_schedule(uhci);
675 spin_unlock_irq(&uhci->lock); 675 spin_unlock_irq(&uhci->lock);
676 676
677 del_timer_sync(&uhci->fsbr_timer); 677 del_timer_sync(&uhci->fsbr_timer);
diff --git a/drivers/usb/host/uhci-hub.c b/drivers/usb/host/uhci-hub.c
index 16fb72eb6fc9..f8347f1a10b6 100644
--- a/drivers/usb/host/uhci-hub.c
+++ b/drivers/usb/host/uhci-hub.c
@@ -176,7 +176,7 @@ static int uhci_hub_status_data(struct usb_hcd *hcd, char *buf)
176 176
177 spin_lock_irqsave(&uhci->lock, flags); 177 spin_lock_irqsave(&uhci->lock, flags);
178 178
179 uhci_scan_schedule(uhci, NULL); 179 uhci_scan_schedule(uhci);
180 if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags) || uhci->dead) 180 if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags) || uhci->dead)
181 goto done; 181 goto done;
182 uhci_check_ports(uhci); 182 uhci_check_ports(uhci);
diff --git a/drivers/usb/host/uhci-q.c b/drivers/usb/host/uhci-q.c
index 431e8f31f1a9..06115f22a4fa 100644
--- a/drivers/usb/host/uhci-q.c
+++ b/drivers/usb/host/uhci-q.c
@@ -1244,7 +1244,7 @@ done:
1244 * Finish unlinking an URB and give it back 1244 * Finish unlinking an URB and give it back
1245 */ 1245 */
1246static void uhci_giveback_urb(struct uhci_hcd *uhci, struct uhci_qh *qh, 1246static void uhci_giveback_urb(struct uhci_hcd *uhci, struct uhci_qh *qh,
1247 struct urb *urb, struct pt_regs *regs) 1247 struct urb *urb)
1248__releases(uhci->lock) 1248__releases(uhci->lock)
1249__acquires(uhci->lock) 1249__acquires(uhci->lock)
1250{ 1250{
@@ -1293,7 +1293,7 @@ __acquires(uhci->lock)
1293 } 1293 }
1294 1294
1295 spin_unlock(&uhci->lock); 1295 spin_unlock(&uhci->lock);
1296 usb_hcd_giveback_urb(uhci_to_hcd(uhci), urb, regs); 1296 usb_hcd_giveback_urb(uhci_to_hcd(uhci), urb);
1297 spin_lock(&uhci->lock); 1297 spin_lock(&uhci->lock);
1298 1298
1299 /* If the queue is now empty, we can unlink the QH and give up its 1299 /* If the queue is now empty, we can unlink the QH and give up its
@@ -1313,8 +1313,7 @@ __acquires(uhci->lock)
1313 (qh->state == QH_STATE_UNLINKING && \ 1313 (qh->state == QH_STATE_UNLINKING && \
1314 uhci->frame_number + uhci->is_stopped != qh->unlink_frame) 1314 uhci->frame_number + uhci->is_stopped != qh->unlink_frame)
1315 1315
1316static void uhci_scan_qh(struct uhci_hcd *uhci, struct uhci_qh *qh, 1316static void uhci_scan_qh(struct uhci_hcd *uhci, struct uhci_qh *qh)
1317 struct pt_regs *regs)
1318{ 1317{
1319 struct urb_priv *urbp; 1318 struct urb_priv *urbp;
1320 struct urb *urb; 1319 struct urb *urb;
@@ -1347,7 +1346,7 @@ static void uhci_scan_qh(struct uhci_hcd *uhci, struct uhci_qh *qh,
1347 return; 1346 return;
1348 } 1347 }
1349 1348
1350 uhci_giveback_urb(uhci, qh, urb, regs); 1349 uhci_giveback_urb(uhci, qh, urb);
1351 if (status < 0 && qh->type != USB_ENDPOINT_XFER_ISOC) 1350 if (status < 0 && qh->type != USB_ENDPOINT_XFER_ISOC)
1352 break; 1351 break;
1353 } 1352 }
@@ -1372,7 +1371,7 @@ restart:
1372 qh->is_stopped = 0; 1371 qh->is_stopped = 0;
1373 return; 1372 return;
1374 } 1373 }
1375 uhci_giveback_urb(uhci, qh, urb, regs); 1374 uhci_giveback_urb(uhci, qh, urb);
1376 goto restart; 1375 goto restart;
1377 } 1376 }
1378 } 1377 }
@@ -1487,7 +1486,7 @@ done:
1487/* 1486/*
1488 * Process events in the schedule, but only in one thread at a time 1487 * Process events in the schedule, but only in one thread at a time
1489 */ 1488 */
1490static void uhci_scan_schedule(struct uhci_hcd *uhci, struct pt_regs *regs) 1489static void uhci_scan_schedule(struct uhci_hcd *uhci)
1491{ 1490{
1492 int i; 1491 int i;
1493 struct uhci_qh *qh; 1492 struct uhci_qh *qh;
@@ -1515,7 +1514,7 @@ rescan:
1515 struct uhci_qh, node); 1514 struct uhci_qh, node);
1516 1515
1517 if (uhci_advance_check(uhci, qh)) { 1516 if (uhci_advance_check(uhci, qh)) {
1518 uhci_scan_qh(uhci, qh, regs); 1517 uhci_scan_qh(uhci, qh);
1519 if (qh->state == QH_STATE_ACTIVE) { 1518 if (qh->state == QH_STATE_ACTIVE) {
1520 uhci_urbp_wants_fsbr(uhci, 1519 uhci_urbp_wants_fsbr(uhci,
1521 list_entry(qh->queue.next, struct urb_priv, node)); 1520 list_entry(qh->queue.next, struct urb_priv, node));
diff --git a/drivers/usb/image/mdc800.c b/drivers/usb/image/mdc800.c
index ca6305c1d64c..63a84bbc310d 100644
--- a/drivers/usb/image/mdc800.c
+++ b/drivers/usb/image/mdc800.c
@@ -280,7 +280,7 @@ static int mdc800_isReady (char *ch)
280/* 280/*
281 * USB IRQ Handler for InputLine 281 * USB IRQ Handler for InputLine
282 */ 282 */
283static void mdc800_usb_irq (struct urb *urb, struct pt_regs *res) 283static void mdc800_usb_irq (struct urb *urb)
284{ 284{
285 int data_received=0, wake_up; 285 int data_received=0, wake_up;
286 unsigned char* b=urb->transfer_buffer; 286 unsigned char* b=urb->transfer_buffer;
@@ -374,7 +374,7 @@ static int mdc800_usb_waitForIRQ (int mode, int msec)
374/* 374/*
375 * The write_urb callback function 375 * The write_urb callback function
376 */ 376 */
377static void mdc800_usb_write_notify (struct urb *urb, struct pt_regs *res) 377static void mdc800_usb_write_notify (struct urb *urb)
378{ 378{
379 struct mdc800_data* mdc800=urb->context; 379 struct mdc800_data* mdc800=urb->context;
380 380
@@ -394,7 +394,7 @@ static void mdc800_usb_write_notify (struct urb *urb, struct pt_regs *res)
394/* 394/*
395 * The download_urb callback function 395 * The download_urb callback function
396 */ 396 */
397static void mdc800_usb_download_notify (struct urb *urb, struct pt_regs *res) 397static void mdc800_usb_download_notify (struct urb *urb)
398{ 398{
399 struct mdc800_data* mdc800=urb->context; 399 struct mdc800_data* mdc800=urb->context;
400 400
diff --git a/drivers/usb/image/microtek.c b/drivers/usb/image/microtek.c
index 5f861331932a..3038ed0700d3 100644
--- a/drivers/usb/image/microtek.c
+++ b/drivers/usb/image/microtek.c
@@ -370,7 +370,7 @@ static int
370mts_scsi_queuecommand(struct scsi_cmnd *srb, mts_scsi_cmnd_callback callback); 370mts_scsi_queuecommand(struct scsi_cmnd *srb, mts_scsi_cmnd_callback callback);
371 371
372static void mts_transfer_cleanup( struct urb *transfer ); 372static void mts_transfer_cleanup( struct urb *transfer );
373static void mts_do_sg(struct urb * transfer, struct pt_regs *regs); 373static void mts_do_sg(struct urb * transfer);
374 374
375static inline 375static inline
376void mts_int_submit_urb (struct urb* transfer, 376void mts_int_submit_urb (struct urb* transfer,
@@ -417,7 +417,7 @@ static void mts_transfer_cleanup( struct urb *transfer )
417 417
418} 418}
419 419
420static void mts_transfer_done( struct urb *transfer, struct pt_regs *regs ) 420static void mts_transfer_done( struct urb *transfer )
421{ 421{
422 MTS_INT_INIT(); 422 MTS_INT_INIT();
423 423
@@ -443,7 +443,7 @@ static void mts_get_status( struct urb *transfer )
443 mts_transfer_done ); 443 mts_transfer_done );
444} 444}
445 445
446static void mts_data_done( struct urb* transfer, struct pt_regs *regs ) 446static void mts_data_done( struct urb* transfer )
447/* Interrupt context! */ 447/* Interrupt context! */
448{ 448{
449 MTS_INT_INIT(); 449 MTS_INT_INIT();
@@ -460,7 +460,7 @@ static void mts_data_done( struct urb* transfer, struct pt_regs *regs )
460} 460}
461 461
462 462
463static void mts_command_done( struct urb *transfer, struct pt_regs *regs ) 463static void mts_command_done( struct urb *transfer )
464/* Interrupt context! */ 464/* Interrupt context! */
465{ 465{
466 MTS_INT_INIT(); 466 MTS_INT_INIT();
@@ -501,7 +501,7 @@ static void mts_command_done( struct urb *transfer, struct pt_regs *regs )
501 return; 501 return;
502} 502}
503 503
504static void mts_do_sg (struct urb* transfer, struct pt_regs *regs) 504static void mts_do_sg (struct urb* transfer)
505{ 505{
506 struct scatterlist * sg; 506 struct scatterlist * sg;
507 MTS_INT_INIT(); 507 MTS_INT_INIT();
diff --git a/drivers/usb/input/acecad.c b/drivers/usb/input/acecad.c
index d83603ba40ae..0096373b5f98 100644
--- a/drivers/usb/input/acecad.c
+++ b/drivers/usb/input/acecad.c
@@ -58,7 +58,7 @@ struct usb_acecad {
58 dma_addr_t data_dma; 58 dma_addr_t data_dma;
59}; 59};
60 60
61static void usb_acecad_irq(struct urb *urb, struct pt_regs *regs) 61static void usb_acecad_irq(struct urb *urb)
62{ 62{
63 struct usb_acecad *acecad = urb->context; 63 struct usb_acecad *acecad = urb->context;
64 unsigned char *data = acecad->data; 64 unsigned char *data = acecad->data;
diff --git a/drivers/usb/input/aiptek.c b/drivers/usb/input/aiptek.c
index b138dae2b055..bf428184608f 100644
--- a/drivers/usb/input/aiptek.c
+++ b/drivers/usb/input/aiptek.c
@@ -396,7 +396,7 @@ static int aiptek_convert_from_2s_complement(unsigned char c)
396 * replaced with the input_sync() method (which emits EV_SYN.) 396 * replaced with the input_sync() method (which emits EV_SYN.)
397 */ 397 */
398 398
399static void aiptek_irq(struct urb *urb, struct pt_regs *regs) 399static void aiptek_irq(struct urb *urb)
400{ 400{
401 struct aiptek *aiptek = urb->context; 401 struct aiptek *aiptek = urb->context;
402 unsigned char *data = aiptek->data; 402 unsigned char *data = aiptek->data;
@@ -442,8 +442,6 @@ static void aiptek_irq(struct urb *urb, struct pt_regs *regs)
442 aiptek->diagnostic = 442 aiptek->diagnostic =
443 AIPTEK_DIAGNOSTIC_SENDING_RELATIVE_IN_ABSOLUTE; 443 AIPTEK_DIAGNOSTIC_SENDING_RELATIVE_IN_ABSOLUTE;
444 } else { 444 } else {
445 input_regs(inputdev, regs);
446
447 x = aiptek_convert_from_2s_complement(data[2]); 445 x = aiptek_convert_from_2s_complement(data[2]);
448 y = aiptek_convert_from_2s_complement(data[3]); 446 y = aiptek_convert_from_2s_complement(data[3]);
449 447
@@ -488,8 +486,6 @@ static void aiptek_irq(struct urb *urb, struct pt_regs *regs)
488 (aiptek->curSetting.pointerMode)) { 486 (aiptek->curSetting.pointerMode)) {
489 aiptek->diagnostic = AIPTEK_DIAGNOSTIC_TOOL_DISALLOWED; 487 aiptek->diagnostic = AIPTEK_DIAGNOSTIC_TOOL_DISALLOWED;
490 } else { 488 } else {
491 input_regs(inputdev, regs);
492
493 x = le16_to_cpu(get_unaligned((__le16 *) (data + 1))); 489 x = le16_to_cpu(get_unaligned((__le16 *) (data + 1)));
494 y = le16_to_cpu(get_unaligned((__le16 *) (data + 3))); 490 y = le16_to_cpu(get_unaligned((__le16 *) (data + 3)));
495 z = le16_to_cpu(get_unaligned((__le16 *) (data + 6))); 491 z = le16_to_cpu(get_unaligned((__le16 *) (data + 6)));
@@ -568,7 +564,6 @@ static void aiptek_irq(struct urb *urb, struct pt_regs *regs)
568 (aiptek->curSetting.pointerMode)) { 564 (aiptek->curSetting.pointerMode)) {
569 aiptek->diagnostic = AIPTEK_DIAGNOSTIC_TOOL_DISALLOWED; 565 aiptek->diagnostic = AIPTEK_DIAGNOSTIC_TOOL_DISALLOWED;
570 } else { 566 } else {
571 input_regs(inputdev, regs);
572 x = le16_to_cpu(get_unaligned((__le16 *) (data + 1))); 567 x = le16_to_cpu(get_unaligned((__le16 *) (data + 1)));
573 y = le16_to_cpu(get_unaligned((__le16 *) (data + 3))); 568 y = le16_to_cpu(get_unaligned((__le16 *) (data + 3)));
574 569
@@ -631,8 +626,6 @@ static void aiptek_irq(struct urb *urb, struct pt_regs *regs)
631 z = le16_to_cpu(get_unaligned((__le16 *) (data + 4))); 626 z = le16_to_cpu(get_unaligned((__le16 *) (data + 4)));
632 627
633 if (dv != 0) { 628 if (dv != 0) {
634 input_regs(inputdev, regs);
635
636 /* If we've not already sent a tool_button_?? code, do 629 /* If we've not already sent a tool_button_?? code, do
637 * so now. Then set FIRED_BIT so it won't be resent unless 630 * so now. Then set FIRED_BIT so it won't be resent unless
638 * the user forces FIRED_BIT off. 631 * the user forces FIRED_BIT off.
@@ -681,8 +674,6 @@ static void aiptek_irq(struct urb *urb, struct pt_regs *regs)
681 macro = data[3]; 674 macro = data[3];
682 675
683 if (dv != 0) { 676 if (dv != 0) {
684 input_regs(inputdev, regs);
685
686 /* If we've not already sent a tool_button_?? code, do 677 /* If we've not already sent a tool_button_?? code, do
687 * so now. Then set FIRED_BIT so it won't be resent unless 678 * so now. Then set FIRED_BIT so it won't be resent unless
688 * the user forces FIRED_BIT off. 679 * the user forces FIRED_BIT off.
@@ -726,8 +717,6 @@ static void aiptek_irq(struct urb *urb, struct pt_regs *regs)
726 */ 717 */
727 else if (data[0] == 6) { 718 else if (data[0] == 6) {
728 macro = le16_to_cpu(get_unaligned((__le16 *) (data + 1))); 719 macro = le16_to_cpu(get_unaligned((__le16 *) (data + 1)));
729 input_regs(inputdev, regs);
730
731 if (macro > 0) { 720 if (macro > 0) {
732 input_report_key(inputdev, macroKeyEvents[macro - 1], 721 input_report_key(inputdev, macroKeyEvents[macro - 1],
733 0); 722 0);
diff --git a/drivers/usb/input/appletouch.c b/drivers/usb/input/appletouch.c
index 0aa9cc2bfd69..4c213513484d 100644
--- a/drivers/usb/input/appletouch.c
+++ b/drivers/usb/input/appletouch.c
@@ -210,7 +210,7 @@ static inline void atp_report_fingers(struct input_dev *input, int fingers)
210 input_report_key(input, BTN_TOOL_TRIPLETAP, fingers > 2); 210 input_report_key(input, BTN_TOOL_TRIPLETAP, fingers > 2);
211} 211}
212 212
213static void atp_complete(struct urb* urb, struct pt_regs* regs) 213static void atp_complete(struct urb* urb)
214{ 214{
215 int x, y, x_z, y_z, x_f, y_f; 215 int x, y, x_z, y_z, x_f, y_f;
216 int retval, i, j; 216 int retval, i, j;
diff --git a/drivers/usb/input/ati_remote.c b/drivers/usb/input/ati_remote.c
index 3558d7ed99b9..f659f3028ad2 100644
--- a/drivers/usb/input/ati_remote.c
+++ b/drivers/usb/input/ati_remote.c
@@ -283,9 +283,9 @@ static void ati_remote_dump (unsigned char *data, unsigned int actual_length);
283static int ati_remote_open (struct input_dev *inputdev); 283static int ati_remote_open (struct input_dev *inputdev);
284static void ati_remote_close (struct input_dev *inputdev); 284static void ati_remote_close (struct input_dev *inputdev);
285static int ati_remote_sendpacket (struct ati_remote *ati_remote, u16 cmd, unsigned char *data); 285static int ati_remote_sendpacket (struct ati_remote *ati_remote, u16 cmd, unsigned char *data);
286static void ati_remote_irq_out (struct urb *urb, struct pt_regs *regs); 286static void ati_remote_irq_out (struct urb *urb);
287static void ati_remote_irq_in (struct urb *urb, struct pt_regs *regs); 287static void ati_remote_irq_in (struct urb *urb);
288static void ati_remote_input_report (struct urb *urb, struct pt_regs *regs); 288static void ati_remote_input_report (struct urb *urb);
289static int ati_remote_initialize (struct ati_remote *ati_remote); 289static int ati_remote_initialize (struct ati_remote *ati_remote);
290static int ati_remote_probe (struct usb_interface *interface, const struct usb_device_id *id); 290static int ati_remote_probe (struct usb_interface *interface, const struct usb_device_id *id);
291static void ati_remote_disconnect (struct usb_interface *interface); 291static void ati_remote_disconnect (struct usb_interface *interface);
@@ -344,7 +344,7 @@ static void ati_remote_close(struct input_dev *inputdev)
344/* 344/*
345 * ati_remote_irq_out 345 * ati_remote_irq_out
346 */ 346 */
347static void ati_remote_irq_out(struct urb *urb, struct pt_regs *regs) 347static void ati_remote_irq_out(struct urb *urb)
348{ 348{
349 struct ati_remote *ati_remote = urb->context; 349 struct ati_remote *ati_remote = urb->context;
350 350
@@ -453,7 +453,7 @@ static int ati_remote_compute_accel(struct ati_remote *ati_remote)
453/* 453/*
454 * ati_remote_report_input 454 * ati_remote_report_input
455 */ 455 */
456static void ati_remote_input_report(struct urb *urb, struct pt_regs *regs) 456static void ati_remote_input_report(struct urb *urb)
457{ 457{
458 struct ati_remote *ati_remote = urb->context; 458 struct ati_remote *ati_remote = urb->context;
459 unsigned char *data= ati_remote->inbuf; 459 unsigned char *data= ati_remote->inbuf;
@@ -491,7 +491,6 @@ static void ati_remote_input_report(struct urb *urb, struct pt_regs *regs)
491 remote_num, data[1], data[2], index, ati_remote_tbl[index].code); 491 remote_num, data[1], data[2], index, ati_remote_tbl[index].code);
492 492
493 if (ati_remote_tbl[index].kind == KIND_LITERAL) { 493 if (ati_remote_tbl[index].kind == KIND_LITERAL) {
494 input_regs(dev, regs);
495 input_event(dev, ati_remote_tbl[index].type, 494 input_event(dev, ati_remote_tbl[index].type,
496 ati_remote_tbl[index].code, 495 ati_remote_tbl[index].code,
497 ati_remote_tbl[index].value); 496 ati_remote_tbl[index].value);
@@ -520,7 +519,6 @@ static void ati_remote_input_report(struct urb *urb, struct pt_regs *regs)
520 return; 519 return;
521 520
522 521
523 input_regs(dev, regs);
524 input_event(dev, ati_remote_tbl[index].type, 522 input_event(dev, ati_remote_tbl[index].type,
525 ati_remote_tbl[index].code, 1); 523 ati_remote_tbl[index].code, 1);
526 input_sync(dev); 524 input_sync(dev);
@@ -537,7 +535,6 @@ static void ati_remote_input_report(struct urb *urb, struct pt_regs *regs)
537 */ 535 */
538 acc = ati_remote_compute_accel(ati_remote); 536 acc = ati_remote_compute_accel(ati_remote);
539 537
540 input_regs(dev, regs);
541 switch (ati_remote_tbl[index].kind) { 538 switch (ati_remote_tbl[index].kind) {
542 case KIND_ACCEL: 539 case KIND_ACCEL:
543 input_event(dev, ati_remote_tbl[index].type, 540 input_event(dev, ati_remote_tbl[index].type,
@@ -575,14 +572,14 @@ static void ati_remote_input_report(struct urb *urb, struct pt_regs *regs)
575/* 572/*
576 * ati_remote_irq_in 573 * ati_remote_irq_in
577 */ 574 */
578static void ati_remote_irq_in(struct urb *urb, struct pt_regs *regs) 575static void ati_remote_irq_in(struct urb *urb)
579{ 576{
580 struct ati_remote *ati_remote = urb->context; 577 struct ati_remote *ati_remote = urb->context;
581 int retval; 578 int retval;
582 579
583 switch (urb->status) { 580 switch (urb->status) {
584 case 0: /* success */ 581 case 0: /* success */
585 ati_remote_input_report(urb, regs); 582 ati_remote_input_report(urb);
586 break; 583 break;
587 case -ECONNRESET: /* unlink */ 584 case -ECONNRESET: /* unlink */
588 case -ENOENT: 585 case -ENOENT:
diff --git a/drivers/usb/input/ati_remote2.c b/drivers/usb/input/ati_remote2.c
index ea71de81ca6b..f982a2b4a7f9 100644
--- a/drivers/usb/input/ati_remote2.c
+++ b/drivers/usb/input/ati_remote2.c
@@ -142,7 +142,7 @@ static void ati_remote2_close(struct input_dev *idev)
142 usb_kill_urb(ar2->urb[1]); 142 usb_kill_urb(ar2->urb[1]);
143} 143}
144 144
145static void ati_remote2_input_mouse(struct ati_remote2 *ar2, struct pt_regs *regs) 145static void ati_remote2_input_mouse(struct ati_remote2 *ar2)
146{ 146{
147 struct input_dev *idev = ar2->idev; 147 struct input_dev *idev = ar2->idev;
148 u8 *data = ar2->buf[0]; 148 u8 *data = ar2->buf[0];
@@ -157,7 +157,6 @@ static void ati_remote2_input_mouse(struct ati_remote2 *ar2, struct pt_regs *reg
157 if (!((1 << data[0]) & mode_mask)) 157 if (!((1 << data[0]) & mode_mask))
158 return; 158 return;
159 159
160 input_regs(idev, regs);
161 input_event(idev, EV_REL, REL_X, (s8) data[1]); 160 input_event(idev, EV_REL, REL_X, (s8) data[1]);
162 input_event(idev, EV_REL, REL_Y, (s8) data[2]); 161 input_event(idev, EV_REL, REL_Y, (s8) data[2]);
163 input_sync(idev); 162 input_sync(idev);
@@ -174,7 +173,7 @@ static int ati_remote2_lookup(unsigned int hw_code)
174 return -1; 173 return -1;
175} 174}
176 175
177static void ati_remote2_input_key(struct ati_remote2 *ar2, struct pt_regs *regs) 176static void ati_remote2_input_key(struct ati_remote2 *ar2)
178{ 177{
179 struct input_dev *idev = ar2->idev; 178 struct input_dev *idev = ar2->idev;
180 u8 *data = ar2->buf[1]; 179 u8 *data = ar2->buf[1];
@@ -245,19 +244,18 @@ static void ati_remote2_input_key(struct ati_remote2 *ar2, struct pt_regs *regs)
245 return; 244 return;
246 } 245 }
247 246
248 input_regs(idev, regs);
249 input_event(idev, EV_KEY, ati_remote2_key_table[index].key_code, data[1]); 247 input_event(idev, EV_KEY, ati_remote2_key_table[index].key_code, data[1]);
250 input_sync(idev); 248 input_sync(idev);
251} 249}
252 250
253static void ati_remote2_complete_mouse(struct urb *urb, struct pt_regs *regs) 251static void ati_remote2_complete_mouse(struct urb *urb)
254{ 252{
255 struct ati_remote2 *ar2 = urb->context; 253 struct ati_remote2 *ar2 = urb->context;
256 int r; 254 int r;
257 255
258 switch (urb->status) { 256 switch (urb->status) {
259 case 0: 257 case 0:
260 ati_remote2_input_mouse(ar2, regs); 258 ati_remote2_input_mouse(ar2);
261 break; 259 break;
262 case -ENOENT: 260 case -ENOENT:
263 case -EILSEQ: 261 case -EILSEQ:
@@ -277,14 +275,14 @@ static void ati_remote2_complete_mouse(struct urb *urb, struct pt_regs *regs)
277 "%s(): usb_submit_urb() = %d\n", __FUNCTION__, r); 275 "%s(): usb_submit_urb() = %d\n", __FUNCTION__, r);
278} 276}
279 277
280static void ati_remote2_complete_key(struct urb *urb, struct pt_regs *regs) 278static void ati_remote2_complete_key(struct urb *urb)
281{ 279{
282 struct ati_remote2 *ar2 = urb->context; 280 struct ati_remote2 *ar2 = urb->context;
283 int r; 281 int r;
284 282
285 switch (urb->status) { 283 switch (urb->status) {
286 case 0: 284 case 0:
287 ati_remote2_input_key(ar2, regs); 285 ati_remote2_input_key(ar2);
288 break; 286 break;
289 case -ENOENT: 287 case -ENOENT:
290 case -EILSEQ: 288 case -EILSEQ:
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c
index e0fd11605b43..a6738a83ff5b 100644
--- a/drivers/usb/input/hid-core.c
+++ b/drivers/usb/input/hid-core.c
@@ -780,13 +780,13 @@ static __inline__ int search(__s32 *array, __s32 value, unsigned n)
780 return -1; 780 return -1;
781} 781}
782 782
783static void hid_process_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value, int interrupt, struct pt_regs *regs) 783static void hid_process_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value, int interrupt)
784{ 784{
785 hid_dump_input(usage, value); 785 hid_dump_input(usage, value);
786 if (hid->claimed & HID_CLAIMED_INPUT) 786 if (hid->claimed & HID_CLAIMED_INPUT)
787 hidinput_hid_event(hid, field, usage, value, regs); 787 hidinput_hid_event(hid, field, usage, value);
788 if (hid->claimed & HID_CLAIMED_HIDDEV && interrupt) 788 if (hid->claimed & HID_CLAIMED_HIDDEV && interrupt)
789 hiddev_hid_event(hid, field, usage, value, regs); 789 hiddev_hid_event(hid, field, usage, value);
790} 790}
791 791
792/* 792/*
@@ -795,7 +795,7 @@ static void hid_process_event(struct hid_device *hid, struct hid_field *field, s
795 * reporting to the layer). 795 * reporting to the layer).
796 */ 796 */
797 797
798static void hid_input_field(struct hid_device *hid, struct hid_field *field, __u8 *data, int interrupt, struct pt_regs *regs) 798static void hid_input_field(struct hid_device *hid, struct hid_field *field, __u8 *data, int interrupt)
799{ 799{
800 unsigned n; 800 unsigned n;
801 unsigned count = field->report_count; 801 unsigned count = field->report_count;
@@ -822,19 +822,19 @@ static void hid_input_field(struct hid_device *hid, struct hid_field *field, __u
822 for (n = 0; n < count; n++) { 822 for (n = 0; n < count; n++) {
823 823
824 if (HID_MAIN_ITEM_VARIABLE & field->flags) { 824 if (HID_MAIN_ITEM_VARIABLE & field->flags) {
825 hid_process_event(hid, field, &field->usage[n], value[n], interrupt, regs); 825 hid_process_event(hid, field, &field->usage[n], value[n], interrupt);
826 continue; 826 continue;
827 } 827 }
828 828
829 if (field->value[n] >= min && field->value[n] <= max 829 if (field->value[n] >= min && field->value[n] <= max
830 && field->usage[field->value[n] - min].hid 830 && field->usage[field->value[n] - min].hid
831 && search(value, field->value[n], count)) 831 && search(value, field->value[n], count))
832 hid_process_event(hid, field, &field->usage[field->value[n] - min], 0, interrupt, regs); 832 hid_process_event(hid, field, &field->usage[field->value[n] - min], 0, interrupt);
833 833
834 if (value[n] >= min && value[n] <= max 834 if (value[n] >= min && value[n] <= max
835 && field->usage[value[n] - min].hid 835 && field->usage[value[n] - min].hid
836 && search(field->value, value[n], count)) 836 && search(field->value, value[n], count))
837 hid_process_event(hid, field, &field->usage[value[n] - min], 1, interrupt, regs); 837 hid_process_event(hid, field, &field->usage[value[n] - min], 1, interrupt);
838 } 838 }
839 839
840 memcpy(field->value, value, count * sizeof(__s32)); 840 memcpy(field->value, value, count * sizeof(__s32));
@@ -842,7 +842,7 @@ exit:
842 kfree(value); 842 kfree(value);
843} 843}
844 844
845static int hid_input_report(int type, struct urb *urb, int interrupt, struct pt_regs *regs) 845static int hid_input_report(int type, struct urb *urb, int interrupt)
846{ 846{
847 struct hid_device *hid = urb->context; 847 struct hid_device *hid = urb->context;
848 struct hid_report_enum *report_enum = hid->report_enum + type; 848 struct hid_report_enum *report_enum = hid->report_enum + type;
@@ -892,7 +892,7 @@ static int hid_input_report(int type, struct urb *urb, int interrupt, struct pt_
892 hiddev_report_event(hid, report); 892 hiddev_report_event(hid, report);
893 893
894 for (n = 0; n < report->maxfield; n++) 894 for (n = 0; n < report->maxfield; n++)
895 hid_input_field(hid, report->field[n], data, interrupt, regs); 895 hid_input_field(hid, report->field[n], data, interrupt);
896 896
897 if (hid->claimed & HID_CLAIMED_INPUT) 897 if (hid->claimed & HID_CLAIMED_INPUT)
898 hidinput_report_event(hid, report); 898 hidinput_report_event(hid, report);
@@ -1004,7 +1004,7 @@ done:
1004 * Input interrupt completion handler. 1004 * Input interrupt completion handler.
1005 */ 1005 */
1006 1006
1007static void hid_irq_in(struct urb *urb, struct pt_regs *regs) 1007static void hid_irq_in(struct urb *urb)
1008{ 1008{
1009 struct hid_device *hid = urb->context; 1009 struct hid_device *hid = urb->context;
1010 int status; 1010 int status;
@@ -1012,7 +1012,7 @@ static void hid_irq_in(struct urb *urb, struct pt_regs *regs)
1012 switch (urb->status) { 1012 switch (urb->status) {
1013 case 0: /* success */ 1013 case 0: /* success */
1014 hid->retry_delay = 0; 1014 hid->retry_delay = 0;
1015 hid_input_report(HID_INPUT_REPORT, urb, 1, regs); 1015 hid_input_report(HID_INPUT_REPORT, urb, 1);
1016 break; 1016 break;
1017 case -ECONNRESET: /* unlink */ 1017 case -ECONNRESET: /* unlink */
1018 case -ENOENT: 1018 case -ENOENT:
@@ -1193,7 +1193,7 @@ static int hid_submit_ctrl(struct hid_device *hid)
1193 * Output interrupt completion handler. 1193 * Output interrupt completion handler.
1194 */ 1194 */
1195 1195
1196static void hid_irq_out(struct urb *urb, struct pt_regs *regs) 1196static void hid_irq_out(struct urb *urb)
1197{ 1197{
1198 struct hid_device *hid = urb->context; 1198 struct hid_device *hid = urb->context;
1199 unsigned long flags; 1199 unsigned long flags;
@@ -1238,7 +1238,7 @@ static void hid_irq_out(struct urb *urb, struct pt_regs *regs)
1238 * Control pipe completion handler. 1238 * Control pipe completion handler.
1239 */ 1239 */
1240 1240
1241static void hid_ctrl(struct urb *urb, struct pt_regs *regs) 1241static void hid_ctrl(struct urb *urb)
1242{ 1242{
1243 struct hid_device *hid = urb->context; 1243 struct hid_device *hid = urb->context;
1244 unsigned long flags; 1244 unsigned long flags;
@@ -1249,7 +1249,7 @@ static void hid_ctrl(struct urb *urb, struct pt_regs *regs)
1249 switch (urb->status) { 1249 switch (urb->status) {
1250 case 0: /* success */ 1250 case 0: /* success */
1251 if (hid->ctrl[hid->ctrltail].dir == USB_DIR_IN) 1251 if (hid->ctrl[hid->ctrltail].dir == USB_DIR_IN)
1252 hid_input_report(hid->ctrl[hid->ctrltail].report->type, urb, 0, regs); 1252 hid_input_report(hid->ctrl[hid->ctrltail].report->type, urb, 0);
1253 break; 1253 break;
1254 case -ESHUTDOWN: /* unplug */ 1254 case -ESHUTDOWN: /* unplug */
1255 unplug = 1; 1255 unplug = 1;
diff --git a/drivers/usb/input/hid-input.c b/drivers/usb/input/hid-input.c
index 4c62afbeb430..9a808a3b4d37 100644
--- a/drivers/usb/input/hid-input.c
+++ b/drivers/usb/input/hid-input.c
@@ -613,7 +613,7 @@ ignore:
613 return; 613 return;
614} 614}
615 615
616void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value, struct pt_regs *regs) 616void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value)
617{ 617{
618 struct input_dev *input; 618 struct input_dev *input;
619 int *quirks = &hid->quirks; 619 int *quirks = &hid->quirks;
@@ -623,8 +623,6 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct
623 623
624 input = field->hidinput->input; 624 input = field->hidinput->input;
625 625
626 input_regs(input, regs);
627
628 if (!usage->type) 626 if (!usage->type)
629 return; 627 return;
630 628
diff --git a/drivers/usb/input/hid.h b/drivers/usb/input/hid.h
index b03fd9b075df..9b50effef758 100644
--- a/drivers/usb/input/hid.h
+++ b/drivers/usb/input/hid.h
@@ -499,13 +499,13 @@ struct hid_descriptor {
499/* Applications from HID Usage Tables 4/8/99 Version 1.1 */ 499/* Applications from HID Usage Tables 4/8/99 Version 1.1 */
500/* We ignore a few input applications that are not widely used */ 500/* We ignore a few input applications that are not widely used */
501#define IS_INPUT_APPLICATION(a) (((a >= 0x00010000) && (a <= 0x00010008)) || (a == 0x00010080) || (a == 0x000c0001)) 501#define IS_INPUT_APPLICATION(a) (((a >= 0x00010000) && (a <= 0x00010008)) || (a == 0x00010080) || (a == 0x000c0001))
502extern void hidinput_hid_event(struct hid_device *, struct hid_field *, struct hid_usage *, __s32, struct pt_regs *regs); 502extern void hidinput_hid_event(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
503extern void hidinput_report_event(struct hid_device *hid, struct hid_report *report); 503extern void hidinput_report_event(struct hid_device *hid, struct hid_report *report);
504extern int hidinput_connect(struct hid_device *); 504extern int hidinput_connect(struct hid_device *);
505extern void hidinput_disconnect(struct hid_device *); 505extern void hidinput_disconnect(struct hid_device *);
506#else 506#else
507#define IS_INPUT_APPLICATION(a) (0) 507#define IS_INPUT_APPLICATION(a) (0)
508static inline void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value, struct pt_regs *regs) { } 508static inline void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value) { }
509static inline void hidinput_report_event(struct hid_device *hid, struct hid_report *report) { } 509static inline void hidinput_report_event(struct hid_device *hid, struct hid_report *report) { }
510static inline int hidinput_connect(struct hid_device *hid) { return -ENODEV; } 510static inline int hidinput_connect(struct hid_device *hid) { return -ENODEV; }
511static inline void hidinput_disconnect(struct hid_device *hid) { } 511static inline void hidinput_disconnect(struct hid_device *hid) { }
diff --git a/drivers/usb/input/hiddev.c b/drivers/usb/input/hiddev.c
index a2b419d13740..7dc14d0cacc1 100644
--- a/drivers/usb/input/hiddev.c
+++ b/drivers/usb/input/hiddev.c
@@ -179,7 +179,7 @@ static void hiddev_send_event(struct hid_device *hid,
179 * the interrupt pipe 179 * the interrupt pipe
180 */ 180 */
181void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, 181void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
182 struct hid_usage *usage, __s32 value, struct pt_regs *regs) 182 struct hid_usage *usage, __s32 value)
183{ 183{
184 unsigned type = field->report_type; 184 unsigned type = field->report_type;
185 struct hiddev_usage_ref uref; 185 struct hiddev_usage_ref uref;
diff --git a/drivers/usb/input/itmtouch.c b/drivers/usb/input/itmtouch.c
index f3e3080de5b5..aac968aab860 100644
--- a/drivers/usb/input/itmtouch.c
+++ b/drivers/usb/input/itmtouch.c
@@ -80,7 +80,7 @@ static struct usb_device_id itmtouch_ids [] = {
80 { } 80 { }
81}; 81};
82 82
83static void itmtouch_irq(struct urb *urb, struct pt_regs *regs) 83static void itmtouch_irq(struct urb *urb)
84{ 84{
85 struct itmtouch_dev *itmtouch = urb->context; 85 struct itmtouch_dev *itmtouch = urb->context;
86 unsigned char *data = urb->transfer_buffer; 86 unsigned char *data = urb->transfer_buffer;
@@ -109,8 +109,6 @@ static void itmtouch_irq(struct urb *urb, struct pt_regs *regs)
109 goto exit; 109 goto exit;
110 } 110 }
111 111
112 input_regs(dev, regs);
113
114 /* if pressure has been released, then don't report X/Y */ 112 /* if pressure has been released, then don't report X/Y */
115 if (!(data[7] & 0x20)) { 113 if (!(data[7] & 0x20)) {
116 input_report_abs(dev, ABS_X, (data[0] & 0x1F) << 7 | (data[3] & 0x7F)); 114 input_report_abs(dev, ABS_X, (data[0] & 0x1F) << 7 | (data[3] & 0x7F));
diff --git a/drivers/usb/input/kbtab.c b/drivers/usb/input/kbtab.c
index 604ade356ead..fedbcb127c21 100644
--- a/drivers/usb/input/kbtab.c
+++ b/drivers/usb/input/kbtab.c
@@ -41,7 +41,7 @@ struct kbtab {
41 char phys[32]; 41 char phys[32];
42}; 42};
43 43
44static void kbtab_irq(struct urb *urb, struct pt_regs *regs) 44static void kbtab_irq(struct urb *urb)
45{ 45{
46 struct kbtab *kbtab = urb->context; 46 struct kbtab *kbtab = urb->context;
47 unsigned char *data = kbtab->data; 47 unsigned char *data = kbtab->data;
diff --git a/drivers/usb/input/keyspan_remote.c b/drivers/usb/input/keyspan_remote.c
index a90359551575..50aa8108a50b 100644
--- a/drivers/usb/input/keyspan_remote.c
+++ b/drivers/usb/input/keyspan_remote.c
@@ -176,7 +176,7 @@ static int keyspan_load_tester(struct usb_keyspan* dev, int bits_needed)
176/* 176/*
177 * Routine that handles all the logic needed to parse out the message from the remote. 177 * Routine that handles all the logic needed to parse out the message from the remote.
178 */ 178 */
179static void keyspan_check_data(struct usb_keyspan *remote, struct pt_regs *regs) 179static void keyspan_check_data(struct usb_keyspan *remote)
180{ 180{
181 int i; 181 int i;
182 int found = 0; 182 int found = 0;
@@ -311,7 +311,6 @@ static void keyspan_check_data(struct usb_keyspan *remote, struct pt_regs *regs)
311 __FUNCTION__, message.system, message.button, message.toggle); 311 __FUNCTION__, message.system, message.button, message.toggle);
312 312
313 if (message.toggle != remote->toggle) { 313 if (message.toggle != remote->toggle) {
314 input_regs(remote->input, regs);
315 input_report_key(remote->input, keyspan_key_table[message.button], 1); 314 input_report_key(remote->input, keyspan_key_table[message.button], 1);
316 input_report_key(remote->input, keyspan_key_table[message.button], 0); 315 input_report_key(remote->input, keyspan_key_table[message.button], 0);
317 input_sync(remote->input); 316 input_sync(remote->input);
@@ -361,7 +360,7 @@ static int keyspan_setup(struct usb_device* dev)
361/* 360/*
362 * Routine used to handle a new message that has come in. 361 * Routine used to handle a new message that has come in.
363 */ 362 */
364static void keyspan_irq_recv(struct urb *urb, struct pt_regs *regs) 363static void keyspan_irq_recv(struct urb *urb)
365{ 364{
366 struct usb_keyspan *dev = urb->context; 365 struct usb_keyspan *dev = urb->context;
367 int retval; 366 int retval;
@@ -385,7 +384,7 @@ static void keyspan_irq_recv(struct urb *urb, struct pt_regs *regs)
385 if (debug) 384 if (debug)
386 keyspan_print(dev); 385 keyspan_print(dev);
387 386
388 keyspan_check_data(dev, regs); 387 keyspan_check_data(dev);
389 388
390resubmit: 389resubmit:
391 retval = usb_submit_urb(urb, GFP_ATOMIC); 390 retval = usb_submit_urb(urb, GFP_ATOMIC);
diff --git a/drivers/usb/input/mtouchusb.c b/drivers/usb/input/mtouchusb.c
index 5dce951f2751..79a85d46cb13 100644
--- a/drivers/usb/input/mtouchusb.c
+++ b/drivers/usb/input/mtouchusb.c
@@ -98,7 +98,7 @@ static struct usb_device_id mtouchusb_devices[] = {
98 { } 98 { }
99}; 99};
100 100
101static void mtouchusb_irq(struct urb *urb, struct pt_regs *regs) 101static void mtouchusb_irq(struct urb *urb)
102{ 102{
103 struct mtouch_usb *mtouch = urb->context; 103 struct mtouch_usb *mtouch = urb->context;
104 int retval; 104 int retval;
@@ -125,7 +125,6 @@ static void mtouchusb_irq(struct urb *urb, struct pt_regs *regs)
125 goto exit; 125 goto exit;
126 } 126 }
127 127
128 input_regs(mtouch->input, regs);
129 input_report_key(mtouch->input, BTN_TOUCH, 128 input_report_key(mtouch->input, BTN_TOUCH,
130 MTOUCHUSB_GET_TOUCHED(mtouch->data)); 129 MTOUCHUSB_GET_TOUCHED(mtouch->data));
131 input_report_abs(mtouch->input, ABS_X, MTOUCHUSB_GET_XC(mtouch->data)); 130 input_report_abs(mtouch->input, ABS_X, MTOUCHUSB_GET_XC(mtouch->data));
diff --git a/drivers/usb/input/powermate.c b/drivers/usb/input/powermate.c
index f0f8db6810a2..0bf91778c40d 100644
--- a/drivers/usb/input/powermate.c
+++ b/drivers/usb/input/powermate.c
@@ -80,10 +80,10 @@ struct powermate_device {
80static char pm_name_powermate[] = "Griffin PowerMate"; 80static char pm_name_powermate[] = "Griffin PowerMate";
81static char pm_name_soundknob[] = "Griffin SoundKnob"; 81static char pm_name_soundknob[] = "Griffin SoundKnob";
82 82
83static void powermate_config_complete(struct urb *urb, struct pt_regs *regs); 83static void powermate_config_complete(struct urb *urb);
84 84
85/* Callback for data arriving from the PowerMate over the USB interrupt pipe */ 85/* Callback for data arriving from the PowerMate over the USB interrupt pipe */
86static void powermate_irq(struct urb *urb, struct pt_regs *regs) 86static void powermate_irq(struct urb *urb)
87{ 87{
88 struct powermate_device *pm = urb->context; 88 struct powermate_device *pm = urb->context;
89 int retval; 89 int retval;
@@ -104,7 +104,6 @@ static void powermate_irq(struct urb *urb, struct pt_regs *regs)
104 } 104 }
105 105
106 /* handle updates to device state */ 106 /* handle updates to device state */
107 input_regs(pm->input, regs);
108 input_report_key(pm->input, BTN_0, pm->data[0] & 0x01); 107 input_report_key(pm->input, BTN_0, pm->data[0] & 0x01);
109 input_report_rel(pm->input, REL_DIAL, pm->data[1]); 108 input_report_rel(pm->input, REL_DIAL, pm->data[1]);
110 input_sync(pm->input); 109 input_sync(pm->input);
@@ -191,7 +190,7 @@ static void powermate_sync_state(struct powermate_device *pm)
191} 190}
192 191
193/* Called when our asynchronous control message completes. We may need to issue another immediately */ 192/* Called when our asynchronous control message completes. We may need to issue another immediately */
194static void powermate_config_complete(struct urb *urb, struct pt_regs *regs) 193static void powermate_config_complete(struct urb *urb)
195{ 194{
196 struct powermate_device *pm = urb->context; 195 struct powermate_device *pm = urb->context;
197 unsigned long flags; 196 unsigned long flags;
diff --git a/drivers/usb/input/touchkitusb.c b/drivers/usb/input/touchkitusb.c
index 30b9f820e7a8..05c0d1ca39ab 100644
--- a/drivers/usb/input/touchkitusb.c
+++ b/drivers/usb/input/touchkitusb.c
@@ -92,8 +92,7 @@ static inline int touchkit_get_y(char *data)
92 92
93 93
94/* processes one input packet. */ 94/* processes one input packet. */
95static void touchkit_process_pkt(struct touchkit_usb *touchkit, 95static void touchkit_process_pkt(struct touchkit_usb *touchkit, char *pkt)
96 struct pt_regs *regs, char *pkt)
97{ 96{
98 int x, y; 97 int x, y;
99 98
@@ -109,7 +108,6 @@ static void touchkit_process_pkt(struct touchkit_usb *touchkit,
109 y = touchkit_get_y(pkt); 108 y = touchkit_get_y(pkt);
110 } 109 }
111 110
112 input_regs(touchkit->input, regs);
113 input_report_key(touchkit->input, BTN_TOUCH, touchkit_get_touched(pkt)); 111 input_report_key(touchkit->input, BTN_TOUCH, touchkit_get_touched(pkt));
114 input_report_abs(touchkit->input, ABS_X, x); 112 input_report_abs(touchkit->input, ABS_X, x);
115 input_report_abs(touchkit->input, ABS_Y, y); 113 input_report_abs(touchkit->input, ABS_Y, y);
@@ -130,8 +128,7 @@ static int touchkit_get_pkt_len(char *buf)
130 return 0; 128 return 0;
131} 129}
132 130
133static void touchkit_process(struct touchkit_usb *touchkit, int len, 131static void touchkit_process(struct touchkit_usb *touchkit, int len)
134 struct pt_regs *regs)
135{ 132{
136 char *buffer; 133 char *buffer;
137 int pkt_len, buf_len, pos; 134 int pkt_len, buf_len, pos;
@@ -153,7 +150,7 @@ static void touchkit_process(struct touchkit_usb *touchkit, int len,
153 /* append, process */ 150 /* append, process */
154 tmp = pkt_len - touchkit->buf_len; 151 tmp = pkt_len - touchkit->buf_len;
155 memcpy(touchkit->buffer + touchkit->buf_len, touchkit->data, tmp); 152 memcpy(touchkit->buffer + touchkit->buf_len, touchkit->data, tmp);
156 touchkit_process_pkt(touchkit, regs, touchkit->buffer); 153 touchkit_process_pkt(touchkit, touchkit->buffer);
157 154
158 buffer = touchkit->data + tmp; 155 buffer = touchkit->data + tmp;
159 buf_len = len - tmp; 156 buf_len = len - tmp;
@@ -181,7 +178,7 @@ static void touchkit_process(struct touchkit_usb *touchkit, int len,
181 178
182 /* full packet: process */ 179 /* full packet: process */
183 if (likely(pkt_len <= buf_len)) { 180 if (likely(pkt_len <= buf_len)) {
184 touchkit_process_pkt(touchkit, regs, buffer + pos); 181 touchkit_process_pkt(touchkit, buffer + pos);
185 } else { 182 } else {
186 /* incomplete packet: save in buffer */ 183 /* incomplete packet: save in buffer */
187 memcpy(touchkit->buffer, buffer + pos, buf_len - pos); 184 memcpy(touchkit->buffer, buffer + pos, buf_len - pos);
@@ -192,7 +189,7 @@ static void touchkit_process(struct touchkit_usb *touchkit, int len,
192} 189}
193 190
194 191
195static void touchkit_irq(struct urb *urb, struct pt_regs *regs) 192static void touchkit_irq(struct urb *urb)
196{ 193{
197 struct touchkit_usb *touchkit = urb->context; 194 struct touchkit_usb *touchkit = urb->context;
198 int retval; 195 int retval;
@@ -219,7 +216,7 @@ static void touchkit_irq(struct urb *urb, struct pt_regs *regs)
219 goto exit; 216 goto exit;
220 } 217 }
221 218
222 touchkit_process(touchkit, urb->actual_length, regs); 219 touchkit_process(touchkit, urb->actual_length);
223 220
224exit: 221exit:
225 retval = usb_submit_urb(urb, GFP_ATOMIC); 222 retval = usb_submit_urb(urb, GFP_ATOMIC);
diff --git a/drivers/usb/input/usbkbd.c b/drivers/usb/input/usbkbd.c
index 5067a6ae650f..c73285cf8558 100644
--- a/drivers/usb/input/usbkbd.c
+++ b/drivers/usb/input/usbkbd.c
@@ -80,7 +80,7 @@ struct usb_kbd {
80 dma_addr_t leds_dma; 80 dma_addr_t leds_dma;
81}; 81};
82 82
83static void usb_kbd_irq(struct urb *urb, struct pt_regs *regs) 83static void usb_kbd_irq(struct urb *urb)
84{ 84{
85 struct usb_kbd *kbd = urb->context; 85 struct usb_kbd *kbd = urb->context;
86 int i; 86 int i;
@@ -97,8 +97,6 @@ static void usb_kbd_irq(struct urb *urb, struct pt_regs *regs)
97 goto resubmit; 97 goto resubmit;
98 } 98 }
99 99
100 input_regs(kbd->dev, regs);
101
102 for (i = 0; i < 8; i++) 100 for (i = 0; i < 8; i++)
103 input_report_key(kbd->dev, usb_kbd_keycode[i + 224], (kbd->new[0] >> i) & 1); 101 input_report_key(kbd->dev, usb_kbd_keycode[i + 224], (kbd->new[0] >> i) & 1);
104 102
@@ -158,7 +156,7 @@ static int usb_kbd_event(struct input_dev *dev, unsigned int type,
158 return 0; 156 return 0;
159} 157}
160 158
161static void usb_kbd_led(struct urb *urb, struct pt_regs *regs) 159static void usb_kbd_led(struct urb *urb)
162{ 160{
163 struct usb_kbd *kbd = urb->context; 161 struct usb_kbd *kbd = urb->context;
164 162
diff --git a/drivers/usb/input/usbmouse.c b/drivers/usb/input/usbmouse.c
index 0fb792be95ef..cbbbea332ed7 100644
--- a/drivers/usb/input/usbmouse.c
+++ b/drivers/usb/input/usbmouse.c
@@ -55,7 +55,7 @@ struct usb_mouse {
55 dma_addr_t data_dma; 55 dma_addr_t data_dma;
56}; 56};
57 57
58static void usb_mouse_irq(struct urb *urb, struct pt_regs *regs) 58static void usb_mouse_irq(struct urb *urb)
59{ 59{
60 struct usb_mouse *mouse = urb->context; 60 struct usb_mouse *mouse = urb->context;
61 signed char *data = mouse->data; 61 signed char *data = mouse->data;
@@ -74,8 +74,6 @@ static void usb_mouse_irq(struct urb *urb, struct pt_regs *regs)
74 goto resubmit; 74 goto resubmit;
75 } 75 }
76 76
77 input_regs(dev, regs);
78
79 input_report_key(dev, BTN_LEFT, data[0] & 0x01); 77 input_report_key(dev, BTN_LEFT, data[0] & 0x01);
80 input_report_key(dev, BTN_RIGHT, data[0] & 0x02); 78 input_report_key(dev, BTN_RIGHT, data[0] & 0x02);
81 input_report_key(dev, BTN_MIDDLE, data[0] & 0x04); 79 input_report_key(dev, BTN_MIDDLE, data[0] & 0x04);
diff --git a/drivers/usb/input/usbtouchscreen.c b/drivers/usb/input/usbtouchscreen.c
index 923e22db18d4..f26c1cd1129f 100644
--- a/drivers/usb/input/usbtouchscreen.c
+++ b/drivers/usb/input/usbtouchscreen.c
@@ -61,7 +61,7 @@ struct usbtouch_device_info {
61 int rept_size; 61 int rept_size;
62 int flags; 62 int flags;
63 63
64 void (*process_pkt) (struct usbtouch_usb *usbtouch, struct pt_regs *regs, unsigned char *pkt, int len); 64 void (*process_pkt) (struct usbtouch_usb *usbtouch, unsigned char *pkt, int len);
65 int (*get_pkt_len) (unsigned char *pkt, int len); 65 int (*get_pkt_len) (unsigned char *pkt, int len);
66 int (*read_data) (unsigned char *pkt, int *x, int *y, int *touch, int *press); 66 int (*read_data) (unsigned char *pkt, int *x, int *y, int *touch, int *press);
67 int (*init) (struct usbtouch_usb *usbtouch); 67 int (*init) (struct usbtouch_usb *usbtouch);
@@ -91,7 +91,6 @@ struct usbtouch_usb {
91 91
92#ifdef MULTI_PACKET 92#ifdef MULTI_PACKET
93static void usbtouch_process_multi(struct usbtouch_usb *usbtouch, 93static void usbtouch_process_multi(struct usbtouch_usb *usbtouch,
94 struct pt_regs *regs,
95 unsigned char *pkt, int len); 94 unsigned char *pkt, int len);
96#endif 95#endif
97 96
@@ -397,7 +396,7 @@ static struct usbtouch_device_info usbtouch_dev_info[] = {
397 * Generic Part 396 * Generic Part
398 */ 397 */
399static void usbtouch_process_pkt(struct usbtouch_usb *usbtouch, 398static void usbtouch_process_pkt(struct usbtouch_usb *usbtouch,
400 struct pt_regs *regs, unsigned char *pkt, int len) 399 unsigned char *pkt, int len)
401{ 400{
402 int x, y, touch, press; 401 int x, y, touch, press;
403 struct usbtouch_device_info *type = usbtouch->type; 402 struct usbtouch_device_info *type = usbtouch->type;
@@ -405,7 +404,6 @@ static void usbtouch_process_pkt(struct usbtouch_usb *usbtouch,
405 if (!type->read_data(pkt, &x, &y, &touch, &press)) 404 if (!type->read_data(pkt, &x, &y, &touch, &press))
406 return; 405 return;
407 406
408 input_regs(usbtouch->input, regs);
409 input_report_key(usbtouch->input, BTN_TOUCH, touch); 407 input_report_key(usbtouch->input, BTN_TOUCH, touch);
410 408
411 if (swap_xy) { 409 if (swap_xy) {
@@ -423,7 +421,6 @@ static void usbtouch_process_pkt(struct usbtouch_usb *usbtouch,
423 421
424#ifdef MULTI_PACKET 422#ifdef MULTI_PACKET
425static void usbtouch_process_multi(struct usbtouch_usb *usbtouch, 423static void usbtouch_process_multi(struct usbtouch_usb *usbtouch,
426 struct pt_regs *regs,
427 unsigned char *pkt, int len) 424 unsigned char *pkt, int len)
428{ 425{
429 unsigned char *buffer; 426 unsigned char *buffer;
@@ -460,7 +457,7 @@ static void usbtouch_process_multi(struct usbtouch_usb *usbtouch,
460 if (usbtouch->buf_len + tmp >= usbtouch->type->rept_size) 457 if (usbtouch->buf_len + tmp >= usbtouch->type->rept_size)
461 goto out_flush_buf; 458 goto out_flush_buf;
462 memcpy(usbtouch->buffer + usbtouch->buf_len, pkt, tmp); 459 memcpy(usbtouch->buffer + usbtouch->buf_len, pkt, tmp);
463 usbtouch_process_pkt(usbtouch, regs, usbtouch->buffer, pkt_len); 460 usbtouch_process_pkt(usbtouch, usbtouch->buffer, pkt_len);
464 461
465 buffer = pkt + tmp; 462 buffer = pkt + tmp;
466 buf_len = len - tmp; 463 buf_len = len - tmp;
@@ -481,7 +478,7 @@ static void usbtouch_process_multi(struct usbtouch_usb *usbtouch,
481 478
482 /* full packet: process */ 479 /* full packet: process */
483 if (likely((pkt_len > 0) && (pkt_len <= buf_len - pos))) { 480 if (likely((pkt_len > 0) && (pkt_len <= buf_len - pos))) {
484 usbtouch_process_pkt(usbtouch, regs, buffer + pos, pkt_len); 481 usbtouch_process_pkt(usbtouch, buffer + pos, pkt_len);
485 } else { 482 } else {
486 /* incomplete packet: save in buffer */ 483 /* incomplete packet: save in buffer */
487 memcpy(usbtouch->buffer, buffer + pos, buf_len - pos); 484 memcpy(usbtouch->buffer, buffer + pos, buf_len - pos);
@@ -498,7 +495,7 @@ out_flush_buf:
498#endif 495#endif
499 496
500 497
501static void usbtouch_irq(struct urb *urb, struct pt_regs *regs) 498static void usbtouch_irq(struct urb *urb)
502{ 499{
503 struct usbtouch_usb *usbtouch = urb->context; 500 struct usbtouch_usb *usbtouch = urb->context;
504 int retval; 501 int retval;
@@ -525,7 +522,7 @@ static void usbtouch_irq(struct urb *urb, struct pt_regs *regs)
525 goto exit; 522 goto exit;
526 } 523 }
527 524
528 usbtouch->type->process_pkt(usbtouch, regs, usbtouch->data, urb->actual_length); 525 usbtouch->type->process_pkt(usbtouch, usbtouch->data, urb->actual_length);
529 526
530exit: 527exit:
531 retval = usb_submit_urb(urb, GFP_ATOMIC); 528 retval = usb_submit_urb(urb, GFP_ATOMIC);
diff --git a/drivers/usb/input/wacom.h b/drivers/usb/input/wacom.h
index 832737b658cf..7b3840e378a8 100644
--- a/drivers/usb/input/wacom.h
+++ b/drivers/usb/input/wacom.h
@@ -106,16 +106,14 @@ struct wacom {
106struct wacom_combo { 106struct wacom_combo {
107 struct wacom * wacom; 107 struct wacom * wacom;
108 struct urb * urb; 108 struct urb * urb;
109 struct pt_regs *regs;
110}; 109};
111 110
112extern int wacom_wac_irq(struct wacom_wac * wacom_wac, void * wcombo); 111extern int wacom_wac_irq(struct wacom_wac * wacom_wac, void * wcombo);
113extern void wacom_sys_irq(struct urb *urb, struct pt_regs *regs); 112extern void wacom_sys_irq(struct urb *urb);
114extern void wacom_report_abs(void *wcombo, unsigned int abs_type, int abs_data); 113extern void wacom_report_abs(void *wcombo, unsigned int abs_type, int abs_data);
115extern void wacom_report_rel(void *wcombo, unsigned int rel_type, int rel_data); 114extern void wacom_report_rel(void *wcombo, unsigned int rel_type, int rel_data);
116extern void wacom_report_key(void *wcombo, unsigned int key_type, int key_data); 115extern void wacom_report_key(void *wcombo, unsigned int key_type, int key_data);
117extern void wacom_input_event(void *wcombo, unsigned int type, unsigned int code, int value); 116extern void wacom_input_event(void *wcombo, unsigned int type, unsigned int code, int value);
118extern void wacom_input_regs(void *wcombo);
119extern void wacom_input_sync(void *wcombo); 117extern void wacom_input_sync(void *wcombo);
120extern void wacom_init_input_dev(struct input_dev *input_dev, struct wacom_wac *wacom_wac); 118extern void wacom_init_input_dev(struct input_dev *input_dev, struct wacom_wac *wacom_wac);
121extern void input_dev_g4(struct input_dev *input_dev, struct wacom_wac *wacom_wac); 119extern void input_dev_g4(struct input_dev *input_dev, struct wacom_wac *wacom_wac);
diff --git a/drivers/usb/input/wacom_sys.c b/drivers/usb/input/wacom_sys.c
index 7c3b52bdd9d6..d233c37bd533 100644
--- a/drivers/usb/input/wacom_sys.c
+++ b/drivers/usb/input/wacom_sys.c
@@ -42,7 +42,7 @@ static struct input_dev * get_input_dev(struct wacom_combo *wcombo)
42 return wcombo->wacom->dev; 42 return wcombo->wacom->dev;
43} 43}
44 44
45void wacom_sys_irq(struct urb *urb, struct pt_regs *regs) 45void wacom_sys_irq(struct urb *urb)
46{ 46{
47 struct wacom *wacom = urb->context; 47 struct wacom *wacom = urb->context;
48 struct wacom_combo wcombo; 48 struct wacom_combo wcombo;
@@ -65,7 +65,6 @@ void wacom_sys_irq(struct urb *urb, struct pt_regs *regs)
65 65
66 wcombo.wacom = wacom; 66 wcombo.wacom = wacom;
67 wcombo.urb = urb; 67 wcombo.urb = urb;
68 wcombo.regs = regs;
69 68
70 if (wacom_wac_irq(wacom->wacom_wac, (void *)&wcombo)) 69 if (wacom_wac_irq(wacom->wacom_wac, (void *)&wcombo))
71 input_sync(get_input_dev(&wcombo)); 70 input_sync(get_input_dev(&wcombo));
@@ -115,12 +114,6 @@ __u16 wacom_le16_to_cpu(unsigned char *data)
115 return value; 114 return value;
116} 115}
117 116
118void wacom_input_regs(void *wcombo)
119{
120 input_regs(get_input_dev((struct wacom_combo *)wcombo), ((struct wacom_combo *)wcombo)->regs);
121 return;
122}
123
124void wacom_input_sync(void *wcombo) 117void wacom_input_sync(void *wcombo)
125{ 118{
126 input_sync(get_input_dev((struct wacom_combo *)wcombo)); 119 input_sync(get_input_dev((struct wacom_combo *)wcombo));
diff --git a/drivers/usb/input/wacom_wac.c b/drivers/usb/input/wacom_wac.c
index 85d458c98b6e..aa31d22d4f05 100644
--- a/drivers/usb/input/wacom_wac.c
+++ b/drivers/usb/input/wacom_wac.c
@@ -20,7 +20,6 @@ static int wacom_penpartner_irq(struct wacom_wac *wacom, void *wcombo)
20 20
21 switch (data[0]) { 21 switch (data[0]) {
22 case 1: 22 case 1:
23 wacom_input_regs(wcombo);
24 if (data[5] & 0x80) { 23 if (data[5] & 0x80) {
25 wacom->tool[0] = (data[5] & 0x20) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; 24 wacom->tool[0] = (data[5] & 0x20) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN;
26 wacom->id[0] = (data[5] & 0x20) ? ERASER_DEVICE_ID : STYLUS_DEVICE_ID; 25 wacom->id[0] = (data[5] & 0x20) ? ERASER_DEVICE_ID : STYLUS_DEVICE_ID;
@@ -39,7 +38,6 @@ static int wacom_penpartner_irq(struct wacom_wac *wacom, void *wcombo)
39 } 38 }
40 break; 39 break;
41 case 2: 40 case 2:
42 wacom_input_regs(wcombo);
43 wacom_report_key(wcombo, BTN_TOOL_PEN, 1); 41 wacom_report_key(wcombo, BTN_TOOL_PEN, 1);
44 wacom_report_abs(wcombo, ABS_MISC, STYLUS_DEVICE_ID); /* report tool id */ 42 wacom_report_abs(wcombo, ABS_MISC, STYLUS_DEVICE_ID); /* report tool id */
45 wacom_report_abs(wcombo, ABS_X, wacom_le16_to_cpu(&data[1])); 43 wacom_report_abs(wcombo, ABS_X, wacom_le16_to_cpu(&data[1]));
@@ -67,8 +65,6 @@ static int wacom_pl_irq(struct wacom_wac *wacom, void *wcombo)
67 65
68 prox = data[1] & 0x40; 66 prox = data[1] & 0x40;
69 67
70 wacom_input_regs(wcombo);
71
72 id = ERASER_DEVICE_ID; 68 id = ERASER_DEVICE_ID;
73 if (prox) { 69 if (prox) {
74 70
@@ -138,7 +134,6 @@ static int wacom_ptu_irq(struct wacom_wac *wacom, void *wcombo)
138 return 0; 134 return 0;
139 } 135 }
140 136
141 wacom_input_regs(wcombo);
142 if (data[1] & 0x04) { 137 if (data[1] & 0x04) {
143 wacom_report_key(wcombo, BTN_TOOL_RUBBER, data[1] & 0x20); 138 wacom_report_key(wcombo, BTN_TOOL_RUBBER, data[1] & 0x20);
144 wacom_report_key(wcombo, BTN_TOUCH, data[1] & 0x08); 139 wacom_report_key(wcombo, BTN_TOUCH, data[1] & 0x08);
@@ -167,8 +162,6 @@ static int wacom_graphire_irq(struct wacom_wac *wacom, void *wcombo)
167 return 0; 162 return 0;
168 } 163 }
169 164
170 wacom_input_regs(wcombo);
171
172 id = STYLUS_DEVICE_ID; 165 id = STYLUS_DEVICE_ID;
173 if (data[1] & 0x10) { /* in prox */ 166 if (data[1] & 0x10) { /* in prox */
174 167
@@ -369,8 +362,6 @@ static int wacom_intuos_irq(struct wacom_wac *wacom, void *wcombo)
369 return 0; 362 return 0;
370 } 363 }
371 364
372 wacom_input_regs(wcombo);
373
374 /* tool number */ 365 /* tool number */
375 idx = data[1] & 0x01; 366 idx = data[1] & 0x01;
376 367
diff --git a/drivers/usb/input/xpad.c b/drivers/usb/input/xpad.c
index 9889b1cda05b..cebb6c463bfb 100644
--- a/drivers/usb/input/xpad.c
+++ b/drivers/usb/input/xpad.c
@@ -120,12 +120,10 @@ struct usb_xpad {
120 * http://euc.jp/periphs/xbox-controller.ja.html 120 * http://euc.jp/periphs/xbox-controller.ja.html
121 */ 121 */
122 122
123static void xpad_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data, struct pt_regs *regs) 123static void xpad_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *data)
124{ 124{
125 struct input_dev *dev = xpad->dev; 125 struct input_dev *dev = xpad->dev;
126 126
127 input_regs(dev, regs);
128
129 /* left stick */ 127 /* left stick */
130 input_report_abs(dev, ABS_X, (__s16) (((__s16)data[13] << 8) | data[12])); 128 input_report_abs(dev, ABS_X, (__s16) (((__s16)data[13] << 8) | data[12]));
131 input_report_abs(dev, ABS_Y, (__s16) (((__s16)data[15] << 8) | data[14])); 129 input_report_abs(dev, ABS_Y, (__s16) (((__s16)data[15] << 8) | data[14]));
@@ -161,7 +159,7 @@ static void xpad_process_packet(struct usb_xpad *xpad, u16 cmd, unsigned char *d
161 input_sync(dev); 159 input_sync(dev);
162} 160}
163 161
164static void xpad_irq_in(struct urb *urb, struct pt_regs *regs) 162static void xpad_irq_in(struct urb *urb)
165{ 163{
166 struct usb_xpad *xpad = urb->context; 164 struct usb_xpad *xpad = urb->context;
167 int retval; 165 int retval;
@@ -181,7 +179,7 @@ static void xpad_irq_in(struct urb *urb, struct pt_regs *regs)
181 goto exit; 179 goto exit;
182 } 180 }
183 181
184 xpad_process_packet(xpad, 0, xpad->idata, regs); 182 xpad_process_packet(xpad, 0, xpad->idata);
185 183
186exit: 184exit:
187 retval = usb_submit_urb (urb, GFP_ATOMIC); 185 retval = usb_submit_urb (urb, GFP_ATOMIC);
diff --git a/drivers/usb/input/yealink.c b/drivers/usb/input/yealink.c
index 7291e7a2717b..905bf6398257 100644
--- a/drivers/usb/input/yealink.c
+++ b/drivers/usb/input/yealink.c
@@ -233,11 +233,10 @@ static int map_p1k_to_key(int scancode)
233 * 233 *
234 * The key parameter can be cascaded: key2 << 8 | key1 234 * The key parameter can be cascaded: key2 << 8 | key1
235 */ 235 */
236static void report_key(struct yealink_dev *yld, int key, struct pt_regs *regs) 236static void report_key(struct yealink_dev *yld, int key)
237{ 237{
238 struct input_dev *idev = yld->idev; 238 struct input_dev *idev = yld->idev;
239 239
240 input_regs(idev, regs);
241 if (yld->key_code >= 0) { 240 if (yld->key_code >= 0) {
242 /* old key up */ 241 /* old key up */
243 input_report_key(idev, yld->key_code & 0xff, 0); 242 input_report_key(idev, yld->key_code & 0xff, 0);
@@ -422,7 +421,7 @@ send_update:
422 * error,start 421 * error,start
423 * 422 *
424 */ 423 */
425static void urb_irq_callback(struct urb *urb, struct pt_regs *regs) 424static void urb_irq_callback(struct urb *urb)
426{ 425{
427 struct yealink_dev *yld = urb->context; 426 struct yealink_dev *yld = urb->context;
428 int ret; 427 int ret;
@@ -439,7 +438,7 @@ static void urb_irq_callback(struct urb *urb, struct pt_regs *regs)
439 case CMD_SCANCODE: 438 case CMD_SCANCODE:
440 dbg("get scancode %x", yld->irq_data->data[0]); 439 dbg("get scancode %x", yld->irq_data->data[0]);
441 440
442 report_key(yld, map_p1k_to_key(yld->irq_data->data[0]), regs); 441 report_key(yld, map_p1k_to_key(yld->irq_data->data[0]));
443 break; 442 break;
444 443
445 default: 444 default:
@@ -453,7 +452,7 @@ static void urb_irq_callback(struct urb *urb, struct pt_regs *regs)
453 err("%s - usb_submit_urb failed %d", __FUNCTION__, ret); 452 err("%s - usb_submit_urb failed %d", __FUNCTION__, ret);
454} 453}
455 454
456static void urb_ctl_callback(struct urb *urb, struct pt_regs *regs) 455static void urb_ctl_callback(struct urb *urb)
457{ 456{
458 struct yealink_dev *yld = urb->context; 457 struct yealink_dev *yld = urb->context;
459 int ret; 458 int ret;
diff --git a/drivers/usb/misc/adutux.c b/drivers/usb/misc/adutux.c
index d3963199b6ec..aecd633fe9f6 100644
--- a/drivers/usb/misc/adutux.c
+++ b/drivers/usb/misc/adutux.c
@@ -177,7 +177,7 @@ static void adu_delete(struct adu_device *dev)
177 dbg(2, "%s : leave", __FUNCTION__); 177 dbg(2, "%s : leave", __FUNCTION__);
178} 178}
179 179
180static void adu_interrupt_in_callback(struct urb *urb, struct pt_regs *regs) 180static void adu_interrupt_in_callback(struct urb *urb)
181{ 181{
182 struct adu_device *dev = urb->context; 182 struct adu_device *dev = urb->context;
183 183
@@ -221,7 +221,7 @@ exit:
221 dbg(4," %s : leave, status %d", __FUNCTION__, urb->status); 221 dbg(4," %s : leave, status %d", __FUNCTION__, urb->status);
222} 222}
223 223
224static void adu_interrupt_out_callback(struct urb *urb, struct pt_regs *regs) 224static void adu_interrupt_out_callback(struct urb *urb)
225{ 225{
226 struct adu_device *dev = urb->context; 226 struct adu_device *dev = urb->context;
227 227
diff --git a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c
index fc6cc147996f..6b23a1def9fe 100644
--- a/drivers/usb/misc/appledisplay.c
+++ b/drivers/usb/misc/appledisplay.c
@@ -84,7 +84,7 @@ struct appledisplay {
84static atomic_t count_displays = ATOMIC_INIT(0); 84static atomic_t count_displays = ATOMIC_INIT(0);
85static struct workqueue_struct *wq; 85static struct workqueue_struct *wq;
86 86
87static void appledisplay_complete(struct urb *urb, struct pt_regs *regs) 87static void appledisplay_complete(struct urb *urb)
88{ 88{
89 struct appledisplay *pdata = urb->context; 89 struct appledisplay *pdata = urb->context;
90 unsigned long flags; 90 unsigned long flags;
diff --git a/drivers/usb/misc/auerswald.c b/drivers/usb/misc/auerswald.c
index 4fd2110b3411..0be9d62d62ae 100644
--- a/drivers/usb/misc/auerswald.c
+++ b/drivers/usb/misc/auerswald.c
@@ -267,7 +267,7 @@ typedef struct
267 267
268/*-------------------------------------------------------------------*/ 268/*-------------------------------------------------------------------*/
269/* Forwards */ 269/* Forwards */
270static void auerswald_ctrlread_complete (struct urb * urb, struct pt_regs *regs); 270static void auerswald_ctrlread_complete (struct urb * urb);
271static void auerswald_removeservice (pauerswald_t cp, pauerscon_t scp); 271static void auerswald_removeservice (pauerswald_t cp, pauerscon_t scp);
272static struct usb_driver auerswald_driver; 272static struct usb_driver auerswald_driver;
273 273
@@ -277,7 +277,7 @@ static struct usb_driver auerswald_driver;
277/* -------------------------- */ 277/* -------------------------- */
278 278
279/* completion function for chained urbs */ 279/* completion function for chained urbs */
280static void auerchain_complete (struct urb * urb, struct pt_regs *regs) 280static void auerchain_complete (struct urb * urb)
281{ 281{
282 unsigned long flags; 282 unsigned long flags;
283 int result; 283 int result;
@@ -296,7 +296,7 @@ static void auerchain_complete (struct urb * urb, struct pt_regs *regs)
296 NOTE: this function may lead to more urbs submitted into the chain. 296 NOTE: this function may lead to more urbs submitted into the chain.
297 (no chain lock at calling complete()!) 297 (no chain lock at calling complete()!)
298 acp->active != NULL is protecting us against recursion.*/ 298 acp->active != NULL is protecting us against recursion.*/
299 urb->complete (urb, regs); 299 urb->complete (urb);
300 300
301 /* detach element from chain data structure */ 301 /* detach element from chain data structure */
302 spin_lock_irqsave (&acp->lock, flags); 302 spin_lock_irqsave (&acp->lock, flags);
@@ -331,7 +331,7 @@ static void auerchain_complete (struct urb * urb, struct pt_regs *regs)
331 urb->status = result; 331 urb->status = result;
332 dbg("auerchain_complete: usb_submit_urb with error code %d", result); 332 dbg("auerchain_complete: usb_submit_urb with error code %d", result);
333 /* and do error handling via *this* completion function (recursive) */ 333 /* and do error handling via *this* completion function (recursive) */
334 auerchain_complete( urb, NULL); 334 auerchain_complete( urb);
335 } 335 }
336 } else { 336 } else {
337 /* simple return without submitting a new urb. 337 /* simple return without submitting a new urb.
@@ -408,7 +408,7 @@ static int auerchain_submit_urb_list (pauerchain_t acp, struct urb * urb, int ea
408 urb->status = result; 408 urb->status = result;
409 dbg("auerchain_submit_urb: usb_submit_urb with error code %d", result); 409 dbg("auerchain_submit_urb: usb_submit_urb with error code %d", result);
410 /* and do error handling via completion function */ 410 /* and do error handling via completion function */
411 auerchain_complete( urb, NULL); 411 auerchain_complete( urb);
412 } 412 }
413 } 413 }
414 414
@@ -448,7 +448,7 @@ static int auerchain_unlink_urb (pauerchain_t acp, struct urb * urb)
448 spin_unlock_irqrestore (&acp->lock, flags); 448 spin_unlock_irqrestore (&acp->lock, flags);
449 dbg ("unlink waiting urb"); 449 dbg ("unlink waiting urb");
450 urb->status = -ENOENT; 450 urb->status = -ENOENT;
451 urb->complete (urb, NULL); 451 urb->complete (urb);
452 return 0; 452 return 0;
453 } 453 }
454 } 454 }
@@ -505,7 +505,7 @@ static void auerchain_unlink_all (pauerchain_t acp)
505 spin_unlock_irqrestore (&acp->lock, flags); 505 spin_unlock_irqrestore (&acp->lock, flags);
506 dbg ("unlink waiting urb"); 506 dbg ("unlink waiting urb");
507 urbp->status = -ENOENT; 507 urbp->status = -ENOENT;
508 urbp->complete (urbp, NULL); 508 urbp->complete (urbp);
509 spin_lock_irqsave (&acp->lock, flags); 509 spin_lock_irqsave (&acp->lock, flags);
510 } 510 }
511 spin_unlock_irqrestore (&acp->lock, flags); 511 spin_unlock_irqrestore (&acp->lock, flags);
@@ -591,7 +591,7 @@ ac_fail:/* free the elements */
591 591
592 592
593/* completion handler for synchronous chained URBs */ 593/* completion handler for synchronous chained URBs */
594static void auerchain_blocking_completion (struct urb *urb, struct pt_regs *regs) 594static void auerchain_blocking_completion (struct urb *urb)
595{ 595{
596 pauerchain_chs_t pchs = (pauerchain_chs_t)urb->context; 596 pauerchain_chs_t pchs = (pauerchain_chs_t)urb->context;
597 pchs->done = 1; 597 pchs->done = 1;
@@ -846,7 +846,7 @@ static int auerswald_status_retry (int status)
846} 846}
847 847
848/* Completion of asynchronous write block */ 848/* Completion of asynchronous write block */
849static void auerchar_ctrlwrite_complete (struct urb * urb, struct pt_regs *regs) 849static void auerchar_ctrlwrite_complete (struct urb * urb)
850{ 850{
851 pauerbuf_t bp = (pauerbuf_t) urb->context; 851 pauerbuf_t bp = (pauerbuf_t) urb->context;
852 pauerswald_t cp = ((pauerswald_t)((char *)(bp->list)-(unsigned long)(&((pauerswald_t)0)->bufctl))); 852 pauerswald_t cp = ((pauerswald_t)((char *)(bp->list)-(unsigned long)(&((pauerswald_t)0)->bufctl)));
@@ -859,7 +859,7 @@ static void auerchar_ctrlwrite_complete (struct urb * urb, struct pt_regs *regs)
859} 859}
860 860
861/* Completion handler for dummy retry packet */ 861/* Completion handler for dummy retry packet */
862static void auerswald_ctrlread_wretcomplete (struct urb * urb, struct pt_regs *regs) 862static void auerswald_ctrlread_wretcomplete (struct urb * urb)
863{ 863{
864 pauerbuf_t bp = (pauerbuf_t) urb->context; 864 pauerbuf_t bp = (pauerbuf_t) urb->context;
865 pauerswald_t cp; 865 pauerswald_t cp;
@@ -893,12 +893,12 @@ static void auerswald_ctrlread_wretcomplete (struct urb * urb, struct pt_regs *r
893 if (ret) { 893 if (ret) {
894 dbg ("auerswald_ctrlread_complete: nonzero result of auerchain_submit_urb_list %d", ret); 894 dbg ("auerswald_ctrlread_complete: nonzero result of auerchain_submit_urb_list %d", ret);
895 bp->urbp->status = ret; 895 bp->urbp->status = ret;
896 auerswald_ctrlread_complete (bp->urbp, NULL); 896 auerswald_ctrlread_complete (bp->urbp);
897 } 897 }
898} 898}
899 899
900/* completion handler for receiving of control messages */ 900/* completion handler for receiving of control messages */
901static void auerswald_ctrlread_complete (struct urb * urb, struct pt_regs *regs) 901static void auerswald_ctrlread_complete (struct urb * urb)
902{ 902{
903 unsigned int serviceid; 903 unsigned int serviceid;
904 pauerswald_t cp; 904 pauerswald_t cp;
@@ -941,7 +941,7 @@ static void auerswald_ctrlread_complete (struct urb * urb, struct pt_regs *regs)
941 if (ret) { 941 if (ret) {
942 dbg ("auerswald_ctrlread_complete: nonzero result of auerchain_submit_urb_list %d", ret); 942 dbg ("auerswald_ctrlread_complete: nonzero result of auerchain_submit_urb_list %d", ret);
943 bp->urbp->status = ret; 943 bp->urbp->status = ret;
944 auerswald_ctrlread_wretcomplete (bp->urbp, regs); 944 auerswald_ctrlread_wretcomplete (bp->urbp);
945 } 945 }
946 return; 946 return;
947 } 947 }
@@ -970,7 +970,7 @@ static void auerswald_ctrlread_complete (struct urb * urb, struct pt_regs *regs)
970 messages from the USB device. 970 messages from the USB device.
971*/ 971*/
972/* int completion handler. */ 972/* int completion handler. */
973static void auerswald_int_complete (struct urb * urb, struct pt_regs *regs) 973static void auerswald_int_complete (struct urb * urb)
974{ 974{
975 unsigned long flags; 975 unsigned long flags;
976 unsigned int channelid; 976 unsigned int channelid;
@@ -1070,7 +1070,7 @@ static void auerswald_int_complete (struct urb * urb, struct pt_regs *regs)
1070 if (ret) { 1070 if (ret) {
1071 dbg ("auerswald_int_complete: nonzero result of auerchain_submit_urb %d", ret); 1071 dbg ("auerswald_int_complete: nonzero result of auerchain_submit_urb %d", ret);
1072 bp->urbp->status = ret; 1072 bp->urbp->status = ret;
1073 auerswald_ctrlread_complete( bp->urbp, NULL); 1073 auerswald_ctrlread_complete( bp->urbp);
1074 /* here applies the same problem as above: device locking! */ 1074 /* here applies the same problem as above: device locking! */
1075 } 1075 }
1076exit: 1076exit:
diff --git a/drivers/usb/misc/ftdi-elan.c b/drivers/usb/misc/ftdi-elan.c
index c6f2f488a40f..0eb26a26115b 100644
--- a/drivers/usb/misc/ftdi-elan.c
+++ b/drivers/usb/misc/ftdi-elan.c
@@ -758,7 +758,7 @@ static ssize_t ftdi_elan_read(struct file *file, char __user *buffer,
758 return bytes_read; 758 return bytes_read;
759} 759}
760 760
761static void ftdi_elan_write_bulk_callback(struct urb *urb, struct pt_regs *regs) 761static void ftdi_elan_write_bulk_callback(struct urb *urb)
762{ 762{
763 struct usb_ftdi *ftdi = (struct usb_ftdi *)urb->context; 763 struct usb_ftdi *ftdi = (struct usb_ftdi *)urb->context;
764 if (urb->status && !(urb->status == -ENOENT || urb->status == 764 if (urb->status && !(urb->status == -ENOENT || urb->status ==
diff --git a/drivers/usb/misc/ldusb.c b/drivers/usb/misc/ldusb.c
index 10b640339d8d..788a11e6772f 100644
--- a/drivers/usb/misc/ldusb.c
+++ b/drivers/usb/misc/ldusb.c
@@ -212,7 +212,7 @@ static void ld_usb_delete(struct ld_usb *dev)
212/** 212/**
213 * ld_usb_interrupt_in_callback 213 * ld_usb_interrupt_in_callback
214 */ 214 */
215static void ld_usb_interrupt_in_callback(struct urb *urb, struct pt_regs *regs) 215static void ld_usb_interrupt_in_callback(struct urb *urb)
216{ 216{
217 struct ld_usb *dev = urb->context; 217 struct ld_usb *dev = urb->context;
218 size_t *actual_buffer; 218 size_t *actual_buffer;
@@ -264,7 +264,7 @@ exit:
264/** 264/**
265 * ld_usb_interrupt_out_callback 265 * ld_usb_interrupt_out_callback
266 */ 266 */
267static void ld_usb_interrupt_out_callback(struct urb *urb, struct pt_regs *regs) 267static void ld_usb_interrupt_out_callback(struct urb *urb)
268{ 268{
269 struct ld_usb *dev = urb->context; 269 struct ld_usb *dev = urb->context;
270 270
diff --git a/drivers/usb/misc/legousbtower.c b/drivers/usb/misc/legousbtower.c
index 77c36e63c7bf..27089497e717 100644
--- a/drivers/usb/misc/legousbtower.c
+++ b/drivers/usb/misc/legousbtower.c
@@ -248,8 +248,8 @@ static loff_t tower_llseek (struct file *file, loff_t off, int whence);
248 248
249static void tower_abort_transfers (struct lego_usb_tower *dev); 249static void tower_abort_transfers (struct lego_usb_tower *dev);
250static void tower_check_for_read_packet (struct lego_usb_tower *dev); 250static void tower_check_for_read_packet (struct lego_usb_tower *dev);
251static void tower_interrupt_in_callback (struct urb *urb, struct pt_regs *regs); 251static void tower_interrupt_in_callback (struct urb *urb);
252static void tower_interrupt_out_callback (struct urb *urb, struct pt_regs *regs); 252static void tower_interrupt_out_callback (struct urb *urb);
253 253
254static int tower_probe (struct usb_interface *interface, const struct usb_device_id *id); 254static int tower_probe (struct usb_interface *interface, const struct usb_device_id *id);
255static void tower_disconnect (struct usb_interface *interface); 255static void tower_disconnect (struct usb_interface *interface);
@@ -755,7 +755,7 @@ exit:
755/** 755/**
756 * tower_interrupt_in_callback 756 * tower_interrupt_in_callback
757 */ 757 */
758static void tower_interrupt_in_callback (struct urb *urb, struct pt_regs *regs) 758static void tower_interrupt_in_callback (struct urb *urb)
759{ 759{
760 struct lego_usb_tower *dev = (struct lego_usb_tower *)urb->context; 760 struct lego_usb_tower *dev = (struct lego_usb_tower *)urb->context;
761 int retval; 761 int retval;
@@ -811,7 +811,7 @@ exit:
811/** 811/**
812 * tower_interrupt_out_callback 812 * tower_interrupt_out_callback
813 */ 813 */
814static void tower_interrupt_out_callback (struct urb *urb, struct pt_regs *regs) 814static void tower_interrupt_out_callback (struct urb *urb)
815{ 815{
816 struct lego_usb_tower *dev = (struct lego_usb_tower *)urb->context; 816 struct lego_usb_tower *dev = (struct lego_usb_tower *)urb->context;
817 817
diff --git a/drivers/usb/misc/phidgetkit.c b/drivers/usb/misc/phidgetkit.c
index 78e419904abf..abb4dcd811ac 100644
--- a/drivers/usb/misc/phidgetkit.c
+++ b/drivers/usb/misc/phidgetkit.c
@@ -300,7 +300,7 @@ out:
300 300
301static DEVICE_ATTR(lcd, S_IWUGO, NULL, enable_lcd_files); 301static DEVICE_ATTR(lcd, S_IWUGO, NULL, enable_lcd_files);
302 302
303static void interfacekit_irq(struct urb *urb, struct pt_regs *regs) 303static void interfacekit_irq(struct urb *urb)
304{ 304{
305 struct interfacekit *kit = urb->context; 305 struct interfacekit *kit = urb->context;
306 unsigned char *buffer = kit->data; 306 unsigned char *buffer = kit->data;
diff --git a/drivers/usb/misc/phidgetmotorcontrol.c b/drivers/usb/misc/phidgetmotorcontrol.c
index 6b59b620d616..5c780cab92e0 100644
--- a/drivers/usb/misc/phidgetmotorcontrol.c
+++ b/drivers/usb/misc/phidgetmotorcontrol.c
@@ -90,7 +90,7 @@ static int set_motor(struct motorcontrol *mc, int motor)
90 return retval < 0 ? retval : 0; 90 return retval < 0 ? retval : 0;
91} 91}
92 92
93static void motorcontrol_irq(struct urb *urb, struct pt_regs *regs) 93static void motorcontrol_irq(struct urb *urb)
94{ 94{
95 struct motorcontrol *mc = urb->context; 95 struct motorcontrol *mc = urb->context;
96 unsigned char *buffer = mc->data; 96 unsigned char *buffer = mc->data;
diff --git a/drivers/usb/misc/sisusbvga/sisusb.c b/drivers/usb/misc/sisusbvga/sisusb.c
index a287836e39f1..b99ca9c79821 100644
--- a/drivers/usb/misc/sisusbvga/sisusb.c
+++ b/drivers/usb/misc/sisusbvga/sisusb.c
@@ -209,7 +209,7 @@ sisusb_free_outbuf(struct sisusb_usb_data *sisusb, int index)
209/* completion callback */ 209/* completion callback */
210 210
211static void 211static void
212sisusb_bulk_completeout(struct urb *urb, struct pt_regs *regs) 212sisusb_bulk_completeout(struct urb *urb)
213{ 213{
214 struct sisusb_urb_context *context = urb->context; 214 struct sisusb_urb_context *context = urb->context;
215 struct sisusb_usb_data *sisusb; 215 struct sisusb_usb_data *sisusb;
@@ -288,7 +288,7 @@ sisusb_bulkout_msg(struct sisusb_usb_data *sisusb, int index, unsigned int pipe,
288/* completion callback */ 288/* completion callback */
289 289
290static void 290static void
291sisusb_bulk_completein(struct urb *urb, struct pt_regs *regs) 291sisusb_bulk_completein(struct urb *urb)
292{ 292{
293 struct sisusb_usb_data *sisusb = urb->context; 293 struct sisusb_usb_data *sisusb = urb->context;
294 294
diff --git a/drivers/usb/misc/usblcd.c b/drivers/usb/misc/usblcd.c
index dbaca9f1efad..ada2ebc464ae 100644
--- a/drivers/usb/misc/usblcd.c
+++ b/drivers/usb/misc/usblcd.c
@@ -165,7 +165,7 @@ static int lcd_ioctl(struct inode *inode, struct file *file, unsigned int cmd, u
165 return 0; 165 return 0;
166} 166}
167 167
168static void lcd_write_bulk_callback(struct urb *urb, struct pt_regs *regs) 168static void lcd_write_bulk_callback(struct urb *urb)
169{ 169{
170 struct usb_lcd *dev; 170 struct usb_lcd *dev;
171 171
diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c
index 983e104dd452..7c2cbdf81d20 100644
--- a/drivers/usb/misc/usbtest.c
+++ b/drivers/usb/misc/usbtest.c
@@ -198,7 +198,7 @@ found:
198 * them with non-zero test data (or test for it) when appropriate. 198 * them with non-zero test data (or test for it) when appropriate.
199 */ 199 */
200 200
201static void simple_callback (struct urb *urb, struct pt_regs *regs) 201static void simple_callback (struct urb *urb)
202{ 202{
203 complete ((struct completion *) urb->context); 203 complete ((struct completion *) urb->context);
204} 204}
@@ -730,7 +730,7 @@ struct subcase {
730 int expected; 730 int expected;
731}; 731};
732 732
733static void ctrl_complete (struct urb *urb, struct pt_regs *regs) 733static void ctrl_complete (struct urb *urb)
734{ 734{
735 struct ctrl_ctx *ctx = urb->context; 735 struct ctrl_ctx *ctx = urb->context;
736 struct usb_ctrlrequest *reqp; 736 struct usb_ctrlrequest *reqp;
@@ -1035,7 +1035,7 @@ cleanup:
1035 1035
1036/*-------------------------------------------------------------------------*/ 1036/*-------------------------------------------------------------------------*/
1037 1037
1038static void unlink1_callback (struct urb *urb, struct pt_regs *regs) 1038static void unlink1_callback (struct urb *urb)
1039{ 1039{
1040 int status = urb->status; 1040 int status = urb->status;
1041 1041
@@ -1343,7 +1343,7 @@ struct iso_context {
1343 struct usbtest_dev *dev; 1343 struct usbtest_dev *dev;
1344}; 1344};
1345 1345
1346static void iso_callback (struct urb *urb, struct pt_regs *regs) 1346static void iso_callback (struct urb *urb)
1347{ 1347{
1348 struct iso_context *ctx = urb->context; 1348 struct iso_context *ctx = urb->context;
1349 1349
diff --git a/drivers/usb/misc/uss720.c b/drivers/usb/misc/uss720.c
index 4081990b7d1a..7e8a0acd52ee 100644
--- a/drivers/usb/misc/uss720.c
+++ b/drivers/usb/misc/uss720.c
@@ -106,7 +106,7 @@ static void destroy_async(struct kref *kref)
106 106
107/* --------------------------------------------------------------------- */ 107/* --------------------------------------------------------------------- */
108 108
109static void async_complete(struct urb *urb, struct pt_regs *ptregs) 109static void async_complete(struct urb *urb)
110{ 110{
111 struct uss720_async_request *rq; 111 struct uss720_async_request *rq;
112 struct parport *pp; 112 struct parport *pp;
@@ -127,7 +127,7 @@ static void async_complete(struct urb *urb, struct pt_regs *ptregs)
127#endif 127#endif
128 /* if nAck interrupts are enabled and we have an interrupt, call the interrupt procedure */ 128 /* if nAck interrupts are enabled and we have an interrupt, call the interrupt procedure */
129 if (rq->reg[2] & rq->reg[1] & 0x10 && pp) 129 if (rq->reg[2] & rq->reg[1] & 0x10 && pp)
130 parport_generic_irq(0, pp, NULL); 130 parport_generic_irq(0, pp);
131 } 131 }
132 complete(&rq->compl); 132 complete(&rq->compl);
133 kref_put(&rq->ref_count, destroy_async); 133 kref_put(&rq->ref_count, destroy_async);
diff --git a/drivers/usb/net/asix.c b/drivers/usb/net/asix.c
index 9c0eacf7055c..c73dd224aa76 100644
--- a/drivers/usb/net/asix.c
+++ b/drivers/usb/net/asix.c
@@ -214,7 +214,7 @@ static int asix_write_cmd(struct usbnet *dev, u8 cmd, u16 value, u16 index,
214 USB_CTRL_SET_TIMEOUT); 214 USB_CTRL_SET_TIMEOUT);
215} 215}
216 216
217static void asix_async_cmd_callback(struct urb *urb, struct pt_regs *regs) 217static void asix_async_cmd_callback(struct urb *urb)
218{ 218{
219 struct usb_ctrlrequest *req = (struct usb_ctrlrequest *)urb->context; 219 struct usb_ctrlrequest *req = (struct usb_ctrlrequest *)urb->context;
220 220
diff --git a/drivers/usb/net/catc.c b/drivers/usb/net/catc.c
index be5f5e142dd0..f740325abac4 100644
--- a/drivers/usb/net/catc.c
+++ b/drivers/usb/net/catc.c
@@ -223,7 +223,7 @@ struct catc {
223 * Receive routines. 223 * Receive routines.
224 */ 224 */
225 225
226static void catc_rx_done(struct urb *urb, struct pt_regs *regs) 226static void catc_rx_done(struct urb *urb)
227{ 227{
228 struct catc *catc = urb->context; 228 struct catc *catc = urb->context;
229 u8 *pkt_start = urb->transfer_buffer; 229 u8 *pkt_start = urb->transfer_buffer;
@@ -289,7 +289,7 @@ static void catc_rx_done(struct urb *urb, struct pt_regs *regs)
289 } 289 }
290} 290}
291 291
292static void catc_irq_done(struct urb *urb, struct pt_regs *regs) 292static void catc_irq_done(struct urb *urb)
293{ 293{
294 struct catc *catc = urb->context; 294 struct catc *catc = urb->context;
295 u8 *data = urb->transfer_buffer; 295 u8 *data = urb->transfer_buffer;
@@ -376,7 +376,7 @@ static void catc_tx_run(struct catc *catc)
376 catc->netdev->trans_start = jiffies; 376 catc->netdev->trans_start = jiffies;
377} 377}
378 378
379static void catc_tx_done(struct urb *urb, struct pt_regs *regs) 379static void catc_tx_done(struct urb *urb)
380{ 380{
381 struct catc *catc = urb->context; 381 struct catc *catc = urb->context;
382 unsigned long flags; 382 unsigned long flags;
@@ -486,7 +486,7 @@ static void catc_ctrl_run(struct catc *catc)
486 err("submit(ctrl_urb) status %d", status); 486 err("submit(ctrl_urb) status %d", status);
487} 487}
488 488
489static void catc_ctrl_done(struct urb *urb, struct pt_regs *regs) 489static void catc_ctrl_done(struct urb *urb)
490{ 490{
491 struct catc *catc = urb->context; 491 struct catc *catc = urb->context;
492 struct ctrl_queue *q; 492 struct ctrl_queue *q;
diff --git a/drivers/usb/net/gl620a.c b/drivers/usb/net/gl620a.c
index 3155f25f1d48..a3242be21959 100644
--- a/drivers/usb/net/gl620a.c
+++ b/drivers/usb/net/gl620a.c
@@ -106,7 +106,7 @@ static inline int gl_control_write(struct usbnet *dev, u8 request, u16 value)
106 return retval; 106 return retval;
107} 107}
108 108
109static void gl_interrupt_complete(struct urb *urb, struct pt_regs *regs) 109static void gl_interrupt_complete(struct urb *urb)
110{ 110{
111 int status = urb->status; 111 int status = urb->status;
112 112
diff --git a/drivers/usb/net/kaweth.c b/drivers/usb/net/kaweth.c
index 544d41fe9b92..957d4ad316f9 100644
--- a/drivers/usb/net/kaweth.c
+++ b/drivers/usb/net/kaweth.c
@@ -475,7 +475,7 @@ static int kaweth_reset(struct kaweth_device *kaweth)
475 return result; 475 return result;
476} 476}
477 477
478static void kaweth_usb_receive(struct urb *, struct pt_regs *regs); 478static void kaweth_usb_receive(struct urb *);
479static int kaweth_resubmit_rx_urb(struct kaweth_device *, gfp_t); 479static int kaweth_resubmit_rx_urb(struct kaweth_device *, gfp_t);
480 480
481/**************************************************************** 481/****************************************************************
@@ -500,7 +500,7 @@ static void kaweth_resubmit_int_urb(struct kaweth_device *kaweth, gfp_t mf)
500 kaweth->dev->devpath, status); 500 kaweth->dev->devpath, status);
501} 501}
502 502
503static void int_callback(struct urb *u, struct pt_regs *regs) 503static void int_callback(struct urb *u)
504{ 504{
505 struct kaweth_device *kaweth = u->context; 505 struct kaweth_device *kaweth = u->context;
506 int act_state; 506 int act_state;
@@ -581,7 +581,7 @@ static void kaweth_async_set_rx_mode(struct kaweth_device *kaweth);
581/**************************************************************** 581/****************************************************************
582 * kaweth_usb_receive 582 * kaweth_usb_receive
583 ****************************************************************/ 583 ****************************************************************/
584static void kaweth_usb_receive(struct urb *urb, struct pt_regs *regs) 584static void kaweth_usb_receive(struct urb *urb)
585{ 585{
586 struct kaweth_device *kaweth = urb->context; 586 struct kaweth_device *kaweth = urb->context;
587 struct net_device *net = kaweth->net; 587 struct net_device *net = kaweth->net;
@@ -725,7 +725,7 @@ static struct ethtool_ops ops = {
725/**************************************************************** 725/****************************************************************
726 * kaweth_usb_transmit_complete 726 * kaweth_usb_transmit_complete
727 ****************************************************************/ 727 ****************************************************************/
728static void kaweth_usb_transmit_complete(struct urb *urb, struct pt_regs *regs) 728static void kaweth_usb_transmit_complete(struct urb *urb)
729{ 729{
730 struct kaweth_device *kaweth = urb->context; 730 struct kaweth_device *kaweth = urb->context;
731 struct sk_buff *skb = kaweth->tx_skb; 731 struct sk_buff *skb = kaweth->tx_skb;
@@ -1154,7 +1154,7 @@ struct usb_api_data {
1154/*-------------------------------------------------------------------* 1154/*-------------------------------------------------------------------*
1155 * completion handler for compatibility wrappers (sync control/bulk) * 1155 * completion handler for compatibility wrappers (sync control/bulk) *
1156 *-------------------------------------------------------------------*/ 1156 *-------------------------------------------------------------------*/
1157static void usb_api_blocking_completion(struct urb *urb, struct pt_regs *regs) 1157static void usb_api_blocking_completion(struct urb *urb)
1158{ 1158{
1159 struct usb_api_data *awd = (struct usb_api_data *)urb->context; 1159 struct usb_api_data *awd = (struct usb_api_data *)urb->context;
1160 1160
diff --git a/drivers/usb/net/net1080.c b/drivers/usb/net/net1080.c
index 301baa72bac7..ce00de8f13a1 100644
--- a/drivers/usb/net/net1080.c
+++ b/drivers/usb/net/net1080.c
@@ -368,7 +368,7 @@ static int net1080_check_connect(struct usbnet *dev)
368 return 0; 368 return 0;
369} 369}
370 370
371static void nc_flush_complete(struct urb *urb, struct pt_regs *regs) 371static void nc_flush_complete(struct urb *urb)
372{ 372{
373 kfree(urb->context); 373 kfree(urb->context);
374 usb_free_urb(urb); 374 usb_free_urb(urb);
diff --git a/drivers/usb/net/pegasus.c b/drivers/usb/net/pegasus.c
index 918cf5a77c08..33abbd2176b6 100644
--- a/drivers/usb/net/pegasus.c
+++ b/drivers/usb/net/pegasus.c
@@ -96,7 +96,7 @@ MODULE_DEVICE_TABLE(usb, pegasus_ids);
96 96
97static int update_eth_regs_async(pegasus_t *); 97static int update_eth_regs_async(pegasus_t *);
98/* Aargh!!! I _really_ hate such tweaks */ 98/* Aargh!!! I _really_ hate such tweaks */
99static void ctrl_callback(struct urb *urb, struct pt_regs *regs) 99static void ctrl_callback(struct urb *urb)
100{ 100{
101 pegasus_t *pegasus = urb->context; 101 pegasus_t *pegasus = urb->context;
102 102
@@ -605,7 +605,7 @@ static inline struct sk_buff *pull_skb(pegasus_t * pegasus)
605 return NULL; 605 return NULL;
606} 606}
607 607
608static void read_bulk_callback(struct urb *urb, struct pt_regs *regs) 608static void read_bulk_callback(struct urb *urb)
609{ 609{
610 pegasus_t *pegasus = urb->context; 610 pegasus_t *pegasus = urb->context;
611 struct net_device *net; 611 struct net_device *net;
@@ -764,7 +764,7 @@ done:
764 spin_unlock_irqrestore(&pegasus->rx_pool_lock, flags); 764 spin_unlock_irqrestore(&pegasus->rx_pool_lock, flags);
765} 765}
766 766
767static void write_bulk_callback(struct urb *urb, struct pt_regs *regs) 767static void write_bulk_callback(struct urb *urb)
768{ 768{
769 pegasus_t *pegasus = urb->context; 769 pegasus_t *pegasus = urb->context;
770 struct net_device *net = pegasus->net; 770 struct net_device *net = pegasus->net;
@@ -801,7 +801,7 @@ static void write_bulk_callback(struct urb *urb, struct pt_regs *regs)
801 netif_wake_queue(net); 801 netif_wake_queue(net);
802} 802}
803 803
804static void intr_callback(struct urb *urb, struct pt_regs *regs) 804static void intr_callback(struct urb *urb)
805{ 805{
806 pegasus_t *pegasus = urb->context; 806 pegasus_t *pegasus = urb->context;
807 struct net_device *net; 807 struct net_device *net;
@@ -1226,7 +1226,7 @@ static void pegasus_set_multicast(struct net_device *net)
1226 } 1226 }
1227 1227
1228 pegasus->flags |= ETH_REGS_CHANGE; 1228 pegasus->flags |= ETH_REGS_CHANGE;
1229 ctrl_callback(pegasus->ctrl_urb, NULL); 1229 ctrl_callback(pegasus->ctrl_urb);
1230} 1230}
1231 1231
1232static __u8 mii_phy_probe(pegasus_t * pegasus) 1232static __u8 mii_phy_probe(pegasus_t * pegasus)
@@ -1433,11 +1433,11 @@ static int pegasus_resume (struct usb_interface *intf)
1433 if (netif_running(pegasus->net)) { 1433 if (netif_running(pegasus->net)) {
1434 pegasus->rx_urb->status = 0; 1434 pegasus->rx_urb->status = 0;
1435 pegasus->rx_urb->actual_length = 0; 1435 pegasus->rx_urb->actual_length = 0;
1436 read_bulk_callback(pegasus->rx_urb, NULL); 1436 read_bulk_callback(pegasus->rx_urb);
1437 1437
1438 pegasus->intr_urb->status = 0; 1438 pegasus->intr_urb->status = 0;
1439 pegasus->intr_urb->actual_length = 0; 1439 pegasus->intr_urb->actual_length = 0;
1440 intr_callback(pegasus->intr_urb, NULL); 1440 intr_callback(pegasus->intr_urb);
1441 } 1441 }
1442 queue_delayed_work(pegasus_workqueue, &pegasus->carrier_check, 1442 queue_delayed_work(pegasus_workqueue, &pegasus->carrier_check,
1443 CARRIER_CHECK_DELAY); 1443 CARRIER_CHECK_DELAY);
diff --git a/drivers/usb/net/rtl8150.c b/drivers/usb/net/rtl8150.c
index 2364c2099387..72171f94ded4 100644
--- a/drivers/usb/net/rtl8150.c
+++ b/drivers/usb/net/rtl8150.c
@@ -208,7 +208,7 @@ static int set_registers(rtl8150_t * dev, u16 indx, u16 size, void *data)
208 indx, 0, data, size, 500); 208 indx, 0, data, size, 500);
209} 209}
210 210
211static void ctrl_callback(struct urb *urb, struct pt_regs *regs) 211static void ctrl_callback(struct urb *urb)
212{ 212{
213 rtl8150_t *dev; 213 rtl8150_t *dev;
214 214
@@ -415,7 +415,7 @@ static inline struct sk_buff *pull_skb(rtl8150_t *dev)
415 return NULL; 415 return NULL;
416} 416}
417 417
418static void read_bulk_callback(struct urb *urb, struct pt_regs *regs) 418static void read_bulk_callback(struct urb *urb)
419{ 419{
420 rtl8150_t *dev; 420 rtl8150_t *dev;
421 unsigned pkt_len, res; 421 unsigned pkt_len, res;
@@ -525,7 +525,7 @@ tlsched:
525 tasklet_schedule(&dev->tl); 525 tasklet_schedule(&dev->tl);
526} 526}
527 527
528static void write_bulk_callback(struct urb *urb, struct pt_regs *regs) 528static void write_bulk_callback(struct urb *urb)
529{ 529{
530 rtl8150_t *dev; 530 rtl8150_t *dev;
531 531
@@ -541,7 +541,7 @@ static void write_bulk_callback(struct urb *urb, struct pt_regs *regs)
541 netif_wake_queue(dev->netdev); 541 netif_wake_queue(dev->netdev);
542} 542}
543 543
544static void intr_callback(struct urb *urb, struct pt_regs *regs) 544static void intr_callback(struct urb *urb)
545{ 545{
546 rtl8150_t *dev; 546 rtl8150_t *dev;
547 __u8 *d; 547 __u8 *d;
@@ -617,11 +617,11 @@ static int rtl8150_resume(struct usb_interface *intf)
617 if (netif_running(dev->netdev)) { 617 if (netif_running(dev->netdev)) {
618 dev->rx_urb->status = 0; 618 dev->rx_urb->status = 0;
619 dev->rx_urb->actual_length = 0; 619 dev->rx_urb->actual_length = 0;
620 read_bulk_callback(dev->rx_urb, NULL); 620 read_bulk_callback(dev->rx_urb);
621 621
622 dev->intr_urb->status = 0; 622 dev->intr_urb->status = 0;
623 dev->intr_urb->actual_length = 0; 623 dev->intr_urb->actual_length = 0;
624 intr_callback(dev->intr_urb, NULL); 624 intr_callback(dev->intr_urb);
625 } 625 }
626 return 0; 626 return 0;
627} 627}
diff --git a/drivers/usb/net/usbnet.c b/drivers/usb/net/usbnet.c
index 98a522f1e264..24bd3486ee63 100644
--- a/drivers/usb/net/usbnet.c
+++ b/drivers/usb/net/usbnet.c
@@ -158,7 +158,7 @@ int usbnet_get_endpoints(struct usbnet *dev, struct usb_interface *intf)
158} 158}
159EXPORT_SYMBOL_GPL(usbnet_get_endpoints); 159EXPORT_SYMBOL_GPL(usbnet_get_endpoints);
160 160
161static void intr_complete (struct urb *urb, struct pt_regs *regs); 161static void intr_complete (struct urb *urb);
162 162
163static int init_status (struct usbnet *dev, struct usb_interface *intf) 163static int init_status (struct usbnet *dev, struct usb_interface *intf)
164{ 164{
@@ -295,7 +295,7 @@ EXPORT_SYMBOL_GPL(usbnet_defer_kevent);
295 295
296/*-------------------------------------------------------------------------*/ 296/*-------------------------------------------------------------------------*/
297 297
298static void rx_complete (struct urb *urb, struct pt_regs *regs); 298static void rx_complete (struct urb *urb);
299 299
300static void rx_submit (struct usbnet *dev, struct urb *urb, gfp_t flags) 300static void rx_submit (struct usbnet *dev, struct urb *urb, gfp_t flags)
301{ 301{
@@ -383,7 +383,7 @@ error:
383 383
384/*-------------------------------------------------------------------------*/ 384/*-------------------------------------------------------------------------*/
385 385
386static void rx_complete (struct urb *urb, struct pt_regs *regs) 386static void rx_complete (struct urb *urb)
387{ 387{
388 struct sk_buff *skb = (struct sk_buff *) urb->context; 388 struct sk_buff *skb = (struct sk_buff *) urb->context;
389 struct skb_data *entry = (struct skb_data *) skb->cb; 389 struct skb_data *entry = (struct skb_data *) skb->cb;
@@ -467,7 +467,7 @@ block:
467 devdbg (dev, "no read resubmitted"); 467 devdbg (dev, "no read resubmitted");
468} 468}
469 469
470static void intr_complete (struct urb *urb, struct pt_regs *regs) 470static void intr_complete (struct urb *urb)
471{ 471{
472 struct usbnet *dev = urb->context; 472 struct usbnet *dev = urb->context;
473 int status = urb->status; 473 int status = urb->status;
@@ -797,7 +797,7 @@ kevent (void *data)
797 797
798/*-------------------------------------------------------------------------*/ 798/*-------------------------------------------------------------------------*/
799 799
800static void tx_complete (struct urb *urb, struct pt_regs *regs) 800static void tx_complete (struct urb *urb)
801{ 801{
802 struct sk_buff *skb = (struct sk_buff *) urb->context; 802 struct sk_buff *skb = (struct sk_buff *) urb->context;
803 struct skb_data *entry = (struct skb_data *) skb->cb; 803 struct skb_data *entry = (struct skb_data *) skb->cb;
diff --git a/drivers/usb/serial/aircable.c b/drivers/usb/serial/aircable.c
index 2ccd9ded52a5..812275509137 100644
--- a/drivers/usb/serial/aircable.c
+++ b/drivers/usb/serial/aircable.c
@@ -403,7 +403,7 @@ static int aircable_write(struct usb_serial_port *port,
403 403
404} 404}
405 405
406static void aircable_write_bulk_callback(struct urb *urb, struct pt_regs *regs) 406static void aircable_write_bulk_callback(struct urb *urb)
407{ 407{
408 struct usb_serial_port *port = urb->context; 408 struct usb_serial_port *port = urb->context;
409 int result; 409 int result;
@@ -444,7 +444,7 @@ static void aircable_write_bulk_callback(struct urb *urb, struct pt_regs *regs)
444 aircable_send(port); 444 aircable_send(port);
445} 445}
446 446
447static void aircable_read_bulk_callback(struct urb *urb, struct pt_regs *regs) 447static void aircable_read_bulk_callback(struct urb *urb)
448{ 448{
449 struct usb_serial_port *port = urb->context; 449 struct usb_serial_port *port = urb->context;
450 struct aircable_private *priv = usb_get_serial_port_data(port); 450 struct aircable_private *priv = usb_get_serial_port_data(port);
diff --git a/drivers/usb/serial/airprime.c b/drivers/usb/serial/airprime.c
index 6e1a84a858d4..2c19f19b255c 100644
--- a/drivers/usb/serial/airprime.c
+++ b/drivers/usb/serial/airprime.c
@@ -46,7 +46,7 @@ struct airprime_private {
46 struct urb *read_urbp[NUM_READ_URBS]; 46 struct urb *read_urbp[NUM_READ_URBS];
47}; 47};
48 48
49static void airprime_read_bulk_callback(struct urb *urb, struct pt_regs *regs) 49static void airprime_read_bulk_callback(struct urb *urb)
50{ 50{
51 struct usb_serial_port *port = urb->context; 51 struct usb_serial_port *port = urb->context;
52 unsigned char *data = urb->transfer_buffer; 52 unsigned char *data = urb->transfer_buffer;
@@ -80,7 +80,7 @@ static void airprime_read_bulk_callback(struct urb *urb, struct pt_regs *regs)
80 return; 80 return;
81} 81}
82 82
83static void airprime_write_bulk_callback(struct urb *urb, struct pt_regs *regs) 83static void airprime_write_bulk_callback(struct urb *urb)
84{ 84{
85 struct usb_serial_port *port = urb->context; 85 struct usb_serial_port *port = urb->context;
86 struct airprime_private *priv = usb_get_serial_port_data(port); 86 struct airprime_private *priv = usb_get_serial_port_data(port);
diff --git a/drivers/usb/serial/belkin_sa.c b/drivers/usb/serial/belkin_sa.c
index 70ece9e01ce4..8835bb58ca9b 100644
--- a/drivers/usb/serial/belkin_sa.c
+++ b/drivers/usb/serial/belkin_sa.c
@@ -91,7 +91,7 @@ static int belkin_sa_startup (struct usb_serial *serial);
91static void belkin_sa_shutdown (struct usb_serial *serial); 91static void belkin_sa_shutdown (struct usb_serial *serial);
92static int belkin_sa_open (struct usb_serial_port *port, struct file *filp); 92static int belkin_sa_open (struct usb_serial_port *port, struct file *filp);
93static void belkin_sa_close (struct usb_serial_port *port, struct file *filp); 93static void belkin_sa_close (struct usb_serial_port *port, struct file *filp);
94static void belkin_sa_read_int_callback (struct urb *urb, struct pt_regs *regs); 94static void belkin_sa_read_int_callback (struct urb *urb);
95static void belkin_sa_set_termios (struct usb_serial_port *port, struct termios * old); 95static void belkin_sa_set_termios (struct usb_serial_port *port, struct termios * old);
96static int belkin_sa_ioctl (struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg); 96static int belkin_sa_ioctl (struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg);
97static void belkin_sa_break_ctl (struct usb_serial_port *port, int break_state ); 97static void belkin_sa_break_ctl (struct usb_serial_port *port, int break_state );
@@ -248,7 +248,7 @@ static void belkin_sa_close (struct usb_serial_port *port, struct file *filp)
248} /* belkin_sa_close */ 248} /* belkin_sa_close */
249 249
250 250
251static void belkin_sa_read_int_callback (struct urb *urb, struct pt_regs *regs) 251static void belkin_sa_read_int_callback (struct urb *urb)
252{ 252{
253 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 253 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
254 struct belkin_sa_private *priv; 254 struct belkin_sa_private *priv;
diff --git a/drivers/usb/serial/cyberjack.c b/drivers/usb/serial/cyberjack.c
index d954ec34b018..a63c3286caa0 100644
--- a/drivers/usb/serial/cyberjack.c
+++ b/drivers/usb/serial/cyberjack.c
@@ -63,9 +63,9 @@ static int cyberjack_open (struct usb_serial_port *port, struct file *filp);
63static void cyberjack_close (struct usb_serial_port *port, struct file *filp); 63static void cyberjack_close (struct usb_serial_port *port, struct file *filp);
64static int cyberjack_write (struct usb_serial_port *port, const unsigned char *buf, int count); 64static int cyberjack_write (struct usb_serial_port *port, const unsigned char *buf, int count);
65static int cyberjack_write_room( struct usb_serial_port *port ); 65static int cyberjack_write_room( struct usb_serial_port *port );
66static void cyberjack_read_int_callback (struct urb *urb, struct pt_regs *regs); 66static void cyberjack_read_int_callback (struct urb *urb);
67static void cyberjack_read_bulk_callback (struct urb *urb, struct pt_regs *regs); 67static void cyberjack_read_bulk_callback (struct urb *urb);
68static void cyberjack_write_bulk_callback (struct urb *urb, struct pt_regs *regs); 68static void cyberjack_write_bulk_callback (struct urb *urb);
69 69
70static struct usb_device_id id_table [] = { 70static struct usb_device_id id_table [] = {
71 { USB_DEVICE(CYBERJACK_VENDOR_ID, CYBERJACK_PRODUCT_ID) }, 71 { USB_DEVICE(CYBERJACK_VENDOR_ID, CYBERJACK_PRODUCT_ID) },
@@ -299,7 +299,7 @@ static int cyberjack_write_room( struct usb_serial_port *port )
299 return CYBERJACK_LOCAL_BUF_SIZE; 299 return CYBERJACK_LOCAL_BUF_SIZE;
300} 300}
301 301
302static void cyberjack_read_int_callback( struct urb *urb, struct pt_regs *regs ) 302static void cyberjack_read_int_callback( struct urb *urb )
303{ 303{
304 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 304 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
305 struct cyberjack_private *priv = usb_get_serial_port_data(port); 305 struct cyberjack_private *priv = usb_get_serial_port_data(port);
@@ -356,7 +356,7 @@ resubmit:
356 dbg("%s - usb_submit_urb(int urb)", __FUNCTION__); 356 dbg("%s - usb_submit_urb(int urb)", __FUNCTION__);
357} 357}
358 358
359static void cyberjack_read_bulk_callback (struct urb *urb, struct pt_regs *regs) 359static void cyberjack_read_bulk_callback (struct urb *urb)
360{ 360{
361 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 361 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
362 struct cyberjack_private *priv = usb_get_serial_port_data(port); 362 struct cyberjack_private *priv = usb_get_serial_port_data(port);
@@ -406,7 +406,7 @@ static void cyberjack_read_bulk_callback (struct urb *urb, struct pt_regs *regs)
406 } 406 }
407} 407}
408 408
409static void cyberjack_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 409static void cyberjack_write_bulk_callback (struct urb *urb)
410{ 410{
411 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 411 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
412 struct cyberjack_private *priv = usb_get_serial_port_data(port); 412 struct cyberjack_private *priv = usb_get_serial_port_data(port);
diff --git a/drivers/usb/serial/cypress_m8.c b/drivers/usb/serial/cypress_m8.c
index e1173c1aee37..f2e89a083659 100644
--- a/drivers/usb/serial/cypress_m8.c
+++ b/drivers/usb/serial/cypress_m8.c
@@ -172,8 +172,8 @@ static int cypress_chars_in_buffer (struct usb_serial_port *port);
172static void cypress_throttle (struct usb_serial_port *port); 172static void cypress_throttle (struct usb_serial_port *port);
173static void cypress_unthrottle (struct usb_serial_port *port); 173static void cypress_unthrottle (struct usb_serial_port *port);
174static void cypress_set_dead (struct usb_serial_port *port); 174static void cypress_set_dead (struct usb_serial_port *port);
175static void cypress_read_int_callback (struct urb *urb, struct pt_regs *regs); 175static void cypress_read_int_callback (struct urb *urb);
176static void cypress_write_int_callback (struct urb *urb, struct pt_regs *regs); 176static void cypress_write_int_callback (struct urb *urb);
177/* baud helper functions */ 177/* baud helper functions */
178static int mask_to_rate (unsigned mask); 178static int mask_to_rate (unsigned mask);
179static unsigned rate_to_mask (int rate); 179static unsigned rate_to_mask (int rate);
@@ -1275,7 +1275,7 @@ static void cypress_unthrottle (struct usb_serial_port *port)
1275} 1275}
1276 1276
1277 1277
1278static void cypress_read_int_callback(struct urb *urb, struct pt_regs *regs) 1278static void cypress_read_int_callback(struct urb *urb)
1279{ 1279{
1280 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1280 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
1281 struct cypress_private *priv = usb_get_serial_port_data(port); 1281 struct cypress_private *priv = usb_get_serial_port_data(port);
@@ -1426,7 +1426,7 @@ continue_read:
1426} /* cypress_read_int_callback */ 1426} /* cypress_read_int_callback */
1427 1427
1428 1428
1429static void cypress_write_int_callback(struct urb *urb, struct pt_regs *regs) 1429static void cypress_write_int_callback(struct urb *urb)
1430{ 1430{
1431 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1431 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
1432 struct cypress_private *priv = usb_get_serial_port_data(port); 1432 struct cypress_private *priv = usb_get_serial_port_data(port);
diff --git a/drivers/usb/serial/digi_acceleport.c b/drivers/usb/serial/digi_acceleport.c
index 9b225183fc7a..bdb58100fc1d 100644
--- a/drivers/usb/serial/digi_acceleport.c
+++ b/drivers/usb/serial/digi_acceleport.c
@@ -456,7 +456,7 @@ static int digi_tiocmget( struct usb_serial_port *port, struct file *file );
456static int digi_tiocmset( struct usb_serial_port *port, struct file *file, 456static int digi_tiocmset( struct usb_serial_port *port, struct file *file,
457 unsigned int set, unsigned int clear ); 457 unsigned int set, unsigned int clear );
458static int digi_write( struct usb_serial_port *port, const unsigned char *buf, int count ); 458static int digi_write( struct usb_serial_port *port, const unsigned char *buf, int count );
459static void digi_write_bulk_callback( struct urb *urb, struct pt_regs *regs ); 459static void digi_write_bulk_callback( struct urb *urb );
460static int digi_write_room( struct usb_serial_port *port ); 460static int digi_write_room( struct usb_serial_port *port );
461static int digi_chars_in_buffer( struct usb_serial_port *port ); 461static int digi_chars_in_buffer( struct usb_serial_port *port );
462static int digi_open( struct usb_serial_port *port, struct file *filp ); 462static int digi_open( struct usb_serial_port *port, struct file *filp );
@@ -464,7 +464,7 @@ static void digi_close( struct usb_serial_port *port, struct file *filp );
464static int digi_startup_device( struct usb_serial *serial ); 464static int digi_startup_device( struct usb_serial *serial );
465static int digi_startup( struct usb_serial *serial ); 465static int digi_startup( struct usb_serial *serial );
466static void digi_shutdown( struct usb_serial *serial ); 466static void digi_shutdown( struct usb_serial *serial );
467static void digi_read_bulk_callback( struct urb *urb, struct pt_regs *regs ); 467static void digi_read_bulk_callback( struct urb *urb );
468static int digi_read_inb_callback( struct urb *urb ); 468static int digi_read_inb_callback( struct urb *urb );
469static int digi_read_oob_callback( struct urb *urb ); 469static int digi_read_oob_callback( struct urb *urb );
470 470
@@ -1336,7 +1336,7 @@ dbg( "digi_write: returning %d", ret );
1336} 1336}
1337 1337
1338 1338
1339static void digi_write_bulk_callback( struct urb *urb, struct pt_regs *regs ) 1339static void digi_write_bulk_callback( struct urb *urb )
1340{ 1340{
1341 1341
1342 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1342 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
@@ -1754,7 +1754,7 @@ dbg( "digi_shutdown: TOP, in_interrupt()=%ld", in_interrupt() );
1754} 1754}
1755 1755
1756 1756
1757static void digi_read_bulk_callback( struct urb *urb, struct pt_regs *regs ) 1757static void digi_read_bulk_callback( struct urb *urb )
1758{ 1758{
1759 1759
1760 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1760 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
diff --git a/drivers/usb/serial/empeg.c b/drivers/usb/serial/empeg.c
index daafe405d86d..4ce10a831953 100644
--- a/drivers/usb/serial/empeg.c
+++ b/drivers/usb/serial/empeg.c
@@ -93,8 +93,8 @@ static int empeg_ioctl (struct usb_serial_port *port,
93 unsigned int cmd, 93 unsigned int cmd,
94 unsigned long arg); 94 unsigned long arg);
95static void empeg_set_termios (struct usb_serial_port *port, struct termios *old_termios); 95static void empeg_set_termios (struct usb_serial_port *port, struct termios *old_termios);
96static void empeg_write_bulk_callback (struct urb *urb, struct pt_regs *regs); 96static void empeg_write_bulk_callback (struct urb *urb);
97static void empeg_read_bulk_callback (struct urb *urb, struct pt_regs *regs); 97static void empeg_read_bulk_callback (struct urb *urb);
98 98
99static struct usb_device_id id_table [] = { 99static struct usb_device_id id_table [] = {
100 { USB_DEVICE(EMPEG_VENDOR_ID, EMPEG_PRODUCT_ID) }, 100 { USB_DEVICE(EMPEG_VENDOR_ID, EMPEG_PRODUCT_ID) },
@@ -323,7 +323,7 @@ static int empeg_chars_in_buffer (struct usb_serial_port *port)
323} 323}
324 324
325 325
326static void empeg_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 326static void empeg_write_bulk_callback (struct urb *urb)
327{ 327{
328 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 328 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
329 329
@@ -338,7 +338,7 @@ static void empeg_write_bulk_callback (struct urb *urb, struct pt_regs *regs)
338} 338}
339 339
340 340
341static void empeg_read_bulk_callback (struct urb *urb, struct pt_regs *regs) 341static void empeg_read_bulk_callback (struct urb *urb)
342{ 342{
343 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 343 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
344 struct tty_struct *tty; 344 struct tty_struct *tty;
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index e774a27c6c98..d3dc1a15ec6c 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -589,8 +589,8 @@ static void ftdi_close (struct usb_serial_port *port, struct file *filp);
589static int ftdi_write (struct usb_serial_port *port, const unsigned char *buf, int count); 589static int ftdi_write (struct usb_serial_port *port, const unsigned char *buf, int count);
590static int ftdi_write_room (struct usb_serial_port *port); 590static int ftdi_write_room (struct usb_serial_port *port);
591static int ftdi_chars_in_buffer (struct usb_serial_port *port); 591static int ftdi_chars_in_buffer (struct usb_serial_port *port);
592static void ftdi_write_bulk_callback (struct urb *urb, struct pt_regs *regs); 592static void ftdi_write_bulk_callback (struct urb *urb);
593static void ftdi_read_bulk_callback (struct urb *urb, struct pt_regs *regs); 593static void ftdi_read_bulk_callback (struct urb *urb);
594static void ftdi_process_read (void *param); 594static void ftdi_process_read (void *param);
595static void ftdi_set_termios (struct usb_serial_port *port, struct termios * old); 595static void ftdi_set_termios (struct usb_serial_port *port, struct termios * old);
596static int ftdi_tiocmget (struct usb_serial_port *port, struct file *file); 596static int ftdi_tiocmget (struct usb_serial_port *port, struct file *file);
@@ -1508,7 +1508,7 @@ static int ftdi_write (struct usb_serial_port *port,
1508 1508
1509/* This function may get called when the device is closed */ 1509/* This function may get called when the device is closed */
1510 1510
1511static void ftdi_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 1511static void ftdi_write_bulk_callback (struct urb *urb)
1512{ 1512{
1513 unsigned long flags; 1513 unsigned long flags;
1514 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1514 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
@@ -1591,7 +1591,7 @@ static int ftdi_chars_in_buffer (struct usb_serial_port *port)
1591 1591
1592 1592
1593 1593
1594static void ftdi_read_bulk_callback (struct urb *urb, struct pt_regs *regs) 1594static void ftdi_read_bulk_callback (struct urb *urb)
1595{ /* ftdi_read_bulk_callback */ 1595{ /* ftdi_read_bulk_callback */
1596 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1596 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
1597 struct tty_struct *tty; 1597 struct tty_struct *tty;
diff --git a/drivers/usb/serial/garmin_gps.c b/drivers/usb/serial/garmin_gps.c
index 4b1196a8b09e..4543152a9966 100644
--- a/drivers/usb/serial/garmin_gps.c
+++ b/drivers/usb/serial/garmin_gps.c
@@ -1031,7 +1031,7 @@ static void garmin_close (struct usb_serial_port *port, struct file * filp)
1031} 1031}
1032 1032
1033 1033
1034static void garmin_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 1034static void garmin_write_bulk_callback (struct urb *urb)
1035{ 1035{
1036 unsigned long flags; 1036 unsigned long flags;
1037 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1037 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
@@ -1274,7 +1274,7 @@ static void garmin_read_process(struct garmin_data * garmin_data_p,
1274} 1274}
1275 1275
1276 1276
1277static void garmin_read_bulk_callback (struct urb *urb, struct pt_regs *regs) 1277static void garmin_read_bulk_callback (struct urb *urb)
1278{ 1278{
1279 unsigned long flags; 1279 unsigned long flags;
1280 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1280 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
@@ -1330,7 +1330,7 @@ static void garmin_read_bulk_callback (struct urb *urb, struct pt_regs *regs)
1330} 1330}
1331 1331
1332 1332
1333static void garmin_read_int_callback (struct urb *urb, struct pt_regs *regs) 1333static void garmin_read_int_callback (struct urb *urb)
1334{ 1334{
1335 unsigned long flags; 1335 unsigned long flags;
1336 int status; 1336 int status;
diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c
index 21cbaa0fb96b..36042937e77f 100644
--- a/drivers/usb/serial/generic.c
+++ b/drivers/usb/serial/generic.c
@@ -248,7 +248,7 @@ int usb_serial_generic_chars_in_buffer (struct usb_serial_port *port)
248 return (chars); 248 return (chars);
249} 249}
250 250
251void usb_serial_generic_read_bulk_callback (struct urb *urb, struct pt_regs *regs) 251void usb_serial_generic_read_bulk_callback (struct urb *urb)
252{ 252{
253 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 253 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
254 struct usb_serial *serial = port->serial; 254 struct usb_serial *serial = port->serial;
@@ -287,7 +287,7 @@ void usb_serial_generic_read_bulk_callback (struct urb *urb, struct pt_regs *reg
287} 287}
288EXPORT_SYMBOL_GPL(usb_serial_generic_read_bulk_callback); 288EXPORT_SYMBOL_GPL(usb_serial_generic_read_bulk_callback);
289 289
290void usb_serial_generic_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 290void usb_serial_generic_write_bulk_callback (struct urb *urb)
291{ 291{
292 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 292 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
293 293
diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c
index c49976c3ad52..91bd3014ef1e 100644
--- a/drivers/usb/serial/io_edgeport.c
+++ b/drivers/usb/serial/io_edgeport.c
@@ -216,10 +216,10 @@ static int CmdUrbs = 0; /* Number of outstanding Command Write Urbs */
216/* local function prototypes */ 216/* local function prototypes */
217 217
218/* function prototypes for all URB callbacks */ 218/* function prototypes for all URB callbacks */
219static void edge_interrupt_callback (struct urb *urb, struct pt_regs *regs); 219static void edge_interrupt_callback (struct urb *urb);
220static void edge_bulk_in_callback (struct urb *urb, struct pt_regs *regs); 220static void edge_bulk_in_callback (struct urb *urb);
221static void edge_bulk_out_data_callback (struct urb *urb, struct pt_regs *regs); 221static void edge_bulk_out_data_callback (struct urb *urb);
222static void edge_bulk_out_cmd_callback (struct urb *urb, struct pt_regs *regs); 222static void edge_bulk_out_cmd_callback (struct urb *urb);
223 223
224/* function prototypes for the usbserial callbacks */ 224/* function prototypes for the usbserial callbacks */
225static int edge_open (struct usb_serial_port *port, struct file *filp); 225static int edge_open (struct usb_serial_port *port, struct file *filp);
@@ -534,7 +534,7 @@ static void get_product_info(struct edgeport_serial *edge_serial)
534 * this is the callback function for when we have received data on the 534 * this is the callback function for when we have received data on the
535 * interrupt endpoint. 535 * interrupt endpoint.
536 *****************************************************************************/ 536 *****************************************************************************/
537static void edge_interrupt_callback (struct urb *urb, struct pt_regs *regs) 537static void edge_interrupt_callback (struct urb *urb)
538{ 538{
539 struct edgeport_serial *edge_serial = (struct edgeport_serial *)urb->context; 539 struct edgeport_serial *edge_serial = (struct edgeport_serial *)urb->context;
540 struct edgeport_port *edge_port; 540 struct edgeport_port *edge_port;
@@ -631,7 +631,7 @@ exit:
631 * this is the callback function for when we have received data on the 631 * this is the callback function for when we have received data on the
632 * bulk in endpoint. 632 * bulk in endpoint.
633 *****************************************************************************/ 633 *****************************************************************************/
634static void edge_bulk_in_callback (struct urb *urb, struct pt_regs *regs) 634static void edge_bulk_in_callback (struct urb *urb)
635{ 635{
636 struct edgeport_serial *edge_serial = (struct edgeport_serial *)urb->context; 636 struct edgeport_serial *edge_serial = (struct edgeport_serial *)urb->context;
637 unsigned char *data = urb->transfer_buffer; 637 unsigned char *data = urb->transfer_buffer;
@@ -687,7 +687,7 @@ static void edge_bulk_in_callback (struct urb *urb, struct pt_regs *regs)
687 * this is the callback function for when we have finished sending serial data 687 * this is the callback function for when we have finished sending serial data
688 * on the bulk out endpoint. 688 * on the bulk out endpoint.
689 *****************************************************************************/ 689 *****************************************************************************/
690static void edge_bulk_out_data_callback (struct urb *urb, struct pt_regs *regs) 690static void edge_bulk_out_data_callback (struct urb *urb)
691{ 691{
692 struct edgeport_port *edge_port = (struct edgeport_port *)urb->context; 692 struct edgeport_port *edge_port = (struct edgeport_port *)urb->context;
693 struct tty_struct *tty; 693 struct tty_struct *tty;
@@ -718,7 +718,7 @@ static void edge_bulk_out_data_callback (struct urb *urb, struct pt_regs *regs)
718 * this is the callback function for when we have finished sending a command 718 * this is the callback function for when we have finished sending a command
719 * on the bulk out endpoint. 719 * on the bulk out endpoint.
720 *****************************************************************************/ 720 *****************************************************************************/
721static void edge_bulk_out_cmd_callback (struct urb *urb, struct pt_regs *regs) 721static void edge_bulk_out_cmd_callback (struct urb *urb)
722{ 722{
723 struct edgeport_port *edge_port = (struct edgeport_port *)urb->context; 723 struct edgeport_port *edge_port = (struct edgeport_port *)urb->context;
724 struct tty_struct *tty; 724 struct tty_struct *tty;
diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
index 17c5b1d2311a..ee0c921e1520 100644
--- a/drivers/usb/serial/io_ti.c
+++ b/drivers/usb/serial/io_ti.c
@@ -1697,7 +1697,7 @@ static void handle_new_lsr (struct edgeport_port *edge_port, int lsr_data, __u8
1697} 1697}
1698 1698
1699 1699
1700static void edge_interrupt_callback (struct urb *urb, struct pt_regs *regs) 1700static void edge_interrupt_callback (struct urb *urb)
1701{ 1701{
1702 struct edgeport_serial *edge_serial = (struct edgeport_serial *)urb->context; 1702 struct edgeport_serial *edge_serial = (struct edgeport_serial *)urb->context;
1703 struct usb_serial_port *port; 1703 struct usb_serial_port *port;
@@ -1787,7 +1787,7 @@ exit:
1787 __FUNCTION__, status); 1787 __FUNCTION__, status);
1788} 1788}
1789 1789
1790static void edge_bulk_in_callback (struct urb *urb, struct pt_regs *regs) 1790static void edge_bulk_in_callback (struct urb *urb)
1791{ 1791{
1792 struct edgeport_port *edge_port = (struct edgeport_port *)urb->context; 1792 struct edgeport_port *edge_port = (struct edgeport_port *)urb->context;
1793 unsigned char *data = urb->transfer_buffer; 1793 unsigned char *data = urb->transfer_buffer;
@@ -1879,7 +1879,7 @@ static void edge_tty_recv(struct device *dev, struct tty_struct *tty, unsigned c
1879 tty_flip_buffer_push(tty); 1879 tty_flip_buffer_push(tty);
1880} 1880}
1881 1881
1882static void edge_bulk_out_callback (struct urb *urb, struct pt_regs *regs) 1882static void edge_bulk_out_callback (struct urb *urb)
1883{ 1883{
1884 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1884 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
1885 struct edgeport_port *edge_port = usb_get_serial_port_data(port); 1885 struct edgeport_port *edge_port = usb_get_serial_port_data(port);
diff --git a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c
index cbc725a6c58e..6238aff1e772 100644
--- a/drivers/usb/serial/ipaq.c
+++ b/drivers/usb/serial/ipaq.c
@@ -83,8 +83,8 @@ static int ipaq_write(struct usb_serial_port *port, const unsigned char *buf,
83static int ipaq_write_bulk(struct usb_serial_port *port, const unsigned char *buf, 83static int ipaq_write_bulk(struct usb_serial_port *port, const unsigned char *buf,
84 int count); 84 int count);
85static void ipaq_write_gather(struct usb_serial_port *port); 85static void ipaq_write_gather(struct usb_serial_port *port);
86static void ipaq_read_bulk_callback (struct urb *urb, struct pt_regs *regs); 86static void ipaq_read_bulk_callback (struct urb *urb);
87static void ipaq_write_bulk_callback(struct urb *urb, struct pt_regs *regs); 87static void ipaq_write_bulk_callback(struct urb *urb);
88static int ipaq_write_room(struct usb_serial_port *port); 88static int ipaq_write_room(struct usb_serial_port *port);
89static int ipaq_chars_in_buffer(struct usb_serial_port *port); 89static int ipaq_chars_in_buffer(struct usb_serial_port *port);
90static void ipaq_destroy_lists(struct usb_serial_port *port); 90static void ipaq_destroy_lists(struct usb_serial_port *port);
@@ -721,7 +721,7 @@ static void ipaq_close(struct usb_serial_port *port, struct file *filp)
721 /* info ("Bytes In = %d Bytes Out = %d", bytes_in, bytes_out); */ 721 /* info ("Bytes In = %d Bytes Out = %d", bytes_in, bytes_out); */
722} 722}
723 723
724static void ipaq_read_bulk_callback(struct urb *urb, struct pt_regs *regs) 724static void ipaq_read_bulk_callback(struct urb *urb)
725{ 725{
726 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 726 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
727 struct tty_struct *tty; 727 struct tty_struct *tty;
@@ -859,7 +859,7 @@ static void ipaq_write_gather(struct usb_serial_port *port)
859 return; 859 return;
860} 860}
861 861
862static void ipaq_write_bulk_callback(struct urb *urb, struct pt_regs *regs) 862static void ipaq_write_bulk_callback(struct urb *urb)
863{ 863{
864 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 864 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
865 struct ipaq_private *priv = usb_get_serial_port_data(port); 865 struct ipaq_private *priv = usb_get_serial_port_data(port);
diff --git a/drivers/usb/serial/ipw.c b/drivers/usb/serial/ipw.c
index 812bc213a963..2a4bb66691ad 100644
--- a/drivers/usb/serial/ipw.c
+++ b/drivers/usb/serial/ipw.c
@@ -161,7 +161,7 @@ static struct usb_driver usb_ipw_driver = {
161 161
162static int debug; 162static int debug;
163 163
164static void ipw_read_bulk_callback(struct urb *urb, struct pt_regs *regs) 164static void ipw_read_bulk_callback(struct urb *urb)
165{ 165{
166 struct usb_serial_port *port = urb->context; 166 struct usb_serial_port *port = urb->context;
167 unsigned char *data = urb->transfer_buffer; 167 unsigned char *data = urb->transfer_buffer;
@@ -367,7 +367,7 @@ static void ipw_close(struct usb_serial_port *port, struct file * filp)
367 usb_kill_urb(port->write_urb); 367 usb_kill_urb(port->write_urb);
368} 368}
369 369
370static void ipw_write_bulk_callback(struct urb *urb, struct pt_regs *regs) 370static void ipw_write_bulk_callback(struct urb *urb)
371{ 371{
372 struct usb_serial_port *port = urb->context; 372 struct usb_serial_port *port = urb->context;
373 373
diff --git a/drivers/usb/serial/ir-usb.c b/drivers/usb/serial/ir-usb.c
index 1b348df388ed..331bf81556fc 100644
--- a/drivers/usb/serial/ir-usb.c
+++ b/drivers/usb/serial/ir-usb.c
@@ -105,8 +105,8 @@ static int ir_startup (struct usb_serial *serial);
105static int ir_open (struct usb_serial_port *port, struct file *filep); 105static int ir_open (struct usb_serial_port *port, struct file *filep);
106static void ir_close (struct usb_serial_port *port, struct file *filep); 106static void ir_close (struct usb_serial_port *port, struct file *filep);
107static int ir_write (struct usb_serial_port *port, const unsigned char *buf, int count); 107static int ir_write (struct usb_serial_port *port, const unsigned char *buf, int count);
108static void ir_write_bulk_callback (struct urb *urb, struct pt_regs *regs); 108static void ir_write_bulk_callback (struct urb *urb);
109static void ir_read_bulk_callback (struct urb *urb, struct pt_regs *regs); 109static void ir_read_bulk_callback (struct urb *urb);
110static void ir_set_termios (struct usb_serial_port *port, struct termios *old_termios); 110static void ir_set_termios (struct usb_serial_port *port, struct termios *old_termios);
111 111
112static u8 ir_baud = 0; 112static u8 ir_baud = 0;
@@ -388,7 +388,7 @@ static int ir_write (struct usb_serial_port *port, const unsigned char *buf, int
388 return result; 388 return result;
389} 389}
390 390
391static void ir_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 391static void ir_write_bulk_callback (struct urb *urb)
392{ 392{
393 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 393 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
394 394
@@ -410,7 +410,7 @@ static void ir_write_bulk_callback (struct urb *urb, struct pt_regs *regs)
410 usb_serial_port_softint(port); 410 usb_serial_port_softint(port);
411} 411}
412 412
413static void ir_read_bulk_callback (struct urb *urb, struct pt_regs *regs) 413static void ir_read_bulk_callback (struct urb *urb)
414{ 414{
415 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 415 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
416 struct tty_struct *tty; 416 struct tty_struct *tty;
diff --git a/drivers/usb/serial/keyspan.c b/drivers/usb/serial/keyspan.c
index 015ad6cc1bbb..53be824eb1bf 100644
--- a/drivers/usb/serial/keyspan.c
+++ b/drivers/usb/serial/keyspan.c
@@ -412,7 +412,7 @@ static int keyspan_write(struct usb_serial_port *port,
412 return count - left; 412 return count - left;
413} 413}
414 414
415static void usa26_indat_callback(struct urb *urb, struct pt_regs *regs) 415static void usa26_indat_callback(struct urb *urb)
416{ 416{
417 int i, err; 417 int i, err;
418 int endpoint; 418 int endpoint;
@@ -470,7 +470,7 @@ static void usa26_indat_callback(struct urb *urb, struct pt_regs *regs)
470} 470}
471 471
472 /* Outdat handling is common for all devices */ 472 /* Outdat handling is common for all devices */
473static void usa2x_outdat_callback(struct urb *urb, struct pt_regs *regs) 473static void usa2x_outdat_callback(struct urb *urb)
474{ 474{
475 struct usb_serial_port *port; 475 struct usb_serial_port *port;
476 struct keyspan_port_private *p_priv; 476 struct keyspan_port_private *p_priv;
@@ -483,13 +483,13 @@ static void usa2x_outdat_callback(struct urb *urb, struct pt_regs *regs)
483 usb_serial_port_softint(port); 483 usb_serial_port_softint(port);
484} 484}
485 485
486static void usa26_inack_callback(struct urb *urb, struct pt_regs *regs) 486static void usa26_inack_callback(struct urb *urb)
487{ 487{
488 dbg ("%s", __FUNCTION__); 488 dbg ("%s", __FUNCTION__);
489 489
490} 490}
491 491
492static void usa26_outcont_callback(struct urb *urb, struct pt_regs *regs) 492static void usa26_outcont_callback(struct urb *urb)
493{ 493{
494 struct usb_serial_port *port; 494 struct usb_serial_port *port;
495 struct keyspan_port_private *p_priv; 495 struct keyspan_port_private *p_priv;
@@ -503,7 +503,7 @@ static void usa26_outcont_callback(struct urb *urb, struct pt_regs *regs)
503 } 503 }
504} 504}
505 505
506static void usa26_instat_callback(struct urb *urb, struct pt_regs *regs) 506static void usa26_instat_callback(struct urb *urb)
507{ 507{
508 unsigned char *data = urb->transfer_buffer; 508 unsigned char *data = urb->transfer_buffer;
509 struct keyspan_usa26_portStatusMessage *msg; 509 struct keyspan_usa26_portStatusMessage *msg;
@@ -565,14 +565,14 @@ static void usa26_instat_callback(struct urb *urb, struct pt_regs *regs)
565exit: ; 565exit: ;
566} 566}
567 567
568static void usa26_glocont_callback(struct urb *urb, struct pt_regs *regs) 568static void usa26_glocont_callback(struct urb *urb)
569{ 569{
570 dbg ("%s", __FUNCTION__); 570 dbg ("%s", __FUNCTION__);
571 571
572} 572}
573 573
574 574
575static void usa28_indat_callback(struct urb *urb, struct pt_regs *regs) 575static void usa28_indat_callback(struct urb *urb)
576{ 576{
577 int i, err; 577 int i, err;
578 struct usb_serial_port *port; 578 struct usb_serial_port *port;
@@ -620,12 +620,12 @@ static void usa28_indat_callback(struct urb *urb, struct pt_regs *regs)
620 } while (urb->status != -EINPROGRESS); 620 } while (urb->status != -EINPROGRESS);
621} 621}
622 622
623static void usa28_inack_callback(struct urb *urb, struct pt_regs *regs) 623static void usa28_inack_callback(struct urb *urb)
624{ 624{
625 dbg ("%s", __FUNCTION__); 625 dbg ("%s", __FUNCTION__);
626} 626}
627 627
628static void usa28_outcont_callback(struct urb *urb, struct pt_regs *regs) 628static void usa28_outcont_callback(struct urb *urb)
629{ 629{
630 struct usb_serial_port *port; 630 struct usb_serial_port *port;
631 struct keyspan_port_private *p_priv; 631 struct keyspan_port_private *p_priv;
@@ -639,7 +639,7 @@ static void usa28_outcont_callback(struct urb *urb, struct pt_regs *regs)
639 } 639 }
640} 640}
641 641
642static void usa28_instat_callback(struct urb *urb, struct pt_regs *regs) 642static void usa28_instat_callback(struct urb *urb)
643{ 643{
644 int err; 644 int err;
645 unsigned char *data = urb->transfer_buffer; 645 unsigned char *data = urb->transfer_buffer;
@@ -700,13 +700,13 @@ static void usa28_instat_callback(struct urb *urb, struct pt_regs *regs)
700exit: ; 700exit: ;
701} 701}
702 702
703static void usa28_glocont_callback(struct urb *urb, struct pt_regs *regs) 703static void usa28_glocont_callback(struct urb *urb)
704{ 704{
705 dbg ("%s", __FUNCTION__); 705 dbg ("%s", __FUNCTION__);
706} 706}
707 707
708 708
709static void usa49_glocont_callback(struct urb *urb, struct pt_regs *regs) 709static void usa49_glocont_callback(struct urb *urb)
710{ 710{
711 struct usb_serial *serial; 711 struct usb_serial *serial;
712 struct usb_serial_port *port; 712 struct usb_serial_port *port;
@@ -730,7 +730,7 @@ static void usa49_glocont_callback(struct urb *urb, struct pt_regs *regs)
730 730
731 /* This is actually called glostat in the Keyspan 731 /* This is actually called glostat in the Keyspan
732 doco */ 732 doco */
733static void usa49_instat_callback(struct urb *urb, struct pt_regs *regs) 733static void usa49_instat_callback(struct urb *urb)
734{ 734{
735 int err; 735 int err;
736 unsigned char *data = urb->transfer_buffer; 736 unsigned char *data = urb->transfer_buffer;
@@ -793,12 +793,12 @@ static void usa49_instat_callback(struct urb *urb, struct pt_regs *regs)
793exit: ; 793exit: ;
794} 794}
795 795
796static void usa49_inack_callback(struct urb *urb, struct pt_regs *regs) 796static void usa49_inack_callback(struct urb *urb)
797{ 797{
798 dbg ("%s", __FUNCTION__); 798 dbg ("%s", __FUNCTION__);
799} 799}
800 800
801static void usa49_indat_callback(struct urb *urb, struct pt_regs *regs) 801static void usa49_indat_callback(struct urb *urb)
802{ 802{
803 int i, err; 803 int i, err;
804 int endpoint; 804 int endpoint;
@@ -851,12 +851,12 @@ static void usa49_indat_callback(struct urb *urb, struct pt_regs *regs)
851} 851}
852 852
853/* not used, usa-49 doesn't have per-port control endpoints */ 853/* not used, usa-49 doesn't have per-port control endpoints */
854static void usa49_outcont_callback(struct urb *urb, struct pt_regs *regs) 854static void usa49_outcont_callback(struct urb *urb)
855{ 855{
856 dbg ("%s", __FUNCTION__); 856 dbg ("%s", __FUNCTION__);
857} 857}
858 858
859static void usa90_indat_callback(struct urb *urb, struct pt_regs *regs) 859static void usa90_indat_callback(struct urb *urb)
860{ 860{
861 int i, err; 861 int i, err;
862 int endpoint; 862 int endpoint;
@@ -930,7 +930,7 @@ static void usa90_indat_callback(struct urb *urb, struct pt_regs *regs)
930} 930}
931 931
932 932
933static void usa90_instat_callback(struct urb *urb, struct pt_regs *regs) 933static void usa90_instat_callback(struct urb *urb)
934{ 934{
935 unsigned char *data = urb->transfer_buffer; 935 unsigned char *data = urb->transfer_buffer;
936 struct keyspan_usa90_portStatusMessage *msg; 936 struct keyspan_usa90_portStatusMessage *msg;
@@ -981,7 +981,7 @@ exit:
981 ; 981 ;
982} 982}
983 983
984static void usa90_outcont_callback(struct urb *urb, struct pt_regs *regs) 984static void usa90_outcont_callback(struct urb *urb)
985{ 985{
986 struct usb_serial_port *port; 986 struct usb_serial_port *port;
987 struct keyspan_port_private *p_priv; 987 struct keyspan_port_private *p_priv;
@@ -1277,7 +1277,7 @@ static int keyspan_fake_startup (struct usb_serial *serial)
1277/* Helper functions used by keyspan_setup_urbs */ 1277/* Helper functions used by keyspan_setup_urbs */
1278static struct urb *keyspan_setup_urb (struct usb_serial *serial, int endpoint, 1278static struct urb *keyspan_setup_urb (struct usb_serial *serial, int endpoint,
1279 int dir, void *ctx, char *buf, int len, 1279 int dir, void *ctx, char *buf, int len,
1280 void (*callback)(struct urb *, struct pt_regs *regs)) 1280 void (*callback)(struct urb *))
1281{ 1281{
1282 struct urb *urb; 1282 struct urb *urb;
1283 1283
@@ -1300,12 +1300,12 @@ static struct urb *keyspan_setup_urb (struct usb_serial *serial, int endpoint,
1300} 1300}
1301 1301
1302static struct callbacks { 1302static struct callbacks {
1303 void (*instat_callback)(struct urb *, struct pt_regs *regs); 1303 void (*instat_callback)(struct urb *);
1304 void (*glocont_callback)(struct urb *, struct pt_regs *regs); 1304 void (*glocont_callback)(struct urb *);
1305 void (*indat_callback)(struct urb *, struct pt_regs *regs); 1305 void (*indat_callback)(struct urb *);
1306 void (*outdat_callback)(struct urb *, struct pt_regs *regs); 1306 void (*outdat_callback)(struct urb *);
1307 void (*inack_callback)(struct urb *, struct pt_regs *regs); 1307 void (*inack_callback)(struct urb *);
1308 void (*outcont_callback)(struct urb *, struct pt_regs *regs); 1308 void (*outcont_callback)(struct urb *);
1309} keyspan_callbacks[] = { 1309} keyspan_callbacks[] = {
1310 { 1310 {
1311 /* msg_usa26 callbacks */ 1311 /* msg_usa26 callbacks */
diff --git a/drivers/usb/serial/keyspan_pda.c b/drivers/usb/serial/keyspan_pda.c
index 59e777f1e8fd..909005107ea2 100644
--- a/drivers/usb/serial/keyspan_pda.c
+++ b/drivers/usb/serial/keyspan_pda.c
@@ -210,7 +210,7 @@ static void keyspan_pda_request_unthrottle( struct usb_serial *serial )
210} 210}
211 211
212 212
213static void keyspan_pda_rx_interrupt (struct urb *urb, struct pt_regs *regs) 213static void keyspan_pda_rx_interrupt (struct urb *urb)
214{ 214{
215 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 215 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
216 struct tty_struct *tty = port->tty; 216 struct tty_struct *tty = port->tty;
@@ -601,7 +601,7 @@ exit:
601} 601}
602 602
603 603
604static void keyspan_pda_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 604static void keyspan_pda_write_bulk_callback (struct urb *urb)
605{ 605{
606 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 606 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
607 struct keyspan_pda_private *priv; 607 struct keyspan_pda_private *priv;
diff --git a/drivers/usb/serial/kl5kusb105.c b/drivers/usb/serial/kl5kusb105.c
index 2a2f3e2da055..17e205699c2b 100644
--- a/drivers/usb/serial/kl5kusb105.c
+++ b/drivers/usb/serial/kl5kusb105.c
@@ -80,11 +80,11 @@ static void klsi_105_close (struct usb_serial_port *port,
80static int klsi_105_write (struct usb_serial_port *port, 80static int klsi_105_write (struct usb_serial_port *port,
81 const unsigned char *buf, 81 const unsigned char *buf,
82 int count); 82 int count);
83static void klsi_105_write_bulk_callback (struct urb *urb, struct pt_regs *regs); 83static void klsi_105_write_bulk_callback (struct urb *urb);
84static int klsi_105_chars_in_buffer (struct usb_serial_port *port); 84static int klsi_105_chars_in_buffer (struct usb_serial_port *port);
85static int klsi_105_write_room (struct usb_serial_port *port); 85static int klsi_105_write_room (struct usb_serial_port *port);
86 86
87static void klsi_105_read_bulk_callback (struct urb *urb, struct pt_regs *regs); 87static void klsi_105_read_bulk_callback (struct urb *urb);
88static void klsi_105_set_termios (struct usb_serial_port *port, 88static void klsi_105_set_termios (struct usb_serial_port *port,
89 struct termios * old); 89 struct termios * old);
90static int klsi_105_ioctl (struct usb_serial_port *port, 90static int klsi_105_ioctl (struct usb_serial_port *port,
@@ -556,7 +556,7 @@ exit:
556 return bytes_sent; /* that's how much we wrote */ 556 return bytes_sent; /* that's how much we wrote */
557} /* klsi_105_write */ 557} /* klsi_105_write */
558 558
559static void klsi_105_write_bulk_callback ( struct urb *urb, struct pt_regs *regs) 559static void klsi_105_write_bulk_callback ( struct urb *urb)
560{ 560{
561 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 561 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
562 562
@@ -616,7 +616,7 @@ static int klsi_105_write_room (struct usb_serial_port *port)
616 616
617 617
618 618
619static void klsi_105_read_bulk_callback (struct urb *urb, struct pt_regs *regs) 619static void klsi_105_read_bulk_callback (struct urb *urb)
620{ 620{
621 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 621 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
622 struct klsi_105_private *priv = usb_get_serial_port_data(port); 622 struct klsi_105_private *priv = usb_get_serial_port_data(port);
diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c
index d50dce034958..ff03331e0bcf 100644
--- a/drivers/usb/serial/kobil_sct.c
+++ b/drivers/usb/serial/kobil_sct.c
@@ -80,8 +80,8 @@ static int kobil_ioctl(struct usb_serial_port *port, struct file *file,
80static int kobil_tiocmget(struct usb_serial_port *port, struct file *file); 80static int kobil_tiocmget(struct usb_serial_port *port, struct file *file);
81static int kobil_tiocmset(struct usb_serial_port *port, struct file *file, 81static int kobil_tiocmset(struct usb_serial_port *port, struct file *file,
82 unsigned int set, unsigned int clear); 82 unsigned int set, unsigned int clear);
83static void kobil_read_int_callback( struct urb *urb, struct pt_regs *regs ); 83static void kobil_read_int_callback( struct urb *urb );
84static void kobil_write_callback( struct urb *purb, struct pt_regs *regs ); 84static void kobil_write_callback( struct urb *purb );
85 85
86 86
87static struct usb_device_id id_table [] = { 87static struct usb_device_id id_table [] = {
@@ -360,7 +360,7 @@ static void kobil_close (struct usb_serial_port *port, struct file *filp)
360} 360}
361 361
362 362
363static void kobil_read_int_callback( struct urb *purb, struct pt_regs *regs) 363static void kobil_read_int_callback( struct urb *purb)
364{ 364{
365 int result; 365 int result;
366 struct usb_serial_port *port = (struct usb_serial_port *) purb->context; 366 struct usb_serial_port *port = (struct usb_serial_port *) purb->context;
@@ -405,7 +405,7 @@ static void kobil_read_int_callback( struct urb *purb, struct pt_regs *regs)
405} 405}
406 406
407 407
408static void kobil_write_callback( struct urb *purb, struct pt_regs *regs ) 408static void kobil_write_callback( struct urb *purb )
409{ 409{
410} 410}
411 411
diff --git a/drivers/usb/serial/mct_u232.c b/drivers/usb/serial/mct_u232.c
index f4d4305c2c02..b7582cc496dc 100644
--- a/drivers/usb/serial/mct_u232.c
+++ b/drivers/usb/serial/mct_u232.c
@@ -96,7 +96,7 @@ static int mct_u232_open (struct usb_serial_port *port,
96 struct file *filp); 96 struct file *filp);
97static void mct_u232_close (struct usb_serial_port *port, 97static void mct_u232_close (struct usb_serial_port *port,
98 struct file *filp); 98 struct file *filp);
99static void mct_u232_read_int_callback (struct urb *urb, struct pt_regs *regs); 99static void mct_u232_read_int_callback (struct urb *urb);
100static void mct_u232_set_termios (struct usb_serial_port *port, 100static void mct_u232_set_termios (struct usb_serial_port *port,
101 struct termios * old); 101 struct termios * old);
102static int mct_u232_ioctl (struct usb_serial_port *port, 102static int mct_u232_ioctl (struct usb_serial_port *port,
@@ -466,7 +466,7 @@ static void mct_u232_close (struct usb_serial_port *port, struct file *filp)
466} /* mct_u232_close */ 466} /* mct_u232_close */
467 467
468 468
469static void mct_u232_read_int_callback (struct urb *urb, struct pt_regs *regs) 469static void mct_u232_read_int_callback (struct urb *urb)
470{ 470{
471 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 471 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
472 struct mct_u232_private *priv = usb_get_serial_port_data(port); 472 struct mct_u232_private *priv = usb_get_serial_port_data(port);
diff --git a/drivers/usb/serial/mos7840.c b/drivers/usb/serial/mos7840.c
index 95bf57166c59..2306d493e55b 100644
--- a/drivers/usb/serial/mos7840.c
+++ b/drivers/usb/serial/mos7840.c
@@ -421,7 +421,7 @@ static int mos7840_handle_new_lsr(struct moschip_port *port, __u8 new_lsr)
421/************************************************************************/ 421/************************************************************************/
422/************************************************************************/ 422/************************************************************************/
423 423
424static void mos7840_control_callback(struct urb *urb, struct pt_regs *regs) 424static void mos7840_control_callback(struct urb *urb)
425{ 425{
426 unsigned char *data; 426 unsigned char *data;
427 struct moschip_port *mos7840_port; 427 struct moschip_port *mos7840_port;
@@ -497,7 +497,7 @@ static int mos7840_get_reg(struct moschip_port *mcs, __u16 Wval, __u16 reg,
497 * interrupt endpoint. 497 * interrupt endpoint.
498 *****************************************************************************/ 498 *****************************************************************************/
499 499
500static void mos7840_interrupt_callback(struct urb *urb, struct pt_regs *regs) 500static void mos7840_interrupt_callback(struct urb *urb)
501{ 501{
502 int result; 502 int result;
503 int length; 503 int length;
@@ -647,7 +647,7 @@ static struct usb_serial *mos7840_get_usb_serial(struct usb_serial_port *port,
647 * bulk in endpoint. 647 * bulk in endpoint.
648 *****************************************************************************/ 648 *****************************************************************************/
649 649
650static void mos7840_bulk_in_callback(struct urb *urb, struct pt_regs *regs) 650static void mos7840_bulk_in_callback(struct urb *urb)
651{ 651{
652 int status; 652 int status;
653 unsigned char *data; 653 unsigned char *data;
@@ -726,8 +726,7 @@ static void mos7840_bulk_in_callback(struct urb *urb, struct pt_regs *regs)
726 * on the bulk out endpoint. 726 * on the bulk out endpoint.
727 *****************************************************************************/ 727 *****************************************************************************/
728 728
729static void mos7840_bulk_out_data_callback(struct urb *urb, 729static void mos7840_bulk_out_data_callback(struct urb *urb)
730 struct pt_regs *regs)
731{ 730{
732 struct moschip_port *mos7840_port; 731 struct moschip_port *mos7840_port;
733 struct tty_struct *tty; 732 struct tty_struct *tty;
diff --git a/drivers/usb/serial/navman.c b/drivers/usb/serial/navman.c
index ac3f8b5d2c49..0610409a6568 100644
--- a/drivers/usb/serial/navman.c
+++ b/drivers/usb/serial/navman.c
@@ -32,7 +32,7 @@ static struct usb_driver navman_driver = {
32 .no_dynamic_id = 1, 32 .no_dynamic_id = 1,
33}; 33};
34 34
35static void navman_read_int_callback(struct urb *urb, struct pt_regs *regs) 35static void navman_read_int_callback(struct urb *urb)
36{ 36{
37 struct usb_serial_port *port = urb->context; 37 struct usb_serial_port *port = urb->context;
38 unsigned char *data = urb->transfer_buffer; 38 unsigned char *data = urb->transfer_buffer;
diff --git a/drivers/usb/serial/omninet.c b/drivers/usb/serial/omninet.c
index a764ff4e326c..bc91d3b726fc 100644
--- a/drivers/usb/serial/omninet.c
+++ b/drivers/usb/serial/omninet.c
@@ -64,8 +64,8 @@ static int debug;
64/* function prototypes */ 64/* function prototypes */
65static int omninet_open (struct usb_serial_port *port, struct file *filp); 65static int omninet_open (struct usb_serial_port *port, struct file *filp);
66static void omninet_close (struct usb_serial_port *port, struct file *filp); 66static void omninet_close (struct usb_serial_port *port, struct file *filp);
67static void omninet_read_bulk_callback (struct urb *urb, struct pt_regs *regs); 67static void omninet_read_bulk_callback (struct urb *urb);
68static void omninet_write_bulk_callback (struct urb *urb, struct pt_regs *regs); 68static void omninet_write_bulk_callback (struct urb *urb);
69static int omninet_write (struct usb_serial_port *port, const unsigned char *buf, int count); 69static int omninet_write (struct usb_serial_port *port, const unsigned char *buf, int count);
70static int omninet_write_room (struct usb_serial_port *port); 70static int omninet_write_room (struct usb_serial_port *port);
71static void omninet_shutdown (struct usb_serial *serial); 71static void omninet_shutdown (struct usb_serial *serial);
@@ -194,7 +194,7 @@ static void omninet_close (struct usb_serial_port *port, struct file * filp)
194#define OMNINET_HEADERLEN sizeof(struct omninet_header) 194#define OMNINET_HEADERLEN sizeof(struct omninet_header)
195#define OMNINET_BULKOUTSIZE (64 - OMNINET_HEADERLEN) 195#define OMNINET_BULKOUTSIZE (64 - OMNINET_HEADERLEN)
196 196
197static void omninet_read_bulk_callback (struct urb *urb, struct pt_regs *regs) 197static void omninet_read_bulk_callback (struct urb *urb)
198{ 198{
199 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 199 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
200 unsigned char *data = urb->transfer_buffer; 200 unsigned char *data = urb->transfer_buffer;
@@ -306,7 +306,7 @@ static int omninet_write_room (struct usb_serial_port *port)
306 return (room); 306 return (room);
307} 307}
308 308
309static void omninet_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 309static void omninet_write_bulk_callback (struct urb *urb)
310{ 310{
311/* struct omninet_header *header = (struct omninet_header *) urb->transfer_buffer; */ 311/* struct omninet_header *header = (struct omninet_header *) urb->transfer_buffer; */
312 struct usb_serial_port *port = (struct usb_serial_port *) urb->context; 312 struct usb_serial_port *port = (struct usb_serial_port *) urb->context;
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index c856e6f40e22..130afbbd3fca 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -50,7 +50,7 @@ static void option_rx_throttle(struct usb_serial_port *port);
50static void option_rx_unthrottle(struct usb_serial_port *port); 50static void option_rx_unthrottle(struct usb_serial_port *port);
51static int option_write_room(struct usb_serial_port *port); 51static int option_write_room(struct usb_serial_port *port);
52 52
53static void option_instat_callback(struct urb *urb, struct pt_regs *regs); 53static void option_instat_callback(struct urb *urb);
54 54
55static int option_write(struct usb_serial_port *port, 55static int option_write(struct usb_serial_port *port,
56 const unsigned char *buf, int count); 56 const unsigned char *buf, int count);
@@ -337,7 +337,7 @@ static int option_write(struct usb_serial_port *port,
337 return count; 337 return count;
338} 338}
339 339
340static void option_indat_callback(struct urb *urb, struct pt_regs *regs) 340static void option_indat_callback(struct urb *urb)
341{ 341{
342 int err; 342 int err;
343 int endpoint; 343 int endpoint;
@@ -374,7 +374,7 @@ static void option_indat_callback(struct urb *urb, struct pt_regs *regs)
374 return; 374 return;
375} 375}
376 376
377static void option_outdat_callback(struct urb *urb, struct pt_regs *regs) 377static void option_outdat_callback(struct urb *urb)
378{ 378{
379 struct usb_serial_port *port; 379 struct usb_serial_port *port;
380 380
@@ -385,7 +385,7 @@ static void option_outdat_callback(struct urb *urb, struct pt_regs *regs)
385 usb_serial_port_softint(port); 385 usb_serial_port_softint(port);
386} 386}
387 387
388static void option_instat_callback(struct urb *urb, struct pt_regs *regs) 388static void option_instat_callback(struct urb *urb)
389{ 389{
390 int err; 390 int err;
391 struct usb_serial_port *port = (struct usb_serial_port *) urb->context; 391 struct usb_serial_port *port = (struct usb_serial_port *) urb->context;
@@ -565,7 +565,7 @@ static void option_close(struct usb_serial_port *port, struct file *filp)
565/* Helper functions used by option_setup_urbs */ 565/* Helper functions used by option_setup_urbs */
566static struct urb *option_setup_urb(struct usb_serial *serial, int endpoint, 566static struct urb *option_setup_urb(struct usb_serial *serial, int endpoint,
567 int dir, void *ctx, char *buf, int len, 567 int dir, void *ctx, char *buf, int len,
568 void (*callback)(struct urb *, struct pt_regs *regs)) 568 void (*callback)(struct urb *))
569{ 569{
570 struct urb *urb; 570 struct urb *urb;
571 571
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 9c18173e33fb..bc800c8787a8 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -948,7 +948,7 @@ static void pl2303_update_line_status(struct usb_serial_port *port,
948 wake_up_interruptible(&priv->delta_msr_wait); 948 wake_up_interruptible(&priv->delta_msr_wait);
949} 949}
950 950
951static void pl2303_read_int_callback(struct urb *urb, struct pt_regs *regs) 951static void pl2303_read_int_callback(struct urb *urb)
952{ 952{
953 struct usb_serial_port *port = (struct usb_serial_port *) urb->context; 953 struct usb_serial_port *port = (struct usb_serial_port *) urb->context;
954 unsigned char *data = urb->transfer_buffer; 954 unsigned char *data = urb->transfer_buffer;
@@ -987,7 +987,7 @@ exit:
987 __FUNCTION__, status); 987 __FUNCTION__, status);
988} 988}
989 989
990static void pl2303_read_bulk_callback(struct urb *urb, struct pt_regs *regs) 990static void pl2303_read_bulk_callback(struct urb *urb)
991{ 991{
992 struct usb_serial_port *port = (struct usb_serial_port *) urb->context; 992 struct usb_serial_port *port = (struct usb_serial_port *) urb->context;
993 struct pl2303_private *priv = usb_get_serial_port_data(port); 993 struct pl2303_private *priv = usb_get_serial_port_data(port);
@@ -1070,7 +1070,7 @@ static void pl2303_read_bulk_callback(struct urb *urb, struct pt_regs *regs)
1070 return; 1070 return;
1071} 1071}
1072 1072
1073static void pl2303_write_bulk_callback(struct urb *urb, struct pt_regs *regs) 1073static void pl2303_write_bulk_callback(struct urb *urb)
1074{ 1074{
1075 struct usb_serial_port *port = (struct usb_serial_port *) urb->context; 1075 struct usb_serial_port *port = (struct usb_serial_port *) urb->context;
1076 struct pl2303_private *priv = usb_get_serial_port_data(port); 1076 struct pl2303_private *priv = usb_get_serial_port_data(port);
diff --git a/drivers/usb/serial/safe_serial.c b/drivers/usb/serial/safe_serial.c
index 1e07dfad6853..30b7ebc8d45d 100644
--- a/drivers/usb/serial/safe_serial.c
+++ b/drivers/usb/serial/safe_serial.c
@@ -204,7 +204,7 @@ static __u16 __inline__ fcs_compute10 (unsigned char *sp, int len, __u16 fcs)
204 return fcs; 204 return fcs;
205} 205}
206 206
207static void safe_read_bulk_callback (struct urb *urb, struct pt_regs *regs) 207static void safe_read_bulk_callback (struct urb *urb)
208{ 208{
209 struct usb_serial_port *port = (struct usb_serial_port *) urb->context; 209 struct usb_serial_port *port = (struct usb_serial_port *) urb->context;
210 unsigned char *data = urb->transfer_buffer; 210 unsigned char *data = urb->transfer_buffer;
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
index ac9b8ee52d44..07400c0c8a8c 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
@@ -166,9 +166,9 @@ static int ti_tiocmget(struct usb_serial_port *port, struct file *file);
166static int ti_tiocmset(struct usb_serial_port *port, struct file *file, 166static int ti_tiocmset(struct usb_serial_port *port, struct file *file,
167 unsigned int set, unsigned int clear); 167 unsigned int set, unsigned int clear);
168static void ti_break(struct usb_serial_port *port, int break_state); 168static void ti_break(struct usb_serial_port *port, int break_state);
169static void ti_interrupt_callback(struct urb *urb, struct pt_regs *regs); 169static void ti_interrupt_callback(struct urb *urb);
170static void ti_bulk_in_callback(struct urb *urb, struct pt_regs *regs); 170static void ti_bulk_in_callback(struct urb *urb);
171static void ti_bulk_out_callback(struct urb *urb, struct pt_regs *regs); 171static void ti_bulk_out_callback(struct urb *urb);
172 172
173static void ti_recv(struct device *dev, struct tty_struct *tty, 173static void ti_recv(struct device *dev, struct tty_struct *tty,
174 unsigned char *data, int length); 174 unsigned char *data, int length);
@@ -1098,7 +1098,7 @@ static void ti_break(struct usb_serial_port *port, int break_state)
1098} 1098}
1099 1099
1100 1100
1101static void ti_interrupt_callback(struct urb *urb, struct pt_regs *regs) 1101static void ti_interrupt_callback(struct urb *urb)
1102{ 1102{
1103 struct ti_device *tdev = (struct ti_device *)urb->context; 1103 struct ti_device *tdev = (struct ti_device *)urb->context;
1104 struct usb_serial_port *port; 1104 struct usb_serial_port *port;
@@ -1178,7 +1178,7 @@ exit:
1178} 1178}
1179 1179
1180 1180
1181static void ti_bulk_in_callback(struct urb *urb, struct pt_regs *regs) 1181static void ti_bulk_in_callback(struct urb *urb)
1182{ 1182{
1183 struct ti_port *tport = (struct ti_port *)urb->context; 1183 struct ti_port *tport = (struct ti_port *)urb->context;
1184 struct usb_serial_port *port = tport->tp_port; 1184 struct usb_serial_port *port = tport->tp_port;
@@ -1241,7 +1241,7 @@ exit:
1241} 1241}
1242 1242
1243 1243
1244static void ti_bulk_out_callback(struct urb *urb, struct pt_regs *regs) 1244static void ti_bulk_out_callback(struct urb *urb)
1245{ 1245{
1246 struct ti_port *tport = (struct ti_port *)urb->context; 1246 struct ti_port *tport = (struct ti_port *)urb->context;
1247 struct usb_serial_port *port = tport->tp_port; 1247 struct usb_serial_port *port = tport->tp_port;
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
index 88949f7884ca..befe2e11a041 100644
--- a/drivers/usb/serial/visor.c
+++ b/drivers/usb/serial/visor.c
@@ -47,9 +47,9 @@ static int visor_calc_num_ports(struct usb_serial *serial);
47static void visor_shutdown (struct usb_serial *serial); 47static void visor_shutdown (struct usb_serial *serial);
48static int visor_ioctl (struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg); 48static int visor_ioctl (struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg);
49static void visor_set_termios (struct usb_serial_port *port, struct termios *old_termios); 49static void visor_set_termios (struct usb_serial_port *port, struct termios *old_termios);
50static void visor_write_bulk_callback (struct urb *urb, struct pt_regs *regs); 50static void visor_write_bulk_callback (struct urb *urb);
51static void visor_read_bulk_callback (struct urb *urb, struct pt_regs *regs); 51static void visor_read_bulk_callback (struct urb *urb);
52static void visor_read_int_callback (struct urb *urb, struct pt_regs *regs); 52static void visor_read_int_callback (struct urb *urb);
53static int clie_3_5_startup (struct usb_serial *serial); 53static int clie_3_5_startup (struct usb_serial *serial);
54static int treo_attach (struct usb_serial *serial); 54static int treo_attach (struct usb_serial *serial);
55static int clie_5_attach (struct usb_serial *serial); 55static int clie_5_attach (struct usb_serial *serial);
@@ -471,7 +471,7 @@ static int visor_chars_in_buffer (struct usb_serial_port *port)
471} 471}
472 472
473 473
474static void visor_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 474static void visor_write_bulk_callback (struct urb *urb)
475{ 475{
476 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 476 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
477 struct visor_private *priv = usb_get_serial_port_data(port); 477 struct visor_private *priv = usb_get_serial_port_data(port);
@@ -494,7 +494,7 @@ static void visor_write_bulk_callback (struct urb *urb, struct pt_regs *regs)
494} 494}
495 495
496 496
497static void visor_read_bulk_callback (struct urb *urb, struct pt_regs *regs) 497static void visor_read_bulk_callback (struct urb *urb)
498{ 498{
499 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 499 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
500 struct visor_private *priv = usb_get_serial_port_data(port); 500 struct visor_private *priv = usb_get_serial_port_data(port);
@@ -539,7 +539,7 @@ static void visor_read_bulk_callback (struct urb *urb, struct pt_regs *regs)
539 return; 539 return;
540} 540}
541 541
542static void visor_read_int_callback (struct urb *urb, struct pt_regs *regs) 542static void visor_read_int_callback (struct urb *urb)
543{ 543{
544 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 544 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
545 int result; 545 int result;
diff --git a/drivers/usb/serial/whiteheat.c b/drivers/usb/serial/whiteheat.c
index 6e6c7934be32..4d1cd7aeccd3 100644
--- a/drivers/usb/serial/whiteheat.c
+++ b/drivers/usb/serial/whiteheat.c
@@ -152,8 +152,8 @@ static void whiteheat_break_ctl (struct usb_serial_port *port, int break_state)
152static int whiteheat_chars_in_buffer (struct usb_serial_port *port); 152static int whiteheat_chars_in_buffer (struct usb_serial_port *port);
153static void whiteheat_throttle (struct usb_serial_port *port); 153static void whiteheat_throttle (struct usb_serial_port *port);
154static void whiteheat_unthrottle (struct usb_serial_port *port); 154static void whiteheat_unthrottle (struct usb_serial_port *port);
155static void whiteheat_read_callback (struct urb *urb, struct pt_regs *regs); 155static void whiteheat_read_callback (struct urb *urb);
156static void whiteheat_write_callback (struct urb *urb, struct pt_regs *regs); 156static void whiteheat_write_callback (struct urb *urb);
157 157
158static struct usb_serial_driver whiteheat_fake_device = { 158static struct usb_serial_driver whiteheat_fake_device = {
159 .driver = { 159 .driver = {
@@ -235,8 +235,8 @@ struct whiteheat_private {
235/* local function prototypes */ 235/* local function prototypes */
236static int start_command_port(struct usb_serial *serial); 236static int start_command_port(struct usb_serial *serial);
237static void stop_command_port(struct usb_serial *serial); 237static void stop_command_port(struct usb_serial *serial);
238static void command_port_write_callback(struct urb *urb, struct pt_regs *regs); 238static void command_port_write_callback(struct urb *urb);
239static void command_port_read_callback(struct urb *urb, struct pt_regs *regs); 239static void command_port_read_callback(struct urb *urb);
240 240
241static int start_port_read(struct usb_serial_port *port); 241static int start_port_read(struct usb_serial_port *port);
242static struct whiteheat_urb_wrap *urb_to_wrap(struct urb *urb, struct list_head *head); 242static struct whiteheat_urb_wrap *urb_to_wrap(struct urb *urb, struct list_head *head);
@@ -958,7 +958,7 @@ static void whiteheat_unthrottle (struct usb_serial_port *port)
958/***************************************************************************** 958/*****************************************************************************
959 * Connect Tech's White Heat callback routines 959 * Connect Tech's White Heat callback routines
960 *****************************************************************************/ 960 *****************************************************************************/
961static void command_port_write_callback (struct urb *urb, struct pt_regs *regs) 961static void command_port_write_callback (struct urb *urb)
962{ 962{
963 dbg("%s", __FUNCTION__); 963 dbg("%s", __FUNCTION__);
964 964
@@ -969,7 +969,7 @@ static void command_port_write_callback (struct urb *urb, struct pt_regs *regs)
969} 969}
970 970
971 971
972static void command_port_read_callback (struct urb *urb, struct pt_regs *regs) 972static void command_port_read_callback (struct urb *urb)
973{ 973{
974 struct usb_serial_port *command_port = (struct usb_serial_port *)urb->context; 974 struct usb_serial_port *command_port = (struct usb_serial_port *)urb->context;
975 struct whiteheat_command_private *command_info; 975 struct whiteheat_command_private *command_info;
@@ -1019,7 +1019,7 @@ static void command_port_read_callback (struct urb *urb, struct pt_regs *regs)
1019} 1019}
1020 1020
1021 1021
1022static void whiteheat_read_callback(struct urb *urb, struct pt_regs *regs) 1022static void whiteheat_read_callback(struct urb *urb)
1023{ 1023{
1024 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1024 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
1025 struct whiteheat_urb_wrap *wrap; 1025 struct whiteheat_urb_wrap *wrap;
@@ -1061,7 +1061,7 @@ static void whiteheat_read_callback(struct urb *urb, struct pt_regs *regs)
1061} 1061}
1062 1062
1063 1063
1064static void whiteheat_write_callback(struct urb *urb, struct pt_regs *regs) 1064static void whiteheat_write_callback(struct urb *urb)
1065{ 1065{
1066 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1066 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
1067 struct whiteheat_private *info = usb_get_serial_port_data(port); 1067 struct whiteheat_private *info = usb_get_serial_port_data(port);
diff --git a/drivers/usb/storage/onetouch.c b/drivers/usb/storage/onetouch.c
index f843a0bcf107..3baf448e300d 100644
--- a/drivers/usb/storage/onetouch.c
+++ b/drivers/usb/storage/onetouch.c
@@ -53,7 +53,7 @@ struct usb_onetouch {
53 unsigned int is_open:1; 53 unsigned int is_open:1;
54}; 54};
55 55
56static void usb_onetouch_irq(struct urb *urb, struct pt_regs *regs) 56static void usb_onetouch_irq(struct urb *urb)
57{ 57{
58 struct usb_onetouch *onetouch = urb->context; 58 struct usb_onetouch *onetouch = urb->context;
59 signed char *data = onetouch->data; 59 signed char *data = onetouch->data;
@@ -72,7 +72,6 @@ static void usb_onetouch_irq(struct urb *urb, struct pt_regs *regs)
72 goto resubmit; 72 goto resubmit;
73 } 73 }
74 74
75 input_regs(dev, regs);
76 input_report_key(dev, ONETOUCH_BUTTON, data[0] & 0x02); 75 input_report_key(dev, ONETOUCH_BUTTON, data[0] & 0x02);
77 input_sync(dev); 76 input_sync(dev);
78 77
diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
index f23514c4e649..47644b5b6155 100644
--- a/drivers/usb/storage/transport.c
+++ b/drivers/usb/storage/transport.c
@@ -108,7 +108,7 @@
108/* This is the completion handler which will wake us up when an URB 108/* This is the completion handler which will wake us up when an URB
109 * completes. 109 * completes.
110 */ 110 */
111static void usb_stor_blocking_completion(struct urb *urb, struct pt_regs *regs) 111static void usb_stor_blocking_completion(struct urb *urb)
112{ 112{
113 struct completion *urb_done_ptr = (struct completion *)urb->context; 113 struct completion *urb_done_ptr = (struct completion *)urb->context;
114 114
diff --git a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c
index 1b51d3187a95..296b091cf168 100644
--- a/drivers/usb/usb-skeleton.c
+++ b/drivers/usb/usb-skeleton.c
@@ -158,7 +158,7 @@ exit:
158 return retval; 158 return retval;
159} 159}
160 160
161static void skel_write_bulk_callback(struct urb *urb, struct pt_regs *regs) 161static void skel_write_bulk_callback(struct urb *urb)
162{ 162{
163 struct usb_skel *dev; 163 struct usb_skel *dev;
164 164
diff --git a/drivers/video/amifb.c b/drivers/video/amifb.c
index f1ba54f4fc39..a4e3fca05891 100644
--- a/drivers/video/amifb.c
+++ b/drivers/video/amifb.c
@@ -1144,7 +1144,7 @@ static void amifb_deinit(void);
1144 */ 1144 */
1145 1145
1146static int flash_cursor(void); 1146static int flash_cursor(void);
1147static irqreturn_t amifb_interrupt(int irq, void *dev_id, struct pt_regs *fp); 1147static irqreturn_t amifb_interrupt(int irq, void *dev_id);
1148static u_long chipalloc(u_long size); 1148static u_long chipalloc(u_long size);
1149static void chipfree(void); 1149static void chipfree(void);
1150 1150
@@ -2492,7 +2492,7 @@ static int flash_cursor(void)
2492 * VBlank Display Interrupt 2492 * VBlank Display Interrupt
2493 */ 2493 */
2494 2494
2495static irqreturn_t amifb_interrupt(int irq, void *dev_id, struct pt_regs *fp) 2495static irqreturn_t amifb_interrupt(int irq, void *dev_id)
2496{ 2496{
2497 if (do_vmode_pan || do_vmode_full) 2497 if (do_vmode_pan || do_vmode_full)
2498 ami_update_display(); 2498 ami_update_display();
diff --git a/drivers/video/arcfb.c b/drivers/video/arcfb.c
index 70dd8115a4d8..ab34b96acc31 100644
--- a/drivers/video/arcfb.c
+++ b/drivers/video/arcfb.c
@@ -218,8 +218,7 @@ static int arcfb_pan_display(struct fb_var_screeninfo *var,
218 return -EINVAL; 218 return -EINVAL;
219} 219}
220 220
221static irqreturn_t arcfb_interrupt(int vec, void *dev_instance, 221static irqreturn_t arcfb_interrupt(int vec, void *dev_instance)
222 struct pt_regs *regs)
223{ 222{
224 struct fb_info *info = dev_instance; 223 struct fb_info *info = dev_instance;
225 unsigned char ctl2status; 224 unsigned char ctl2status;
diff --git a/drivers/video/atafb.c b/drivers/video/atafb.c
index 5831893bf7a0..02c41a626fa2 100644
--- a/drivers/video/atafb.c
+++ b/drivers/video/atafb.c
@@ -1521,7 +1521,7 @@ static void falcon_set_par( struct atafb_par *par )
1521} 1521}
1522 1522
1523 1523
1524static irqreturn_t falcon_vbl_switcher( int irq, void *dummy, struct pt_regs *fp ) 1524static irqreturn_t falcon_vbl_switcher( int irq, void *dummy )
1525{ 1525{
1526 struct falcon_hw *hw = &f_new_mode; 1526 struct falcon_hw *hw = &f_new_mode;
1527 1527
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
index b45c9fd1b330..b77b30923928 100644
--- a/drivers/video/aty/atyfb_base.c
+++ b/drivers/video/aty/atyfb_base.c
@@ -1532,7 +1532,7 @@ static int atyfb_open(struct fb_info *info, int user)
1532 return (0); 1532 return (0);
1533} 1533}
1534 1534
1535static irqreturn_t aty_irq(int irq, void *dev_id, struct pt_regs *fp) 1535static irqreturn_t aty_irq(int irq, void *dev_id)
1536{ 1536{
1537 struct atyfb_par *par = dev_id; 1537 struct atyfb_par *par = dev_id;
1538 int handled = 0; 1538 int handled = 0;
diff --git a/drivers/video/au1200fb.c b/drivers/video/au1200fb.c
index c6a5f0ccc107..dbf4ec3f6d57 100644
--- a/drivers/video/au1200fb.c
+++ b/drivers/video/au1200fb.c
@@ -1545,7 +1545,7 @@ static struct fb_ops au1200fb_fb_ops = {
1545 1545
1546/*-------------------------------------------------------------------------*/ 1546/*-------------------------------------------------------------------------*/
1547 1547
1548static irqreturn_t au1200fb_handle_irq(int irq, void* dev_id, struct pt_regs *regs) 1548static irqreturn_t au1200fb_handle_irq(int irq, void* dev_id)
1549{ 1549{
1550 /* Nothing to do for now, just clear any pending interrupt */ 1550 /* Nothing to do for now, just clear any pending interrupt */
1551 lcd->intstatus = lcd->intstatus; 1551 lcd->intstatus = lcd->intstatus;
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index 8c041daa3a15..302174b8e477 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -204,7 +204,7 @@ static struct class_device *fbcon_class_device;
204 */ 204 */
205static int vbl_detected; 205static int vbl_detected;
206 206
207static irqreturn_t fb_vbl_detect(int irq, void *dummy, struct pt_regs *fp) 207static irqreturn_t fb_vbl_detect(int irq, void *dummy)
208{ 208{
209 vbl_detected++; 209 vbl_detected++;
210 return IRQ_HANDLED; 210 return IRQ_HANDLED;
@@ -414,7 +414,7 @@ static void fb_flashcursor(void *private)
414 414
415#if defined(CONFIG_ATARI) || defined(CONFIG_MAC) 415#if defined(CONFIG_ATARI) || defined(CONFIG_MAC)
416static int cursor_blink_rate; 416static int cursor_blink_rate;
417static irqreturn_t fb_vbl_handler(int irq, void *dev_id, struct pt_regs *fp) 417static irqreturn_t fb_vbl_handler(int irq, void *dev_id)
418{ 418{
419 struct fb_info *info = dev_id; 419 struct fb_info *info = dev_id;
420 420
diff --git a/drivers/video/intelfb/intelfbhw.c b/drivers/video/intelfb/intelfbhw.c
index f887f1efd3fe..eeeeff9a09eb 100644
--- a/drivers/video/intelfb/intelfbhw.c
+++ b/drivers/video/intelfb/intelfbhw.c
@@ -1952,7 +1952,7 @@ intelfbhw_cursor_reset(struct intelfb_info *dinfo) {
1952} 1952}
1953 1953
1954static irqreturn_t 1954static irqreturn_t
1955intelfbhw_irq(int irq, void *dev_id, struct pt_regs *fp) { 1955intelfbhw_irq(int irq, void *dev_id) {
1956 int handled = 0; 1956 int handled = 0;
1957 u16 tmp; 1957 u16 tmp;
1958 struct intelfb_info *dinfo = (struct intelfb_info *)dev_id; 1958 struct intelfb_info *dinfo = (struct intelfb_info *)dev_id;
diff --git a/drivers/video/matrox/matroxfb_base.c b/drivers/video/matrox/matroxfb_base.c
index 7acf01c181ee..e9b4115fcad0 100644
--- a/drivers/video/matrox/matroxfb_base.c
+++ b/drivers/video/matrox/matroxfb_base.c
@@ -198,7 +198,7 @@ static void matroxfb_crtc1_panpos(WPMINFO2) {
198 } 198 }
199} 199}
200 200
201static irqreturn_t matrox_irq(int irq, void *dev_id, struct pt_regs *fp) 201static irqreturn_t matrox_irq(int irq, void *dev_id)
202{ 202{
203 u_int32_t status; 203 u_int32_t status;
204 int handled = 0; 204 int handled = 0;
diff --git a/drivers/video/pvr2fb.c b/drivers/video/pvr2fb.c
index 78dc59a1751b..c7bc80921f16 100644
--- a/drivers/video/pvr2fb.c
+++ b/drivers/video/pvr2fb.c
@@ -209,7 +209,7 @@ static int pvr2fb_set_par(struct fb_info *info);
209static void pvr2_update_display(struct fb_info *info); 209static void pvr2_update_display(struct fb_info *info);
210static void pvr2_init_display(struct fb_info *info); 210static void pvr2_init_display(struct fb_info *info);
211static void pvr2_do_blank(void); 211static void pvr2_do_blank(void);
212static irqreturn_t pvr2fb_interrupt(int irq, void *dev_id, struct pt_regs *fp); 212static irqreturn_t pvr2fb_interrupt(int irq, void *dev_id);
213static int pvr2_init_cable(void); 213static int pvr2_init_cable(void);
214static int pvr2_get_param(const struct pvr2_params *p, const char *s, 214static int pvr2_get_param(const struct pvr2_params *p, const char *s,
215 int val, int size); 215 int val, int size);
@@ -626,7 +626,7 @@ static void pvr2_do_blank(void)
626 is_blanked = do_blank > 0 ? do_blank : 0; 626 is_blanked = do_blank > 0 ? do_blank : 0;
627} 627}
628 628
629static irqreturn_t pvr2fb_interrupt(int irq, void *dev_id, struct pt_regs *fp) 629static irqreturn_t pvr2fb_interrupt(int irq, void *dev_id)
630{ 630{
631 struct fb_info *info = dev_id; 631 struct fb_info *info = dev_id;
632 632
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c
index 3bc5da4a57ca..8a8ae55a7403 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -846,7 +846,7 @@ static void pxafb_disable_controller(struct pxafb_info *fbi)
846/* 846/*
847 * pxafb_handle_irq: Handle 'LCD DONE' interrupts. 847 * pxafb_handle_irq: Handle 'LCD DONE' interrupts.
848 */ 848 */
849static irqreturn_t pxafb_handle_irq(int irq, void *dev_id, struct pt_regs *regs) 849static irqreturn_t pxafb_handle_irq(int irq, void *dev_id)
850{ 850{
851 struct pxafb_info *fbi = dev_id; 851 struct pxafb_info *fbi = dev_id;
852 unsigned int lcsr = LCSR; 852 unsigned int lcsr = LCSR;
diff --git a/drivers/video/s3c2410fb.c b/drivers/video/s3c2410fb.c
index ad3bdd6f1ac1..59407343cc73 100644
--- a/drivers/video/s3c2410fb.c
+++ b/drivers/video/s3c2410fb.c
@@ -614,7 +614,7 @@ static void s3c2410fb_write_palette(struct s3c2410fb_info *fbi)
614 } 614 }
615} 615}
616 616
617static irqreturn_t s3c2410fb_irq(int irq, void *dev_id, struct pt_regs *r) 617static irqreturn_t s3c2410fb_irq(int irq, void *dev_id)
618{ 618{
619 struct s3c2410fb_info *fbi = dev_id; 619 struct s3c2410fb_info *fbi = dev_id;
620 unsigned long lcdirq = readl(S3C2410_LCDINTPND); 620 unsigned long lcdirq = readl(S3C2410_LCDINTPND);
diff --git a/drivers/video/sa1100fb.c b/drivers/video/sa1100fb.c
index a2e6e7205d7e..cd10b18150b8 100644
--- a/drivers/video/sa1100fb.c
+++ b/drivers/video/sa1100fb.c
@@ -1085,7 +1085,7 @@ static void sa1100fb_disable_controller(struct sa1100fb_info *fbi)
1085/* 1085/*
1086 * sa1100fb_handle_irq: Handle 'LCD DONE' interrupts. 1086 * sa1100fb_handle_irq: Handle 'LCD DONE' interrupts.
1087 */ 1087 */
1088static irqreturn_t sa1100fb_handle_irq(int irq, void *dev_id, struct pt_regs *regs) 1088static irqreturn_t sa1100fb_handle_irq(int irq, void *dev_id)
1089{ 1089{
1090 struct sa1100fb_info *fbi = dev_id; 1090 struct sa1100fb_info *fbi = dev_id;
1091 unsigned int lcsr = LCSR; 1091 unsigned int lcsr = LCSR;
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c
index 8d88e58ed5cc..93c43b676e59 100644
--- a/fs/proc/proc_misc.c
+++ b/fs/proc/proc_misc.c
@@ -647,7 +647,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
647 647
648 if (get_user(c, buf)) 648 if (get_user(c, buf))
649 return -EFAULT; 649 return -EFAULT;
650 __handle_sysrq(c, NULL, NULL, 0); 650 __handle_sysrq(c, NULL, 0);
651 } 651 }
652 return count; 652 return count;
653} 653}
diff --git a/fs/udf/super.c b/fs/udf/super.c
index 1d3b5d2070e5..1aea6a4f9a4a 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -1621,9 +1621,10 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
1621 goto error_out; 1621 goto error_out;
1622 } 1622 }
1623 1623
1624 if (UDF_SB_PARTFLAGS(sb, UDF_SB_PARTITION(sb)) & UDF_PART_FLAG_READ_ONLY) 1624 if (UDF_SB_PARTFLAGS(sb, UDF_SB_PARTITION(sb)) & UDF_PART_FLAG_READ_ONLY) {
1625 printk("UDF-fs: Partition marked readonly; forcing readonly mount\n"); 1625 printk("UDF-fs: Partition marked readonly; forcing readonly mount\n");
1626 sb->s_flags |= MS_RDONLY; 1626 sb->s_flags |= MS_RDONLY;
1627 }
1627 1628
1628 if ( udf_find_fileset(sb, &fileset, &rootdir) ) 1629 if ( udf_find_fileset(sb, &fileset, &rootdir) )
1629 { 1630 {
diff --git a/include/asm-frv/dma.h b/include/asm-frv/dma.h
index 18d6bb8f84fc..683c47d48a5b 100644
--- a/include/asm-frv/dma.h
+++ b/include/asm-frv/dma.h
@@ -24,10 +24,7 @@
24/* 24/*
25 * FRV DMA controller management 25 * FRV DMA controller management
26 */ 26 */
27struct pt_regs; 27typedef irqreturn_t (*dma_irq_handler_t)(int dmachan, unsigned long cstr, void *data);
28
29typedef irqreturn_t (*dma_irq_handler_t)(int dmachan, unsigned long cstr, void *data,
30 struct pt_regs *regs);
31 28
32extern void frv_dma_init(void); 29extern void frv_dma_init(void);
33 30
diff --git a/include/asm-frv/irq_regs.h b/include/asm-frv/irq_regs.h
new file mode 100644
index 000000000000..d22e83289ad1
--- /dev/null
+++ b/include/asm-frv/irq_regs.h
@@ -0,0 +1,27 @@
1/* FRV per-CPU frame pointer holder
2 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12#ifndef _ASM_IRQ_REGS_H
13#define _ASM_IRQ_REGS_H
14
15/*
16 * Per-cpu current frame pointer - the location of the last exception frame on
17 * the stack
18 * - on FRV, GR28 is dedicated to keeping a pointer to the current exception
19 * frame
20 */
21#define ARCH_HAS_OWN_IRQ_REGS
22
23#ifndef __ASSEMBLY__
24#define get_irq_regs() (__frame)
25#endif
26
27#endif /* _ASM_IRQ_REGS_H */
diff --git a/include/asm-frv/ptrace.h b/include/asm-frv/ptrace.h
index 7ff525162a72..9a2241b8eb1e 100644
--- a/include/asm-frv/ptrace.h
+++ b/include/asm-frv/ptrace.h
@@ -12,6 +12,7 @@
12#define _ASM_PTRACE_H 12#define _ASM_PTRACE_H
13 13
14#include <asm/registers.h> 14#include <asm/registers.h>
15#include <asm/irq_regs.h>
15 16
16#define in_syscall(regs) (((regs)->tbr & TBR_TT) == TBR_TT_TRAP0) 17#define in_syscall(regs) (((regs)->tbr & TBR_TT) == TBR_TT_TRAP0)
17 18
diff --git a/include/asm-generic/irq_regs.h b/include/asm-generic/irq_regs.h
new file mode 100644
index 000000000000..5ae1d07d4a12
--- /dev/null
+++ b/include/asm-generic/irq_regs.h
@@ -0,0 +1,37 @@
1/* Fallback per-CPU frame pointer holder
2 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12#ifndef _ASM_GENERIC_IRQ_REGS_H
13#define _ASM_GENERIC_IRQ_REGS_H
14
15#include <linux/percpu.h>
16
17/*
18 * Per-cpu current frame pointer - the location of the last exception frame on
19 * the stack
20 */
21DECLARE_PER_CPU(struct pt_regs *, __irq_regs);
22
23static inline struct pt_regs *get_irq_regs(void)
24{
25 return __get_cpu_var(__irq_regs);
26}
27
28static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
29{
30 struct pt_regs *old_regs, **pp_regs = &__get_cpu_var(__irq_regs);
31
32 old_regs = *pp_regs;
33 *pp_regs = new_regs;
34 return old_regs;
35}
36
37#endif /* _ASM_GENERIC_IRQ_REGS_H */
diff --git a/include/asm-i386/apic.h b/include/asm-i386/apic.h
index 3a42b7d6fc92..b9529578fc37 100644
--- a/include/asm-i386/apic.h
+++ b/include/asm-i386/apic.h
@@ -98,7 +98,7 @@ extern void sync_Arb_IDs (void);
98extern void init_bsp_APIC (void); 98extern void init_bsp_APIC (void);
99extern void setup_local_APIC (void); 99extern void setup_local_APIC (void);
100extern void init_apic_mappings (void); 100extern void init_apic_mappings (void);
101extern void smp_local_timer_interrupt (struct pt_regs * regs); 101extern void smp_local_timer_interrupt (void);
102extern void setup_boot_APIC_clock (void); 102extern void setup_boot_APIC_clock (void);
103extern void setup_secondary_APIC_clock (void); 103extern void setup_secondary_APIC_clock (void);
104extern int APIC_init_uniprocessor (void); 104extern int APIC_init_uniprocessor (void);
@@ -107,7 +107,7 @@ extern void enable_APIC_timer(void);
107 107
108extern void enable_NMI_through_LVT0 (void * dummy); 108extern void enable_NMI_through_LVT0 (void * dummy);
109 109
110void smp_send_timer_broadcast_ipi(struct pt_regs *regs); 110void smp_send_timer_broadcast_ipi(void);
111void switch_APIC_timer_to_ipi(void *cpumask); 111void switch_APIC_timer_to_ipi(void *cpumask);
112void switch_ipi_to_APIC_timer(void *cpumask); 112void switch_ipi_to_APIC_timer(void *cpumask);
113#define ARCH_APICTIMER_STOPS_ON_C3 1 113#define ARCH_APICTIMER_STOPS_ON_C3 1
diff --git a/include/asm-i386/arch_hooks.h b/include/asm-i386/arch_hooks.h
index 238cf4275b96..a8c1fca9726d 100644
--- a/include/asm-i386/arch_hooks.h
+++ b/include/asm-i386/arch_hooks.h
@@ -14,7 +14,7 @@
14extern void init_ISA_irqs(void); 14extern void init_ISA_irqs(void);
15extern void apic_intr_init(void); 15extern void apic_intr_init(void);
16extern void smp_intr_init(void); 16extern void smp_intr_init(void);
17extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); 17extern irqreturn_t timer_interrupt(int irq, void *dev_id);
18 18
19/* these are the defined hooks */ 19/* these are the defined hooks */
20extern void intr_init_hook(void); 20extern void intr_init_hook(void);
diff --git a/include/asm-i386/floppy.h b/include/asm-i386/floppy.h
index 359ead60b718..44ef2f55a8e9 100644
--- a/include/asm-i386/floppy.h
+++ b/include/asm-i386/floppy.h
@@ -51,7 +51,7 @@ static char *virtual_dma_addr;
51static int virtual_dma_mode; 51static int virtual_dma_mode;
52static int doing_pdma; 52static int doing_pdma;
53 53
54static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) 54static irqreturn_t floppy_hardint(int irq, void *dev_id)
55{ 55{
56 register unsigned char st; 56 register unsigned char st;
57 57
@@ -63,7 +63,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
63 static int dma_wait=0; 63 static int dma_wait=0;
64#endif 64#endif
65 if (!doing_pdma) 65 if (!doing_pdma)
66 return floppy_interrupt(irq, dev_id, regs); 66 return floppy_interrupt(irq, dev_id);
67 67
68#ifdef TRACE_FLPY_INT 68#ifdef TRACE_FLPY_INT
69 if(!calls) 69 if(!calls)
@@ -106,7 +106,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
106 dma_wait=0; 106 dma_wait=0;
107#endif 107#endif
108 doing_pdma = 0; 108 doing_pdma = 0;
109 floppy_interrupt(irq, dev_id, regs); 109 floppy_interrupt(irq, dev_id);
110 return IRQ_HANDLED; 110 return IRQ_HANDLED;
111 } 111 }
112#ifdef TRACE_FLPY_INT 112#ifdef TRACE_FLPY_INT
diff --git a/include/asm-i386/hpet.h b/include/asm-i386/hpet.h
index af5d435519d1..e47be9a56cc2 100644
--- a/include/asm-i386/hpet.h
+++ b/include/asm-i386/hpet.h
@@ -108,7 +108,7 @@ extern int hpet_set_alarm_time(unsigned char hrs, unsigned char min, unsigned ch
108extern int hpet_set_periodic_freq(unsigned long freq); 108extern int hpet_set_periodic_freq(unsigned long freq);
109extern int hpet_rtc_dropped_irq(void); 109extern int hpet_rtc_dropped_irq(void);
110extern int hpet_rtc_timer_init(void); 110extern int hpet_rtc_timer_init(void);
111extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 111extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id);
112#endif /* CONFIG_HPET_EMULATE_RTC */ 112#endif /* CONFIG_HPET_EMULATE_RTC */
113#endif /* CONFIG_HPET_TIMER */ 113#endif /* CONFIG_HPET_TIMER */
114#endif /* _I386_HPET_H */ 114#endif /* _I386_HPET_H */
diff --git a/include/asm-i386/hw_irq.h b/include/asm-i386/hw_irq.h
index 88f02a073561..8806c7e002a7 100644
--- a/include/asm-i386/hw_irq.h
+++ b/include/asm-i386/hw_irq.h
@@ -41,7 +41,7 @@ fastcall void call_function_interrupt(void);
41fastcall void apic_timer_interrupt(void); 41fastcall void apic_timer_interrupt(void);
42fastcall void error_interrupt(void); 42fastcall void error_interrupt(void);
43fastcall void spurious_interrupt(void); 43fastcall void spurious_interrupt(void);
44fastcall void thermal_interrupt(struct pt_regs *); 44fastcall void thermal_interrupt(void);
45#define platform_legacy_irq(irq) ((irq) < 16) 45#define platform_legacy_irq(irq) ((irq) < 16)
46#endif 46#endif
47 47
diff --git a/include/asm-i386/irq_regs.h b/include/asm-i386/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-i386/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-i386/mach-default/do_timer.h b/include/asm-i386/mach-default/do_timer.h
index 4182c347ef85..7d606e3364ae 100644
--- a/include/asm-i386/mach-default/do_timer.h
+++ b/include/asm-i386/mach-default/do_timer.h
@@ -14,11 +14,11 @@
14 * timer interrupt as a means of triggering reschedules etc. 14 * timer interrupt as a means of triggering reschedules etc.
15 **/ 15 **/
16 16
17static inline void do_timer_interrupt_hook(struct pt_regs *regs) 17static inline void do_timer_interrupt_hook(void)
18{ 18{
19 do_timer(1); 19 do_timer(1);
20#ifndef CONFIG_SMP 20#ifndef CONFIG_SMP
21 update_process_times(user_mode_vm(regs)); 21 update_process_times(user_mode_vm(get_irq_regs()));
22#endif 22#endif
23/* 23/*
24 * In the SMP case we use the local APIC timer interrupt to do the 24 * In the SMP case we use the local APIC timer interrupt to do the
@@ -26,10 +26,10 @@ static inline void do_timer_interrupt_hook(struct pt_regs *regs)
26 * system, in that case we have to call the local interrupt handler. 26 * system, in that case we have to call the local interrupt handler.
27 */ 27 */
28#ifndef CONFIG_X86_LOCAL_APIC 28#ifndef CONFIG_X86_LOCAL_APIC
29 profile_tick(CPU_PROFILING, regs); 29 profile_tick(CPU_PROFILING);
30#else 30#else
31 if (!using_apic_timer) 31 if (!using_apic_timer)
32 smp_local_timer_interrupt(regs); 32 smp_local_timer_interrupt();
33#endif 33#endif
34} 34}
35 35
diff --git a/include/asm-i386/mach-visws/do_timer.h b/include/asm-i386/mach-visws/do_timer.h
index 8db618c5a72b..21cd696d4d0f 100644
--- a/include/asm-i386/mach-visws/do_timer.h
+++ b/include/asm-i386/mach-visws/do_timer.h
@@ -4,14 +4,14 @@
4#include <asm/i8259.h> 4#include <asm/i8259.h>
5#include "cobalt.h" 5#include "cobalt.h"
6 6
7static inline void do_timer_interrupt_hook(struct pt_regs *regs) 7static inline void do_timer_interrupt_hook(void)
8{ 8{
9 /* Clear the interrupt */ 9 /* Clear the interrupt */
10 co_cpu_write(CO_CPU_STAT,co_cpu_read(CO_CPU_STAT) & ~CO_STAT_TIMEINTR); 10 co_cpu_write(CO_CPU_STAT,co_cpu_read(CO_CPU_STAT) & ~CO_STAT_TIMEINTR);
11 11
12 do_timer(1); 12 do_timer(1);
13#ifndef CONFIG_SMP 13#ifndef CONFIG_SMP
14 update_process_times(user_mode_vm(regs)); 14 update_process_times(user_mode_vm(irq_regs));
15#endif 15#endif
16/* 16/*
17 * In the SMP case we use the local APIC timer interrupt to do the 17 * In the SMP case we use the local APIC timer interrupt to do the
@@ -19,10 +19,10 @@ static inline void do_timer_interrupt_hook(struct pt_regs *regs)
19 * system, in that case we have to call the local interrupt handler. 19 * system, in that case we have to call the local interrupt handler.
20 */ 20 */
21#ifndef CONFIG_X86_LOCAL_APIC 21#ifndef CONFIG_X86_LOCAL_APIC
22 profile_tick(CPU_PROFILING, regs); 22 profile_tick(CPU_PROFILING);
23#else 23#else
24 if (!using_apic_timer) 24 if (!using_apic_timer)
25 smp_local_timer_interrupt(regs); 25 smp_local_timer_interrupt();
26#endif 26#endif
27} 27}
28 28
diff --git a/include/asm-i386/mach-voyager/do_timer.h b/include/asm-i386/mach-voyager/do_timer.h
index 099fe9f5c1b2..04e69c104a74 100644
--- a/include/asm-i386/mach-voyager/do_timer.h
+++ b/include/asm-i386/mach-voyager/do_timer.h
@@ -1,14 +1,14 @@
1/* defines for inline arch setup functions */ 1/* defines for inline arch setup functions */
2#include <asm/voyager.h> 2#include <asm/voyager.h>
3 3
4static inline void do_timer_interrupt_hook(struct pt_regs *regs) 4static inline void do_timer_interrupt_hook(void)
5{ 5{
6 do_timer(1); 6 do_timer(1);
7#ifndef CONFIG_SMP 7#ifndef CONFIG_SMP
8 update_process_times(user_mode_vm(regs)); 8 update_process_times(user_mode_vm(irq_regs));
9#endif 9#endif
10 10
11 voyager_timer_interrupt(regs); 11 voyager_timer_interrupt();
12} 12}
13 13
14static inline int do_timer_overflow(int count) 14static inline int do_timer_overflow(int count)
diff --git a/include/asm-i386/voyager.h b/include/asm-i386/voyager.h
index aaf432dd7673..e74c54aa757f 100644
--- a/include/asm-i386/voyager.h
+++ b/include/asm-i386/voyager.h
@@ -505,8 +505,8 @@ extern int voyager_memory_detect(int region, __u32 *addr, __u32 *length);
505extern void voyager_smp_intr_init(void); 505extern void voyager_smp_intr_init(void);
506extern __u8 voyager_extended_cmos_read(__u16 cmos_address); 506extern __u8 voyager_extended_cmos_read(__u16 cmos_address);
507extern void voyager_smp_dump(void); 507extern void voyager_smp_dump(void);
508extern void voyager_timer_interrupt(struct pt_regs *regs); 508extern void voyager_timer_interrupt(void);
509extern void smp_local_timer_interrupt(struct pt_regs * regs); 509extern void smp_local_timer_interrupt(void);
510extern void voyager_power_off(void); 510extern void voyager_power_off(void);
511extern void smp_voyager_power_off(void *dummy); 511extern void smp_voyager_power_off(void *dummy);
512extern void voyager_restart(void); 512extern void voyager_restart(void);
diff --git a/include/asm-ia64/irq_regs.h b/include/asm-ia64/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-ia64/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-ia64/machvec.h b/include/asm-ia64/machvec.h
index 90cba967df35..7ffbddf5306f 100644
--- a/include/asm-ia64/machvec.h
+++ b/include/asm-ia64/machvec.h
@@ -26,7 +26,7 @@ typedef void ia64_mv_setup_t (char **);
26typedef void ia64_mv_cpu_init_t (void); 26typedef void ia64_mv_cpu_init_t (void);
27typedef void ia64_mv_irq_init_t (void); 27typedef void ia64_mv_irq_init_t (void);
28typedef void ia64_mv_send_ipi_t (int, int, int, int); 28typedef void ia64_mv_send_ipi_t (int, int, int, int);
29typedef void ia64_mv_timer_interrupt_t (int, void *, struct pt_regs *); 29typedef void ia64_mv_timer_interrupt_t (int, void *);
30typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long); 30typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long);
31typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *); 31typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *);
32typedef unsigned int ia64_mv_local_vector_to_irq (u8); 32typedef unsigned int ia64_mv_local_vector_to_irq (u8);
@@ -96,7 +96,7 @@ machvec_noop_task (struct task_struct *task)
96} 96}
97 97
98extern void machvec_setup (char **); 98extern void machvec_setup (char **);
99extern void machvec_timer_interrupt (int, void *, struct pt_regs *); 99extern void machvec_timer_interrupt (int, void *);
100extern void machvec_dma_sync_single (struct device *, dma_addr_t, size_t, int); 100extern void machvec_dma_sync_single (struct device *, dma_addr_t, size_t, int);
101extern void machvec_dma_sync_sg (struct device *, struct scatterlist *, int, int); 101extern void machvec_dma_sync_sg (struct device *, struct scatterlist *, int, int);
102extern void machvec_tlb_migrate_finish (struct mm_struct *); 102extern void machvec_tlb_migrate_finish (struct mm_struct *);
diff --git a/include/asm-mips/irq_regs.h b/include/asm-mips/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-mips/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-mips/time.h b/include/asm-mips/time.h
index 2d543735668b..30f21df39253 100644
--- a/include/asm-mips/time.h
+++ b/include/asm-mips/time.h
@@ -67,7 +67,7 @@ extern unsigned long (*do_gettimeoffset)(void);
67/* 67/*
68 * high-level timer interrupt routines. 68 * high-level timer interrupt routines.
69 */ 69 */
70extern irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); 70extern irqreturn_t timer_interrupt(int irq, void *dev_id);
71 71
72/* 72/*
73 * the corresponding low-level timer interrupt routine. 73 * the corresponding low-level timer interrupt routine.
@@ -77,7 +77,7 @@ extern asmlinkage void ll_timer_interrupt(int irq, struct pt_regs *regs);
77/* 77/*
78 * profiling and process accouting is done separately in local_timer_interrupt 78 * profiling and process accouting is done separately in local_timer_interrupt
79 */ 79 */
80extern void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs); 80extern void local_timer_interrupt(int irq, void *dev_id);
81extern asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs); 81extern asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs);
82 82
83/* 83/*
diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h
index 89ed545b446b..f960f5346f40 100644
--- a/include/asm-powerpc/irq.h
+++ b/include/asm-powerpc/irq.h
@@ -825,7 +825,7 @@ extern struct thread_info *softirq_ctx[NR_CPUS];
825 825
826extern void irq_ctx_init(void); 826extern void irq_ctx_init(void);
827extern void call_do_softirq(struct thread_info *tp); 827extern void call_do_softirq(struct thread_info *tp);
828extern int call_handle_irq(int irq, void *p1, void *p2, 828extern int call_handle_irq(int irq, void *p1,
829 struct thread_info *tp, void *func); 829 struct thread_info *tp, void *func);
830#else 830#else
831#define irq_ctx_init() 831#define irq_ctx_init()
diff --git a/include/asm-powerpc/irq_regs.h b/include/asm-powerpc/irq_regs.h
new file mode 100644
index 000000000000..ba94b51a0a70
--- /dev/null
+++ b/include/asm-powerpc/irq_regs.h
@@ -0,0 +1,2 @@
1#include <asm-generic/irq_regs.h>
2
diff --git a/include/asm-powerpc/smp.h b/include/asm-powerpc/smp.h
index 068f119aa298..20ea7c70bc38 100644
--- a/include/asm-powerpc/smp.h
+++ b/include/asm-powerpc/smp.h
@@ -34,8 +34,7 @@ extern void cpu_die(void);
34#ifdef CONFIG_SMP 34#ifdef CONFIG_SMP
35 35
36extern void smp_send_debugger_break(int cpu); 36extern void smp_send_debugger_break(int cpu);
37struct pt_regs; 37extern void smp_message_recv(int);
38extern void smp_message_recv(int, struct pt_regs *);
39 38
40#ifdef CONFIG_HOTPLUG_CPU 39#ifdef CONFIG_HOTPLUG_CPU
41extern void fixup_irqs(cpumask_t map); 40extern void fixup_irqs(cpumask_t map);
diff --git a/include/asm-x86_64/apic.h b/include/asm-x86_64/apic.h
index 9e66d32330c9..e81d0f289f0b 100644
--- a/include/asm-x86_64/apic.h
+++ b/include/asm-x86_64/apic.h
@@ -77,7 +77,7 @@ extern void sync_Arb_IDs (void);
77extern void init_bsp_APIC (void); 77extern void init_bsp_APIC (void);
78extern void setup_local_APIC (void); 78extern void setup_local_APIC (void);
79extern void init_apic_mappings (void); 79extern void init_apic_mappings (void);
80extern void smp_local_timer_interrupt (struct pt_regs * regs); 80extern void smp_local_timer_interrupt (void);
81extern void setup_boot_APIC_clock (void); 81extern void setup_boot_APIC_clock (void);
82extern void setup_secondary_APIC_clock (void); 82extern void setup_secondary_APIC_clock (void);
83extern int APIC_init_uniprocessor (void); 83extern int APIC_init_uniprocessor (void);
diff --git a/include/asm-x86_64/floppy.h b/include/asm-x86_64/floppy.h
index 32ff5d132714..6ea13c3806f3 100644
--- a/include/asm-x86_64/floppy.h
+++ b/include/asm-x86_64/floppy.h
@@ -51,7 +51,7 @@ static char *virtual_dma_addr;
51static int virtual_dma_mode; 51static int virtual_dma_mode;
52static int doing_pdma; 52static int doing_pdma;
53 53
54static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) 54static irqreturn_t floppy_hardint(int irq, void *dev_id)
55{ 55{
56 register unsigned char st; 56 register unsigned char st;
57 57
@@ -63,7 +63,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
63 static int dma_wait=0; 63 static int dma_wait=0;
64#endif 64#endif
65 if (!doing_pdma) 65 if (!doing_pdma)
66 return floppy_interrupt(irq, dev_id, regs); 66 return floppy_interrupt(irq, dev_id);
67 67
68#ifdef TRACE_FLPY_INT 68#ifdef TRACE_FLPY_INT
69 if(!calls) 69 if(!calls)
@@ -106,7 +106,7 @@ static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
106 dma_wait=0; 106 dma_wait=0;
107#endif 107#endif
108 doing_pdma = 0; 108 doing_pdma = 0;
109 floppy_interrupt(irq, dev_id, regs); 109 floppy_interrupt(irq, dev_id);
110 return IRQ_HANDLED; 110 return IRQ_HANDLED;
111 } 111 }
112#ifdef TRACE_FLPY_INT 112#ifdef TRACE_FLPY_INT
diff --git a/include/asm-x86_64/irq_regs.h b/include/asm-x86_64/irq_regs.h
new file mode 100644
index 000000000000..3dd9c0b70270
--- /dev/null
+++ b/include/asm-x86_64/irq_regs.h
@@ -0,0 +1 @@
#include <asm-generic/irq_regs.h>
diff --git a/include/asm-x86_64/proto.h b/include/asm-x86_64/proto.h
index c28fc2db2171..c181fef786e4 100644
--- a/include/asm-x86_64/proto.h
+++ b/include/asm-x86_64/proto.h
@@ -66,7 +66,7 @@ extern void free_bootmem_generic(unsigned long phys, unsigned len);
66extern void load_gs_index(unsigned gs); 66extern void load_gs_index(unsigned gs);
67 67
68extern void stop_timer_interrupt(void); 68extern void stop_timer_interrupt(void);
69extern void main_timer_handler(struct pt_regs *regs); 69extern void main_timer_handler(void);
70 70
71extern unsigned long end_pfn_map; 71extern unsigned long end_pfn_map;
72 72
@@ -124,7 +124,7 @@ extern int notsc_setup(char *);
124 124
125extern int gsi_irq_sharing(int gsi); 125extern int gsi_irq_sharing(int gsi);
126 126
127extern void smp_local_timer_interrupt(struct pt_regs * regs); 127extern void smp_local_timer_interrupt(void);
128 128
129long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); 129long do_arch_prctl(struct task_struct *task, int code, unsigned long addr);
130 130
diff --git a/include/linux/adb.h b/include/linux/adb.h
index b7305b178279..64d8878e1444 100644
--- a/include/linux/adb.h
+++ b/include/linux/adb.h
@@ -90,10 +90,10 @@ extern struct blocking_notifier_head adb_client_list;
90int adb_request(struct adb_request *req, void (*done)(struct adb_request *), 90int adb_request(struct adb_request *req, void (*done)(struct adb_request *),
91 int flags, int nbytes, ...); 91 int flags, int nbytes, ...);
92int adb_register(int default_id,int handler_id,struct adb_ids *ids, 92int adb_register(int default_id,int handler_id,struct adb_ids *ids,
93 void (*handler)(unsigned char *, int, struct pt_regs *, int)); 93 void (*handler)(unsigned char *, int, int));
94int adb_unregister(int index); 94int adb_unregister(int index);
95void adb_poll(void); 95void adb_poll(void);
96void adb_input(unsigned char *, int, struct pt_regs *, int); 96void adb_input(unsigned char *, int, int);
97int adb_reset_bus(void); 97int adb_reset_bus(void);
98 98
99int adb_try_handler_change(int address, int new_id); 99int adb_try_handler_change(int address, int new_id);
diff --git a/include/linux/arcdevice.h b/include/linux/arcdevice.h
index 231ba090ae34..2f85049cfb3d 100644
--- a/include/linux/arcdevice.h
+++ b/include/linux/arcdevice.h
@@ -334,7 +334,7 @@ void arcnet_dump_skb(struct net_device *dev, struct sk_buff *skb, char *desc);
334#endif 334#endif
335 335
336void arcnet_unregister_proto(struct ArcProto *proto); 336void arcnet_unregister_proto(struct ArcProto *proto);
337irqreturn_t arcnet_interrupt(int irq, void *dev_id, struct pt_regs *regs); 337irqreturn_t arcnet_interrupt(int irq, void *dev_id);
338struct net_device *alloc_arcdev(char *name); 338struct net_device *alloc_arcdev(char *name);
339 339
340#endif /* __KERNEL__ */ 340#endif /* __KERNEL__ */
diff --git a/include/linux/hiddev.h b/include/linux/hiddev.h
index 945ba1ad14ac..acbdae6d7ae1 100644
--- a/include/linux/hiddev.h
+++ b/include/linux/hiddev.h
@@ -222,7 +222,7 @@ struct hid_report;
222int hiddev_connect(struct hid_device *); 222int hiddev_connect(struct hid_device *);
223void hiddev_disconnect(struct hid_device *); 223void hiddev_disconnect(struct hid_device *);
224void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, 224void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
225 struct hid_usage *usage, __s32 value, struct pt_regs *regs); 225 struct hid_usage *usage, __s32 value);
226void hiddev_report_event(struct hid_device *hid, struct hid_report *report); 226void hiddev_report_event(struct hid_device *hid, struct hid_report *report);
227int __init hiddev_init(void); 227int __init hiddev_init(void);
228void hiddev_exit(void); 228void hiddev_exit(void);
@@ -230,7 +230,7 @@ void hiddev_exit(void);
230static inline int hiddev_connect(struct hid_device *hid) { return -1; } 230static inline int hiddev_connect(struct hid_device *hid) { return -1; }
231static inline void hiddev_disconnect(struct hid_device *hid) { } 231static inline void hiddev_disconnect(struct hid_device *hid) { }
232static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field, 232static inline void hiddev_hid_event(struct hid_device *hid, struct hid_field *field,
233 struct hid_usage *usage, __s32 value, struct pt_regs *regs) { } 233 struct hid_usage *usage, __s32 value) { }
234static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { } 234static inline void hiddev_report_event(struct hid_device *hid, struct hid_report *report) { }
235static inline int hiddev_init(void) { return 0; } 235static inline int hiddev_init(void) { return 0; }
236static inline void hiddev_exit(void) { } 236static inline void hiddev_exit(void) { }
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 07d8d725541f..9c2050293f17 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1185,7 +1185,7 @@ extern void ide_stall_queue(ide_drive_t *drive, unsigned long timeout);
1185 1185
1186extern int ide_spin_wait_hwgroup(ide_drive_t *); 1186extern int ide_spin_wait_hwgroup(ide_drive_t *);
1187extern void ide_timer_expiry(unsigned long); 1187extern void ide_timer_expiry(unsigned long);
1188extern irqreturn_t ide_intr(int irq, void *dev_id, struct pt_regs *regs); 1188extern irqreturn_t ide_intr(int irq, void *dev_id);
1189extern void do_ide_request(request_queue_t *); 1189extern void do_ide_request(request_queue_t *);
1190 1190
1191void ide_init_disk(struct gendisk *, ide_drive_t *); 1191void ide_init_disk(struct gendisk *, ide_drive_t *);
diff --git a/include/linux/input.h b/include/linux/input.h
index 5770105471dd..c38507ba38b5 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -953,7 +953,6 @@ struct input_dev {
953 unsigned int repeat_key; 953 unsigned int repeat_key;
954 struct timer_list timer; 954 struct timer_list timer;
955 955
956 struct pt_regs *regs;
957 int state; 956 int state;
958 957
959 int sync; 958 int sync;
@@ -1149,15 +1148,9 @@ static inline void input_report_switch(struct input_dev *dev, unsigned int code,
1149 input_event(dev, EV_SW, code, !!value); 1148 input_event(dev, EV_SW, code, !!value);
1150} 1149}
1151 1150
1152static inline void input_regs(struct input_dev *dev, struct pt_regs *regs)
1153{
1154 dev->regs = regs;
1155}
1156
1157static inline void input_sync(struct input_dev *dev) 1151static inline void input_sync(struct input_dev *dev)
1158{ 1152{
1159 input_event(dev, EV_SYN, SYN_REPORT, 0); 1153 input_event(dev, EV_SYN, SYN_REPORT, 0);
1160 dev->regs = NULL;
1161} 1154}
1162 1155
1163static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat) 1156static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat)
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 1f97e3d92639..5b83e7b59621 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -64,8 +64,10 @@
64#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING 64#define SA_TRIGGER_RISING IRQF_TRIGGER_RISING
65#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK 65#define SA_TRIGGER_MASK IRQF_TRIGGER_MASK
66 66
67typedef irqreturn_t (*irq_handler_t)(int, void *);
68
67struct irqaction { 69struct irqaction {
68 irqreturn_t (*handler)(int, void *, struct pt_regs *); 70 irq_handler_t handler;
69 unsigned long flags; 71 unsigned long flags;
70 cpumask_t mask; 72 cpumask_t mask;
71 const char *name; 73 const char *name;
@@ -75,9 +77,8 @@ struct irqaction {
75 struct proc_dir_entry *dir; 77 struct proc_dir_entry *dir;
76}; 78};
77 79
78extern irqreturn_t no_action(int cpl, void *dev_id, struct pt_regs *regs); 80extern irqreturn_t no_action(int cpl, void *dev_id);
79extern int request_irq(unsigned int, 81extern int request_irq(unsigned int, irq_handler_t handler,
80 irqreturn_t (*handler)(int, void *, struct pt_regs *),
81 unsigned long, const char *, void *); 82 unsigned long, const char *, void *);
82extern void free_irq(unsigned int, void *); 83extern void free_irq(unsigned int, void *);
83 84
diff --git a/include/linux/ioc3.h b/include/linux/ioc3.h
index da7c09e4ede6..38b286e9a46c 100644
--- a/include/linux/ioc3.h
+++ b/include/linux/ioc3.h
@@ -63,7 +63,7 @@ struct ioc3_submodule {
63 /* IRQ stuff */ 63 /* IRQ stuff */
64 unsigned int irq_mask; /* IOC3 IRQ mask, leave clear for Ethernet */ 64 unsigned int irq_mask; /* IOC3 IRQ mask, leave clear for Ethernet */
65 int reset_mask; /* non-zero if you want the ioc3.c module to reset interrupts */ 65 int reset_mask; /* non-zero if you want the ioc3.c module to reset interrupts */
66 int (*intr) (struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int, struct pt_regs *); 66 int (*intr) (struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int);
67 /* private submodule data */ 67 /* private submodule data */
68 void *data; /* assigned by submodule */ 68 void *data; /* assigned by submodule */
69}; 69};
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 6f463606c318..c64f3cc7e870 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -21,6 +21,12 @@
21 21
22#include <asm/irq.h> 22#include <asm/irq.h>
23#include <asm/ptrace.h> 23#include <asm/ptrace.h>
24#include <asm/irq_regs.h>
25
26struct irq_desc;
27typedef void fastcall (*irq_flow_handler_t)(unsigned int irq,
28 struct irq_desc *desc);
29
24 30
25/* 31/*
26 * IRQ line status. 32 * IRQ line status.
@@ -139,9 +145,7 @@ struct irq_chip {
139 * Pad this out to 32 bytes for cache and indexing reasons. 145 * Pad this out to 32 bytes for cache and indexing reasons.
140 */ 146 */
141struct irq_desc { 147struct irq_desc {
142 void fastcall (*handle_irq)(unsigned int irq, 148 irq_flow_handler_t handle_irq;
143 struct irq_desc *desc,
144 struct pt_regs *regs);
145 struct irq_chip *chip; 149 struct irq_chip *chip;
146 void *handler_data; 150 void *handler_data;
147 void *chip_data; 151 void *chip_data;
@@ -254,43 +258,31 @@ static inline int select_smp_affinity(unsigned int irq)
254extern int no_irq_affinity; 258extern int no_irq_affinity;
255 259
256/* Handle irq action chains: */ 260/* Handle irq action chains: */
257extern int handle_IRQ_event(unsigned int irq, struct pt_regs *regs, 261extern int handle_IRQ_event(unsigned int irq, struct irqaction *action);
258 struct irqaction *action);
259 262
260/* 263/*
261 * Built-in IRQ handlers for various IRQ types, 264 * Built-in IRQ handlers for various IRQ types,
262 * callable via desc->chip->handle_irq() 265 * callable via desc->chip->handle_irq()
263 */ 266 */
264extern void fastcall 267extern void fastcall handle_level_irq(unsigned int irq, struct irq_desc *desc);
265handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs); 268extern void fastcall handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc);
266extern void fastcall 269extern void fastcall handle_edge_irq(unsigned int irq, struct irq_desc *desc);
267handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc, 270extern void fastcall handle_simple_irq(unsigned int irq, struct irq_desc *desc);
268 struct pt_regs *regs); 271extern void fastcall handle_percpu_irq(unsigned int irq, struct irq_desc *desc);
269extern void fastcall 272extern void fastcall handle_bad_irq(unsigned int irq, struct irq_desc *desc);
270handle_edge_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs);
271extern void fastcall
272handle_simple_irq(unsigned int irq, struct irq_desc *desc,
273 struct pt_regs *regs);
274extern void fastcall
275handle_percpu_irq(unsigned int irq, struct irq_desc *desc,
276 struct pt_regs *regs);
277extern void fastcall
278handle_bad_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs);
279 273
280/* 274/*
281 * Get a descriptive string for the highlevel handler, for 275 * Get a descriptive string for the highlevel handler, for
282 * /proc/interrupts output: 276 * /proc/interrupts output:
283 */ 277 */
284extern const char * 278extern const char *handle_irq_name(irq_flow_handler_t handle);
285handle_irq_name(void fastcall (*handle)(unsigned int, struct irq_desc *,
286 struct pt_regs *));
287 279
288/* 280/*
289 * Monolithic do_IRQ implementation. 281 * Monolithic do_IRQ implementation.
290 * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly) 282 * (is an explicit fastcall, because i386 4KSTACKS calls it from assembly)
291 */ 283 */
292#ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ 284#ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ
293extern fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs); 285extern fastcall unsigned int __do_IRQ(unsigned int irq);
294#endif 286#endif
295 287
296/* 288/*
@@ -299,23 +291,23 @@ extern fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs);
299 * irqchip-style controller then we call the ->handle_irq() handler, 291 * irqchip-style controller then we call the ->handle_irq() handler,
300 * and it calls __do_IRQ() if it's attached to an irqtype-style controller. 292 * and it calls __do_IRQ() if it's attached to an irqtype-style controller.
301 */ 293 */
302static inline void generic_handle_irq(unsigned int irq, struct pt_regs *regs) 294static inline void generic_handle_irq(unsigned int irq)
303{ 295{
304 struct irq_desc *desc = irq_desc + irq; 296 struct irq_desc *desc = irq_desc + irq;
305 297
306#ifdef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ 298#ifdef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ
307 desc->handle_irq(irq, desc, regs); 299 desc->handle_irq(irq, desc);
308#else 300#else
309 if (likely(desc->handle_irq)) 301 if (likely(desc->handle_irq))
310 desc->handle_irq(irq, desc, regs); 302 desc->handle_irq(irq, desc);
311 else 303 else
312 __do_IRQ(irq, regs); 304 __do_IRQ(irq);
313#endif 305#endif
314} 306}
315 307
316/* Handling of unhandled and spurious interrupts: */ 308/* Handling of unhandled and spurious interrupts: */
317extern void note_interrupt(unsigned int irq, struct irq_desc *desc, 309extern void note_interrupt(unsigned int irq, struct irq_desc *desc,
318 int action_ret, struct pt_regs *regs); 310 int action_ret);
319 311
320/* Resending of interrupts :*/ 312/* Resending of interrupts :*/
321void check_irq_resend(struct irq_desc *desc, unsigned int irq); 313void check_irq_resend(struct irq_desc *desc, unsigned int irq);
@@ -335,22 +327,15 @@ extern struct irq_chip dummy_irq_chip;
335 327
336extern void 328extern void
337set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip, 329set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip,
338 void fastcall (*handle)(unsigned int, 330 irq_flow_handler_t handle);
339 struct irq_desc *,
340 struct pt_regs *));
341extern void 331extern void
342__set_irq_handler(unsigned int irq, 332__set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained);
343 void fastcall (*handle)(unsigned int, struct irq_desc *,
344 struct pt_regs *),
345 int is_chained);
346 333
347/* 334/*
348 * Set a highlevel flow handler for a given IRQ: 335 * Set a highlevel flow handler for a given IRQ:
349 */ 336 */
350static inline void 337static inline void
351set_irq_handler(unsigned int irq, 338set_irq_handler(unsigned int irq, irq_flow_handler_t handle)
352 void fastcall (*handle)(unsigned int, struct irq_desc *,
353 struct pt_regs *))
354{ 339{
355 __set_irq_handler(irq, handle, 0); 340 __set_irq_handler(irq, handle, 0);
356} 341}
@@ -362,8 +347,7 @@ set_irq_handler(unsigned int irq,
362 */ 347 */
363static inline void 348static inline void
364set_irq_chained_handler(unsigned int irq, 349set_irq_chained_handler(unsigned int irq,
365 void fastcall (*handle)(unsigned int, struct irq_desc *, 350 irq_flow_handler_t handle)
366 struct pt_regs *))
367{ 351{
368 __set_irq_handler(irq, handle, 1); 352 __set_irq_handler(irq, handle, 1);
369} 353}
diff --git a/include/linux/libata.h b/include/linux/libata.h
index d1af1dbeaeb4..d0a7ad5ed518 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -628,7 +628,7 @@ struct ata_port_operations {
628 void (*error_handler) (struct ata_port *ap); 628 void (*error_handler) (struct ata_port *ap);
629 void (*post_internal_cmd) (struct ata_queued_cmd *qc); 629 void (*post_internal_cmd) (struct ata_queued_cmd *qc);
630 630
631 irqreturn_t (*irq_handler)(int, void *, struct pt_regs *); 631 irq_handler_t irq_handler;
632 void (*irq_clear) (struct ata_port *); 632 void (*irq_clear) (struct ata_port *);
633 633
634 u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg); 634 u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
@@ -769,7 +769,7 @@ extern void ata_exec_command(struct ata_port *ap, const struct ata_taskfile *tf)
769extern int ata_port_start (struct ata_port *ap); 769extern int ata_port_start (struct ata_port *ap);
770extern void ata_port_stop (struct ata_port *ap); 770extern void ata_port_stop (struct ata_port *ap);
771extern void ata_host_stop (struct ata_host *host); 771extern void ata_host_stop (struct ata_host *host);
772extern irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs); 772extern irqreturn_t ata_interrupt (int irq, void *dev_instance);
773extern void ata_mmio_data_xfer(struct ata_device *adev, unsigned char *buf, 773extern void ata_mmio_data_xfer(struct ata_device *adev, unsigned char *buf,
774 unsigned int buflen, int write_data); 774 unsigned int buflen, int write_data);
775extern void ata_pio_data_xfer(struct ata_device *adev, unsigned char *buf, 775extern void ata_pio_data_xfer(struct ata_device *adev, unsigned char *buf,
diff --git a/include/linux/parport.h b/include/linux/parport.h
index 5bf321e82c99..80682aaa8f18 100644
--- a/include/linux/parport.h
+++ b/include/linux/parport.h
@@ -229,7 +229,7 @@ struct pardevice {
229 int (*preempt)(void *); 229 int (*preempt)(void *);
230 void (*wakeup)(void *); 230 void (*wakeup)(void *);
231 void *private; 231 void *private;
232 void (*irq_func)(int, void *, struct pt_regs *); 232 void (*irq_func)(int, void *);
233 unsigned int flags; 233 unsigned int flags;
234 struct pardevice *next; 234 struct pardevice *next;
235 struct pardevice *prev; 235 struct pardevice *prev;
@@ -375,7 +375,7 @@ extern void parport_put_port (struct parport *);
375struct pardevice *parport_register_device(struct parport *port, 375struct pardevice *parport_register_device(struct parport *port,
376 const char *name, 376 const char *name,
377 int (*pf)(void *), void (*kf)(void *), 377 int (*pf)(void *), void (*kf)(void *),
378 void (*irq_func)(int, void *, struct pt_regs *), 378 void (*irq_func)(int, void *),
379 int flags, void *handle); 379 int flags, void *handle);
380 380
381/* parport_unregister unlinks a device from the chain. */ 381/* parport_unregister unlinks a device from the chain. */
@@ -457,7 +457,7 @@ static __inline__ int parport_yield_blocking(struct pardevice *dev)
457#define PARPORT_FLAG_EXCL (1<<1) /* EXCL driver registered. */ 457#define PARPORT_FLAG_EXCL (1<<1) /* EXCL driver registered. */
458 458
459/* IEEE1284 functions */ 459/* IEEE1284 functions */
460extern void parport_ieee1284_interrupt (int, void *, struct pt_regs *); 460extern void parport_ieee1284_interrupt (int, void *);
461extern int parport_negotiate (struct parport *, int mode); 461extern int parport_negotiate (struct parport *, int mode);
462extern ssize_t parport_write (struct parport *, const void *buf, size_t len); 462extern ssize_t parport_write (struct parport *, const void *buf, size_t len);
463extern ssize_t parport_read (struct parport *, void *buf, size_t len); 463extern ssize_t parport_read (struct parport *, void *buf, size_t len);
@@ -502,8 +502,7 @@ extern void parport_daisy_fini (struct parport *port);
502extern struct pardevice *parport_open (int devnum, const char *name, 502extern struct pardevice *parport_open (int devnum, const char *name,
503 int (*pf) (void *), 503 int (*pf) (void *),
504 void (*kf) (void *), 504 void (*kf) (void *),
505 void (*irqf) (int, void *, 505 void (*irqf) (int, void *),
506 struct pt_regs *),
507 int flags, void *handle); 506 int flags, void *handle);
508extern void parport_close (struct pardevice *dev); 507extern void parport_close (struct pardevice *dev);
509extern ssize_t parport_device_id (int devnum, char *buffer, size_t len); 508extern ssize_t parport_device_id (int devnum, char *buffer, size_t len);
@@ -512,13 +511,12 @@ extern void parport_daisy_deselect_all (struct parport *port);
512extern int parport_daisy_select (struct parport *port, int daisy, int mode); 511extern int parport_daisy_select (struct parport *port, int daisy, int mode);
513 512
514/* Lowlevel drivers _can_ call this support function to handle irqs. */ 513/* Lowlevel drivers _can_ call this support function to handle irqs. */
515static __inline__ void parport_generic_irq(int irq, struct parport *port, 514static __inline__ void parport_generic_irq(int irq, struct parport *port)
516 struct pt_regs *regs)
517{ 515{
518 parport_ieee1284_interrupt (irq, port, regs); 516 parport_ieee1284_interrupt (irq, port);
519 read_lock(&port->cad_lock); 517 read_lock(&port->cad_lock);
520 if (port->cad && port->cad->irq_func) 518 if (port->cad && port->cad->irq_func)
521 port->cad->irq_func(irq, port->cad->private, regs); 519 port->cad->irq_func(irq, port->cad->private);
522 read_unlock(&port->cad_lock); 520 read_unlock(&port->cad_lock);
523} 521}
524 522
diff --git a/include/linux/profile.h b/include/linux/profile.h
index e633004ae052..acce53fd38b6 100644
--- a/include/linux/profile.h
+++ b/include/linux/profile.h
@@ -17,7 +17,7 @@ struct notifier_block;
17 17
18/* init basic kernel profiler */ 18/* init basic kernel profiler */
19void __init profile_init(void); 19void __init profile_init(void);
20void profile_tick(int, struct pt_regs *); 20void profile_tick(int);
21void profile_hit(int, void *); 21void profile_hit(int, void *);
22#ifdef CONFIG_PROC_FS 22#ifdef CONFIG_PROC_FS
23void create_prof_cpu_mask(struct proc_dir_entry *); 23void create_prof_cpu_mask(struct proc_dir_entry *);
diff --git a/include/linux/rtc.h b/include/linux/rtc.h
index b89f09357054..09ff4c3e2713 100644
--- a/include/linux/rtc.h
+++ b/include/linux/rtc.h
@@ -208,7 +208,7 @@ int rtc_register(rtc_task_t *task);
208int rtc_unregister(rtc_task_t *task); 208int rtc_unregister(rtc_task_t *task);
209int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg); 209int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg);
210void rtc_get_rtc_time(struct rtc_time *rtc_tm); 210void rtc_get_rtc_time(struct rtc_time *rtc_tm);
211irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 211irqreturn_t rtc_interrupt(int irq, void *dev_id);
212 212
213#endif /* __KERNEL__ */ 213#endif /* __KERNEL__ */
214 214
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index b661c19f3f72..463ab953b092 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -409,13 +409,12 @@ int uart_resume_port(struct uart_driver *reg, struct uart_port *port);
409 * The following are helper functions for the low level drivers. 409 * The following are helper functions for the low level drivers.
410 */ 410 */
411static inline int 411static inline int
412uart_handle_sysrq_char(struct uart_port *port, unsigned int ch, 412uart_handle_sysrq_char(struct uart_port *port, unsigned int ch)
413 struct pt_regs *regs)
414{ 413{
415#ifdef SUPPORT_SYSRQ 414#ifdef SUPPORT_SYSRQ
416 if (port->sysrq) { 415 if (port->sysrq) {
417 if (ch && time_before(jiffies, port->sysrq)) { 416 if (ch && time_before(jiffies, port->sysrq)) {
418 handle_sysrq(ch, regs, port->info->tty); 417 handle_sysrq(ch, port->info->tty);
419 port->sysrq = 0; 418 port->sysrq = 0;
420 return 1; 419 return 1;
421 } 420 }
@@ -425,7 +424,7 @@ uart_handle_sysrq_char(struct uart_port *port, unsigned int ch,
425 return 0; 424 return 0;
426} 425}
427#ifndef SUPPORT_SYSRQ 426#ifndef SUPPORT_SYSRQ
428#define uart_handle_sysrq_char(port,ch,regs) uart_handle_sysrq_char(port, 0, NULL) 427#define uart_handle_sysrq_char(port,ch) uart_handle_sysrq_char(port, 0)
429#endif 428#endif
430 429
431/* 430/*
diff --git a/include/linux/serio.h b/include/linux/serio.h
index c9069310b6ac..3a697cc6ecae 100644
--- a/include/linux/serio.h
+++ b/include/linux/serio.h
@@ -60,8 +60,7 @@ struct serio_driver {
60 unsigned int manual_bind; 60 unsigned int manual_bind;
61 61
62 void (*write_wakeup)(struct serio *); 62 void (*write_wakeup)(struct serio *);
63 irqreturn_t (*interrupt)(struct serio *, unsigned char, 63 irqreturn_t (*interrupt)(struct serio *, unsigned char, unsigned int);
64 unsigned int, struct pt_regs *);
65 int (*connect)(struct serio *, struct serio_driver *drv); 64 int (*connect)(struct serio *, struct serio_driver *drv);
66 int (*reconnect)(struct serio *); 65 int (*reconnect)(struct serio *);
67 void (*disconnect)(struct serio *); 66 void (*disconnect)(struct serio *);
@@ -75,7 +74,7 @@ int serio_open(struct serio *serio, struct serio_driver *drv);
75void serio_close(struct serio *serio); 74void serio_close(struct serio *serio);
76void serio_rescan(struct serio *serio); 75void serio_rescan(struct serio *serio);
77void serio_reconnect(struct serio *serio); 76void serio_reconnect(struct serio *serio);
78irqreturn_t serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags, struct pt_regs *regs); 77irqreturn_t serio_interrupt(struct serio *serio, unsigned char data, unsigned int flags);
79 78
80void __serio_register_port(struct serio *serio, struct module *owner); 79void __serio_register_port(struct serio *serio, struct module *owner);
81static inline void serio_register_port(struct serio *serio) 80static inline void serio_register_port(struct serio *serio)
diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h
index e657e523b9bf..9df8833670cb 100644
--- a/include/linux/sysrq.h
+++ b/include/linux/sysrq.h
@@ -29,7 +29,7 @@ struct tty_struct;
29#define SYSRQ_ENABLE_RTNICE 0x0100 29#define SYSRQ_ENABLE_RTNICE 0x0100
30 30
31struct sysrq_key_op { 31struct sysrq_key_op {
32 void (*handler)(int, struct pt_regs *, struct tty_struct *); 32 void (*handler)(int, struct tty_struct *);
33 char *help_msg; 33 char *help_msg;
34 char *action_msg; 34 char *action_msg;
35 int enable_mask; 35 int enable_mask;
@@ -42,8 +42,8 @@ struct sysrq_key_op {
42 * are available -- else NULL's). 42 * are available -- else NULL's).
43 */ 43 */
44 44
45void handle_sysrq(int, struct pt_regs *, struct tty_struct *); 45void handle_sysrq(int, struct tty_struct *);
46void __handle_sysrq(int, struct pt_regs *, struct tty_struct *, int check_mask); 46void __handle_sysrq(int, struct tty_struct *, int check_mask);
47int register_sysrq_key(int, struct sysrq_key_op *); 47int register_sysrq_key(int, struct sysrq_key_op *);
48int unregister_sysrq_key(int, struct sysrq_key_op *); 48int unregister_sysrq_key(int, struct sysrq_key_op *);
49struct sysrq_key_op *__sysrq_get_key_op(int key); 49struct sysrq_key_op *__sysrq_get_key_op(int key);
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 190cc1b78fe2..5482bfb3303d 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -764,9 +764,8 @@ struct usb_iso_packet_descriptor {
764}; 764};
765 765
766struct urb; 766struct urb;
767struct pt_regs;
768 767
769typedef void (*usb_complete_t)(struct urb *, struct pt_regs *); 768typedef void (*usb_complete_t)(struct urb *);
770 769
771/** 770/**
772 * struct urb - USB Request Block 771 * struct urb - USB Request Block
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h
index 91c983eef899..91b3ea2bbb14 100644
--- a/include/linux/usb/serial.h
+++ b/include/linux/usb/serial.h
@@ -226,10 +226,10 @@ struct usb_serial_driver {
226 int (*tiocmget) (struct usb_serial_port *port, struct file *file); 226 int (*tiocmget) (struct usb_serial_port *port, struct file *file);
227 int (*tiocmset) (struct usb_serial_port *port, struct file *file, unsigned int set, unsigned int clear); 227 int (*tiocmset) (struct usb_serial_port *port, struct file *file, unsigned int set, unsigned int clear);
228 228
229 void (*read_int_callback)(struct urb *urb, struct pt_regs *regs); 229 void (*read_int_callback)(struct urb *urb);
230 void (*write_int_callback)(struct urb *urb, struct pt_regs *regs); 230 void (*write_int_callback)(struct urb *urb);
231 void (*read_bulk_callback)(struct urb *urb, struct pt_regs *regs); 231 void (*read_bulk_callback)(struct urb *urb);
232 void (*write_bulk_callback)(struct urb *urb, struct pt_regs *regs); 232 void (*write_bulk_callback)(struct urb *urb);
233}; 233};
234#define to_usb_serial_driver(d) container_of(d, struct usb_serial_driver, driver) 234#define to_usb_serial_driver(d) container_of(d, struct usb_serial_driver, driver)
235 235
@@ -262,8 +262,8 @@ extern int usb_serial_generic_write (struct usb_serial_port *port, const unsigne
262extern void usb_serial_generic_close (struct usb_serial_port *port, struct file *filp); 262extern void usb_serial_generic_close (struct usb_serial_port *port, struct file *filp);
263extern int usb_serial_generic_write_room (struct usb_serial_port *port); 263extern int usb_serial_generic_write_room (struct usb_serial_port *port);
264extern int usb_serial_generic_chars_in_buffer (struct usb_serial_port *port); 264extern int usb_serial_generic_chars_in_buffer (struct usb_serial_port *port);
265extern void usb_serial_generic_read_bulk_callback (struct urb *urb, struct pt_regs *regs); 265extern void usb_serial_generic_read_bulk_callback (struct urb *urb);
266extern void usb_serial_generic_write_bulk_callback (struct urb *urb, struct pt_regs *regs); 266extern void usb_serial_generic_write_bulk_callback (struct urb *urb);
267extern void usb_serial_generic_shutdown (struct usb_serial *serial); 267extern void usb_serial_generic_shutdown (struct usb_serial *serial);
268extern int usb_serial_generic_register (int debug); 268extern int usb_serial_generic_register (int debug);
269extern void usb_serial_generic_deregister (void); 269extern void usb_serial_generic_deregister (void);
diff --git a/include/sound/cs4231.h b/include/sound/cs4231.h
index 60b5b92a1319..ab51ce1ba9a5 100644
--- a/include/sound/cs4231.h
+++ b/include/sound/cs4231.h
@@ -273,7 +273,7 @@ unsigned char snd_cs4236_ext_in(struct snd_cs4231 *chip, unsigned char reg);
273void snd_cs4231_mce_up(struct snd_cs4231 *chip); 273void snd_cs4231_mce_up(struct snd_cs4231 *chip);
274void snd_cs4231_mce_down(struct snd_cs4231 *chip); 274void snd_cs4231_mce_down(struct snd_cs4231 *chip);
275 275
276irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id, struct pt_regs *regs); 276irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id);
277 277
278const char *snd_cs4231_chip_id(struct snd_cs4231 *chip); 278const char *snd_cs4231_chip_id(struct snd_cs4231 *chip);
279 279
diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
index 892e310c504d..3d3c1514cf71 100644
--- a/include/sound/emu10k1.h
+++ b/include/sound/emu10k1.h
@@ -1194,7 +1194,7 @@ int snd_emu10k1_mixer(struct snd_emu10k1 * emu, int pcm_device, int multi_device
1194int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device); 1194int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device);
1195int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep); 1195int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep);
1196 1196
1197irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs); 1197irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id);
1198 1198
1199void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice); 1199void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice);
1200int snd_emu10k1_init_efx(struct snd_emu10k1 *emu); 1200int snd_emu10k1_init_efx(struct snd_emu10k1 *emu);
diff --git a/include/sound/gus.h b/include/sound/gus.h
index 68a664ab97f3..c49ea57db8cc 100644
--- a/include/sound/gus.h
+++ b/include/sound/gus.h
@@ -638,7 +638,7 @@ int snd_gus_initialize(struct snd_gus_card * gus);
638 638
639/* gus_irq.c */ 639/* gus_irq.c */
640 640
641irqreturn_t snd_gus_interrupt(int irq, void *dev_id, struct pt_regs *regs); 641irqreturn_t snd_gus_interrupt(int irq, void *dev_id);
642#ifdef CONFIG_SND_DEBUG 642#ifdef CONFIG_SND_DEBUG
643void snd_gus_irq_profile_init(struct snd_gus_card *gus); 643void snd_gus_irq_profile_init(struct snd_gus_card *gus);
644#endif 644#endif
diff --git a/include/sound/initval.h b/include/sound/initval.h
index 2ae76efc696f..e85b90750a59 100644
--- a/include/sound/initval.h
+++ b/include/sound/initval.h
@@ -53,7 +53,7 @@
53#ifdef SNDRV_LEGACY_FIND_FREE_IRQ 53#ifdef SNDRV_LEGACY_FIND_FREE_IRQ
54#include <linux/interrupt.h> 54#include <linux/interrupt.h>
55 55
56static irqreturn_t snd_legacy_empty_irq_handler(int irq, void *dev_id, struct pt_regs *regs) 56static irqreturn_t snd_legacy_empty_irq_handler(int irq, void *dev_id)
57{ 57{
58 return IRQ_HANDLED; 58 return IRQ_HANDLED;
59} 59}
diff --git a/include/sound/mpu401.h b/include/sound/mpu401.h
index ac504321ea56..8c88267e9bea 100644
--- a/include/sound/mpu401.h
+++ b/include/sound/mpu401.h
@@ -106,10 +106,8 @@ struct snd_mpu401 {
106 106
107 */ 107 */
108 108
109irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id, 109irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id);
110 struct pt_regs *regs); 110irqreturn_t snd_mpu401_uart_interrupt_tx(int irq, void *dev_id);
111irqreturn_t snd_mpu401_uart_interrupt_tx(int irq, void *dev_id,
112 struct pt_regs *regs);
113 111
114int snd_mpu401_uart_new(struct snd_card *card, 112int snd_mpu401_uart_new(struct snd_card *card,
115 int device, 113 int device,
diff --git a/include/sound/sb.h b/include/sound/sb.h
index 431d06675e36..2dd5c8e5b4fe 100644
--- a/include/sound/sb.h
+++ b/include/sound/sb.h
@@ -100,7 +100,7 @@ struct snd_sb {
100 struct snd_rawmidi *rmidi; 100 struct snd_rawmidi *rmidi;
101 struct snd_rawmidi_substream *midi_substream_input; 101 struct snd_rawmidi_substream *midi_substream_input;
102 struct snd_rawmidi_substream *midi_substream_output; 102 struct snd_rawmidi_substream *midi_substream_output;
103 irqreturn_t (*rmidi_callback)(int irq, void *dev_id, struct pt_regs *regs); 103 irq_handler_t rmidi_callback;
104 104
105 spinlock_t reg_lock; 105 spinlock_t reg_lock;
106 spinlock_t open_lock; 106 spinlock_t open_lock;
@@ -286,7 +286,7 @@ int snd_sbdsp_reset(struct snd_sb *chip);
286int snd_sbdsp_create(struct snd_card *card, 286int snd_sbdsp_create(struct snd_card *card,
287 unsigned long port, 287 unsigned long port,
288 int irq, 288 int irq,
289 irqreturn_t (*irq_handler)(int, void *, struct pt_regs *), 289 irq_handler_t irq_handler,
290 int dma8, int dma16, 290 int dma8, int dma16,
291 unsigned short hardware, 291 unsigned short hardware,
292 struct snd_sb **r_chip); 292 struct snd_sb **r_chip);
@@ -316,7 +316,7 @@ int snd_sb16dsp_pcm(struct snd_sb *chip, int device, struct snd_pcm ** rpcm);
316const struct snd_pcm_ops *snd_sb16dsp_get_pcm_ops(int direction); 316const struct snd_pcm_ops *snd_sb16dsp_get_pcm_ops(int direction);
317int snd_sb16dsp_configure(struct snd_sb *chip); 317int snd_sb16dsp_configure(struct snd_sb *chip);
318/* sb16.c */ 318/* sb16.c */
319irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs); 319irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id);
320 320
321/* exported mixer stuffs */ 321/* exported mixer stuffs */
322enum { 322enum {
diff --git a/include/sound/vx_core.h b/include/sound/vx_core.h
index dbca14170615..217394652090 100644
--- a/include/sound/vx_core.h
+++ b/include/sound/vx_core.h
@@ -228,7 +228,7 @@ void snd_vx_free_firmware(struct vx_core *chip);
228/* 228/*
229 * interrupt handler; exported for pcmcia 229 * interrupt handler; exported for pcmcia
230 */ 230 */
231irqreturn_t snd_vx_irq_handler(int irq, void *dev, struct pt_regs *regs); 231irqreturn_t snd_vx_irq_handler(int irq, void *dev);
232 232
233/* 233/*
234 * lowlevel functions 234 * lowlevel functions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 4cf65f5c6a74..11c99697acfe 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -249,7 +249,6 @@ static inline void mask_ack_irq(struct irq_desc *desc, int irq)
249 * handle_simple_irq - Simple and software-decoded IRQs. 249 * handle_simple_irq - Simple and software-decoded IRQs.
250 * @irq: the interrupt number 250 * @irq: the interrupt number
251 * @desc: the interrupt description structure for this irq 251 * @desc: the interrupt description structure for this irq
252 * @regs: pointer to a register structure
253 * 252 *
254 * Simple interrupts are either sent from a demultiplexing interrupt 253 * Simple interrupts are either sent from a demultiplexing interrupt
255 * handler or come from hardware, where no interrupt hardware control 254 * handler or come from hardware, where no interrupt hardware control
@@ -259,7 +258,7 @@ static inline void mask_ack_irq(struct irq_desc *desc, int irq)
259 * unmask issues if necessary. 258 * unmask issues if necessary.
260 */ 259 */
261void fastcall 260void fastcall
262handle_simple_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs) 261handle_simple_irq(unsigned int irq, struct irq_desc *desc)
263{ 262{
264 struct irqaction *action; 263 struct irqaction *action;
265 irqreturn_t action_ret; 264 irqreturn_t action_ret;
@@ -279,9 +278,9 @@ handle_simple_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs)
279 desc->status |= IRQ_INPROGRESS; 278 desc->status |= IRQ_INPROGRESS;
280 spin_unlock(&desc->lock); 279 spin_unlock(&desc->lock);
281 280
282 action_ret = handle_IRQ_event(irq, regs, action); 281 action_ret = handle_IRQ_event(irq, action);
283 if (!noirqdebug) 282 if (!noirqdebug)
284 note_interrupt(irq, desc, action_ret, regs); 283 note_interrupt(irq, desc, action_ret);
285 284
286 spin_lock(&desc->lock); 285 spin_lock(&desc->lock);
287 desc->status &= ~IRQ_INPROGRESS; 286 desc->status &= ~IRQ_INPROGRESS;
@@ -293,7 +292,6 @@ out_unlock:
293 * handle_level_irq - Level type irq handler 292 * handle_level_irq - Level type irq handler
294 * @irq: the interrupt number 293 * @irq: the interrupt number
295 * @desc: the interrupt description structure for this irq 294 * @desc: the interrupt description structure for this irq
296 * @regs: pointer to a register structure
297 * 295 *
298 * Level type interrupts are active as long as the hardware line has 296 * Level type interrupts are active as long as the hardware line has
299 * the active level. This may require to mask the interrupt and unmask 297 * the active level. This may require to mask the interrupt and unmask
@@ -301,7 +299,7 @@ out_unlock:
301 * interrupt line is back to inactive. 299 * interrupt line is back to inactive.
302 */ 300 */
303void fastcall 301void fastcall
304handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs) 302handle_level_irq(unsigned int irq, struct irq_desc *desc)
305{ 303{
306 unsigned int cpu = smp_processor_id(); 304 unsigned int cpu = smp_processor_id();
307 struct irqaction *action; 305 struct irqaction *action;
@@ -329,9 +327,9 @@ handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs)
329 desc->status &= ~IRQ_PENDING; 327 desc->status &= ~IRQ_PENDING;
330 spin_unlock(&desc->lock); 328 spin_unlock(&desc->lock);
331 329
332 action_ret = handle_IRQ_event(irq, regs, action); 330 action_ret = handle_IRQ_event(irq, action);
333 if (!noirqdebug) 331 if (!noirqdebug)
334 note_interrupt(irq, desc, action_ret, regs); 332 note_interrupt(irq, desc, action_ret);
335 333
336 spin_lock(&desc->lock); 334 spin_lock(&desc->lock);
337 desc->status &= ~IRQ_INPROGRESS; 335 desc->status &= ~IRQ_INPROGRESS;
@@ -345,7 +343,6 @@ out_unlock:
345 * handle_fasteoi_irq - irq handler for transparent controllers 343 * handle_fasteoi_irq - irq handler for transparent controllers
346 * @irq: the interrupt number 344 * @irq: the interrupt number
347 * @desc: the interrupt description structure for this irq 345 * @desc: the interrupt description structure for this irq
348 * @regs: pointer to a register structure
349 * 346 *
350 * Only a single callback will be issued to the chip: an ->eoi() 347 * Only a single callback will be issued to the chip: an ->eoi()
351 * call when the interrupt has been serviced. This enables support 348 * call when the interrupt has been serviced. This enables support
@@ -353,8 +350,7 @@ out_unlock:
353 * details in hardware, transparently. 350 * details in hardware, transparently.
354 */ 351 */
355void fastcall 352void fastcall
356handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc, 353handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc)
357 struct pt_regs *regs)
358{ 354{
359 unsigned int cpu = smp_processor_id(); 355 unsigned int cpu = smp_processor_id();
360 struct irqaction *action; 356 struct irqaction *action;
@@ -382,9 +378,9 @@ handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc,
382 desc->status &= ~IRQ_PENDING; 378 desc->status &= ~IRQ_PENDING;
383 spin_unlock(&desc->lock); 379 spin_unlock(&desc->lock);
384 380
385 action_ret = handle_IRQ_event(irq, regs, action); 381 action_ret = handle_IRQ_event(irq, action);
386 if (!noirqdebug) 382 if (!noirqdebug)
387 note_interrupt(irq, desc, action_ret, regs); 383 note_interrupt(irq, desc, action_ret);
388 384
389 spin_lock(&desc->lock); 385 spin_lock(&desc->lock);
390 desc->status &= ~IRQ_INPROGRESS; 386 desc->status &= ~IRQ_INPROGRESS;
@@ -398,7 +394,6 @@ out:
398 * handle_edge_irq - edge type IRQ handler 394 * handle_edge_irq - edge type IRQ handler
399 * @irq: the interrupt number 395 * @irq: the interrupt number
400 * @desc: the interrupt description structure for this irq 396 * @desc: the interrupt description structure for this irq
401 * @regs: pointer to a register structure
402 * 397 *
403 * Interrupt occures on the falling and/or rising edge of a hardware 398 * Interrupt occures on the falling and/or rising edge of a hardware
404 * signal. The occurence is latched into the irq controller hardware 399 * signal. The occurence is latched into the irq controller hardware
@@ -412,7 +407,7 @@ out:
412 * loop is left. 407 * loop is left.
413 */ 408 */
414void fastcall 409void fastcall
415handle_edge_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs) 410handle_edge_irq(unsigned int irq, struct irq_desc *desc)
416{ 411{
417 const unsigned int cpu = smp_processor_id(); 412 const unsigned int cpu = smp_processor_id();
418 413
@@ -463,9 +458,9 @@ handle_edge_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs)
463 458
464 desc->status &= ~IRQ_PENDING; 459 desc->status &= ~IRQ_PENDING;
465 spin_unlock(&desc->lock); 460 spin_unlock(&desc->lock);
466 action_ret = handle_IRQ_event(irq, regs, action); 461 action_ret = handle_IRQ_event(irq, action);
467 if (!noirqdebug) 462 if (!noirqdebug)
468 note_interrupt(irq, desc, action_ret, regs); 463 note_interrupt(irq, desc, action_ret);
469 spin_lock(&desc->lock); 464 spin_lock(&desc->lock);
470 465
471 } while ((desc->status & (IRQ_PENDING | IRQ_DISABLED)) == IRQ_PENDING); 466 } while ((desc->status & (IRQ_PENDING | IRQ_DISABLED)) == IRQ_PENDING);
@@ -480,12 +475,11 @@ out_unlock:
480 * handle_percpu_IRQ - Per CPU local irq handler 475 * handle_percpu_IRQ - Per CPU local irq handler
481 * @irq: the interrupt number 476 * @irq: the interrupt number
482 * @desc: the interrupt description structure for this irq 477 * @desc: the interrupt description structure for this irq
483 * @regs: pointer to a register structure
484 * 478 *
485 * Per CPU interrupts on SMP machines without locking requirements 479 * Per CPU interrupts on SMP machines without locking requirements
486 */ 480 */
487void fastcall 481void fastcall
488handle_percpu_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs) 482handle_percpu_irq(unsigned int irq, struct irq_desc *desc)
489{ 483{
490 irqreturn_t action_ret; 484 irqreturn_t action_ret;
491 485
@@ -494,9 +488,9 @@ handle_percpu_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs)
494 if (desc->chip->ack) 488 if (desc->chip->ack)
495 desc->chip->ack(irq); 489 desc->chip->ack(irq);
496 490
497 action_ret = handle_IRQ_event(irq, regs, desc->action); 491 action_ret = handle_IRQ_event(irq, desc->action);
498 if (!noirqdebug) 492 if (!noirqdebug)
499 note_interrupt(irq, desc, action_ret, regs); 493 note_interrupt(irq, desc, action_ret);
500 494
501 if (desc->chip->eoi) 495 if (desc->chip->eoi)
502 desc->chip->eoi(irq); 496 desc->chip->eoi(irq);
@@ -505,10 +499,7 @@ handle_percpu_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs)
505#endif /* CONFIG_SMP */ 499#endif /* CONFIG_SMP */
506 500
507void 501void
508__set_irq_handler(unsigned int irq, 502__set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained)
509 void fastcall (*handle)(unsigned int, irq_desc_t *,
510 struct pt_regs *),
511 int is_chained)
512{ 503{
513 struct irq_desc *desc; 504 struct irq_desc *desc;
514 unsigned long flags; 505 unsigned long flags;
@@ -561,9 +552,7 @@ __set_irq_handler(unsigned int irq,
561 552
562void 553void
563set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip, 554set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip,
564 void fastcall (*handle)(unsigned int, 555 irq_flow_handler_t handle)
565 struct irq_desc *,
566 struct pt_regs *))
567{ 556{
568 set_irq_chip(irq, chip); 557 set_irq_chip(irq, chip);
569 __set_irq_handler(irq, handle, 0); 558 __set_irq_handler(irq, handle, 0);
@@ -574,8 +563,7 @@ set_irq_chip_and_handler(unsigned int irq, struct irq_chip *chip,
574 * /proc/interrupts output: 563 * /proc/interrupts output:
575 */ 564 */
576const char * 565const char *
577handle_irq_name(void fastcall (*handle)(unsigned int, struct irq_desc *, 566handle_irq_name(irq_flow_handler_t handle)
578 struct pt_regs *))
579{ 567{
580 if (handle == handle_level_irq) 568 if (handle == handle_level_irq)
581 return "level "; 569 return "level ";
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
index 4c6cdbaed661..42aa6f1a3f0f 100644
--- a/kernel/irq/handle.c
+++ b/kernel/irq/handle.c
@@ -27,7 +27,7 @@
27 * Handles spurious and unhandled IRQ's. It also prints a debugmessage. 27 * Handles spurious and unhandled IRQ's. It also prints a debugmessage.
28 */ 28 */
29void fastcall 29void fastcall
30handle_bad_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs) 30handle_bad_irq(unsigned int irq, struct irq_desc *desc)
31{ 31{
32 print_irq_desc(irq, desc); 32 print_irq_desc(irq, desc);
33 kstat_this_cpu.irqs[irq]++; 33 kstat_this_cpu.irqs[irq]++;
@@ -115,7 +115,7 @@ struct irq_chip dummy_irq_chip = {
115/* 115/*
116 * Special, empty irq handler: 116 * Special, empty irq handler:
117 */ 117 */
118irqreturn_t no_action(int cpl, void *dev_id, struct pt_regs *regs) 118irqreturn_t no_action(int cpl, void *dev_id)
119{ 119{
120 return IRQ_NONE; 120 return IRQ_NONE;
121} 121}
@@ -123,13 +123,11 @@ irqreturn_t no_action(int cpl, void *dev_id, struct pt_regs *regs)
123/** 123/**
124 * handle_IRQ_event - irq action chain handler 124 * handle_IRQ_event - irq action chain handler
125 * @irq: the interrupt number 125 * @irq: the interrupt number
126 * @regs: pointer to a register structure
127 * @action: the interrupt action chain for this irq 126 * @action: the interrupt action chain for this irq
128 * 127 *
129 * Handles the action chain of an irq event 128 * Handles the action chain of an irq event
130 */ 129 */
131irqreturn_t handle_IRQ_event(unsigned int irq, struct pt_regs *regs, 130irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action)
132 struct irqaction *action)
133{ 131{
134 irqreturn_t ret, retval = IRQ_NONE; 132 irqreturn_t ret, retval = IRQ_NONE;
135 unsigned int status = 0; 133 unsigned int status = 0;
@@ -140,7 +138,7 @@ irqreturn_t handle_IRQ_event(unsigned int irq, struct pt_regs *regs,
140 local_irq_enable_in_hardirq(); 138 local_irq_enable_in_hardirq();
141 139
142 do { 140 do {
143 ret = action->handler(irq, action->dev_id, regs); 141 ret = action->handler(irq, action->dev_id);
144 if (ret == IRQ_HANDLED) 142 if (ret == IRQ_HANDLED)
145 status |= action->flags; 143 status |= action->flags;
146 retval |= ret; 144 retval |= ret;
@@ -158,7 +156,6 @@ irqreturn_t handle_IRQ_event(unsigned int irq, struct pt_regs *regs,
158/** 156/**
159 * __do_IRQ - original all in one highlevel IRQ handler 157 * __do_IRQ - original all in one highlevel IRQ handler
160 * @irq: the interrupt number 158 * @irq: the interrupt number
161 * @regs: pointer to a register structure
162 * 159 *
163 * __do_IRQ handles all normal device IRQ's (the special 160 * __do_IRQ handles all normal device IRQ's (the special
164 * SMP cross-CPU interrupts have their own specific 161 * SMP cross-CPU interrupts have their own specific
@@ -167,7 +164,7 @@ irqreturn_t handle_IRQ_event(unsigned int irq, struct pt_regs *regs,
167 * This is the original x86 implementation which is used for every 164 * This is the original x86 implementation which is used for every
168 * interrupt type. 165 * interrupt type.
169 */ 166 */
170fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs) 167fastcall unsigned int __do_IRQ(unsigned int irq)
171{ 168{
172 struct irq_desc *desc = irq_desc + irq; 169 struct irq_desc *desc = irq_desc + irq;
173 struct irqaction *action; 170 struct irqaction *action;
@@ -182,7 +179,7 @@ fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs)
182 */ 179 */
183 if (desc->chip->ack) 180 if (desc->chip->ack)
184 desc->chip->ack(irq); 181 desc->chip->ack(irq);
185 action_ret = handle_IRQ_event(irq, regs, desc->action); 182 action_ret = handle_IRQ_event(irq, desc->action);
186 desc->chip->end(irq); 183 desc->chip->end(irq);
187 return 1; 184 return 1;
188 } 185 }
@@ -233,11 +230,11 @@ fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs)
233 230
234 spin_unlock(&desc->lock); 231 spin_unlock(&desc->lock);
235 232
236 action_ret = handle_IRQ_event(irq, regs, action); 233 action_ret = handle_IRQ_event(irq, action);
237 234
238 spin_lock(&desc->lock); 235 spin_lock(&desc->lock);
239 if (!noirqdebug) 236 if (!noirqdebug)
240 note_interrupt(irq, desc, action_ret, regs); 237 note_interrupt(irq, desc, action_ret);
241 if (likely(!(desc->status & IRQ_PENDING))) 238 if (likely(!(desc->status & IRQ_PENDING)))
242 break; 239 break;
243 desc->status &= ~IRQ_PENDING; 240 desc->status &= ~IRQ_PENDING;
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 92be519eff26..6879202afe9a 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -427,8 +427,7 @@ EXPORT_SYMBOL(free_irq);
427 * IRQF_SAMPLE_RANDOM The interrupt can be used for entropy 427 * IRQF_SAMPLE_RANDOM The interrupt can be used for entropy
428 * 428 *
429 */ 429 */
430int request_irq(unsigned int irq, 430int request_irq(unsigned int irq, irq_handler_t handler,
431 irqreturn_t (*handler)(int, void *, struct pt_regs *),
432 unsigned long irqflags, const char *devname, void *dev_id) 431 unsigned long irqflags, const char *devname, void *dev_id)
433{ 432{
434 struct irqaction *action; 433 struct irqaction *action;
@@ -475,4 +474,3 @@ int request_irq(unsigned int irq,
475 return retval; 474 return retval;
476} 475}
477EXPORT_SYMBOL(request_irq); 476EXPORT_SYMBOL(request_irq);
478
diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c
index 417e98092cf2..543ea2e5ad93 100644
--- a/kernel/irq/spurious.c
+++ b/kernel/irq/spurious.c
@@ -16,7 +16,7 @@ static int irqfixup __read_mostly;
16/* 16/*
17 * Recovery handler for misrouted interrupts. 17 * Recovery handler for misrouted interrupts.
18 */ 18 */
19static int misrouted_irq(int irq, struct pt_regs *regs) 19static int misrouted_irq(int irq)
20{ 20{
21 int i; 21 int i;
22 int ok = 0; 22 int ok = 0;
@@ -49,7 +49,7 @@ static int misrouted_irq(int irq, struct pt_regs *regs)
49 while (action) { 49 while (action) {
50 /* Only shared IRQ handlers are safe to call */ 50 /* Only shared IRQ handlers are safe to call */
51 if (action->flags & IRQF_SHARED) { 51 if (action->flags & IRQF_SHARED) {
52 if (action->handler(i, action->dev_id, regs) == 52 if (action->handler(i, action->dev_id) ==
53 IRQ_HANDLED) 53 IRQ_HANDLED)
54 ok = 1; 54 ok = 1;
55 } 55 }
@@ -70,7 +70,7 @@ static int misrouted_irq(int irq, struct pt_regs *regs)
70 */ 70 */
71 work = 1; 71 work = 1;
72 spin_unlock(&desc->lock); 72 spin_unlock(&desc->lock);
73 handle_IRQ_event(i, regs, action); 73 handle_IRQ_event(i, action);
74 spin_lock(&desc->lock); 74 spin_lock(&desc->lock);
75 desc->status &= ~IRQ_PENDING; 75 desc->status &= ~IRQ_PENDING;
76 } 76 }
@@ -136,7 +136,7 @@ report_bad_irq(unsigned int irq, struct irq_desc *desc, irqreturn_t action_ret)
136} 136}
137 137
138void note_interrupt(unsigned int irq, struct irq_desc *desc, 138void note_interrupt(unsigned int irq, struct irq_desc *desc,
139 irqreturn_t action_ret, struct pt_regs *regs) 139 irqreturn_t action_ret)
140{ 140{
141 if (unlikely(action_ret != IRQ_HANDLED)) { 141 if (unlikely(action_ret != IRQ_HANDLED)) {
142 desc->irqs_unhandled++; 142 desc->irqs_unhandled++;
@@ -147,7 +147,7 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc,
147 if (unlikely(irqfixup)) { 147 if (unlikely(irqfixup)) {
148 /* Don't punish working computers */ 148 /* Don't punish working computers */
149 if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) { 149 if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) {
150 int ok = misrouted_irq(irq, regs); 150 int ok = misrouted_irq(irq);
151 if (action_ret == IRQ_NONE) 151 if (action_ret == IRQ_NONE)
152 desc->irqs_unhandled -= ok; 152 desc->irqs_unhandled -= ok;
153 } 153 }
diff --git a/kernel/power/poweroff.c b/kernel/power/poweroff.c
index 7a4144ba3afd..f1f900ac3164 100644
--- a/kernel/power/poweroff.c
+++ b/kernel/power/poweroff.c
@@ -23,8 +23,7 @@ static void do_poweroff(void *dummy)
23 23
24static DECLARE_WORK(poweroff_work, do_poweroff, NULL); 24static DECLARE_WORK(poweroff_work, do_poweroff, NULL);
25 25
26static void handle_poweroff(int key, struct pt_regs *pt_regs, 26static void handle_poweroff(int key, struct tty_struct *tty)
27 struct tty_struct *tty)
28{ 27{
29 schedule_work(&poweroff_work); 28 schedule_work(&poweroff_work);
30} 29}
diff --git a/kernel/profile.c b/kernel/profile.c
index fb660c7d35ba..857300a2afec 100644
--- a/kernel/profile.c
+++ b/kernel/profile.c
@@ -25,6 +25,7 @@
25#include <linux/mutex.h> 25#include <linux/mutex.h>
26#include <asm/sections.h> 26#include <asm/sections.h>
27#include <asm/semaphore.h> 27#include <asm/semaphore.h>
28#include <asm/irq_regs.h>
28 29
29struct profile_hit { 30struct profile_hit {
30 u32 pc, hits; 31 u32 pc, hits;
@@ -366,8 +367,10 @@ void profile_hit(int type, void *__pc)
366} 367}
367#endif /* !CONFIG_SMP */ 368#endif /* !CONFIG_SMP */
368 369
369void profile_tick(int type, struct pt_regs *regs) 370void profile_tick(int type)
370{ 371{
372 struct pt_regs *regs = get_irq_regs();
373
371 if (type == CPU_PROFILING && timer_hook) 374 if (type == CPU_PROFILING && timer_hook)
372 timer_hook(regs); 375 timer_hook(regs);
373 if (!user_mode(regs) && cpu_isset(smp_processor_id(), prof_cpu_mask)) 376 if (!user_mode(regs) && cpu_isset(smp_processor_id(), prof_cpu_mask))
diff --git a/lib/Makefile b/lib/Makefile
index b0361756e22e..8e6662bb9c37 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -5,7 +5,7 @@
5lib-y := ctype.o string.o vsprintf.o cmdline.o \ 5lib-y := ctype.o string.o vsprintf.o cmdline.o \
6 bust_spinlocks.o rbtree.o radix-tree.o dump_stack.o \ 6 bust_spinlocks.o rbtree.o radix-tree.o dump_stack.o \
7 idr.o div64.o int_sqrt.o bitmap.o extable.o prio_tree.o \ 7 idr.o div64.o int_sqrt.o bitmap.o extable.o prio_tree.o \
8 sha1.o 8 sha1.o irq_regs.o
9 9
10lib-$(CONFIG_MMU) += ioremap.o 10lib-$(CONFIG_MMU) += ioremap.o
11lib-$(CONFIG_SMP) += cpumask.o 11lib-$(CONFIG_SMP) += cpumask.o
diff --git a/lib/irq_regs.c b/lib/irq_regs.c
new file mode 100644
index 000000000000..101b1a4f9b14
--- /dev/null
+++ b/lib/irq_regs.c
@@ -0,0 +1,15 @@
1/* saved per-CPU IRQ register pointer
2 *
3 * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com)
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11#include <asm/irq_regs.h>
12
13#ifndef ARCH_HAS_OWN_IRQ_REGS
14DEFINE_PER_CPU(struct pt_regs *, __irq_regs);
15#endif
diff --git a/sound/aoa/core/snd-aoa-gpio-feature.c b/sound/aoa/core/snd-aoa-gpio-feature.c
index 7c26089527f6..40eb47eccf9a 100644
--- a/sound/aoa/core/snd-aoa-gpio-feature.c
+++ b/sound/aoa/core/snd-aoa-gpio-feature.c
@@ -283,9 +283,7 @@ static void ftr_gpio_exit(struct gpio_runtime *rt)
283 mutex_destroy(&rt->line_out_notify.mutex); 283 mutex_destroy(&rt->line_out_notify.mutex);
284} 284}
285 285
286static irqreturn_t ftr_handle_notify_irq(int xx, 286static irqreturn_t ftr_handle_notify_irq(int xx, void *data)
287 void *data,
288 struct pt_regs *regs)
289{ 287{
290 struct gpio_notification *notif = data; 288 struct gpio_notification *notif = data;
291 289
diff --git a/sound/aoa/soundbus/i2sbus/i2sbus-core.c b/sound/aoa/soundbus/i2sbus/i2sbus-core.c
index 23190aa6bc7b..e593a1333fe3 100644
--- a/sound/aoa/soundbus/i2sbus/i2sbus-core.c
+++ b/sound/aoa/soundbus/i2sbus/i2sbus-core.c
@@ -93,7 +93,7 @@ static void i2sbus_release_dev(struct device *dev)
93 kfree(i2sdev); 93 kfree(i2sdev);
94} 94}
95 95
96static irqreturn_t i2sbus_bus_intr(int irq, void *devid, struct pt_regs *regs) 96static irqreturn_t i2sbus_bus_intr(int irq, void *devid)
97{ 97{
98 struct i2sbus_dev *dev = devid; 98 struct i2sbus_dev *dev = devid;
99 u32 intreg; 99 u32 intreg;
@@ -165,8 +165,7 @@ static int i2sbus_add_dev(struct macio_dev *macio,
165 static const char *rnames[] = { "i2sbus: %s (control)", 165 static const char *rnames[] = { "i2sbus: %s (control)",
166 "i2sbus: %s (tx)", 166 "i2sbus: %s (tx)",
167 "i2sbus: %s (rx)" }; 167 "i2sbus: %s (rx)" };
168 static irqreturn_t (*ints[])(int irq, void *devid, 168 static irq_handler_t ints[] = {
169 struct pt_regs *regs) = {
170 i2sbus_bus_intr, 169 i2sbus_bus_intr,
171 i2sbus_tx_intr, 170 i2sbus_tx_intr,
172 i2sbus_rx_intr 171 i2sbus_rx_intr
diff --git a/sound/aoa/soundbus/i2sbus/i2sbus-pcm.c b/sound/aoa/soundbus/i2sbus/i2sbus-pcm.c
index 3049015a04f1..5eff30b10201 100644
--- a/sound/aoa/soundbus/i2sbus/i2sbus-pcm.c
+++ b/sound/aoa/soundbus/i2sbus/i2sbus-pcm.c
@@ -642,13 +642,13 @@ static inline void handle_interrupt(struct i2sbus_dev *i2sdev, int in)
642 spin_unlock(&i2sdev->low_lock); 642 spin_unlock(&i2sdev->low_lock);
643} 643}
644 644
645irqreturn_t i2sbus_tx_intr(int irq, void *devid, struct pt_regs *regs) 645irqreturn_t i2sbus_tx_intr(int irq, void *devid)
646{ 646{
647 handle_interrupt((struct i2sbus_dev *)devid, 0); 647 handle_interrupt((struct i2sbus_dev *)devid, 0);
648 return IRQ_HANDLED; 648 return IRQ_HANDLED;
649} 649}
650 650
651irqreturn_t i2sbus_rx_intr(int irq, void *devid, struct pt_regs * regs) 651irqreturn_t i2sbus_rx_intr(int irq, void *devid)
652{ 652{
653 handle_interrupt((struct i2sbus_dev *)devid, 1); 653 handle_interrupt((struct i2sbus_dev *)devid, 1);
654 return IRQ_HANDLED; 654 return IRQ_HANDLED;
diff --git a/sound/aoa/soundbus/i2sbus/i2sbus.h b/sound/aoa/soundbus/i2sbus/i2sbus.h
index 0c69d209be50..ec20ee615d7f 100644
--- a/sound/aoa/soundbus/i2sbus/i2sbus.h
+++ b/sound/aoa/soundbus/i2sbus/i2sbus.h
@@ -97,9 +97,9 @@ i2sbus_attach_codec(struct soundbus_dev *dev, struct snd_card *card,
97extern void 97extern void
98i2sbus_detach_codec(struct soundbus_dev *dev, void *data); 98i2sbus_detach_codec(struct soundbus_dev *dev, void *data);
99extern irqreturn_t 99extern irqreturn_t
100i2sbus_tx_intr(int irq, void *devid, struct pt_regs *regs); 100i2sbus_tx_intr(int irq, void *devid);
101extern irqreturn_t 101extern irqreturn_t
102i2sbus_rx_intr(int irq, void *devid, struct pt_regs *regs); 102i2sbus_rx_intr(int irq, void *devid);
103 103
104/* control specific functions */ 104/* control specific functions */
105extern int i2sbus_control_init(struct macio_dev* dev, 105extern int i2sbus_control_init(struct macio_dev* dev,
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c
index 8435fdd1c87c..53675cf4de44 100644
--- a/sound/arm/aaci.c
+++ b/sound/arm/aaci.c
@@ -221,7 +221,7 @@ static void aaci_fifo_irq(struct aaci *aaci, u32 mask)
221 } 221 }
222} 222}
223 223
224static irqreturn_t aaci_irq(int irq, void *devid, struct pt_regs *regs) 224static irqreturn_t aaci_irq(int irq, void *devid)
225{ 225{
226 struct aaci *aaci = devid; 226 struct aaci *aaci = devid;
227 u32 mask; 227 u32 mask;
diff --git a/sound/arm/pxa2xx-ac97.c b/sound/arm/pxa2xx-ac97.c
index 599aff8290e8..dede954b2c65 100644
--- a/sound/arm/pxa2xx-ac97.c
+++ b/sound/arm/pxa2xx-ac97.c
@@ -152,7 +152,7 @@ static void pxa2xx_ac97_reset(struct snd_ac97 *ac97)
152 GCR |= GCR_SDONE_IE|GCR_CDONE_IE; 152 GCR |= GCR_SDONE_IE|GCR_CDONE_IE;
153} 153}
154 154
155static irqreturn_t pxa2xx_ac97_irq(int irq, void *dev_id, struct pt_regs *regs) 155static irqreturn_t pxa2xx_ac97_irq(int irq, void *dev_id)
156{ 156{
157 long status; 157 long status;
158 158
diff --git a/sound/arm/pxa2xx-pcm.c b/sound/arm/pxa2xx-pcm.c
index 4938ef10b813..e8cf904b8358 100644
--- a/sound/arm/pxa2xx-pcm.c
+++ b/sound/arm/pxa2xx-pcm.c
@@ -137,7 +137,7 @@ static int pxa2xx_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
137 return ret; 137 return ret;
138} 138}
139 139
140static void pxa2xx_pcm_dma_irq(int dma_ch, void *dev_id, struct pt_regs *regs) 140static void pxa2xx_pcm_dma_irq(int dma_ch, void *dev_id)
141{ 141{
142 struct snd_pcm_substream *substream = dev_id; 142 struct snd_pcm_substream *substream = dev_id;
143 struct pxa2xx_runtime_data *rtd = substream->runtime->private_data; 143 struct pxa2xx_runtime_data *rtd = substream->runtime->private_data;
diff --git a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c
index 4bf07ca9b17d..3daa9fa56c0b 100644
--- a/sound/drivers/mpu401/mpu401_uart.c
+++ b/sound/drivers/mpu401/mpu401_uart.c
@@ -125,12 +125,10 @@ static void _snd_mpu401_uart_interrupt(struct snd_mpu401 *mpu)
125 * snd_mpu401_uart_interrupt - generic MPU401-UART interrupt handler 125 * snd_mpu401_uart_interrupt - generic MPU401-UART interrupt handler
126 * @irq: the irq number 126 * @irq: the irq number
127 * @dev_id: mpu401 instance 127 * @dev_id: mpu401 instance
128 * @regs: the reigster
129 * 128 *
130 * Processes the interrupt for MPU401-UART i/o. 129 * Processes the interrupt for MPU401-UART i/o.
131 */ 130 */
132irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id, 131irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id)
133 struct pt_regs *regs)
134{ 132{
135 struct snd_mpu401 *mpu = dev_id; 133 struct snd_mpu401 *mpu = dev_id;
136 134
@@ -146,12 +144,10 @@ EXPORT_SYMBOL(snd_mpu401_uart_interrupt);
146 * snd_mpu401_uart_interrupt_tx - generic MPU401-UART transmit irq handler 144 * snd_mpu401_uart_interrupt_tx - generic MPU401-UART transmit irq handler
147 * @irq: the irq number 145 * @irq: the irq number
148 * @dev_id: mpu401 instance 146 * @dev_id: mpu401 instance
149 * @regs: the reigster
150 * 147 *
151 * Processes the interrupt for MPU401-UART output. 148 * Processes the interrupt for MPU401-UART output.
152 */ 149 */
153irqreturn_t snd_mpu401_uart_interrupt_tx(int irq, void *dev_id, 150irqreturn_t snd_mpu401_uart_interrupt_tx(int irq, void *dev_id)
154 struct pt_regs *regs)
155{ 151{
156 struct snd_mpu401 *mpu = dev_id; 152 struct snd_mpu401 *mpu = dev_id;
157 153
diff --git a/sound/drivers/mtpav.c b/sound/drivers/mtpav.c
index e064d6c5685b..a9ff391258e7 100644
--- a/sound/drivers/mtpav.c
+++ b/sound/drivers/mtpav.c
@@ -570,7 +570,7 @@ static void snd_mtpav_read_bytes(struct mtpav *mcrd)
570 } while (sbyt & SIGS_BYTE); 570 } while (sbyt & SIGS_BYTE);
571} 571}
572 572
573static irqreturn_t snd_mtpav_irqh(int irq, void *dev_id, struct pt_regs *regs) 573static irqreturn_t snd_mtpav_irqh(int irq, void *dev_id)
574{ 574{
575 struct mtpav *mcard = dev_id; 575 struct mtpav *mcard = dev_id;
576 576
diff --git a/sound/drivers/mts64.c b/sound/drivers/mts64.c
index ab8d4effcf9e..5327c6f841f4 100644
--- a/sound/drivers/mts64.c
+++ b/sound/drivers/mts64.c
@@ -838,7 +838,7 @@ static int __devinit snd_mts64_rawmidi_create(struct snd_card *card)
838/********************************************************************* 838/*********************************************************************
839 * parport stuff 839 * parport stuff
840 *********************************************************************/ 840 *********************************************************************/
841static void snd_mts64_interrupt(int irq, void *private, struct pt_regs *r) 841static void snd_mts64_interrupt(int irq, void *private)
842{ 842{
843 struct mts64 *mts = ((struct snd_card*)private)->private_data; 843 struct mts64 *mts = ((struct snd_card*)private)->private_data;
844 u16 ret; 844 u16 ret;
diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c
index 52afb4bd2079..74028b2219c2 100644
--- a/sound/drivers/serial-u16550.c
+++ b/sound/drivers/serial-u16550.c
@@ -292,7 +292,7 @@ static void snd_uart16550_io_loop(snd_uart16550_t * uart)
292 * Note that some devices need OUT2 to be set before they will generate 292 * Note that some devices need OUT2 to be set before they will generate
293 * interrupts at all. (Possibly tied to an internal pull-up on CTS?) 293 * interrupts at all. (Possibly tied to an internal pull-up on CTS?)
294 */ 294 */
295static irqreturn_t snd_uart16550_interrupt(int irq, void *dev_id, struct pt_regs *regs) 295static irqreturn_t snd_uart16550_interrupt(int irq, void *dev_id)
296{ 296{
297 snd_uart16550_t *uart; 297 snd_uart16550_t *uart;
298 298
diff --git a/sound/drivers/vx/vx_core.c b/sound/drivers/vx/vx_core.c
index a60168268ddd..ed19bc17400b 100644
--- a/sound/drivers/vx/vx_core.c
+++ b/sound/drivers/vx/vx_core.c
@@ -537,7 +537,7 @@ static void vx_interrupt(unsigned long private_data)
537/** 537/**
538 * snd_vx_irq_handler - interrupt handler 538 * snd_vx_irq_handler - interrupt handler
539 */ 539 */
540irqreturn_t snd_vx_irq_handler(int irq, void *dev, struct pt_regs *regs) 540irqreturn_t snd_vx_irq_handler(int irq, void *dev)
541{ 541{
542 struct vx_core *chip = dev; 542 struct vx_core *chip = dev;
543 543
diff --git a/sound/isa/ad1816a/ad1816a_lib.c b/sound/isa/ad1816a/ad1816a_lib.c
index fd9b61eda0f3..b524e0d9ee44 100644
--- a/sound/isa/ad1816a/ad1816a_lib.c
+++ b/sound/isa/ad1816a/ad1816a_lib.c
@@ -315,7 +315,7 @@ static snd_pcm_uframes_t snd_ad1816a_capture_pointer(struct snd_pcm_substream *s
315} 315}
316 316
317 317
318static irqreturn_t snd_ad1816a_interrupt(int irq, void *dev_id, struct pt_regs *regs) 318static irqreturn_t snd_ad1816a_interrupt(int irq, void *dev_id)
319{ 319{
320 struct snd_ad1816a *chip = dev_id; 320 struct snd_ad1816a *chip = dev_id;
321 unsigned char status; 321 unsigned char status;
diff --git a/sound/isa/ad1848/ad1848_lib.c b/sound/isa/ad1848/ad1848_lib.c
index a6fbd5d1d62f..666b3bcc19f0 100644
--- a/sound/isa/ad1848/ad1848_lib.c
+++ b/sound/isa/ad1848/ad1848_lib.c
@@ -583,7 +583,7 @@ static int snd_ad1848_capture_prepare(struct snd_pcm_substream *substream)
583 return 0; 583 return 0;
584} 584}
585 585
586static irqreturn_t snd_ad1848_interrupt(int irq, void *dev_id, struct pt_regs *regs) 586static irqreturn_t snd_ad1848_interrupt(int irq, void *dev_id)
587{ 587{
588 struct snd_ad1848 *chip = dev_id; 588 struct snd_ad1848 *chip = dev_id;
589 589
diff --git a/sound/isa/cs423x/cs4231_lib.c b/sound/isa/cs423x/cs4231_lib.c
index fbb20176cca4..75c7c5f01989 100644
--- a/sound/isa/cs423x/cs4231_lib.c
+++ b/sound/isa/cs423x/cs4231_lib.c
@@ -920,7 +920,7 @@ static void snd_cs4231_overrange(struct snd_cs4231 *chip)
920 chip->capture_substream->runtime->overrange++; 920 chip->capture_substream->runtime->overrange++;
921} 921}
922 922
923irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id, struct pt_regs *regs) 923irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id)
924{ 924{
925 struct snd_cs4231 *chip = dev_id; 925 struct snd_cs4231 *chip = dev_id;
926 unsigned char status; 926 unsigned char status;
diff --git a/sound/isa/es1688/es1688_lib.c b/sound/isa/es1688/es1688_lib.c
index 7e985d3bc510..a2ab99f2ac35 100644
--- a/sound/isa/es1688/es1688_lib.c
+++ b/sound/isa/es1688/es1688_lib.c
@@ -479,7 +479,7 @@ static int snd_es1688_capture_trigger(struct snd_pcm_substream *substream,
479 return snd_es1688_trigger(chip, cmd, 0x0f); 479 return snd_es1688_trigger(chip, cmd, 0x0f);
480} 480}
481 481
482static irqreturn_t snd_es1688_interrupt(int irq, void *dev_id, struct pt_regs *regs) 482static irqreturn_t snd_es1688_interrupt(int irq, void *dev_id)
483{ 483{
484 struct snd_es1688 *chip = dev_id; 484 struct snd_es1688 *chip = dev_id;
485 485
diff --git a/sound/isa/es18xx.c b/sound/isa/es18xx.c
index 85818200333f..2398d2c55feb 100644
--- a/sound/isa/es18xx.c
+++ b/sound/isa/es18xx.c
@@ -754,7 +754,7 @@ static int snd_es18xx_playback_trigger(struct snd_pcm_substream *substream,
754 return snd_es18xx_playback2_trigger(chip, substream, cmd); 754 return snd_es18xx_playback2_trigger(chip, substream, cmd);
755} 755}
756 756
757static irqreturn_t snd_es18xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 757static irqreturn_t snd_es18xx_interrupt(int irq, void *dev_id)
758{ 758{
759 struct snd_es18xx *chip = dev_id; 759 struct snd_es18xx *chip = dev_id;
760 unsigned char status; 760 unsigned char status;
@@ -799,7 +799,7 @@ static irqreturn_t snd_es18xx_interrupt(int irq, void *dev_id, struct pt_regs *r
799 799
800 /* MPU */ 800 /* MPU */
801 if ((status & MPU_IRQ) && chip->rmidi) 801 if ((status & MPU_IRQ) && chip->rmidi)
802 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 802 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
803 803
804 /* Hardware volume */ 804 /* Hardware volume */
805 if (status & HWV_IRQ) { 805 if (status & HWV_IRQ) {
diff --git a/sound/isa/gus/gus_irq.c b/sound/isa/gus/gus_irq.c
index 42db37552efb..537d3cfe41f3 100644
--- a/sound/isa/gus/gus_irq.c
+++ b/sound/isa/gus/gus_irq.c
@@ -30,7 +30,7 @@
30#define STAT_ADD(x) while (0) { ; } 30#define STAT_ADD(x) while (0) { ; }
31#endif 31#endif
32 32
33irqreturn_t snd_gus_interrupt(int irq, void *dev_id, struct pt_regs *regs) 33irqreturn_t snd_gus_interrupt(int irq, void *dev_id)
34{ 34{
35 struct snd_gus_card * gus = dev_id; 35 struct snd_gus_card * gus = dev_id;
36 unsigned char status; 36 unsigned char status;
diff --git a/sound/isa/gus/gusmax.c b/sound/isa/gus/gusmax.c
index ac11cae8589a..52498c9d411e 100644
--- a/sound/isa/gus/gusmax.c
+++ b/sound/isa/gus/gusmax.c
@@ -105,7 +105,7 @@ static int __init snd_gusmax_detect(struct snd_gus_card * gus)
105 return 0; 105 return 0;
106} 106}
107 107
108static irqreturn_t snd_gusmax_interrupt(int irq, void *dev_id, struct pt_regs *regs) 108static irqreturn_t snd_gusmax_interrupt(int irq, void *dev_id)
109{ 109{
110 struct snd_gusmax *maxcard = (struct snd_gusmax *) dev_id; 110 struct snd_gusmax *maxcard = (struct snd_gusmax *) dev_id;
111 int loop, max = 5; 111 int loop, max = 5;
@@ -115,12 +115,12 @@ static irqreturn_t snd_gusmax_interrupt(int irq, void *dev_id, struct pt_regs *r
115 loop = 0; 115 loop = 0;
116 if (inb(maxcard->gus_status_reg)) { 116 if (inb(maxcard->gus_status_reg)) {
117 handled = 1; 117 handled = 1;
118 snd_gus_interrupt(irq, maxcard->gus, regs); 118 snd_gus_interrupt(irq, maxcard->gus);
119 loop++; 119 loop++;
120 } 120 }
121 if (inb(maxcard->pcm_status_reg) & 0x01) { /* IRQ bit is set? */ 121 if (inb(maxcard->pcm_status_reg) & 0x01) { /* IRQ bit is set? */
122 handled = 1; 122 handled = 1;
123 snd_cs4231_interrupt(irq, maxcard->cs4231, regs); 123 snd_cs4231_interrupt(irq, maxcard->cs4231);
124 loop++; 124 loop++;
125 } 125 }
126 } while (loop && --max > 0); 126 } while (loop && --max > 0);
diff --git a/sound/isa/gus/interwave.c b/sound/isa/gus/interwave.c
index ea69f25506fb..5c474b831edc 100644
--- a/sound/isa/gus/interwave.c
+++ b/sound/isa/gus/interwave.c
@@ -299,7 +299,7 @@ static int __devinit snd_interwave_detect(struct snd_interwave *iwcard,
299 return -ENODEV; 299 return -ENODEV;
300} 300}
301 301
302static irqreturn_t snd_interwave_interrupt(int irq, void *dev_id, struct pt_regs *regs) 302static irqreturn_t snd_interwave_interrupt(int irq, void *dev_id)
303{ 303{
304 struct snd_interwave *iwcard = (struct snd_interwave *) dev_id; 304 struct snd_interwave *iwcard = (struct snd_interwave *) dev_id;
305 int loop, max = 5; 305 int loop, max = 5;
@@ -309,12 +309,12 @@ static irqreturn_t snd_interwave_interrupt(int irq, void *dev_id, struct pt_regs
309 loop = 0; 309 loop = 0;
310 if (inb(iwcard->gus_status_reg)) { 310 if (inb(iwcard->gus_status_reg)) {
311 handled = 1; 311 handled = 1;
312 snd_gus_interrupt(irq, iwcard->gus, regs); 312 snd_gus_interrupt(irq, iwcard->gus);
313 loop++; 313 loop++;
314 } 314 }
315 if (inb(iwcard->pcm_status_reg) & 0x01) { /* IRQ bit is set? */ 315 if (inb(iwcard->pcm_status_reg) & 0x01) { /* IRQ bit is set? */
316 handled = 1; 316 handled = 1;
317 snd_cs4231_interrupt(irq, iwcard->cs4231, regs); 317 snd_cs4231_interrupt(irq, iwcard->cs4231);
318 loop++; 318 loop++;
319 } 319 }
320 } while (loop && --max > 0); 320 } while (loop && --max > 0);
diff --git a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c
index da92bf6c392b..419b4ebbf00e 100644
--- a/sound/isa/opl3sa2.c
+++ b/sound/isa/opl3sa2.c
@@ -294,7 +294,7 @@ static int __devinit snd_opl3sa2_detect(struct snd_opl3sa2 *chip)
294 return 0; 294 return 0;
295} 295}
296 296
297static irqreturn_t snd_opl3sa2_interrupt(int irq, void *dev_id, struct pt_regs *regs) 297static irqreturn_t snd_opl3sa2_interrupt(int irq, void *dev_id)
298{ 298{
299 unsigned short status; 299 unsigned short status;
300 struct snd_opl3sa2 *chip = dev_id; 300 struct snd_opl3sa2 *chip = dev_id;
@@ -312,12 +312,12 @@ static irqreturn_t snd_opl3sa2_interrupt(int irq, void *dev_id, struct pt_regs *
312 312
313 if ((status & 0x10) && chip->rmidi != NULL) { 313 if ((status & 0x10) && chip->rmidi != NULL) {
314 handled = 1; 314 handled = 1;
315 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 315 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
316 } 316 }
317 317
318 if (status & 0x07) { /* TI,CI,PI */ 318 if (status & 0x07) { /* TI,CI,PI */
319 handled = 1; 319 handled = 1;
320 snd_cs4231_interrupt(irq, chip->cs4231, regs); 320 snd_cs4231_interrupt(irq, chip->cs4231);
321 } 321 }
322 322
323 if (status & 0x40) { /* hardware volume change */ 323 if (status & 0x40) { /* hardware volume change */
diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c
index 9d528ae00bff..a1ad39a8cdce 100644
--- a/sound/isa/opti9xx/opti92x-ad1848.c
+++ b/sound/isa/opti9xx/opti92x-ad1848.c
@@ -1090,7 +1090,7 @@ static void snd_opti93x_overrange(struct snd_opti93x *chip)
1090 spin_unlock_irqrestore(&chip->lock, flags); 1090 spin_unlock_irqrestore(&chip->lock, flags);
1091} 1091}
1092 1092
1093static irqreturn_t snd_opti93x_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1093static irqreturn_t snd_opti93x_interrupt(int irq, void *dev_id)
1094{ 1094{
1095 struct snd_opti93x *codec = dev_id; 1095 struct snd_opti93x *codec = dev_id;
1096 unsigned char status; 1096 unsigned char status;
diff --git a/sound/isa/sb/es968.c b/sound/isa/sb/es968.c
index d4d65b84265a..d4b218726ce7 100644
--- a/sound/isa/sb/es968.c
+++ b/sound/isa/sb/es968.c
@@ -70,8 +70,7 @@ MODULE_DEVICE_TABLE(pnp_card, snd_es968_pnpids);
70 70
71#define DRIVER_NAME "snd-card-es968" 71#define DRIVER_NAME "snd-card-es968"
72 72
73static irqreturn_t snd_card_es968_interrupt(int irq, void *dev_id, 73static irqreturn_t snd_card_es968_interrupt(int irq, void *dev_id)
74 struct pt_regs *regs)
75{ 74{
76 struct snd_sb *chip = dev_id; 75 struct snd_sb *chip = dev_id;
77 76
diff --git a/sound/isa/sb/sb16_main.c b/sound/isa/sb/sb16_main.c
index f183f1845a36..383911b9e74d 100644
--- a/sound/isa/sb/sb16_main.c
+++ b/sound/isa/sb/sb16_main.c
@@ -395,7 +395,7 @@ static int snd_sb16_capture_trigger(struct snd_pcm_substream *substream,
395 return result; 395 return result;
396} 396}
397 397
398irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 398irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id)
399{ 399{
400 struct snd_sb *chip = dev_id; 400 struct snd_sb *chip = dev_id;
401 unsigned char status; 401 unsigned char status;
@@ -405,7 +405,7 @@ irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
405 status = snd_sbmixer_read(chip, SB_DSP4_IRQSTATUS); 405 status = snd_sbmixer_read(chip, SB_DSP4_IRQSTATUS);
406 spin_unlock(&chip->mixer_lock); 406 spin_unlock(&chip->mixer_lock);
407 if ((status & SB_IRQTYPE_MPUIN) && chip->rmidi_callback) 407 if ((status & SB_IRQTYPE_MPUIN) && chip->rmidi_callback)
408 chip->rmidi_callback(irq, chip->rmidi->private_data, regs); 408 chip->rmidi_callback(irq, chip->rmidi->private_data);
409 if (status & SB_IRQTYPE_8BIT) { 409 if (status & SB_IRQTYPE_8BIT) {
410 ok = 0; 410 ok = 0;
411 if (chip->mode & SB_MODE_PLAYBACK_8) { 411 if (chip->mode & SB_MODE_PLAYBACK_8) {
diff --git a/sound/isa/sb/sb8.c b/sound/isa/sb/sb8.c
index 141400c01426..268ebd34703e 100644
--- a/sound/isa/sb/sb8.c
+++ b/sound/isa/sb/sb8.c
@@ -63,7 +63,7 @@ struct snd_sb8 {
63 struct snd_sb *chip; 63 struct snd_sb *chip;
64}; 64};
65 65
66static irqreturn_t snd_sb8_interrupt(int irq, void *dev_id, struct pt_regs *regs) 66static irqreturn_t snd_sb8_interrupt(int irq, void *dev_id)
67{ 67{
68 struct snd_sb *chip = dev_id; 68 struct snd_sb *chip = dev_id;
69 69
diff --git a/sound/isa/sb/sb_common.c b/sound/isa/sb/sb_common.c
index f17de2bdd9e0..c62a9e3d2ae4 100644
--- a/sound/isa/sb/sb_common.c
+++ b/sound/isa/sb/sb_common.c
@@ -205,7 +205,7 @@ static int snd_sbdsp_dev_free(struct snd_device *device)
205int snd_sbdsp_create(struct snd_card *card, 205int snd_sbdsp_create(struct snd_card *card,
206 unsigned long port, 206 unsigned long port,
207 int irq, 207 int irq,
208 irqreturn_t (*irq_handler)(int, void *, struct pt_regs *), 208 irq_handler_t irq_handler,
209 int dma8, 209 int dma8,
210 int dma16, 210 int dma16,
211 unsigned short hardware, 211 unsigned short hardware,
diff --git a/sound/isa/sgalaxy.c b/sound/isa/sgalaxy.c
index 8742fa517491..4fcd0f4e868c 100644
--- a/sound/isa/sgalaxy.c
+++ b/sound/isa/sgalaxy.c
@@ -109,7 +109,7 @@ static int __init snd_sgalaxy_sbdsp_command(unsigned long port, unsigned char va
109 return 0; 109 return 0;
110} 110}
111 111
112static irqreturn_t snd_sgalaxy_dummy_interrupt(int irq, void *dev_id, struct pt_regs *regs) 112static irqreturn_t snd_sgalaxy_dummy_interrupt(int irq, void *dev_id)
113{ 113{
114 return IRQ_NONE; 114 return IRQ_NONE;
115} 115}
diff --git a/sound/isa/wavefront/wavefront.c b/sound/isa/wavefront/wavefront.c
index a8f8d2fa9d76..85db535aea9b 100644
--- a/sound/isa/wavefront/wavefront.c
+++ b/sound/isa/wavefront/wavefront.c
@@ -263,9 +263,7 @@ snd_wavefront_pnp (int dev, snd_wavefront_card_t *acard, struct pnp_card_link *c
263 263
264#endif /* CONFIG_PNP */ 264#endif /* CONFIG_PNP */
265 265
266static irqreturn_t snd_wavefront_ics2115_interrupt(int irq, 266static irqreturn_t snd_wavefront_ics2115_interrupt(int irq, void *dev_id)
267 void *dev_id,
268 struct pt_regs *regs)
269{ 267{
270 snd_wavefront_card_t *acard; 268 snd_wavefront_card_t *acard;
271 269
diff --git a/sound/mips/au1x00.c b/sound/mips/au1x00.c
index ff6e6fc198a1..8a61a1191861 100644
--- a/sound/mips/au1x00.c
+++ b/sound/mips/au1x00.c
@@ -220,7 +220,7 @@ au1000_dma_start(struct audio_stream *stream)
220} 220}
221 221
222static irqreturn_t 222static irqreturn_t
223au1000_dma_interrupt(int irq, void *dev_id, struct pt_regs *regs) 223au1000_dma_interrupt(int irq, void *dev_id)
224{ 224{
225 struct audio_stream *stream = (struct audio_stream *) dev_id; 225 struct audio_stream *stream = (struct audio_stream *) dev_id;
226 struct snd_pcm_substream *substream = stream->substream; 226 struct snd_pcm_substream *substream = stream->substream;
diff --git a/sound/oss/ad1816.c b/sound/oss/ad1816.c
index 29057836c644..caabf31193f7 100644
--- a/sound/oss/ad1816.c
+++ b/sound/oss/ad1816.c
@@ -521,7 +521,7 @@ static struct audio_driver ad1816_audio_driver =
521/* Interrupt handler */ 521/* Interrupt handler */
522 522
523 523
524static irqreturn_t ad1816_interrupt (int irq, void *dev_id, struct pt_regs *dummy) 524static irqreturn_t ad1816_interrupt (int irq, void *dev_id)
525{ 525{
526 unsigned char status; 526 unsigned char status;
527 ad1816_info *devc = (ad1816_info *)dev_id; 527 ad1816_info *devc = (ad1816_info *)dev_id;
diff --git a/sound/oss/ad1848.c b/sound/oss/ad1848.c
index 257b7536fb18..0ffa9970bf0f 100644
--- a/sound/oss/ad1848.c
+++ b/sound/oss/ad1848.c
@@ -195,7 +195,7 @@ static void ad1848_halt(int dev);
195static void ad1848_halt_input(int dev); 195static void ad1848_halt_input(int dev);
196static void ad1848_halt_output(int dev); 196static void ad1848_halt_output(int dev);
197static void ad1848_trigger(int dev, int bits); 197static void ad1848_trigger(int dev, int bits);
198static irqreturn_t adintr(int irq, void *dev_id, struct pt_regs *dummy); 198static irqreturn_t adintr(int irq, void *dev_id);
199 199
200#ifndef EXCLUDE_TIMERS 200#ifndef EXCLUDE_TIMERS
201static int ad1848_tmr_install(int dev); 201static int ad1848_tmr_install(int dev);
@@ -2196,7 +2196,7 @@ void ad1848_unload(int io_base, int irq, int dma_playback, int dma_capture, int
2196 printk(KERN_ERR "ad1848: Can't find device to be unloaded. Base=%x\n", io_base); 2196 printk(KERN_ERR "ad1848: Can't find device to be unloaded. Base=%x\n", io_base);
2197} 2197}
2198 2198
2199static irqreturn_t adintr(int irq, void *dev_id, struct pt_regs *dummy) 2199static irqreturn_t adintr(int irq, void *dev_id)
2200{ 2200{
2201 unsigned char status; 2201 unsigned char status;
2202 ad1848_info *devc; 2202 ad1848_info *devc;
diff --git a/sound/oss/ad1889.c b/sound/oss/ad1889.c
index f56f870b4840..09263d72a519 100644
--- a/sound/oss/ad1889.c
+++ b/sound/oss/ad1889.c
@@ -929,7 +929,7 @@ static struct pci_device_id ad1889_id_tbl[] = {
929}; 929};
930MODULE_DEVICE_TABLE(pci, ad1889_id_tbl); 930MODULE_DEVICE_TABLE(pci, ad1889_id_tbl);
931 931
932static irqreturn_t ad1889_interrupt(int irq, void *dev_id, struct pt_regs *regs) 932static irqreturn_t ad1889_interrupt(int irq, void *dev_id)
933{ 933{
934 u32 stat; 934 u32 stat;
935 ad1889_dev_t *dev = (ad1889_dev_t *)dev_id; 935 ad1889_dev_t *dev = (ad1889_dev_t *)dev_id;
diff --git a/sound/oss/btaudio.c b/sound/oss/btaudio.c
index 324a81fd3a3b..6ad384114239 100644
--- a/sound/oss/btaudio.c
+++ b/sound/oss/btaudio.c
@@ -824,7 +824,7 @@ static char *irq_name[] = { "", "", "", "OFLOW", "", "", "", "", "", "", "",
824 "RISCI", "FBUS", "FTRGT", "FDSR", "PPERR", 824 "RISCI", "FBUS", "FTRGT", "FDSR", "PPERR",
825 "RIPERR", "PABORT", "OCERR", "SCERR" }; 825 "RIPERR", "PABORT", "OCERR", "SCERR" };
826 826
827static irqreturn_t btaudio_irq(int irq, void *dev_id, struct pt_regs * regs) 827static irqreturn_t btaudio_irq(int irq, void *dev_id)
828{ 828{
829 int count = 0; 829 int count = 0;
830 u32 stat,astat; 830 u32 stat,astat;
diff --git a/sound/oss/cs46xx.c b/sound/oss/cs46xx.c
index 43193581f836..6e3c41f530e6 100644
--- a/sound/oss/cs46xx.c
+++ b/sound/oss/cs46xx.c
@@ -1613,7 +1613,7 @@ static void cs_handle_midi(struct cs_card *card)
1613 wake_up(&card->midi.owait); 1613 wake_up(&card->midi.owait);
1614} 1614}
1615 1615
1616static irqreturn_t cs_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1616static irqreturn_t cs_interrupt(int irq, void *dev_id)
1617{ 1617{
1618 struct cs_card *card = (struct cs_card *)dev_id; 1618 struct cs_card *card = (struct cs_card *)dev_id;
1619 /* Single channel card */ 1619 /* Single channel card */
diff --git a/sound/oss/dmasound/dmasound_atari.c b/sound/oss/dmasound/dmasound_atari.c
index dc31373069a5..285239d64b82 100644
--- a/sound/oss/dmasound/dmasound_atari.c
+++ b/sound/oss/dmasound/dmasound_atari.c
@@ -133,7 +133,7 @@ static int FalconSetFormat(int format);
133static int FalconSetVolume(int volume); 133static int FalconSetVolume(int volume);
134static void AtaPlayNextFrame(int index); 134static void AtaPlayNextFrame(int index);
135static void AtaPlay(void); 135static void AtaPlay(void);
136static irqreturn_t AtaInterrupt(int irq, void *dummy, struct pt_regs *fp); 136static irqreturn_t AtaInterrupt(int irq, void *dummy);
137 137
138/*** Mid level stuff *********************************************************/ 138/*** Mid level stuff *********************************************************/
139 139
@@ -1257,7 +1257,7 @@ static void AtaPlay(void)
1257} 1257}
1258 1258
1259 1259
1260static irqreturn_t AtaInterrupt(int irq, void *dummy, struct pt_regs *fp) 1260static irqreturn_t AtaInterrupt(int irq, void *dummy)
1261{ 1261{
1262#if 0 1262#if 0
1263 /* ++TeSche: if you should want to test this... */ 1263 /* ++TeSche: if you should want to test this... */
diff --git a/sound/oss/dmasound/dmasound_awacs.c b/sound/oss/dmasound/dmasound_awacs.c
index 9ae659f82430..3bd19c36fcd9 100644
--- a/sound/oss/dmasound/dmasound_awacs.c
+++ b/sound/oss/dmasound/dmasound_awacs.c
@@ -281,9 +281,9 @@ static int PMacSetFormat(int format);
281static int PMacSetVolume(int volume); 281static int PMacSetVolume(int volume);
282static void PMacPlay(void); 282static void PMacPlay(void);
283static void PMacRecord(void); 283static void PMacRecord(void);
284static irqreturn_t pmac_awacs_tx_intr(int irq, void *devid, struct pt_regs *regs); 284static irqreturn_t pmac_awacs_tx_intr(int irq, void *devid);
285static irqreturn_t pmac_awacs_rx_intr(int irq, void *devid, struct pt_regs *regs); 285static irqreturn_t pmac_awacs_rx_intr(int irq, void *devid);
286static irqreturn_t pmac_awacs_intr(int irq, void *devid, struct pt_regs *regs); 286static irqreturn_t pmac_awacs_intr(int irq, void *devid);
287static void awacs_write(int val); 287static void awacs_write(int val);
288static int awacs_get_volume(int reg, int lshift); 288static int awacs_get_volume(int reg, int lshift);
289static int awacs_volume_setter(int volume, int n, int mute, int lshift); 289static int awacs_volume_setter(int volume, int n, int mute, int lshift);
@@ -398,7 +398,7 @@ read_audio_gpio(int gpio_addr)
398 * Headphone interrupt via GPIO (Tumbler, Snapper, DACA) 398 * Headphone interrupt via GPIO (Tumbler, Snapper, DACA)
399 */ 399 */
400static irqreturn_t 400static irqreturn_t
401headphone_intr(int irq, void *devid, struct pt_regs *regs) 401headphone_intr(int irq, void *devid)
402{ 402{
403 unsigned long flags; 403 unsigned long flags;
404 404
@@ -1037,7 +1037,7 @@ static void PMacRecord(void)
1037*/ 1037*/
1038 1038
1039static irqreturn_t 1039static irqreturn_t
1040pmac_awacs_tx_intr(int irq, void *devid, struct pt_regs *regs) 1040pmac_awacs_tx_intr(int irq, void *devid)
1041{ 1041{
1042 int i = write_sq.front; 1042 int i = write_sq.front;
1043 int stat; 1043 int stat;
@@ -1129,7 +1129,7 @@ printk("dmasound_pmac: tx-irq: xfer died - patching it up...\n") ;
1129 1129
1130 1130
1131static irqreturn_t 1131static irqreturn_t
1132pmac_awacs_rx_intr(int irq, void *devid, struct pt_regs *regs) 1132pmac_awacs_rx_intr(int irq, void *devid)
1133{ 1133{
1134 int stat ; 1134 int stat ;
1135 /* For some reason on my PowerBook G3, I get one interrupt 1135 /* For some reason on my PowerBook G3, I get one interrupt
@@ -1212,7 +1212,7 @@ printk("dmasound_pmac: rx-irq: DIED - attempting resurection\n");
1212 1212
1213 1213
1214static irqreturn_t 1214static irqreturn_t
1215pmac_awacs_intr(int irq, void *devid, struct pt_regs *regs) 1215pmac_awacs_intr(int irq, void *devid)
1216{ 1216{
1217 int ctrl; 1217 int ctrl;
1218 int status; 1218 int status;
diff --git a/sound/oss/dmasound/dmasound_paula.c b/sound/oss/dmasound/dmasound_paula.c
index 68e1d8f6c359..90fc058e1159 100644
--- a/sound/oss/dmasound/dmasound_paula.c
+++ b/sound/oss/dmasound/dmasound_paula.c
@@ -82,7 +82,7 @@ static int AmiSetVolume(int volume);
82static int AmiSetTreble(int treble); 82static int AmiSetTreble(int treble);
83static void AmiPlayNextFrame(int index); 83static void AmiPlayNextFrame(int index);
84static void AmiPlay(void); 84static void AmiPlay(void);
85static irqreturn_t AmiInterrupt(int irq, void *dummy, struct pt_regs *fp); 85static irqreturn_t AmiInterrupt(int irq, void *dummy);
86 86
87#ifdef CONFIG_HEARTBEAT 87#ifdef CONFIG_HEARTBEAT
88 88
@@ -556,7 +556,7 @@ static void AmiPlay(void)
556} 556}
557 557
558 558
559static irqreturn_t AmiInterrupt(int irq, void *dummy, struct pt_regs *fp) 559static irqreturn_t AmiInterrupt(int irq, void *dummy)
560{ 560{
561 int minframes = 1; 561 int minframes = 1;
562 562
diff --git a/sound/oss/dmasound/dmasound_q40.c b/sound/oss/dmasound/dmasound_q40.c
index e2081f32b0c4..b3379dd7ca5e 100644
--- a/sound/oss/dmasound/dmasound_q40.c
+++ b/sound/oss/dmasound/dmasound_q40.c
@@ -48,8 +48,8 @@ static int Q40SetFormat(int format);
48static int Q40SetVolume(int volume); 48static int Q40SetVolume(int volume);
49static void Q40PlayNextFrame(int index); 49static void Q40PlayNextFrame(int index);
50static void Q40Play(void); 50static void Q40Play(void);
51static irqreturn_t Q40StereoInterrupt(int irq, void *dummy, struct pt_regs *fp); 51static irqreturn_t Q40StereoInterrupt(int irq, void *dummy);
52static irqreturn_t Q40MonoInterrupt(int irq, void *dummy, struct pt_regs *fp); 52static irqreturn_t Q40MonoInterrupt(int irq, void *dummy);
53static void Q40Interrupt(void); 53static void Q40Interrupt(void);
54 54
55 55
@@ -451,7 +451,7 @@ static void Q40Play(void)
451 spin_unlock_irqrestore(&dmasound.lock, flags); 451 spin_unlock_irqrestore(&dmasound.lock, flags);
452} 452}
453 453
454static irqreturn_t Q40StereoInterrupt(int irq, void *dummy, struct pt_regs *fp) 454static irqreturn_t Q40StereoInterrupt(int irq, void *dummy)
455{ 455{
456 spin_lock(&dmasound.lock); 456 spin_lock(&dmasound.lock);
457 if (q40_sc>1){ 457 if (q40_sc>1){
@@ -463,7 +463,7 @@ static irqreturn_t Q40StereoInterrupt(int irq, void *dummy, struct pt_regs *fp)
463 spin_unlock(&dmasound.lock); 463 spin_unlock(&dmasound.lock);
464 return IRQ_HANDLED; 464 return IRQ_HANDLED;
465} 465}
466static irqreturn_t Q40MonoInterrupt(int irq, void *dummy, struct pt_regs *fp) 466static irqreturn_t Q40MonoInterrupt(int irq, void *dummy)
467{ 467{
468 spin_lock(&dmasound.lock); 468 spin_lock(&dmasound.lock);
469 if (q40_sc>0){ 469 if (q40_sc>0){
diff --git a/sound/oss/emu10k1/irqmgr.c b/sound/oss/emu10k1/irqmgr.c
index d19b464ba01b..fb2ce638f01c 100644
--- a/sound/oss/emu10k1/irqmgr.c
+++ b/sound/oss/emu10k1/irqmgr.c
@@ -37,7 +37,7 @@
37 37
38/* Interrupt handler */ 38/* Interrupt handler */
39 39
40irqreturn_t emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) 40irqreturn_t emu10k1_interrupt(int irq, void *dev_id)
41{ 41{
42 struct emu10k1_card *card = (struct emu10k1_card *) dev_id; 42 struct emu10k1_card *card = (struct emu10k1_card *) dev_id;
43 u32 irqstatus, irqstatus_tmp; 43 u32 irqstatus, irqstatus_tmp;
diff --git a/sound/oss/emu10k1/main.c b/sound/oss/emu10k1/main.c
index c4ce94d6e10c..6c59df7b0001 100644
--- a/sound/oss/emu10k1/main.c
+++ b/sound/oss/emu10k1/main.c
@@ -167,7 +167,7 @@ extern struct file_operations emu10k1_midi_fops;
167static struct midi_operations emu10k1_midi_operations; 167static struct midi_operations emu10k1_midi_operations;
168#endif 168#endif
169 169
170extern irqreturn_t emu10k1_interrupt(int, void *, struct pt_regs *s); 170extern irqreturn_t emu10k1_interrupt(int, void *);
171 171
172static int __devinit emu10k1_audio_init(struct emu10k1_card *card) 172static int __devinit emu10k1_audio_init(struct emu10k1_card *card)
173{ 173{
diff --git a/sound/oss/es1371.c b/sound/oss/es1371.c
index a2ffe723dad5..2562f4769b90 100644
--- a/sound/oss/es1371.c
+++ b/sound/oss/es1371.c
@@ -1100,7 +1100,7 @@ static void es1371_handle_midi(struct es1371_state *s)
1100 outb((s->midi.ocnt > 0) ? UCTRL_RXINTEN | UCTRL_ENA_TXINT : UCTRL_RXINTEN, s->io+ES1371_REG_UART_CONTROL); 1100 outb((s->midi.ocnt > 0) ? UCTRL_RXINTEN | UCTRL_ENA_TXINT : UCTRL_RXINTEN, s->io+ES1371_REG_UART_CONTROL);
1101} 1101}
1102 1102
1103static irqreturn_t es1371_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1103static irqreturn_t es1371_interrupt(int irq, void *dev_id)
1104{ 1104{
1105 struct es1371_state *s = (struct es1371_state *)dev_id; 1105 struct es1371_state *s = (struct es1371_state *)dev_id;
1106 unsigned int intsrc, sctl; 1106 unsigned int intsrc, sctl;
diff --git a/sound/oss/hal2.c b/sound/oss/hal2.c
index 80ab402dae9a..7807abac0625 100644
--- a/sound/oss/hal2.c
+++ b/sound/oss/hal2.c
@@ -370,7 +370,7 @@ static void hal2_adc_interrupt(struct hal2_codec *adc)
370 wake_up(&adc->dma_wait); 370 wake_up(&adc->dma_wait);
371} 371}
372 372
373static irqreturn_t hal2_interrupt(int irq, void *dev_id, struct pt_regs *regs) 373static irqreturn_t hal2_interrupt(int irq, void *dev_id)
374{ 374{
375 struct hal2_card *hal2 = (struct hal2_card*)dev_id; 375 struct hal2_card *hal2 = (struct hal2_card*)dev_id;
376 irqreturn_t ret = IRQ_NONE; 376 irqreturn_t ret = IRQ_NONE;
diff --git a/sound/oss/i810_audio.c b/sound/oss/i810_audio.c
index ddcddc2347f7..a48af879b466 100644
--- a/sound/oss/i810_audio.c
+++ b/sound/oss/i810_audio.c
@@ -1523,7 +1523,7 @@ static void i810_channel_interrupt(struct i810_card *card)
1523#endif 1523#endif
1524} 1524}
1525 1525
1526static irqreturn_t i810_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1526static irqreturn_t i810_interrupt(int irq, void *dev_id)
1527{ 1527{
1528 struct i810_card *card = (struct i810_card *)dev_id; 1528 struct i810_card *card = (struct i810_card *)dev_id;
1529 u32 status; 1529 u32 status;
diff --git a/sound/oss/mpu401.c b/sound/oss/mpu401.c
index 162d07cc489f..58d4a5d05a27 100644
--- a/sound/oss/mpu401.c
+++ b/sound/oss/mpu401.c
@@ -432,7 +432,7 @@ static void mpu401_input_loop(struct mpu_config *devc)
432 devc->m_busy = 0; 432 devc->m_busy = 0;
433} 433}
434 434
435static irqreturn_t mpuintr(int irq, void *dev_id, struct pt_regs *dummy) 435static irqreturn_t mpuintr(int irq, void *dev_id)
436{ 436{
437 struct mpu_config *devc; 437 struct mpu_config *devc;
438 int dev = (int) dev_id; 438 int dev = (int) dev_id;
diff --git a/sound/oss/mpu401.h b/sound/oss/mpu401.h
index 84c0e9522ef7..0ad1e9ee74f7 100644
--- a/sound/oss/mpu401.h
+++ b/sound/oss/mpu401.h
@@ -3,10 +3,9 @@
3int probe_uart401 (struct address_info *hw_config, struct module *owner); 3int probe_uart401 (struct address_info *hw_config, struct module *owner);
4void unload_uart401 (struct address_info *hw_config); 4void unload_uart401 (struct address_info *hw_config);
5 5
6irqreturn_t uart401intr (int irq, void *dev_id, struct pt_regs * dummy); 6irqreturn_t uart401intr (int irq, void *dev_id);
7 7
8/* From mpu401.c */ 8/* From mpu401.c */
9int probe_mpu401(struct address_info *hw_config, struct resource *ports); 9int probe_mpu401(struct address_info *hw_config, struct resource *ports);
10int attach_mpu401(struct address_info * hw_config, struct module *owner); 10int attach_mpu401(struct address_info * hw_config, struct module *owner);
11void unload_mpu401(struct address_info *hw_info); 11void unload_mpu401(struct address_info *hw_info);
12
diff --git a/sound/oss/msnd_pinnacle.c b/sound/oss/msnd_pinnacle.c
index 6d7763dae895..d5146790f5e3 100644
--- a/sound/oss/msnd_pinnacle.c
+++ b/sound/oss/msnd_pinnacle.c
@@ -1087,7 +1087,7 @@ static __inline__ void eval_dsp_msg(register WORD wMessage)
1087 } 1087 }
1088} 1088}
1089 1089
1090static irqreturn_t intr(int irq, void *dev_id, struct pt_regs *regs) 1090static irqreturn_t intr(int irq, void *dev_id)
1091{ 1091{
1092 /* Send ack to DSP */ 1092 /* Send ack to DSP */
1093 msnd_inb(dev.io + HP_RXL); 1093 msnd_inb(dev.io + HP_RXL);
diff --git a/sound/oss/nec_vrc5477.c b/sound/oss/nec_vrc5477.c
index 6f7f2f0423e4..da9728e17727 100644
--- a/sound/oss/nec_vrc5477.c
+++ b/sound/oss/nec_vrc5477.c
@@ -848,7 +848,7 @@ static inline void vrc5477_ac97_dac_interrupt(struct vrc5477_ac97_state *s)
848 wake_up_interruptible(&dac->wait); 848 wake_up_interruptible(&dac->wait);
849} 849}
850 850
851static irqreturn_t vrc5477_ac97_interrupt(int irq, void *dev_id, struct pt_regs *regs) 851static irqreturn_t vrc5477_ac97_interrupt(int irq, void *dev_id)
852{ 852{
853 struct vrc5477_ac97_state *s = (struct vrc5477_ac97_state *)dev_id; 853 struct vrc5477_ac97_state *s = (struct vrc5477_ac97_state *)dev_id;
854 u32 irqStatus; 854 u32 irqStatus;
diff --git a/sound/oss/nm256.h b/sound/oss/nm256.h
index 21e07b5081f2..1dade9033995 100644
--- a/sound/oss/nm256.h
+++ b/sound/oss/nm256.h
@@ -115,7 +115,7 @@ struct nm256_info
115 int has_irq; 115 int has_irq;
116 116
117 /* The card interrupt service routine. */ 117 /* The card interrupt service routine. */
118 irqreturn_t (*introutine) (int, void *, struct pt_regs *); 118 irq_handler_t introutine;
119 119
120 /* Current audio config, cached. */ 120 /* Current audio config, cached. */
121 struct sinfo { 121 struct sinfo {
diff --git a/sound/oss/nm256_audio.c b/sound/oss/nm256_audio.c
index 7760dddf2b32..44cd15505001 100644
--- a/sound/oss/nm256_audio.c
+++ b/sound/oss/nm256_audio.c
@@ -45,8 +45,8 @@ static struct audio_driver nm256_audio_driver;
45 45
46static int nm256_grabInterrupt (struct nm256_info *card); 46static int nm256_grabInterrupt (struct nm256_info *card);
47static int nm256_releaseInterrupt (struct nm256_info *card); 47static int nm256_releaseInterrupt (struct nm256_info *card);
48static irqreturn_t nm256_interrupt (int irq, void *dev_id, struct pt_regs *dummy); 48static irqreturn_t nm256_interrupt (int irq, void *dev_id);
49static irqreturn_t nm256_interrupt_zx (int irq, void *dev_id, struct pt_regs *dummy); 49static irqreturn_t nm256_interrupt_zx (int irq, void *dev_id);
50 50
51/* These belong in linux/pci.h. */ 51/* These belong in linux/pci.h. */
52#define PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO 0x8005 52#define PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO 0x8005
@@ -526,7 +526,7 @@ nm256_initHw (struct nm256_info *card)
526 */ 526 */
527 527
528static irqreturn_t 528static irqreturn_t
529nm256_interrupt (int irq, void *dev_id, struct pt_regs *dummy) 529nm256_interrupt (int irq, void *dev_id)
530{ 530{
531 struct nm256_info *card = (struct nm256_info *)dev_id; 531 struct nm256_info *card = (struct nm256_info *)dev_id;
532 u16 status; 532 u16 status;
@@ -629,7 +629,7 @@ nm256_interrupt (int irq, void *dev_id, struct pt_regs *dummy)
629 */ 629 */
630 630
631static irqreturn_t 631static irqreturn_t
632nm256_interrupt_zx (int irq, void *dev_id, struct pt_regs *dummy) 632nm256_interrupt_zx (int irq, void *dev_id)
633{ 633{
634 struct nm256_info *card = (struct nm256_info *)dev_id; 634 struct nm256_info *card = (struct nm256_info *)dev_id;
635 u32 status; 635 u32 status;
diff --git a/sound/oss/pas2_card.c b/sound/oss/pas2_card.c
index 4ebb9638746e..25f3a22c52ee 100644
--- a/sound/oss/pas2_card.c
+++ b/sound/oss/pas2_card.c
@@ -88,7 +88,7 @@ void pas_write(unsigned char data, int ioaddr)
88 88
89/******************* Begin of the Interrupt Handler ********************/ 89/******************* Begin of the Interrupt Handler ********************/
90 90
91static irqreturn_t pasintr(int irq, void *dev_id, struct pt_regs *dummy) 91static irqreturn_t pasintr(int irq, void *dev_id)
92{ 92{
93 int status; 93 int status;
94 94
diff --git a/sound/oss/sb_common.c b/sound/oss/sb_common.c
index bbe5b7596d0e..440537c72604 100644
--- a/sound/oss/sb_common.c
+++ b/sound/oss/sb_common.c
@@ -132,7 +132,7 @@ static void sb_intr (sb_devc *devc)
132 132
133 if (src & 4) /* MPU401 interrupt */ 133 if (src & 4) /* MPU401 interrupt */
134 if(devc->midi_irq_cookie) 134 if(devc->midi_irq_cookie)
135 uart401intr(devc->irq, devc->midi_irq_cookie, NULL); 135 uart401intr(devc->irq, devc->midi_irq_cookie);
136 136
137 if (!(src & 3)) 137 if (!(src & 3))
138 return; /* Not a DSP interrupt */ 138 return; /* Not a DSP interrupt */
@@ -200,7 +200,7 @@ static void pci_intr(sb_devc *devc)
200 sb_intr(devc); 200 sb_intr(devc);
201} 201}
202 202
203static irqreturn_t sbintr(int irq, void *dev_id, struct pt_regs *dummy) 203static irqreturn_t sbintr(int irq, void *dev_id)
204{ 204{
205 sb_devc *devc = dev_id; 205 sb_devc *devc = dev_id;
206 206
diff --git a/sound/oss/sh_dac_audio.c b/sound/oss/sh_dac_audio.c
index 83ff8a71f716..3b3b4da8cfd3 100644
--- a/sound/oss/sh_dac_audio.c
+++ b/sound/oss/sh_dac_audio.c
@@ -263,7 +263,7 @@ struct file_operations dac_audio_fops = {
263 .release = dac_audio_release, 263 .release = dac_audio_release,
264}; 264};
265 265
266static irqreturn_t timer1_interrupt(int irq, void *dev, struct pt_regs *regs) 266static irqreturn_t timer1_interrupt(int irq, void *dev)
267{ 267{
268 unsigned long timer_status; 268 unsigned long timer_status;
269 269
diff --git a/sound/oss/swarm_cs4297a.c b/sound/oss/swarm_cs4297a.c
index 3edf8d4ac998..471c274c5000 100644
--- a/sound/oss/swarm_cs4297a.c
+++ b/sound/oss/swarm_cs4297a.c
@@ -2505,7 +2505,7 @@ static /*const */ struct file_operations cs4297a_audio_fops = {
2505 .release = cs4297a_release, 2505 .release = cs4297a_release,
2506}; 2506};
2507 2507
2508static void cs4297a_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2508static void cs4297a_interrupt(int irq, void *dev_id)
2509{ 2509{
2510 struct cs4297a_state *s = (struct cs4297a_state *) dev_id; 2510 struct cs4297a_state *s = (struct cs4297a_state *) dev_id;
2511 u32 status; 2511 u32 status;
diff --git a/sound/oss/trident.c b/sound/oss/trident.c
index 147c816a1f22..7a363a178afd 100644
--- a/sound/oss/trident.c
+++ b/sound/oss/trident.c
@@ -1811,7 +1811,7 @@ cyber_address_interrupt(struct trident_card *card)
1811} 1811}
1812 1812
1813static irqreturn_t 1813static irqreturn_t
1814trident_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1814trident_interrupt(int irq, void *dev_id)
1815{ 1815{
1816 struct trident_card *card = (struct trident_card *) dev_id; 1816 struct trident_card *card = (struct trident_card *) dev_id;
1817 u32 event; 1817 u32 event;
diff --git a/sound/oss/uart401.c b/sound/oss/uart401.c
index 8e18b6e25818..a446b826d5fc 100644
--- a/sound/oss/uart401.c
+++ b/sound/oss/uart401.c
@@ -96,7 +96,7 @@ static void uart401_input_loop(uart401_devc * devc)
96 printk(KERN_WARNING "Too much work in interrupt on uart401 (0x%X). UART jabbering ??\n", devc->base); 96 printk(KERN_WARNING "Too much work in interrupt on uart401 (0x%X). UART jabbering ??\n", devc->base);
97} 97}
98 98
99irqreturn_t uart401intr(int irq, void *dev_id, struct pt_regs *dummy) 99irqreturn_t uart401intr(int irq, void *dev_id)
100{ 100{
101 uart401_devc *devc = dev_id; 101 uart401_devc *devc = dev_id;
102 102
diff --git a/sound/oss/uart6850.c b/sound/oss/uart6850.c
index 501d3e654a67..f3f914aa92ee 100644
--- a/sound/oss/uart6850.c
+++ b/sound/oss/uart6850.c
@@ -104,7 +104,7 @@ static void uart6850_input_loop(void)
104 } 104 }
105} 105}
106 106
107static irqreturn_t m6850intr(int irq, void *dev_id, struct pt_regs *dummy) 107static irqreturn_t m6850intr(int irq, void *dev_id)
108{ 108{
109 if (input_avail()) 109 if (input_avail())
110 uart6850_input_loop(); 110 uart6850_input_loop();
diff --git a/sound/oss/via82cxxx_audio.c b/sound/oss/via82cxxx_audio.c
index 2fec42fc3482..17837d4b5ed3 100644
--- a/sound/oss/via82cxxx_audio.c
+++ b/sound/oss/via82cxxx_audio.c
@@ -1912,7 +1912,7 @@ static void via_intr_channel (struct via_info *card, struct via_channel *chan)
1912} 1912}
1913 1913
1914 1914
1915static irqreturn_t via_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1915static irqreturn_t via_interrupt(int irq, void *dev_id)
1916{ 1916{
1917 struct via_info *card = dev_id; 1917 struct via_info *card = dev_id;
1918 u32 status32; 1918 u32 status32;
@@ -1927,7 +1927,7 @@ static irqreturn_t via_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1927 { 1927 {
1928#ifdef CONFIG_MIDI_VIA82CXXX 1928#ifdef CONFIG_MIDI_VIA82CXXX
1929 if (card->midi_devc) 1929 if (card->midi_devc)
1930 uart401intr(irq, card->midi_devc, regs); 1930 uart401intr(irq, card->midi_devc);
1931#endif 1931#endif
1932 return IRQ_HANDLED; 1932 return IRQ_HANDLED;
1933 } 1933 }
@@ -1950,7 +1950,7 @@ static irqreturn_t via_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1950 return IRQ_HANDLED; 1950 return IRQ_HANDLED;
1951} 1951}
1952 1952
1953static irqreturn_t via_new_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1953static irqreturn_t via_new_interrupt(int irq, void *dev_id)
1954{ 1954{
1955 struct via_info *card = dev_id; 1955 struct via_info *card = dev_id;
1956 u32 status32; 1956 u32 status32;
diff --git a/sound/oss/vidc.h b/sound/oss/vidc.h
index d5b8064dc565..0d1424751ecd 100644
--- a/sound/oss/vidc.h
+++ b/sound/oss/vidc.h
@@ -33,7 +33,7 @@ extern unsigned long vidc_fill_2x16_s(unsigned long ibuf, unsigned long iend,
33 * DMA Interrupt handler 33 * DMA Interrupt handler
34 */ 34 */
35 35
36extern irqreturn_t vidc_sound_dma_irq(int irqnr, void *ref, struct pt_regs *regs); 36extern irqreturn_t vidc_sound_dma_irq(int irqnr, void *ref);
37 37
38/* 38/*
39 * Filler routine pointer 39 * Filler routine pointer
diff --git a/sound/oss/vwsnd.c b/sound/oss/vwsnd.c
index 5f140c7586b3..0cd4d6ec9862 100644
--- a/sound/oss/vwsnd.c
+++ b/sound/oss/vwsnd.c
@@ -2233,12 +2233,12 @@ static void vwsnd_audio_write_intr(vwsnd_dev_t *devc, unsigned int status)
2233 pcm_output(devc, underflown, 0); 2233 pcm_output(devc, underflown, 0);
2234} 2234}
2235 2235
2236static irqreturn_t vwsnd_audio_intr(int irq, void *dev_id, struct pt_regs *regs) 2236static irqreturn_t vwsnd_audio_intr(int irq, void *dev_id)
2237{ 2237{
2238 vwsnd_dev_t *devc = (vwsnd_dev_t *) dev_id; 2238 vwsnd_dev_t *devc = (vwsnd_dev_t *) dev_id;
2239 unsigned int status; 2239 unsigned int status;
2240 2240
2241 DBGEV("(irq=%d, dev_id=0x%p, regs=0x%p)\n", irq, dev_id, regs); 2241 DBGEV("(irq=%d, dev_id=0x%p)\n", irq, dev_id);
2242 2242
2243 status = li_get_clear_intr_status(&devc->lith); 2243 status = li_get_clear_intr_status(&devc->lith);
2244 vwsnd_audio_read_intr(devc, status); 2244 vwsnd_audio_read_intr(devc, status);
diff --git a/sound/oss/waveartist.c b/sound/oss/waveartist.c
index 59a2f28eb5a5..c5bf363d32c2 100644
--- a/sound/oss/waveartist.c
+++ b/sound/oss/waveartist.c
@@ -833,7 +833,7 @@ static struct audio_driver waveartist_audio_driver = {
833 833
834 834
835static irqreturn_t 835static irqreturn_t
836waveartist_intr(int irq, void *dev_id, struct pt_regs *regs) 836waveartist_intr(int irq, void *dev_id)
837{ 837{
838 wavnc_info *devc = (wavnc_info *)dev_id; 838 wavnc_info *devc = (wavnc_info *)dev_id;
839 int irqstatus, status; 839 int irqstatus, status;
diff --git a/sound/parisc/harmony.c b/sound/parisc/harmony.c
index ce73f3eae78c..cf603337b321 100644
--- a/sound/parisc/harmony.c
+++ b/sound/parisc/harmony.c
@@ -193,7 +193,7 @@ harmony_set_control(struct snd_harmony *h)
193} 193}
194 194
195static irqreturn_t 195static irqreturn_t
196snd_harmony_interrupt(int irq, void *dev, struct pt_regs *regs) 196snd_harmony_interrupt(int irq, void *dev)
197{ 197{
198 u32 dstatus; 198 u32 dstatus;
199 struct snd_harmony *h = dev; 199 struct snd_harmony *h = dev;
diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c
index 0786d0edaca5..cbf8331c3d33 100644
--- a/sound/pci/ad1889.c
+++ b/sound/pci/ad1889.c
@@ -596,9 +596,7 @@ static struct snd_pcm_ops snd_ad1889_capture_ops = {
596}; 596};
597 597
598static irqreturn_t 598static irqreturn_t
599snd_ad1889_interrupt(int irq, 599snd_ad1889_interrupt(int irq, void *dev_id)
600 void *dev_id,
601 struct pt_regs *regs)
602{ 600{
603 unsigned long st; 601 unsigned long st;
604 struct snd_ad1889 *chip = dev_id; 602 struct snd_ad1889 *chip = dev_id;
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c
index 74668398eac5..13a8cefa7749 100644
--- a/sound/pci/ali5451/ali5451.c
+++ b/sound/pci/ali5451/ali5451.c
@@ -1047,9 +1047,7 @@ static void snd_ali_interrupt(struct snd_ali * codec)
1047} 1047}
1048 1048
1049 1049
1050static irqreturn_t snd_ali_card_interrupt(int irq, 1050static irqreturn_t snd_ali_card_interrupt(int irq, void *dev_id)
1051 void *dev_id,
1052 struct pt_regs *regs)
1053{ 1051{
1054 struct snd_ali *codec = dev_id; 1052 struct snd_ali *codec = dev_id;
1055 1053
diff --git a/sound/pci/als300.c b/sound/pci/als300.c
index 96cfb8ae5055..9b16c299f0a9 100644
--- a/sound/pci/als300.c
+++ b/sound/pci/als300.c
@@ -204,8 +204,7 @@ static int snd_als300_dev_free(struct snd_device *device)
204 return snd_als300_free(chip); 204 return snd_als300_free(chip);
205} 205}
206 206
207static irqreturn_t snd_als300_interrupt(int irq, void *dev_id, 207static irqreturn_t snd_als300_interrupt(int irq, void *dev_id)
208 struct pt_regs *regs)
209{ 208{
210 u8 status; 209 u8 status;
211 struct snd_als300 *chip = dev_id; 210 struct snd_als300 *chip = dev_id;
@@ -236,8 +235,7 @@ static irqreturn_t snd_als300_interrupt(int irq, void *dev_id,
236 return IRQ_HANDLED; 235 return IRQ_HANDLED;
237} 236}
238 237
239static irqreturn_t snd_als300plus_interrupt(int irq, void *dev_id, 238static irqreturn_t snd_als300plus_interrupt(int irq, void *dev_id)
240 struct pt_regs *regs)
241{ 239{
242 u8 general, mpu, dram; 240 u8 general, mpu, dram;
243 struct snd_als300 *chip = dev_id; 241 struct snd_als300 *chip = dev_id;
diff --git a/sound/pci/als4000.c b/sound/pci/als4000.c
index 9e596f750cbd..15fc3929b5f7 100644
--- a/sound/pci/als4000.c
+++ b/sound/pci/als4000.c
@@ -385,7 +385,7 @@ static snd_pcm_uframes_t snd_als4000_playback_pointer(struct snd_pcm_substream *
385 * SB IRQ status. 385 * SB IRQ status.
386 * And do we *really* need the lock here for *reading* SB_DSP4_IRQSTATUS?? 386 * And do we *really* need the lock here for *reading* SB_DSP4_IRQSTATUS??
387 * */ 387 * */
388static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id, struct pt_regs *regs) 388static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id)
389{ 389{
390 struct snd_sb *chip = dev_id; 390 struct snd_sb *chip = dev_id;
391 unsigned gcr_status; 391 unsigned gcr_status;
@@ -399,7 +399,7 @@ static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id, struct pt_regs *
399 if ((gcr_status & 0x40) && (chip->capture_substream)) /* capturing */ 399 if ((gcr_status & 0x40) && (chip->capture_substream)) /* capturing */
400 snd_pcm_period_elapsed(chip->capture_substream); 400 snd_pcm_period_elapsed(chip->capture_substream);
401 if ((gcr_status & 0x10) && (chip->rmidi)) /* MPU401 interrupt */ 401 if ((gcr_status & 0x10) && (chip->rmidi)) /* MPU401 interrupt */
402 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 402 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
403 /* release the gcr */ 403 /* release the gcr */
404 outb(gcr_status, chip->alt_port + 0xe); 404 outb(gcr_status, chip->alt_port + 0xe);
405 405
diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c
index 347e25ff073d..3e8fc5a0006a 100644
--- a/sound/pci/atiixp.c
+++ b/sound/pci/atiixp.c
@@ -1300,7 +1300,7 @@ static int __devinit snd_atiixp_pcm_new(struct atiixp *chip)
1300/* 1300/*
1301 * interrupt handler 1301 * interrupt handler
1302 */ 1302 */
1303static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1303static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id)
1304{ 1304{
1305 struct atiixp *chip = dev_id; 1305 struct atiixp *chip = dev_id;
1306 unsigned int status; 1306 unsigned int status;
diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c
index a89d67c4598b..c5dda1bf3d46 100644
--- a/sound/pci/atiixp_modem.c
+++ b/sound/pci/atiixp_modem.c
@@ -1017,7 +1017,7 @@ static int __devinit snd_atiixp_pcm_new(struct atiixp_modem *chip)
1017/* 1017/*
1018 * interrupt handler 1018 * interrupt handler
1019 */ 1019 */
1020static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1020static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id)
1021{ 1021{
1022 struct atiixp_modem *chip = dev_id; 1022 struct atiixp_modem *chip = dev_id;
1023 unsigned int status; 1023 unsigned int status;
diff --git a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h
index b1cfc3c79d07..5ccf0b1ec670 100644
--- a/sound/pci/au88x0/au88x0.h
+++ b/sound/pci/au88x0/au88x0.h
@@ -236,8 +236,7 @@ static void vortex_spdif_init(vortex_t * vortex, int spdif_sr, int spdif_mode);
236static int vortex_core_init(vortex_t * card); 236static int vortex_core_init(vortex_t * card);
237static int vortex_core_shutdown(vortex_t * card); 237static int vortex_core_shutdown(vortex_t * card);
238static void vortex_enable_int(vortex_t * card); 238static void vortex_enable_int(vortex_t * card);
239static irqreturn_t vortex_interrupt(int irq, void *dev_id, 239static irqreturn_t vortex_interrupt(int irq, void *dev_id);
240 struct pt_regs *regs);
241static int vortex_alsafmt_aspfmt(int alsafmt); 240static int vortex_alsafmt_aspfmt(int alsafmt);
242 241
243/* Connection stuff. */ 242/* Connection stuff. */
diff --git a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c
index 5299cce583d3..4a336eaae9d2 100644
--- a/sound/pci/au88x0/au88x0_core.c
+++ b/sound/pci/au88x0/au88x0_core.c
@@ -2385,7 +2385,7 @@ static void vortex_disable_int(vortex_t * card)
2385 hwread(card->mmio, VORTEX_CTRL) & ~CTRL_IRQ_ENABLE); 2385 hwread(card->mmio, VORTEX_CTRL) & ~CTRL_IRQ_ENABLE);
2386} 2386}
2387 2387
2388static irqreturn_t vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2388static irqreturn_t vortex_interrupt(int irq, void *dev_id)
2389{ 2389{
2390 vortex_t *vortex = dev_id; 2390 vortex_t *vortex = dev_id;
2391 int i, handled; 2391 int i, handled;
@@ -2462,7 +2462,7 @@ static irqreturn_t vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs)
2462 } 2462 }
2463 if (source & IRQ_MIDI) { 2463 if (source & IRQ_MIDI) {
2464 snd_mpu401_uart_interrupt(vortex->irq, 2464 snd_mpu401_uart_interrupt(vortex->irq,
2465 vortex->rmidi->private_data, regs); 2465 vortex->rmidi->private_data);
2466 handled = 1; 2466 handled = 1;
2467 } 2467 }
2468 2468
diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c
index bac8e9cfd921..692f203d65d8 100644
--- a/sound/pci/azt3328.c
+++ b/sound/pci/azt3328.c
@@ -1191,7 +1191,7 @@ snd_azf3328_capture_pointer(struct snd_pcm_substream *substream)
1191} 1191}
1192 1192
1193static irqreturn_t 1193static irqreturn_t
1194snd_azf3328_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1194snd_azf3328_interrupt(int irq, void *dev_id)
1195{ 1195{
1196 struct snd_azf3328 *chip = dev_id; 1196 struct snd_azf3328 *chip = dev_id;
1197 u8 status, which; 1197 u8 status, which;
@@ -1256,7 +1256,7 @@ snd_azf3328_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1256 /* MPU401 has less critical IRQ requirements 1256 /* MPU401 has less critical IRQ requirements
1257 * than timer and playback/recording, right? */ 1257 * than timer and playback/recording, right? */
1258 if (status & IRQ_MPU401) { 1258 if (status & IRQ_MPU401) {
1259 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 1259 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
1260 1260
1261 /* hmm, do we have to ack the IRQ here somehow? 1261 /* hmm, do we have to ack the IRQ here somehow?
1262 * If so, then I don't know how... */ 1262 * If so, then I don't know how... */
diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c
index 97a280a246cb..d33a37086df9 100644
--- a/sound/pci/bt87x.c
+++ b/sound/pci/bt87x.c
@@ -269,7 +269,7 @@ static void snd_bt87x_pci_error(struct snd_bt87x *chip, unsigned int status)
269 } 269 }
270} 270}
271 271
272static irqreturn_t snd_bt87x_interrupt(int irq, void *dev_id, struct pt_regs *regs) 272static irqreturn_t snd_bt87x_interrupt(int irq, void *dev_id)
273{ 273{
274 struct snd_bt87x *chip = dev_id; 274 struct snd_bt87x *chip = dev_id;
275 unsigned int status, irq_status; 275 unsigned int status, irq_status;
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c
index 12bbbb6afd2d..6fa4a302f7de 100644
--- a/sound/pci/ca0106/ca0106_main.c
+++ b/sound/pci/ca0106/ca0106_main.c
@@ -1058,8 +1058,7 @@ static int snd_ca0106_dev_free(struct snd_device *device)
1058 return snd_ca0106_free(chip); 1058 return snd_ca0106_free(chip);
1059} 1059}
1060 1060
1061static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id, 1061static irqreturn_t snd_ca0106_interrupt(int irq, void *dev_id)
1062 struct pt_regs *regs)
1063{ 1062{
1064 unsigned int status; 1063 unsigned int status;
1065 1064
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index 876b64464b6f..1f7e71083069 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -1294,7 +1294,7 @@ static int snd_cmipci_capture_spdif_hw_free(struct snd_pcm_substream *subs)
1294/* 1294/*
1295 * interrupt handler 1295 * interrupt handler
1296 */ 1296 */
1297static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1297static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id)
1298{ 1298{
1299 struct cmipci *cm = dev_id; 1299 struct cmipci *cm = dev_id;
1300 unsigned int status, mask = 0; 1300 unsigned int status, mask = 0;
@@ -1315,7 +1315,7 @@ static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *r
1315 spin_unlock(&cm->reg_lock); 1315 spin_unlock(&cm->reg_lock);
1316 1316
1317 if (cm->rmidi && (status & CM_UARTINT)) 1317 if (cm->rmidi && (status & CM_UARTINT))
1318 snd_mpu401_uart_interrupt(irq, cm->rmidi->private_data, regs); 1318 snd_mpu401_uart_interrupt(irq, cm->rmidi->private_data);
1319 1319
1320 if (cm->pcm) { 1320 if (cm->pcm) {
1321 if ((status & CM_CHINT0) && cm->channel[0].running) 1321 if ((status & CM_CHINT0) && cm->channel[0].running)
diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c
index 1990430a21c1..d54924e60bb1 100644
--- a/sound/pci/cs4281.c
+++ b/sound/pci/cs4281.c
@@ -493,7 +493,7 @@ struct cs4281 {
493 493
494}; 494};
495 495
496static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs); 496static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id);
497 497
498static struct pci_device_id snd_cs4281_ids[] = { 498static struct pci_device_id snd_cs4281_ids[] = {
499 { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */ 499 { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */
@@ -1814,7 +1814,7 @@ static int __devinit snd_cs4281_midi(struct cs4281 * chip, int device,
1814 * Interrupt handler 1814 * Interrupt handler
1815 */ 1815 */
1816 1816
1817static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1817static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id)
1818{ 1818{
1819 struct cs4281 *chip = dev_id; 1819 struct cs4281 *chip = dev_id;
1820 unsigned int status, dma, val; 1820 unsigned int status, dma, val;
diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
index 4851847180d2..16d4ebf2a33f 100644
--- a/sound/pci/cs46xx/cs46xx_lib.c
+++ b/sound/pci/cs46xx/cs46xx_lib.c
@@ -1149,7 +1149,7 @@ static int snd_cs46xx_capture_prepare(struct snd_pcm_substream *substream)
1149 return 0; 1149 return 0;
1150} 1150}
1151 1151
1152static irqreturn_t snd_cs46xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1152static irqreturn_t snd_cs46xx_interrupt(int irq, void *dev_id)
1153{ 1153{
1154 struct snd_cs46xx *chip = dev_id; 1154 struct snd_cs46xx *chip = dev_id;
1155 u32 status1; 1155 u32 status1;
diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c
index 64c7826e8b8c..2441238f2004 100644
--- a/sound/pci/cs5535audio/cs5535audio.c
+++ b/sound/pci/cs5535audio/cs5535audio.c
@@ -203,8 +203,7 @@ static void process_bm1_irq(struct cs5535audio *cs5535au)
203 } 203 }
204} 204}
205 205
206static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id, 206static irqreturn_t snd_cs5535audio_interrupt(int irq, void *dev_id)
207 struct pt_regs *regs)
208{ 207{
209 u16 acc_irq_stat; 208 u16 acc_irq_stat;
210 u8 bm_stat; 209 u8 bm_stat;
diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c
index c3dafa29054f..e5e88fe54de0 100644
--- a/sound/pci/echoaudio/echoaudio.c
+++ b/sound/pci/echoaudio/echoaudio.c
@@ -1818,8 +1818,7 @@ static struct snd_kcontrol_new snd_echo_channels_info __devinitdata = {
1818 IRQ Handler 1818 IRQ Handler
1819******************************************************************************/ 1819******************************************************************************/
1820 1820
1821static irqreturn_t snd_echo_interrupt(int irq, void *dev_id, 1821static irqreturn_t snd_echo_interrupt(int irq, void *dev_id)
1822 struct pt_regs *regs)
1823{ 1822{
1824 struct echoaudio *chip = dev_id; 1823 struct echoaudio *chip = dev_id;
1825 struct snd_pcm_substream *substream; 1824 struct snd_pcm_substream *substream;
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c
index da1610a571b8..c46905a11175 100644
--- a/sound/pci/emu10k1/emu10k1x.c
+++ b/sound/pci/emu10k1/emu10k1x.c
@@ -780,8 +780,7 @@ static int snd_emu10k1x_dev_free(struct snd_device *device)
780 return snd_emu10k1x_free(chip); 780 return snd_emu10k1x_free(chip);
781} 781}
782 782
783static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id, 783static irqreturn_t snd_emu10k1x_interrupt(int irq, void *dev_id)
784 struct pt_regs *regs)
785{ 784{
786 unsigned int status; 785 unsigned int status;
787 786
diff --git a/sound/pci/emu10k1/irq.c b/sound/pci/emu10k1/irq.c
index 1076af4c3669..4f18f7e8bcfb 100644
--- a/sound/pci/emu10k1/irq.c
+++ b/sound/pci/emu10k1/irq.c
@@ -30,7 +30,7 @@
30#include <sound/core.h> 30#include <sound/core.h>
31#include <sound/emu10k1.h> 31#include <sound/emu10k1.h>
32 32
33irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) 33irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id)
34{ 34{
35 struct snd_emu10k1 *emu = dev_id; 35 struct snd_emu10k1 *emu = dev_id;
36 unsigned int status, status2, orig_status, orig_status2; 36 unsigned int status, status2, orig_status, orig_status2;
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c
index a8a601fc781f..8cb4fb2412db 100644
--- a/sound/pci/ens1370.c
+++ b/sound/pci/ens1370.c
@@ -444,7 +444,7 @@ struct ensoniq {
444#endif 444#endif
445}; 445};
446 446
447static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs); 447static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id);
448 448
449static struct pci_device_id snd_audiopci_ids[] = { 449static struct pci_device_id snd_audiopci_ids[] = {
450#ifdef CHIP1370 450#ifdef CHIP1370
@@ -2404,7 +2404,7 @@ static int __devinit snd_ensoniq_midi(struct ensoniq * ensoniq, int device,
2404 * Interrupt handler 2404 * Interrupt handler
2405 */ 2405 */
2406 2406
2407static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2407static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id)
2408{ 2408{
2409 struct ensoniq *ensoniq = dev_id; 2409 struct ensoniq *ensoniq = dev_id;
2410 unsigned int status, sctrl; 2410 unsigned int status, sctrl;
diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c
index 3ce5a4e7e31f..2da988f78ba7 100644
--- a/sound/pci/es1938.c
+++ b/sound/pci/es1938.c
@@ -241,7 +241,7 @@ struct es1938 {
241#endif 241#endif
242}; 242};
243 243
244static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs); 244static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id);
245 245
246static struct pci_device_id snd_es1938_ids[] = { 246static struct pci_device_id snd_es1938_ids[] = {
247 { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */ 247 { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */
@@ -1642,7 +1642,7 @@ static int __devinit snd_es1938_create(struct snd_card *card,
1642/* -------------------------------------------------------------------- 1642/* --------------------------------------------------------------------
1643 * Interrupt handler 1643 * Interrupt handler
1644 * -------------------------------------------------------------------- */ 1644 * -------------------------------------------------------------------- */
1645static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1645static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id)
1646{ 1646{
1647 struct es1938 *chip = dev_id; 1647 struct es1938 *chip = dev_id;
1648 unsigned char status, audiostatus; 1648 unsigned char status, audiostatus;
@@ -1714,7 +1714,7 @@ static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *r
1714 // snd_es1938_mixer_bits(chip, ESSSB_IREG_MPU401CONTROL, 0x40, 0); /* ack? */ 1714 // snd_es1938_mixer_bits(chip, ESSSB_IREG_MPU401CONTROL, 0x40, 0); /* ack? */
1715 if (chip->rmidi) { 1715 if (chip->rmidi) {
1716 handled = 1; 1716 handled = 1;
1717 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 1717 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
1718 } 1718 }
1719 } 1719 }
1720 return IRQ_RETVAL(handled); 1720 return IRQ_RETVAL(handled);
diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c
index f3c40385c87d..b9d723c7e1db 100644
--- a/sound/pci/es1968.c
+++ b/sound/pci/es1968.c
@@ -590,7 +590,7 @@ struct es1968 {
590#endif 590#endif
591}; 591};
592 592
593static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs); 593static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id);
594 594
595static struct pci_device_id snd_es1968_ids[] = { 595static struct pci_device_id snd_es1968_ids[] = {
596 /* Maestro 1 */ 596 /* Maestro 1 */
@@ -1962,7 +1962,7 @@ static void es1968_update_hw_volume(unsigned long private_data)
1962/* 1962/*
1963 * interrupt handler 1963 * interrupt handler
1964 */ 1964 */
1965static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1965static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id)
1966{ 1966{
1967 struct es1968 *chip = dev_id; 1967 struct es1968 *chip = dev_id;
1968 u32 event; 1968 u32 event;
@@ -1979,7 +1979,7 @@ static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *r
1979 outb(0xFF, chip->io_port + 0x1A); 1979 outb(0xFF, chip->io_port + 0x1A);
1980 1980
1981 if ((event & ESM_MPU401_IRQ) && chip->rmidi) { 1981 if ((event & ESM_MPU401_IRQ) && chip->rmidi) {
1982 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 1982 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
1983 } 1983 }
1984 1984
1985 if (event & ESM_SOUND_IRQ) { 1985 if (event & ESM_SOUND_IRQ) {
diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c
index bdfda1997d5b..3ec7d7ee04dd 100644
--- a/sound/pci/fm801.c
+++ b/sound/pci/fm801.c
@@ -520,7 +520,7 @@ static snd_pcm_uframes_t snd_fm801_capture_pointer(struct snd_pcm_substream *sub
520 return bytes_to_frames(substream->runtime, ptr); 520 return bytes_to_frames(substream->runtime, ptr);
521} 521}
522 522
523static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *regs) 523static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id)
524{ 524{
525 struct fm801 *chip = dev_id; 525 struct fm801 *chip = dev_id;
526 unsigned short status; 526 unsigned short status;
@@ -561,7 +561,7 @@ static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *re
561 snd_pcm_period_elapsed(chip->capture_substream); 561 snd_pcm_period_elapsed(chip->capture_substream);
562 } 562 }
563 if (chip->rmidi && (status & FM801_IRQ_MPU)) 563 if (chip->rmidi && (status & FM801_IRQ_MPU))
564 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 564 snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
565 if (status & FM801_IRQ_VOLUME) 565 if (status & FM801_IRQ_VOLUME)
566 ;/* TODO */ 566 ;/* TODO */
567 567
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index e9d4cb4d07e1..a76a778d0a1f 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -811,7 +811,7 @@ static void azx_init_chip(struct azx *chip)
811/* 811/*
812 * interrupt handler 812 * interrupt handler
813 */ 813 */
814static irqreturn_t azx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 814static irqreturn_t azx_interrupt(int irq, void *dev_id)
815{ 815{
816 struct azx *chip = dev_id; 816 struct azx *chip = dev_id;
817 struct azx_dev *azx_dev; 817 struct azx_dev *azx_dev;
diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c
index dc69392eafa3..8a576b78bee5 100644
--- a/sound/pci/ice1712/ice1712.c
+++ b/sound/pci/ice1712/ice1712.c
@@ -420,7 +420,7 @@ static void snd_ice1712_set_input_clock_source(struct snd_ice1712 *ice, int spdi
420 * Interrupt handler 420 * Interrupt handler
421 */ 421 */
422 422
423static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *regs) 423static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id)
424{ 424{
425 struct snd_ice1712 *ice = dev_id; 425 struct snd_ice1712 *ice = dev_id;
426 unsigned char status; 426 unsigned char status;
@@ -433,7 +433,7 @@ static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *
433 handled = 1; 433 handled = 1;
434 if (status & ICE1712_IRQ_MPU1) { 434 if (status & ICE1712_IRQ_MPU1) {
435 if (ice->rmidi[0]) 435 if (ice->rmidi[0])
436 snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data, regs); 436 snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data);
437 outb(ICE1712_IRQ_MPU1, ICEREG(ice, IRQSTAT)); 437 outb(ICE1712_IRQ_MPU1, ICEREG(ice, IRQSTAT));
438 status &= ~ICE1712_IRQ_MPU1; 438 status &= ~ICE1712_IRQ_MPU1;
439 } 439 }
@@ -441,7 +441,7 @@ static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *
441 outb(ICE1712_IRQ_TIMER, ICEREG(ice, IRQSTAT)); 441 outb(ICE1712_IRQ_TIMER, ICEREG(ice, IRQSTAT));
442 if (status & ICE1712_IRQ_MPU2) { 442 if (status & ICE1712_IRQ_MPU2) {
443 if (ice->rmidi[1]) 443 if (ice->rmidi[1])
444 snd_mpu401_uart_interrupt(irq, ice->rmidi[1]->private_data, regs); 444 snd_mpu401_uart_interrupt(irq, ice->rmidi[1]->private_data);
445 outb(ICE1712_IRQ_MPU2, ICEREG(ice, IRQSTAT)); 445 outb(ICE1712_IRQ_MPU2, ICEREG(ice, IRQSTAT));
446 status &= ~ICE1712_IRQ_MPU2; 446 status &= ~ICE1712_IRQ_MPU2;
447 } 447 }
diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c
index 71d6aedc0749..e9cbfdf37059 100644
--- a/sound/pci/ice1712/ice1724.c
+++ b/sound/pci/ice1712/ice1724.c
@@ -218,7 +218,7 @@ static unsigned int snd_vt1724_get_gpio_data(struct snd_ice1712 *ice)
218 * Interrupt handler 218 * Interrupt handler
219 */ 219 */
220 220
221static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *regs) 221static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id)
222{ 222{
223 struct snd_ice1712 *ice = dev_id; 223 struct snd_ice1712 *ice = dev_id;
224 unsigned char status; 224 unsigned char status;
@@ -236,7 +236,7 @@ static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *r
236 */ 236 */
237 if ((status & VT1724_IRQ_MPU_RX)||(status & VT1724_IRQ_MPU_TX)) { 237 if ((status & VT1724_IRQ_MPU_RX)||(status & VT1724_IRQ_MPU_TX)) {
238 if (ice->rmidi[0]) 238 if (ice->rmidi[0])
239 snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data, regs); 239 snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data);
240 outb(status & (VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX), ICEREG1724(ice, IRQSTAT)); 240 outb(status & (VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX), ICEREG1724(ice, IRQSTAT));
241 status &= ~(VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX); 241 status &= ~(VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX);
242 } 242 }
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 72dbaedcbdf5..f4319b8d4644 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -801,7 +801,7 @@ static inline void snd_intel8x0_update(struct intel8x0 *chip, struct ichdev *ich
801 status & (ICH_FIFOE | ICH_BCIS | ICH_LVBCI)); 801 status & (ICH_FIFOE | ICH_BCIS | ICH_LVBCI));
802} 802}
803 803
804static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id, struct pt_regs *regs) 804static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id)
805{ 805{
806 struct intel8x0 *chip = dev_id; 806 struct intel8x0 *chip = dev_id;
807 struct ichdev *ichdev; 807 struct ichdev *ichdev;
diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c
index 268e2f7241ea..6703f5cb5569 100644
--- a/sound/pci/intel8x0m.c
+++ b/sound/pci/intel8x0m.c
@@ -511,7 +511,7 @@ static inline void snd_intel8x0_update(struct intel8x0m *chip, struct ichdev *ic
511 iputbyte(chip, port + ichdev->roff_sr, ICH_FIFOE | ICH_BCIS | ICH_LVBCI); 511 iputbyte(chip, port + ichdev->roff_sr, ICH_FIFOE | ICH_BCIS | ICH_LVBCI);
512} 512}
513 513
514static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id, struct pt_regs *regs) 514static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id)
515{ 515{
516 struct intel8x0m *chip = dev_id; 516 struct intel8x0m *chip = dev_id;
517 struct ichdev *ichdev; 517 struct ichdev *ichdev;
diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c
index cfea51f44784..398aa10a06e8 100644
--- a/sound/pci/korg1212/korg1212.c
+++ b/sound/pci/korg1212/korg1212.c
@@ -1119,7 +1119,7 @@ static void snd_korg1212_OnDSPDownloadComplete(struct snd_korg1212 *korg1212)
1119 snd_korg1212_setCardState(korg1212, K1212_STATE_DSP_COMPLETE); 1119 snd_korg1212_setCardState(korg1212, K1212_STATE_DSP_COMPLETE);
1120} 1120}
1121 1121
1122static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1122static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id)
1123{ 1123{
1124 u32 doorbellValue; 1124 u32 doorbellValue;
1125 struct snd_korg1212 *korg1212 = dev_id; 1125 struct snd_korg1212 *korg1212 = dev_id;
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c
index 45214b3b81be..05605f474a72 100644
--- a/sound/pci/maestro3.c
+++ b/sound/pci/maestro3.c
@@ -1685,8 +1685,7 @@ static void snd_m3_update_hw_volume(unsigned long private_data)
1685 spin_unlock_irqrestore(&chip->ac97_lock, flags); 1685 spin_unlock_irqrestore(&chip->ac97_lock, flags);
1686} 1686}
1687 1687
1688static irqreturn_t 1688static irqreturn_t snd_m3_interrupt(int irq, void *dev_id)
1689snd_m3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1690{ 1689{
1691 struct snd_m3 *chip = dev_id; 1690 struct snd_m3 *chip = dev_id;
1692 u8 status; 1691 u8 status;
diff --git a/sound/pci/mixart/mixart_core.c b/sound/pci/mixart/mixart_core.c
index 406ac3a9d42a..d54457317b14 100644
--- a/sound/pci/mixart/mixart_core.c
+++ b/sound/pci/mixart/mixart_core.c
@@ -408,7 +408,7 @@ void snd_mixart_msg_tasklet(unsigned long arg)
408} 408}
409 409
410 410
411irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs) 411irqreturn_t snd_mixart_interrupt(int irq, void *dev_id)
412{ 412{
413 struct mixart_mgr *mgr = dev_id; 413 struct mixart_mgr *mgr = dev_id;
414 int err; 414 int err;
diff --git a/sound/pci/mixart/mixart_core.h b/sound/pci/mixart/mixart_core.h
index 1fe2bcfcc57c..c919b734756f 100644
--- a/sound/pci/mixart/mixart_core.h
+++ b/sound/pci/mixart/mixart_core.h
@@ -563,7 +563,7 @@ int snd_mixart_send_msg(struct mixart_mgr *mgr, struct mixart_msg *request, int
563int snd_mixart_send_msg_wait_notif(struct mixart_mgr *mgr, struct mixart_msg *request, u32 notif_event); 563int snd_mixart_send_msg_wait_notif(struct mixart_mgr *mgr, struct mixart_msg *request, u32 notif_event);
564int snd_mixart_send_msg_nonblock(struct mixart_mgr *mgr, struct mixart_msg *request); 564int snd_mixart_send_msg_nonblock(struct mixart_mgr *mgr, struct mixart_msg *request);
565 565
566irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs); 566irqreturn_t snd_mixart_interrupt(int irq, void *dev_id);
567void snd_mixart_msg_tasklet(unsigned long arg); 567void snd_mixart_msg_tasklet(unsigned long arg);
568 568
569void snd_mixart_reset_board(struct mixart_mgr *mgr); 569void snd_mixart_reset_board(struct mixart_mgr *mgr);
diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c
index 101eee0aa018..b1bbdb9e3b7b 100644
--- a/sound/pci/nm256/nm256.c
+++ b/sound/pci/nm256/nm256.c
@@ -236,7 +236,7 @@ struct nm256 {
236 236
237 int irq; 237 int irq;
238 int irq_acks; 238 int irq_acks;
239 irqreturn_t (*interrupt)(int, void *, struct pt_regs *); 239 irq_handler_t interrupt;
240 int badintrcount; /* counter to check bogus interrupts */ 240 int badintrcount; /* counter to check bogus interrupts */
241 struct mutex irq_mutex; 241 struct mutex irq_mutex;
242 242
@@ -1004,7 +1004,7 @@ snd_nm256_intr_check(struct nm256 *chip)
1004 */ 1004 */
1005 1005
1006static irqreturn_t 1006static irqreturn_t
1007snd_nm256_interrupt(int irq, void *dev_id, struct pt_regs *dummy) 1007snd_nm256_interrupt(int irq, void *dev_id)
1008{ 1008{
1009 struct nm256 *chip = dev_id; 1009 struct nm256 *chip = dev_id;
1010 u16 status; 1010 u16 status;
@@ -1069,7 +1069,7 @@ snd_nm256_interrupt(int irq, void *dev_id, struct pt_regs *dummy)
1069 */ 1069 */
1070 1070
1071static irqreturn_t 1071static irqreturn_t
1072snd_nm256_interrupt_zx(int irq, void *dev_id, struct pt_regs *dummy) 1072snd_nm256_interrupt_zx(int irq, void *dev_id)
1073{ 1073{
1074 struct nm256 *chip = dev_id; 1074 struct nm256 *chip = dev_id;
1075 u32 status; 1075 u32 status;
diff --git a/sound/pci/pcxhr/pcxhr_core.c b/sound/pci/pcxhr/pcxhr_core.c
index c40f59062684..0ff8dc36fde3 100644
--- a/sound/pci/pcxhr/pcxhr_core.c
+++ b/sound/pci/pcxhr/pcxhr_core.c
@@ -1131,7 +1131,7 @@ static void pcxhr_update_timer_pos(struct pcxhr_mgr *mgr,
1131} 1131}
1132 1132
1133 1133
1134irqreturn_t pcxhr_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1134irqreturn_t pcxhr_interrupt(int irq, void *dev_id)
1135{ 1135{
1136 struct pcxhr_mgr *mgr = dev_id; 1136 struct pcxhr_mgr *mgr = dev_id;
1137 unsigned int reg; 1137 unsigned int reg;
diff --git a/sound/pci/pcxhr/pcxhr_core.h b/sound/pci/pcxhr/pcxhr_core.h
index e7415d6d1826..d9a4ab609875 100644
--- a/sound/pci/pcxhr/pcxhr_core.h
+++ b/sound/pci/pcxhr/pcxhr_core.h
@@ -194,7 +194,7 @@ int pcxhr_write_io_num_reg_cont(struct pcxhr_mgr *mgr, unsigned int mask,
194 194
195 195
196/* interrupt handling */ 196/* interrupt handling */
197irqreturn_t pcxhr_interrupt(int irq, void *dev_id, struct pt_regs *regs); 197irqreturn_t pcxhr_interrupt(int irq, void *dev_id);
198void pcxhr_msg_tasklet(unsigned long arg); 198void pcxhr_msg_tasklet(unsigned long arg);
199 199
200#endif /* __SOUND_PCXHR_CORE_H */ 200#endif /* __SOUND_PCXHR_CORE_H */
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c
index fe210c853442..ec4899147e1d 100644
--- a/sound/pci/riptide/riptide.c
+++ b/sound/pci/riptide/riptide.c
@@ -1736,7 +1736,7 @@ snd_riptide_pcm(struct snd_riptide *chip, int device, struct snd_pcm **rpcm)
1736} 1736}
1737 1737
1738static irqreturn_t 1738static irqreturn_t
1739snd_riptide_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1739snd_riptide_interrupt(int irq, void *dev_id)
1740{ 1740{
1741 struct snd_riptide *chip = dev_id; 1741 struct snd_riptide *chip = dev_id;
1742 struct cmdif *cif = chip->cif; 1742 struct cmdif *cif = chip->cif;
@@ -1751,8 +1751,7 @@ snd_riptide_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1751 if (chip->rmidi && IS_MPUIRQ(cif->hwport)) { 1751 if (chip->rmidi && IS_MPUIRQ(cif->hwport)) {
1752 chip->handled_irqs++; 1752 chip->handled_irqs++;
1753 snd_mpu401_uart_interrupt(irq, 1753 snd_mpu401_uart_interrupt(irq,
1754 chip->rmidi->private_data, 1754 chip->rmidi->private_data);
1755 regs);
1756 } 1755 }
1757 SET_AIACK(cif->hwport); 1756 SET_AIACK(cif->hwport);
1758 } 1757 }
diff --git a/sound/pci/rme32.c b/sound/pci/rme32.c
index 2a71499242fa..dc8d1302e22d 100644
--- a/sound/pci/rme32.c
+++ b/sound/pci/rme32.c
@@ -818,8 +818,7 @@ static void snd_rme32_pcm_stop(struct rme32 * rme32, int to_pause)
818 writel(0, rme32->iobase + RME32_IO_RESET_POS); 818 writel(0, rme32->iobase + RME32_IO_RESET_POS);
819} 819}
820 820
821static irqreturn_t 821static irqreturn_t snd_rme32_interrupt(int irq, void *dev_id)
822snd_rme32_interrupt(int irq, void *dev_id, struct pt_regs *regs)
823{ 822{
824 struct rme32 *rme32 = (struct rme32 *) dev_id; 823 struct rme32 *rme32 = (struct rme32 *) dev_id;
825 824
diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c
index f8de7c997017..106110a89a4c 100644
--- a/sound/pci/rme96.c
+++ b/sound/pci/rme96.c
@@ -1117,8 +1117,7 @@ snd_rme96_capture_stop(struct rme96 *rme96)
1117 1117
1118static irqreturn_t 1118static irqreturn_t
1119snd_rme96_interrupt(int irq, 1119snd_rme96_interrupt(int irq,
1120 void *dev_id, 1120 void *dev_id)
1121 struct pt_regs *regs)
1122{ 1121{
1123 struct rme96 *rme96 = (struct rme96 *)dev_id; 1122 struct rme96 *rme96 = (struct rme96 *)dev_id;
1124 1123
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
index d3e07de433b0..694aa057ed49 100644
--- a/sound/pci/rme9652/hdsp.c
+++ b/sound/pci/rme9652/hdsp.c
@@ -3603,7 +3603,7 @@ static void hdsp_midi_tasklet(unsigned long arg)
3603 snd_hdsp_midi_input_read (&hdsp->midi[1]); 3603 snd_hdsp_midi_input_read (&hdsp->midi[1]);
3604} 3604}
3605 3605
3606static irqreturn_t snd_hdsp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3606static irqreturn_t snd_hdsp_interrupt(int irq, void *dev_id)
3607{ 3607{
3608 struct hdsp *hdsp = (struct hdsp *) dev_id; 3608 struct hdsp *hdsp = (struct hdsp *) dev_id;
3609 unsigned int status; 3609 unsigned int status;
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
index 7d03ae066d53..7055d893855d 100644
--- a/sound/pci/rme9652/hdspm.c
+++ b/sound/pci/rme9652/hdspm.c
@@ -2556,8 +2556,7 @@ static int snd_hdspm_set_defaults(struct hdspm * hdspm)
2556 interupt 2556 interupt
2557 ------------------------------------------------------------*/ 2557 ------------------------------------------------------------*/
2558 2558
2559static irqreturn_t snd_hdspm_interrupt(int irq, void *dev_id, 2559static irqreturn_t snd_hdspm_interrupt(int irq, void *dev_id)
2560 struct pt_regs *regs)
2561{ 2560{
2562 struct hdspm *hdspm = (struct hdspm *) dev_id; 2561 struct hdspm *hdspm = (struct hdspm *) dev_id;
2563 unsigned int status; 2562 unsigned int status;
diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c
index fc15f61ad5d1..cf0427b4bfde 100644
--- a/sound/pci/rme9652/rme9652.c
+++ b/sound/pci/rme9652/rme9652.c
@@ -1882,7 +1882,7 @@ static void snd_rme9652_set_defaults(struct snd_rme9652 *rme9652)
1882 rme9652_set_rate(rme9652, 48000); 1882 rme9652_set_rate(rme9652, 48000);
1883} 1883}
1884 1884
1885static irqreturn_t snd_rme9652_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1885static irqreturn_t snd_rme9652_interrupt(int irq, void *dev_id)
1886{ 1886{
1887 struct snd_rme9652 *rme9652 = (struct snd_rme9652 *) dev_id; 1887 struct snd_rme9652 *rme9652 = (struct snd_rme9652 *) dev_id;
1888 1888
diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c
index e5d4def1aa6f..f9b8afabda9c 100644
--- a/sound/pci/sonicvibes.c
+++ b/sound/pci/sonicvibes.c
@@ -580,7 +580,7 @@ static int snd_sonicvibes_trigger(struct sonicvibes * sonic, int what, int cmd)
580 return result; 580 return result;
581} 581}
582 582
583static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_regs *regs) 583static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id)
584{ 584{
585 struct sonicvibes *sonic = dev_id; 585 struct sonicvibes *sonic = dev_id;
586 unsigned char status; 586 unsigned char status;
@@ -601,7 +601,7 @@ static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_reg
601 } 601 }
602 if (sonic->rmidi) { 602 if (sonic->rmidi) {
603 if (status & SV_MIDI_IRQ) 603 if (status & SV_MIDI_IRQ)
604 snd_mpu401_uart_interrupt(irq, sonic->rmidi->private_data, regs); 604 snd_mpu401_uart_interrupt(irq, sonic->rmidi->private_data);
605 } 605 }
606 if (status & SV_UD_IRQ) { 606 if (status & SV_UD_IRQ) {
607 unsigned char udreg; 607 unsigned char udreg;
diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c
index ebbe12d78d8c..0d478871808d 100644
--- a/sound/pci/trident/trident_main.c
+++ b/sound/pci/trident/trident_main.c
@@ -52,8 +52,7 @@ static int snd_trident_pcm_mixer_build(struct snd_trident *trident,
52static int snd_trident_pcm_mixer_free(struct snd_trident *trident, 52static int snd_trident_pcm_mixer_free(struct snd_trident *trident,
53 struct snd_trident_voice * voice, 53 struct snd_trident_voice * voice,
54 struct snd_pcm_substream *substream); 54 struct snd_pcm_substream *substream);
55static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, 55static irqreturn_t snd_trident_interrupt(int irq, void *dev_id);
56 struct pt_regs *regs);
57static int snd_trident_sis_reset(struct snd_trident *trident); 56static int snd_trident_sis_reset(struct snd_trident *trident);
58 57
59static void snd_trident_clear_voices(struct snd_trident * trident, 58static void snd_trident_clear_voices(struct snd_trident * trident,
@@ -3737,7 +3736,7 @@ static int snd_trident_free(struct snd_trident *trident)
3737 3736
3738 ---------------------------------------------------------------------------*/ 3737 ---------------------------------------------------------------------------*/
3739 3738
3740static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3739static irqreturn_t snd_trident_interrupt(int irq, void *dev_id)
3741{ 3740{
3742 struct snd_trident *trident = dev_id; 3741 struct snd_trident *trident = dev_id;
3743 unsigned int audio_int, chn_int, stimer, channel, mask, tmp; 3742 unsigned int audio_int, chn_int, stimer, channel, mask, tmp;
@@ -3825,7 +3824,7 @@ static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *
3825 } 3824 }
3826 if (audio_int & MPU401_IRQ) { 3825 if (audio_int & MPU401_IRQ) {
3827 if (trident->rmidi) { 3826 if (trident->rmidi) {
3828 snd_mpu401_uart_interrupt(irq, trident->rmidi->private_data, regs); 3827 snd_mpu401_uart_interrupt(irq, trident->rmidi->private_data);
3829 } else { 3828 } else {
3830 inb(TRID_REG(trident, T4D_MPUR0)); 3829 inb(TRID_REG(trident, T4D_MPUR0));
3831 } 3830 }
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 6db3d4cc4d8d..e6990e0bbf23 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -613,7 +613,7 @@ static void snd_via82xx_channel_reset(struct via82xx *chip, struct viadev *viade
613 * Interrupt handler 613 * Interrupt handler
614 * Used for 686 and 8233A 614 * Used for 686 and 8233A
615 */ 615 */
616static irqreturn_t snd_via686_interrupt(int irq, void *dev_id, struct pt_regs *regs) 616static irqreturn_t snd_via686_interrupt(int irq, void *dev_id)
617{ 617{
618 struct via82xx *chip = dev_id; 618 struct via82xx *chip = dev_id;
619 unsigned int status; 619 unsigned int status;
@@ -623,7 +623,7 @@ static irqreturn_t snd_via686_interrupt(int irq, void *dev_id, struct pt_regs *r
623 if (! (status & chip->intr_mask)) { 623 if (! (status & chip->intr_mask)) {
624 if (chip->rmidi) 624 if (chip->rmidi)
625 /* check mpu401 interrupt */ 625 /* check mpu401 interrupt */
626 return snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); 626 return snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data);
627 return IRQ_NONE; 627 return IRQ_NONE;
628 } 628 }
629 629
@@ -659,7 +659,7 @@ static irqreturn_t snd_via686_interrupt(int irq, void *dev_id, struct pt_regs *r
659/* 659/*
660 * Interrupt handler 660 * Interrupt handler
661 */ 661 */
662static irqreturn_t snd_via8233_interrupt(int irq, void *dev_id, struct pt_regs *regs) 662static irqreturn_t snd_via8233_interrupt(int irq, void *dev_id)
663{ 663{
664 struct via82xx *chip = dev_id; 664 struct via82xx *chip = dev_id;
665 unsigned int status; 665 unsigned int status;
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c
index 016f9dac253f..5ab1cf3d434b 100644
--- a/sound/pci/via82xx_modem.c
+++ b/sound/pci/via82xx_modem.c
@@ -475,7 +475,7 @@ static void snd_via82xx_channel_reset(struct via82xx_modem *chip, struct viadev
475 * Interrupt handler 475 * Interrupt handler
476 */ 476 */
477 477
478static irqreturn_t snd_via82xx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 478static irqreturn_t snd_via82xx_interrupt(int irq, void *dev_id)
479{ 479{
480 struct via82xx_modem *chip = dev_id; 480 struct via82xx_modem *chip = dev_id;
481 unsigned int status; 481 unsigned int status;
diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
index 24f6fc52f898..ebc6da89edf3 100644
--- a/sound/pci/ymfpci/ymfpci_main.c
+++ b/sound/pci/ymfpci/ymfpci_main.c
@@ -753,7 +753,7 @@ static void snd_ymfpci_irq_wait(struct snd_ymfpci *chip)
753 } 753 }
754} 754}
755 755
756static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id, struct pt_regs *regs) 756static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id)
757{ 757{
758 struct snd_ymfpci *chip = dev_id; 758 struct snd_ymfpci *chip = dev_id;
759 u32 status, nvoice, mode; 759 u32 status, nvoice, mode;
@@ -799,7 +799,7 @@ static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id, struct pt_regs *r
799 snd_ymfpci_writew(chip, YDSXGR_INTFLAG, status); 799 snd_ymfpci_writew(chip, YDSXGR_INTFLAG, status);
800 800
801 if (chip->rawmidi) 801 if (chip->rawmidi)
802 snd_mpu401_uart_interrupt(irq, chip->rawmidi->private_data, regs); 802 snd_mpu401_uart_interrupt(irq, chip->rawmidi->private_data);
803 return IRQ_HANDLED; 803 return IRQ_HANDLED;
804} 804}
805 805
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf.h b/sound/pcmcia/pdaudiocf/pdaudiocf.h
index 9a14a4f64bd3..206e2f5a113f 100644
--- a/sound/pcmcia/pdaudiocf/pdaudiocf.h
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf.h
@@ -138,7 +138,7 @@ int snd_pdacf_suspend(struct snd_pdacf *chip, pm_message_t state);
138int snd_pdacf_resume(struct snd_pdacf *chip); 138int snd_pdacf_resume(struct snd_pdacf *chip);
139#endif 139#endif
140int snd_pdacf_pcm_new(struct snd_pdacf *chip); 140int snd_pdacf_pcm_new(struct snd_pdacf *chip);
141irqreturn_t pdacf_interrupt(int irq, void *dev, struct pt_regs *regs); 141irqreturn_t pdacf_interrupt(int irq, void *dev);
142void pdacf_tasklet(unsigned long private_data); 142void pdacf_tasklet(unsigned long private_data);
143void pdacf_reinit(struct snd_pdacf *chip, int resume); 143void pdacf_reinit(struct snd_pdacf *chip, int resume);
144 144
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf_irq.c b/sound/pcmcia/pdaudiocf/pdaudiocf_irq.c
index 7c5f21e45cb4..732263e4a437 100644
--- a/sound/pcmcia/pdaudiocf/pdaudiocf_irq.c
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf_irq.c
@@ -26,7 +26,7 @@
26/* 26/*
27 * 27 *
28 */ 28 */
29irqreturn_t pdacf_interrupt(int irq, void *dev, struct pt_regs *regs) 29irqreturn_t pdacf_interrupt(int irq, void *dev)
30{ 30{
31 struct snd_pdacf *chip = dev; 31 struct snd_pdacf *chip = dev;
32 unsigned short stat; 32 unsigned short stat;
@@ -45,7 +45,7 @@ irqreturn_t pdacf_interrupt(int irq, void *dev, struct pt_regs *regs)
45 if (!(stat & PDAUDIOCF_IRQAKM)) 45 if (!(stat & PDAUDIOCF_IRQAKM))
46 stat |= PDAUDIOCF_IRQAKM; /* check rate */ 46 stat |= PDAUDIOCF_IRQAKM; /* check rate */
47 } 47 }
48 if (regs != NULL) 48 if (get_irq_regs() != NULL)
49 snd_ak4117_check_rate_and_errors(chip->ak4117, 0); 49 snd_ak4117_check_rate_and_errors(chip->ak4117, 0);
50 return IRQ_HANDLED; 50 return IRQ_HANDLED;
51} 51}
diff --git a/sound/ppc/pmac.c b/sound/ppc/pmac.c
index 641430631505..c64af55865d4 100644
--- a/sound/ppc/pmac.c
+++ b/sound/ppc/pmac.c
@@ -713,7 +713,7 @@ void snd_pmac_beep_dma_stop(struct snd_pmac *chip)
713 * interrupt handlers 713 * interrupt handlers
714 */ 714 */
715static irqreturn_t 715static irqreturn_t
716snd_pmac_tx_intr(int irq, void *devid, struct pt_regs *regs) 716snd_pmac_tx_intr(int irq, void *devid)
717{ 717{
718 struct snd_pmac *chip = devid; 718 struct snd_pmac *chip = devid;
719 snd_pmac_pcm_update(chip, &chip->playback); 719 snd_pmac_pcm_update(chip, &chip->playback);
@@ -722,7 +722,7 @@ snd_pmac_tx_intr(int irq, void *devid, struct pt_regs *regs)
722 722
723 723
724static irqreturn_t 724static irqreturn_t
725snd_pmac_rx_intr(int irq, void *devid, struct pt_regs *regs) 725snd_pmac_rx_intr(int irq, void *devid)
726{ 726{
727 struct snd_pmac *chip = devid; 727 struct snd_pmac *chip = devid;
728 snd_pmac_pcm_update(chip, &chip->capture); 728 snd_pmac_pcm_update(chip, &chip->capture);
@@ -731,7 +731,7 @@ snd_pmac_rx_intr(int irq, void *devid, struct pt_regs *regs)
731 731
732 732
733static irqreturn_t 733static irqreturn_t
734snd_pmac_ctrl_intr(int irq, void *devid, struct pt_regs *regs) 734snd_pmac_ctrl_intr(int irq, void *devid)
735{ 735{
736 struct snd_pmac *chip = devid; 736 struct snd_pmac *chip = devid;
737 int ctrl = in_le32(&chip->awacs->control); 737 int ctrl = in_le32(&chip->awacs->control);
diff --git a/sound/ppc/tumbler.c b/sound/ppc/tumbler.c
index cdff53e4a17e..2fbe1d183fce 100644
--- a/sound/ppc/tumbler.c
+++ b/sound/ppc/tumbler.c
@@ -1017,7 +1017,7 @@ static void tumbler_update_automute(struct snd_pmac *chip, int do_notify)
1017 1017
1018 1018
1019/* interrupt - headphone plug changed */ 1019/* interrupt - headphone plug changed */
1020static irqreturn_t headphone_intr(int irq, void *devid, struct pt_regs *regs) 1020static irqreturn_t headphone_intr(int irq, void *devid)
1021{ 1021{
1022 struct snd_pmac *chip = devid; 1022 struct snd_pmac *chip = devid;
1023 if (chip->update_automute && chip->initialized) { 1023 if (chip->update_automute && chip->initialized) {
diff --git a/sound/sparc/amd7930.c b/sound/sparc/amd7930.c
index be0bd503f013..c899786f30f5 100644
--- a/sound/sparc/amd7930.c
+++ b/sound/sparc/amd7930.c
@@ -491,7 +491,7 @@ static void __amd7930_update_map(struct snd_amd7930 *amd)
491 __amd7930_write_map(amd); 491 __amd7930_write_map(amd);
492} 492}
493 493
494static irqreturn_t snd_amd7930_interrupt(int irq, void *dev_id, struct pt_regs *regs) 494static irqreturn_t snd_amd7930_interrupt(int irq, void *dev_id)
495{ 495{
496 struct snd_amd7930 *amd = dev_id; 496 struct snd_amd7930 *amd = dev_id;
497 unsigned int elapsed; 497 unsigned int elapsed;
diff --git a/sound/sparc/cs4231.c b/sound/sparc/cs4231.c
index 9a06c3bd6944..edeb3d3c4c7e 100644
--- a/sound/sparc/cs4231.c
+++ b/sound/sparc/cs4231.c
@@ -1753,7 +1753,7 @@ out_err:
1753 1753
1754#ifdef SBUS_SUPPORT 1754#ifdef SBUS_SUPPORT
1755 1755
1756static irqreturn_t snd_cs4231_sbus_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1756static irqreturn_t snd_cs4231_sbus_interrupt(int irq, void *dev_id)
1757{ 1757{
1758 unsigned long flags; 1758 unsigned long flags;
1759 unsigned char status; 1759 unsigned char status;
diff --git a/sound/sparc/dbri.c b/sound/sparc/dbri.c
index 5a97be689b40..4ceb09d215d8 100644
--- a/sound/sparc/dbri.c
+++ b/sound/sparc/dbri.c
@@ -1903,8 +1903,7 @@ static void dbri_process_interrupt_buffer(struct snd_dbri * dbri)
1903 } 1903 }
1904} 1904}
1905 1905
1906static irqreturn_t snd_dbri_interrupt(int irq, void *dev_id, 1906static irqreturn_t snd_dbri_interrupt(int irq, void *dev_id)
1907 struct pt_regs *regs)
1908{ 1907{
1909 struct snd_dbri *dbri = dev_id; 1908 struct snd_dbri *dbri = dev_id;
1910 static int errcnt = 0; 1909 static int errcnt = 0;
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index a42acf6d7b68..c82b01c7ad3a 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -653,7 +653,7 @@ static struct snd_urb_ops audio_urb_ops_high_speed[2] = {
653/* 653/*
654 * complete callback from data urb 654 * complete callback from data urb
655 */ 655 */
656static void snd_complete_urb(struct urb *urb, struct pt_regs *regs) 656static void snd_complete_urb(struct urb *urb)
657{ 657{
658 struct snd_urb_ctx *ctx = (struct snd_urb_ctx *)urb->context; 658 struct snd_urb_ctx *ctx = (struct snd_urb_ctx *)urb->context;
659 struct snd_usb_substream *subs = ctx->subs; 659 struct snd_usb_substream *subs = ctx->subs;
@@ -676,7 +676,7 @@ static void snd_complete_urb(struct urb *urb, struct pt_regs *regs)
676/* 676/*
677 * complete callback from sync urb 677 * complete callback from sync urb
678 */ 678 */
679static void snd_complete_sync_urb(struct urb *urb, struct pt_regs *regs) 679static void snd_complete_sync_urb(struct urb *urb)
680{ 680{
681 struct snd_urb_ctx *ctx = (struct snd_urb_ctx *)urb->context; 681 struct snd_urb_ctx *ctx = (struct snd_urb_ctx *)urb->context;
682 struct snd_usb_substream *subs = ctx->subs; 682 struct snd_usb_substream *subs = ctx->subs;
diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c
index 0dcf78adb99a..b7c5e59b2299 100644
--- a/sound/usb/usbmidi.c
+++ b/sound/usb/usbmidi.c
@@ -223,7 +223,7 @@ static void dump_urb(const char *type, const u8 *data, int length)
223/* 223/*
224 * Processes the data read from the device. 224 * Processes the data read from the device.
225 */ 225 */
226static void snd_usbmidi_in_urb_complete(struct urb* urb, struct pt_regs *regs) 226static void snd_usbmidi_in_urb_complete(struct urb* urb)
227{ 227{
228 struct snd_usb_midi_in_endpoint* ep = urb->context; 228 struct snd_usb_midi_in_endpoint* ep = urb->context;
229 229
@@ -247,7 +247,7 @@ static void snd_usbmidi_in_urb_complete(struct urb* urb, struct pt_regs *regs)
247 snd_usbmidi_submit_urb(urb, GFP_ATOMIC); 247 snd_usbmidi_submit_urb(urb, GFP_ATOMIC);
248} 248}
249 249
250static void snd_usbmidi_out_urb_complete(struct urb* urb, struct pt_regs *regs) 250static void snd_usbmidi_out_urb_complete(struct urb* urb)
251{ 251{
252 struct snd_usb_midi_out_endpoint* ep = urb->context; 252 struct snd_usb_midi_out_endpoint* ep = urb->context;
253 253
diff --git a/sound/usb/usbmixer.c b/sound/usb/usbmixer.c
index e516d6adbb22..1024c178f5c0 100644
--- a/sound/usb/usbmixer.c
+++ b/sound/usb/usbmixer.c
@@ -1710,7 +1710,7 @@ static void snd_usb_mixer_memory_change(struct usb_mixer_interface *mixer,
1710 } 1710 }
1711} 1711}
1712 1712
1713static void snd_usb_mixer_status_complete(struct urb *urb, struct pt_regs *regs) 1713static void snd_usb_mixer_status_complete(struct urb *urb)
1714{ 1714{
1715 struct usb_mixer_interface *mixer = urb->context; 1715 struct usb_mixer_interface *mixer = urb->context;
1716 1716
@@ -1772,8 +1772,7 @@ static int snd_usb_mixer_status_create(struct usb_mixer_interface *mixer)
1772 return 0; 1772 return 0;
1773} 1773}
1774 1774
1775static void snd_usb_soundblaster_remote_complete(struct urb *urb, 1775static void snd_usb_soundblaster_remote_complete(struct urb *urb)
1776 struct pt_regs *regs)
1777{ 1776{
1778 struct usb_mixer_interface *mixer = urb->context; 1777 struct usb_mixer_interface *mixer = urb->context;
1779 const struct rc_config *rc = mixer->rc_cfg; 1778 const struct rc_config *rc = mixer->rc_cfg;
diff --git a/sound/usb/usx2y/usbusx2y.c b/sound/usb/usx2y/usbusx2y.c
index cfec38d7839b..e011fcacce92 100644
--- a/sound/usb/usx2y/usbusx2y.c
+++ b/sound/usb/usx2y/usbusx2y.c
@@ -172,7 +172,7 @@ static void snd_usX2Y_card_private_free(struct snd_card *card);
172/* 172/*
173 * pipe 4 is used for switching the lamps, setting samplerate, volumes .... 173 * pipe 4 is used for switching the lamps, setting samplerate, volumes ....
174 */ 174 */
175static void i_usX2Y_Out04Int(struct urb *urb, struct pt_regs *regs) 175static void i_usX2Y_Out04Int(struct urb *urb)
176{ 176{
177#ifdef CONFIG_SND_DEBUG 177#ifdef CONFIG_SND_DEBUG
178 if (urb->status) { 178 if (urb->status) {
@@ -184,7 +184,7 @@ static void i_usX2Y_Out04Int(struct urb *urb, struct pt_regs *regs)
184#endif 184#endif
185} 185}
186 186
187static void i_usX2Y_In04Int(struct urb *urb, struct pt_regs *regs) 187static void i_usX2Y_In04Int(struct urb *urb)
188{ 188{
189 int err = 0; 189 int err = 0;
190 struct usX2Ydev *usX2Y = urb->context; 190 struct usX2Ydev *usX2Y = urb->context;
diff --git a/sound/usb/usx2y/usbusx2yaudio.c b/sound/usb/usx2y/usbusx2yaudio.c
index f6bd0dee563c..e662281a751a 100644
--- a/sound/usb/usx2y/usbusx2yaudio.c
+++ b/sound/usb/usx2y/usbusx2yaudio.c
@@ -306,7 +306,7 @@ static void usX2Y_error_sequence(struct usX2Ydev *usX2Y,
306 usX2Y_clients_stop(usX2Y); 306 usX2Y_clients_stop(usX2Y);
307} 307}
308 308
309static void i_usX2Y_urb_complete(struct urb *urb, struct pt_regs *regs) 309static void i_usX2Y_urb_complete(struct urb *urb)
310{ 310{
311 struct snd_usX2Y_substream *subs = urb->context; 311 struct snd_usX2Y_substream *subs = urb->context;
312 struct usX2Ydev *usX2Y = subs->usX2Y; 312 struct usX2Ydev *usX2Y = subs->usX2Y;
@@ -350,7 +350,7 @@ static void i_usX2Y_urb_complete(struct urb *urb, struct pt_regs *regs)
350} 350}
351 351
352static void usX2Y_urbs_set_complete(struct usX2Ydev * usX2Y, 352static void usX2Y_urbs_set_complete(struct usX2Ydev * usX2Y,
353 void (*complete)(struct urb *, struct pt_regs *)) 353 void (*complete)(struct urb *))
354{ 354{
355 int s, u; 355 int s, u;
356 for (s = 0; s < 4; s++) { 356 for (s = 0; s < 4; s++) {
@@ -370,7 +370,7 @@ static void usX2Y_subs_startup_finish(struct usX2Ydev * usX2Y)
370 usX2Y->prepare_subs = NULL; 370 usX2Y->prepare_subs = NULL;
371} 371}
372 372
373static void i_usX2Y_subs_startup(struct urb *urb, struct pt_regs *regs) 373static void i_usX2Y_subs_startup(struct urb *urb)
374{ 374{
375 struct snd_usX2Y_substream *subs = urb->context; 375 struct snd_usX2Y_substream *subs = urb->context;
376 struct usX2Ydev *usX2Y = subs->usX2Y; 376 struct usX2Ydev *usX2Y = subs->usX2Y;
@@ -382,7 +382,7 @@ static void i_usX2Y_subs_startup(struct urb *urb, struct pt_regs *regs)
382 wake_up(&usX2Y->prepare_wait_queue); 382 wake_up(&usX2Y->prepare_wait_queue);
383 } 383 }
384 384
385 i_usX2Y_urb_complete(urb, regs); 385 i_usX2Y_urb_complete(urb);
386} 386}
387 387
388static void usX2Y_subs_prepare(struct snd_usX2Y_substream *subs) 388static void usX2Y_subs_prepare(struct snd_usX2Y_substream *subs)
@@ -663,7 +663,7 @@ static struct s_c2 SetRate48000[] =
663}; 663};
664#define NOOF_SETRATE_URBS ARRAY_SIZE(SetRate48000) 664#define NOOF_SETRATE_URBS ARRAY_SIZE(SetRate48000)
665 665
666static void i_usX2Y_04Int(struct urb *urb, struct pt_regs *regs) 666static void i_usX2Y_04Int(struct urb *urb)
667{ 667{
668 struct usX2Ydev *usX2Y = urb->context; 668 struct usX2Ydev *usX2Y = urb->context;
669 669
diff --git a/sound/usb/usx2y/usx2yhwdeppcm.c b/sound/usb/usx2y/usx2yhwdeppcm.c
index 88b72b52590f..9acef9d90543 100644
--- a/sound/usb/usx2y/usx2yhwdeppcm.c
+++ b/sound/usb/usx2y/usx2yhwdeppcm.c
@@ -226,7 +226,7 @@ static inline int usX2Y_usbpcm_usbframe_complete(struct snd_usX2Y_substream *cap
226} 226}
227 227
228 228
229static void i_usX2Y_usbpcm_urb_complete(struct urb *urb, struct pt_regs *regs) 229static void i_usX2Y_usbpcm_urb_complete(struct urb *urb)
230{ 230{
231 struct snd_usX2Y_substream *subs = urb->context; 231 struct snd_usX2Y_substream *subs = urb->context;
232 struct usX2Ydev *usX2Y = subs->usX2Y; 232 struct usX2Ydev *usX2Y = subs->usX2Y;
@@ -294,7 +294,7 @@ static void usX2Y_usbpcm_subs_startup_finish(struct usX2Ydev * usX2Y)
294 usX2Y->prepare_subs = NULL; 294 usX2Y->prepare_subs = NULL;
295} 295}
296 296
297static void i_usX2Y_usbpcm_subs_startup(struct urb *urb, struct pt_regs *regs) 297static void i_usX2Y_usbpcm_subs_startup(struct urb *urb)
298{ 298{
299 struct snd_usX2Y_substream *subs = urb->context; 299 struct snd_usX2Y_substream *subs = urb->context;
300 struct usX2Ydev *usX2Y = subs->usX2Y; 300 struct usX2Ydev *usX2Y = subs->usX2Y;
@@ -311,7 +311,7 @@ static void i_usX2Y_usbpcm_subs_startup(struct urb *urb, struct pt_regs *regs)
311 wake_up(&usX2Y->prepare_wait_queue); 311 wake_up(&usX2Y->prepare_wait_queue);
312 } 312 }
313 313
314 i_usX2Y_usbpcm_urb_complete(urb, regs); 314 i_usX2Y_usbpcm_urb_complete(urb);
315} 315}
316 316
317/* 317/*