aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acorn/block/mfmhd.c2
-rw-r--r--drivers/acpi/cm_sbs.c4
-rw-r--r--drivers/acpi/hardware/hwregs.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.c6
-rw-r--r--drivers/ata/sata_qstor.c4
-rw-r--r--drivers/ata/sata_sil.c8
-rw-r--r--drivers/ata/sata_sil24.c4
-rw-r--r--drivers/ata/sata_svw.c4
-rw-r--r--drivers/ata/sata_sx4.c4
-rw-r--r--drivers/ata/sata_vsc.c3
-rw-r--r--drivers/atm/ambassador.c11
-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.c13
-rw-r--r--drivers/atm/idt77252.c2
-rw-r--r--drivers/atm/iphase.c2
-rw-r--r--drivers/atm/lanai.c6
-rw-r--r--drivers/atm/nicstar.c4
-rw-r--r--drivers/atm/zatm.c2
-rw-r--r--drivers/block/DAC960.c38
-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/loop.c8
-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/cdrom.c6
-rw-r--r--drivers/cdrom/cdu31a.c2
-rw-r--r--drivers/cdrom/cm206.c2
-rw-r--r--drivers/cdrom/mcdx.c6
-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/istallion.c58
-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.c605
-rw-r--r--drivers/char/rio/func.h2
-rw-r--r--drivers/char/rio/rio_linux.c8
-rw-r--r--drivers/char/rio/riointr.c2
-rw-r--r--drivers/char/riscom8.c9
-rw-r--r--drivers/char/rtc.c12
-rw-r--r--drivers/char/ser_a2232.c4
-rw-r--r--drivers/char/serial167.c26
-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.c6
-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.c63
-rw-r--r--drivers/char/tlclk.c4
-rw-r--r--drivers/char/tpm/tpm_tis.c4
-rw-r--r--drivers/char/viocons.c2
-rw-r--r--drivers/char/vme_scc.c20
-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.c6
-rw-r--r--drivers/dma/ioatdma.h4
-rw-r--r--drivers/fc4/soc.c2
-rw-r--r--drivers/fc4/socal.c2
-rw-r--r--drivers/firmware/dcdbas.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-powermac.c28
-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/ide/mips/swarm.c2
-rw-r--r--drivers/ieee1394/nodemgr.c2
-rw-r--r--drivers/ieee1394/ohci1394.c3
-rw-r--r--drivers/ieee1394/pcilynx.c3
-rw-r--r--drivers/infiniband/core/cm.c84
-rw-r--r--drivers/infiniband/hw/amso1100/c2.c4
-rw-r--r--drivers/infiniband/hw/amso1100/c2_ae.c2
-rw-r--r--drivers/infiniband/hw/amso1100/c2_qp.c16
-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/infiniband/hw/mthca/mthca_provider.c2
-rw-r--r--drivers/infiniband/hw/mthca/mthca_srq.c6
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_ib.c5
-rw-r--r--drivers/infiniband/ulp/srp/ib_srp.c27
-rw-r--r--drivers/infiniband/ulp/srp/ib_srp.h2
-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/Kconfig4
-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.c4
-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/Kconfig2
-rw-r--r--drivers/input/misc/ixp4xx-beeper.c2
-rw-r--r--drivers/input/mouse/Kconfig2
-rw-r--r--drivers/input/mouse/alps.c10
-rw-r--r--drivers/input/mouse/amimouse.c4
-rw-r--r--drivers/input/mouse/hil_ptr.c4
-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/Kconfig2
-rw-r--r--drivers/input/serio/ambakmi.c4
-rw-r--r--drivers/input/serio/ct82c710.c4
-rw-r--r--drivers/input/serio/gscps2.c10
-rw-r--r--drivers/input/serio/hil_mlc.c32
-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.c24
-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.c10
-rw-r--r--drivers/macintosh/adb.c10
-rw-r--r--drivers/macintosh/adbhid.c20
-rw-r--r--drivers/macintosh/macio-adb.c9
-rw-r--r--drivers/macintosh/smu.c6
-rw-r--r--drivers/macintosh/via-cuda.c14
-rw-r--r--drivers/macintosh/via-macii.c9
-rw-r--r--drivers/macintosh/via-maciisi.c14
-rw-r--r--drivers/macintosh/via-pmu.c32
-rw-r--r--drivers/macintosh/via-pmu68k.c19
-rw-r--r--drivers/macintosh/windfarm_pm112.c18
-rw-r--r--drivers/macintosh/windfarm_pm81.c24
-rw-r--r--drivers/macintosh/windfarm_pm91.c24
-rw-r--r--drivers/md/md.c1
-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/em28xx/em28xx-video.c2
-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.c5
-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.c15
-rw-r--r--drivers/misc/tifm_core.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/mmc_block.c104
-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.c4
-rw-r--r--drivers/mmc/tifm_sd.c14
-rw-r--r--drivers/mmc/wbsd.c2
-rw-r--r--drivers/mtd/maps/physmap.c2
-rw-r--r--drivers/mtd/nand/cs553x_nand.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.c13
-rw-r--r--drivers/net/3c515.c6
-rw-r--r--drivers/net/3c523.c11
-rw-r--r--drivers/net/3c527.c9
-rw-r--r--drivers/net/3c59x.c14
-rw-r--r--drivers/net/7990.c4
-rw-r--r--drivers/net/8139cp.c5
-rw-r--r--drivers/net/8139too.c8
-rw-r--r--drivers/net/82596.c8
-rw-r--r--drivers/net/8390.c13
-rw-r--r--drivers/net/8390.h2
-rw-r--r--drivers/net/a2065.c3
-rw-r--r--drivers/net/acenic.c2
-rw-r--r--drivers/net/acenic.h2
-rw-r--r--drivers/net/amd8111e.c4
-rw-r--r--drivers/net/apne.c6
-rw-r--r--drivers/net/appletalk/cops.c4
-rw-r--r--drivers/net/appletalk/ltpc.c2
-rw-r--r--drivers/net/arcnet/arcnet.c2
-rw-r--r--drivers/net/ariadne.c4
-rw-r--r--drivers/net/arm/am79c961a.c4
-rw-r--r--drivers/net/arm/at91_ether.c4
-rw-r--r--drivers/net/arm/ep93xx_eth.c2
-rw-r--r--drivers/net/arm/ether1.c4
-rw-r--r--drivers/net/arm/ether3.c4
-rw-r--r--drivers/net/at1700.c5
-rw-r--r--drivers/net/atari_bionet.c2
-rw-r--r--drivers/net/atari_pamsnet.c3
-rw-r--r--drivers/net/atarilance.c4
-rw-r--r--drivers/net/atp.c11
-rw-r--r--drivers/net/au1000_eth.c4
-rw-r--r--drivers/net/b44.c4
-rw-r--r--drivers/net/bmac.c14
-rw-r--r--drivers/net/bnx2.c6
-rw-r--r--drivers/net/cassini.c8
-rw-r--r--drivers/net/chelsio/cpl5_cmd.h6
-rw-r--r--drivers/net/chelsio/cxgb2.c2
-rw-r--r--drivers/net/chelsio/sge.c6
-rw-r--r--drivers/net/chelsio/sge.h9
-rw-r--r--drivers/net/cris/eth_v10.c8
-rw-r--r--drivers/net/cs89x0.c6
-rw-r--r--drivers/net/de600.c8
-rw-r--r--drivers/net/de600.h2
-rw-r--r--drivers/net/de620.c4
-rw-r--r--drivers/net/declance.c10
-rw-r--r--drivers/net/defxx.c6
-rw-r--r--drivers/net/depca.c4
-rw-r--r--drivers/net/dgrs.c6
-rw-r--r--drivers/net/dl2k.c4
-rw-r--r--drivers/net/dm9000.c6
-rw-r--r--drivers/net/e100.c4
-rw-r--r--drivers/net/e1000/e1000_ethtool.c3
-rw-r--r--drivers/net/e1000/e1000_main.c7
-rw-r--r--drivers/net/eepro.c26
-rw-r--r--drivers/net/eepro100.c6
-rw-r--r--drivers/net/eexpress.c11
-rw-r--r--drivers/net/ehea/ehea_main.c12
-rw-r--r--drivers/net/epic100.c4
-rw-r--r--drivers/net/eth16i.c4
-rw-r--r--drivers/net/ewrk3.c4
-rw-r--r--drivers/net/fealnx.c4
-rw-r--r--drivers/net/fec.c10
-rw-r--r--drivers/net/fec_8xx/fec_main.c4
-rw-r--r--drivers/net/forcedeth.c20
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c4
-rw-r--r--drivers/net/gianfar.c22
-rw-r--r--drivers/net/gianfar.h2
-rw-r--r--drivers/net/hamachi.c4
-rw-r--r--drivers/net/hamradio/baycom_epp.c2
-rw-r--r--drivers/net/hamradio/baycom_par.c2
-rw-r--r--drivers/net/hamradio/baycom_ser_fdx.c2
-rw-r--r--drivers/net/hamradio/baycom_ser_hdx.c2
-rw-r--r--drivers/net/hamradio/dmascc.c4
-rw-r--r--drivers/net/hamradio/scc.c4
-rw-r--r--drivers/net/hamradio/yam.c2
-rw-r--r--drivers/net/hp100.c4
-rw-r--r--drivers/net/ibm_emac/ibm_emac_core.c4
-rw-r--r--drivers/net/ibm_emac/ibm_emac_debug.c3
-rw-r--r--drivers/net/ibm_emac/ibm_emac_mal.c10
-rw-r--r--drivers/net/ibmlana.c2
-rw-r--r--drivers/net/ibmveth.c8
-rw-r--r--drivers/net/ioc3-eth.c2
-rw-r--r--drivers/net/irda/ali-ircc.c13
-rw-r--r--drivers/net/irda/au1k_ir.c4
-rw-r--r--drivers/net/irda/donauboe.c35
-rw-r--r--drivers/net/irda/irda-usb.c12
-rw-r--r--drivers/net/irda/irport.c16
-rw-r--r--drivers/net/irda/irport.h2
-rw-r--r--drivers/net/irda/mcs7780.c4
-rw-r--r--drivers/net/irda/mcs7780.h4
-rw-r--r--drivers/net/irda/nsc-ircc.c12
-rw-r--r--drivers/net/irda/pxaficp_ir.c8
-rw-r--r--drivers/net/irda/sa1100_ir.c2
-rw-r--r--drivers/net/irda/smsc-ircc2.c6
-rw-r--r--drivers/net/irda/stir4200.c2
-rw-r--r--drivers/net/irda/via-ircc.c8
-rw-r--r--drivers/net/irda/vlsi_ir.c3
-rw-r--r--drivers/net/irda/w83977af_ir.c12
-rw-r--r--drivers/net/isa-skeleton.c4
-rw-r--r--drivers/net/iseries_veth.c2
-rw-r--r--drivers/net/ixgb/ixgb_main.c7
-rw-r--r--drivers/net/ixp2000/ixpdev.c2
-rw-r--r--drivers/net/lance.c10
-rw-r--r--drivers/net/lasi_82596.c8
-rw-r--r--drivers/net/lp486e.c4
-rw-r--r--drivers/net/mac89x0.c4
-rw-r--r--drivers/net/mace.c12
-rw-r--r--drivers/net/macmace.c8
-rw-r--r--drivers/net/meth.c4
-rw-r--r--drivers/net/mipsnet.c3
-rw-r--r--drivers/net/mv643xx_eth.c5
-rw-r--r--drivers/net/myri10ge/myri10ge.c2
-rw-r--r--drivers/net/myri_sbus.c2
-rw-r--r--drivers/net/natsemi.c6
-rw-r--r--drivers/net/netx-eth.c2
-rw-r--r--drivers/net/ni5010.c4
-rw-r--r--drivers/net/ni52.c4
-rw-r--r--drivers/net/ni65.c4
-rw-r--r--drivers/net/ns83820.c2
-rw-r--r--drivers/net/pci-skeleton.c6
-rw-r--r--drivers/net/pcmcia/3c574_cs.c6
-rw-r--r--drivers/net/pcmcia/3c589_cs.c6
-rw-r--r--drivers/net/pcmcia/axnet_cs.c20
-rw-r--r--drivers/net/pcmcia/fmvj18x_cs.c4
-rw-r--r--drivers/net/pcmcia/nmclan_cs.c4
-rw-r--r--drivers/net/pcmcia/pcnet_cs.c8
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c6
-rw-r--r--drivers/net/pcmcia/xirc2ps_cs.c4
-rw-r--r--drivers/net/pcnet32.c13
-rw-r--r--drivers/net/phy/phy.c2
-rw-r--r--drivers/net/plip.c11
-rw-r--r--drivers/net/qla3xxx.c2
-rw-r--r--drivers/net/r8169.c7
-rw-r--r--drivers/net/rrunner.c2
-rw-r--r--drivers/net/rrunner.h2
-rw-r--r--drivers/net/s2io.c12
-rw-r--r--drivers/net/s2io.h330
-rw-r--r--drivers/net/saa9730.c5
-rw-r--r--drivers/net/sb1000.c12
-rw-r--r--drivers/net/sb1250-mac.c4
-rw-r--r--drivers/net/seeq8005.c4
-rw-r--r--drivers/net/sgiseeq.c2
-rw-r--r--drivers/net/sis190.c4
-rw-r--r--drivers/net/sis900.c6
-rw-r--r--drivers/net/sk98lin/skge.c10
-rw-r--r--drivers/net/sk_mca.c2
-rw-r--r--drivers/net/skfp/skfddi.c12
-rw-r--r--drivers/net/skge.c4
-rw-r--r--drivers/net/sky2.c5
-rw-r--r--drivers/net/smc-ultra.c2
-rw-r--r--drivers/net/smc911x.c6
-rw-r--r--drivers/net/smc9194.c4
-rw-r--r--drivers/net/smc91x.c4
-rw-r--r--drivers/net/smc91x.h2
-rw-r--r--drivers/net/sonic.c9
-rw-r--r--drivers/net/sonic.h2
-rw-r--r--drivers/net/spider_net.c4
-rw-r--r--drivers/net/starfire.c4
-rw-r--r--drivers/net/sun3_82586.c4
-rw-r--r--drivers/net/sun3lance.c4
-rw-r--r--drivers/net/sunbmac.c2
-rw-r--r--drivers/net/sundance.c4
-rw-r--r--drivers/net/sungem.c4
-rw-r--r--drivers/net/sunhme.c8
-rw-r--r--drivers/net/sunlance.c4
-rw-r--r--drivers/net/sunqe.c4
-rw-r--r--drivers/net/tc35815.c4
-rw-r--r--drivers/net/tg3.c15
-rw-r--r--drivers/net/tlan.c7
-rw-r--r--drivers/net/tokenring/3c359.c4
-rw-r--r--drivers/net/tokenring/ibmtr.c6
-rw-r--r--drivers/net/tokenring/lanstreamer.c5
-rw-r--r--drivers/net/tokenring/madgemc.c6
-rw-r--r--drivers/net/tokenring/olympic.c4
-rw-r--r--drivers/net/tokenring/smctr.c11
-rw-r--r--drivers/net/tokenring/tms380tr.c7
-rw-r--r--drivers/net/tokenring/tms380tr.h2
-rw-r--r--drivers/net/tulip/de2104x.c2
-rw-r--r--drivers/net/tulip/de4x5.c10
-rw-r--r--drivers/net/tulip/dmfe.c6
-rw-r--r--drivers/net/tulip/interrupt.c2
-rw-r--r--drivers/net/tulip/tulip.h2
-rw-r--r--drivers/net/tulip/tulip_core.c2
-rw-r--r--drivers/net/tulip/uli526x.c4
-rw-r--r--drivers/net/tulip/winbond-840.c4
-rw-r--r--drivers/net/tulip/xircom_cb.c6
-rw-r--r--drivers/net/tulip/xircom_tulip_cb.c4
-rw-r--r--drivers/net/typhoon.c2
-rw-r--r--drivers/net/ucc_geth.c5
-rw-r--r--drivers/net/via-rhine.c6
-rw-r--r--drivers/net/via-velocity.c5
-rw-r--r--drivers/net/wan/cosa.c4
-rw-r--r--drivers/net/wan/cycx_main.c8
-rw-r--r--drivers/net/wan/dscc4.c4
-rw-r--r--drivers/net/wan/farsync.c2
-rw-r--r--drivers/net/wan/hd6457x.c2
-rw-r--r--drivers/net/wan/lmc/lmc_main.c4
-rw-r--r--drivers/net/wan/pc300_drv.c4
-rw-r--r--drivers/net/wan/sbni.c4
-rw-r--r--drivers/net/wan/sdla.c10
-rw-r--r--drivers/net/wan/wanxl.c2
-rw-r--r--drivers/net/wan/z85230.c2
-rw-r--r--drivers/net/wan/z85230.h2
-rw-r--r--drivers/net/wireless/airo.c5
-rw-r--r--drivers/net/wireless/arlan-main.c4
-rw-r--r--drivers/net/wireless/atmel.c2
-rw-r--r--drivers/net/wireless/bcm43xx/bcm43xx_main.c4
-rw-r--r--drivers/net/wireless/hostap/hostap_hw.c2
-rw-r--r--drivers/net/wireless/ipw2100.c2
-rw-r--r--drivers/net/wireless/ipw2200.c2
-rw-r--r--drivers/net/wireless/netwave_cs.c6
-rw-r--r--drivers/net/wireless/orinoco.c4
-rw-r--r--drivers/net/wireless/orinoco.h2
-rw-r--r--drivers/net/wireless/prism54/islpci_dev.c2
-rw-r--r--drivers/net/wireless/prism54/islpci_dev.h2
-rw-r--r--drivers/net/wireless/ray_cs.c4
-rw-r--r--drivers/net/wireless/wavelan.c2
-rw-r--r--drivers/net/wireless/wavelan.p.h3
-rw-r--r--drivers/net/wireless/wavelan_cs.c14
-rw-r--r--drivers/net/wireless/wavelan_cs.p.h3
-rw-r--r--drivers/net/wireless/wl3501_cs.c18
-rw-r--r--drivers/net/wireless/zd1201.c6
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.c6
-rw-r--r--drivers/net/yellowfin.c11
-rw-r--r--drivers/net/znet.c9
-rw-r--r--drivers/parisc/dino.c5
-rw-r--r--drivers/parisc/eisa.c6
-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.c4
-rw-r--r--drivers/parport/parport_pc.c4
-rw-r--r--drivers/parport/parport_sunbpp.c4
-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.c4
-rw-r--r--drivers/pcmcia/hd64465_ss.c9
-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.c6
-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/s390/block/dasd_diag.c2
-rw-r--r--drivers/s390/char/ctrlchar.c2
-rw-r--r--drivers/s390/char/keyboard.c2
-rw-r--r--drivers/s390/char/monwriter.c10
-rw-r--r--drivers/s390/char/sclp.c4
-rw-r--r--drivers/s390/cio/chsc.c25
-rw-r--r--drivers/s390/cio/cio.c6
-rw-r--r--drivers/s390/crypto/ap_bus.c2
-rw-r--r--drivers/s390/net/iucv.c4
-rw-r--r--drivers/s390/scsi/zfcp_erp.c2
-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/openprom.c2
-rw-r--r--drivers/sbus/char/uctrl.c4
-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.c13
-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.c10
-rw-r--r--drivers/scsi/aha152x.c13
-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.c14
-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.c7
-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.c12
-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.c8
-rw-r--r--drivers/scsi/qlogicfas408.h2
-rw-r--r--drivers/scsi/qlogicpti.c4
-rw-r--r--drivers/scsi/scsi_error.c2
-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.c8
-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.c4
-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.c4
-rw-r--r--drivers/serial/m32r_sio.c16
-rw-r--r--drivers/serial/mcfserial.c2
-rw-r--r--drivers/serial/mpc52xx_uart.c20
-rw-r--r--drivers/serial/mpsc.c8
-rw-r--r--drivers/serial/mux.c2
-rw-r--r--drivers/serial/netx-serial.c10
-rw-r--r--drivers/serial/pmac_zilog.c17
-rw-r--r--drivers/serial/pxa.c12
-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.c13
-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.c33
-rw-r--r--drivers/serial/v850e_uart.c4
-rw-r--r--drivers/serial/vr41xx_siu.c9
-rw-r--r--drivers/sn/ioc3.c14
-rw-r--r--drivers/spi/pxa2xx_spi.c6
-rw-r--r--drivers/spi/spi_mpc83xx.c3
-rw-r--r--drivers/spi/spi_s3c24xx.c2
-rw-r--r--drivers/tc/zs.c8
-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.c8
-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/dummy_hcd.c2
-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.c55
-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
917 files changed, 2751 insertions, 3827 deletions
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/cm_sbs.c b/drivers/acpi/cm_sbs.c
index a01ce6700bfe..4a9b7bf6f44e 100644
--- a/drivers/acpi/cm_sbs.c
+++ b/drivers/acpi/cm_sbs.c
@@ -67,7 +67,7 @@ void acpi_unlock_ac_dir(struct proc_dir_entry *acpi_ac_dir_param)
67 lock_ac_dir_cnt--; 67 lock_ac_dir_cnt--;
68 if (lock_ac_dir_cnt == 0 && acpi_ac_dir_param && acpi_ac_dir) { 68 if (lock_ac_dir_cnt == 0 && acpi_ac_dir_param && acpi_ac_dir) {
69 remove_proc_entry(ACPI_AC_CLASS, acpi_root_dir); 69 remove_proc_entry(ACPI_AC_CLASS, acpi_root_dir);
70 acpi_ac_dir = 0; 70 acpi_ac_dir = NULL;
71 } 71 }
72 mutex_unlock(&cm_sbs_mutex); 72 mutex_unlock(&cm_sbs_mutex);
73} 73}
@@ -99,7 +99,7 @@ void acpi_unlock_battery_dir(struct proc_dir_entry *acpi_battery_dir_param)
99 if (lock_battery_dir_cnt == 0 && acpi_battery_dir_param 99 if (lock_battery_dir_cnt == 0 && acpi_battery_dir_param
100 && acpi_battery_dir) { 100 && acpi_battery_dir) {
101 remove_proc_entry(ACPI_BATTERY_CLASS, acpi_root_dir); 101 remove_proc_entry(ACPI_BATTERY_CLASS, acpi_root_dir);
102 acpi_battery_dir = 0; 102 acpi_battery_dir = NULL;
103 } 103 }
104 mutex_unlock(&cm_sbs_mutex); 104 mutex_unlock(&cm_sbs_mutex);
105 return; 105 return;
diff --git a/drivers/acpi/hardware/hwregs.c b/drivers/acpi/hardware/hwregs.c
index 3143f36fcec9..fa58c1edce1e 100644
--- a/drivers/acpi/hardware/hwregs.c
+++ b/drivers/acpi/hardware/hwregs.c
@@ -665,8 +665,6 @@ acpi_status acpi_hw_register_write(u8 use_lock, u32 register_id, u32 value)
665 665
666 /* 666 /*
667 * Perform a read first to preserve certain bits (per ACPI spec) 667 * Perform a read first to preserve certain bits (per ACPI spec)
668 *
669 * Note: This includes SCI_EN, we never want to change this bit
670 */ 668 */
671 status = acpi_hw_register_read(ACPI_MTX_DO_NOT_LOCK, 669 status = acpi_hw_register_read(ACPI_MTX_DO_NOT_LOCK,
672 ACPI_REGISTER_PM1_CONTROL, 670 ACPI_REGISTER_PM1_CONTROL,
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 dce65651d858..77138a39eb04 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4857,7 +4857,6 @@ idle_irq:
4857 * ata_interrupt - Default ATA host interrupt handler 4857 * ata_interrupt - Default ATA host interrupt handler
4858 * @irq: irq line (unused) 4858 * @irq: irq line (unused)
4859 * @dev_instance: pointer to our ata_host information structure 4859 * @dev_instance: pointer to our ata_host information structure
4860 * @regs: unused
4861 * 4860 *
4862 * Default interrupt handler for PCI IDE devices. Calls 4861 * Default interrupt handler for PCI IDE devices. Calls
4863 * ata_host_intr() for each port that is not disabled. 4862 * ata_host_intr() for each port that is not disabled.
@@ -4869,7 +4868,7 @@ idle_irq:
4869 * IRQ_NONE or IRQ_HANDLED. 4868 * IRQ_NONE or IRQ_HANDLED.
4870 */ 4869 */
4871 4870
4872irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs) 4871irqreturn_t ata_interrupt (int irq, void *dev_instance)
4873{ 4872{
4874 struct ata_host *host = dev_instance; 4873 struct ata_host *host = dev_instance;
4875 unsigned int i; 4874 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..8bcdfa64667c 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);
@@ -360,7 +360,7 @@ static void pdc_sata_phy_reset(struct ata_port *ap)
360static void pdc_pata_cbl_detect(struct ata_port *ap) 360static void pdc_pata_cbl_detect(struct ata_port *ap)
361{ 361{
362 u8 tmp; 362 u8 tmp;
363 void __iomem *mmio = (void *) ap->ioaddr.cmd_addr + PDC_CTLSTAT + 0x03; 363 void __iomem *mmio = (void __iomem *) ap->ioaddr.cmd_addr + PDC_CTLSTAT + 0x03;
364 364
365 tmp = readb(mmio); 365 tmp = readb(mmio);
366 366
@@ -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..ca8d99312472 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
@@ -350,7 +349,7 @@ static u32 sil_scr_read (struct ata_port *ap, unsigned int sc_reg)
350 349
351static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val) 350static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val)
352{ 351{
353 void *mmio = (void __iomem *) sil_scr_addr(ap, sc_reg); 352 void __iomem *mmio = (void __iomem *) sil_scr_addr(ap, sc_reg);
354 if (mmio) 353 if (mmio)
355 writel(val, mmio); 354 writel(val, mmio);
356} 355}
@@ -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_svw.c b/drivers/ata/sata_svw.c
index 84025a2fd5be..db32d15b7fa1 100644
--- a/drivers/ata/sata_svw.c
+++ b/drivers/ata/sata_svw.c
@@ -177,7 +177,7 @@ static void k2_bmdma_setup_mmio (struct ata_queued_cmd *qc)
177 struct ata_port *ap = qc->ap; 177 struct ata_port *ap = qc->ap;
178 unsigned int rw = (qc->tf.flags & ATA_TFLAG_WRITE); 178 unsigned int rw = (qc->tf.flags & ATA_TFLAG_WRITE);
179 u8 dmactl; 179 u8 dmactl;
180 void *mmio = (void *) ap->ioaddr.bmdma_addr; 180 void __iomem *mmio = (void __iomem *) ap->ioaddr.bmdma_addr;
181 /* load PRD table addr. */ 181 /* load PRD table addr. */
182 mb(); /* make sure PRD table writes are visible to controller */ 182 mb(); /* make sure PRD table writes are visible to controller */
183 writel(ap->prd_dma, mmio + ATA_DMA_TABLE_OFS); 183 writel(ap->prd_dma, mmio + ATA_DMA_TABLE_OFS);
@@ -205,7 +205,7 @@ static void k2_bmdma_setup_mmio (struct ata_queued_cmd *qc)
205static void k2_bmdma_start_mmio (struct ata_queued_cmd *qc) 205static void k2_bmdma_start_mmio (struct ata_queued_cmd *qc)
206{ 206{
207 struct ata_port *ap = qc->ap; 207 struct ata_port *ap = qc->ap;
208 void *mmio = (void *) ap->ioaddr.bmdma_addr; 208 void __iomem *mmio = (void __iomem *) ap->ioaddr.bmdma_addr;
209 u8 dmactl; 209 u8 dmactl;
210 210
211 /* start host DMA transaction */ 211 /* start host DMA transaction */
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..323592de047b 100644
--- a/drivers/atm/ambassador.c
+++ b/drivers/atm/ambassador.c
@@ -861,18 +861,11 @@ 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) { 865 amb_dev * dev = dev_id;
866 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
871 if (!dev_id) {
872 PRINTD (DBG_IRQ|DBG_ERR, "irq with NULL dev_id: %d", irq);
873 return IRQ_NONE;
874 }
875
876 { 869 {
877 u32 interrupt = rd_plain (dev, offsetof(amb_mem, interrupt)); 870 u32 interrupt = rd_plain (dev, offsetof(amb_mem, interrupt));
878 871
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..f59349206dd2 100644
--- a/drivers/atm/horizon.c
+++ b/drivers/atm/horizon.c
@@ -1382,24 +1382,13 @@ 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
1394 if (!dev_id) {
1395 PRINTD (DBG_IRQ|DBG_ERR, "irq with NULL dev_id: %d", irq);
1396 return IRQ_NONE;
1397 }
1398 if (irq != dev->irq) {
1399 PRINTD (DBG_IRQ|DBG_ERR, "irq mismatch: %d", irq);
1400 return IRQ_NONE;
1401 }
1402
1403 // definitely for us 1392 // definitely for us
1404 irq_ok = 0; 1393 irq_ok = 0;
1405 while ((int_source = rd_regl (dev, INT_SOURCE_REG_OFF) 1394 while ((int_source = rd_regl (dev, INT_SOURCE_REG_OFF)
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..267825501dfe 100644
--- a/drivers/atm/lanai.c
+++ b/drivers/atm/lanai.c
@@ -1890,13 +1890,11 @@ 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 = devid;
1896 u32 reason; 1896 u32 reason;
1897 1897
1898 (void) irq; (void) regs; /* unused variables */
1899
1900#ifdef USE_POWERDOWN 1898#ifdef USE_POWERDOWN
1901 /* 1899 /*
1902 * If we're powered down we shouldn't be generating any interrupts - 1900 * If we're powered down we shouldn't be generating any interrupts -
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..742d07403101 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,10 +5252,9 @@ 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 = DeviceIdentifier;
5260 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5258 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
5261 DAC960_V2_StatusMailbox_T *NextStatusMailbox; 5259 DAC960_V2_StatusMailbox_T *NextStatusMailbox;
5262 unsigned long flags; 5260 unsigned long flags;
@@ -5295,10 +5293,9 @@ 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 = DeviceIdentifier;
5302 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5299 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
5303 DAC960_V2_StatusMailbox_T *NextStatusMailbox; 5300 DAC960_V2_StatusMailbox_T *NextStatusMailbox;
5304 unsigned long flags; 5301 unsigned long flags;
@@ -5338,10 +5335,9 @@ 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 = DeviceIdentifier;
5345 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5341 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
5346 DAC960_V2_StatusMailbox_T *NextStatusMailbox; 5342 DAC960_V2_StatusMailbox_T *NextStatusMailbox;
5347 unsigned long flags; 5343 unsigned long flags;
@@ -5381,10 +5377,9 @@ 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 = DeviceIdentifier;
5388 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5383 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
5389 DAC960_V1_StatusMailbox_T *NextStatusMailbox; 5384 DAC960_V1_StatusMailbox_T *NextStatusMailbox;
5390 unsigned long flags; 5385 unsigned long flags;
@@ -5420,10 +5415,9 @@ 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 = DeviceIdentifier;
5427 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5421 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
5428 DAC960_V1_StatusMailbox_T *NextStatusMailbox; 5422 DAC960_V1_StatusMailbox_T *NextStatusMailbox;
5429 unsigned long flags; 5423 unsigned long flags;
@@ -5459,10 +5453,9 @@ 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 = DeviceIdentifier;
5466 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5459 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
5467 unsigned long flags; 5460 unsigned long flags;
5468 5461
@@ -5498,10 +5491,9 @@ 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 = DeviceIdentifier;
5505 void __iomem *ControllerBaseAddress = Controller->BaseAddress; 5497 void __iomem *ControllerBaseAddress = Controller->BaseAddress;
5506 unsigned long flags; 5498 unsigned long flags;
5507 5499
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/loop.c b/drivers/block/loop.c
index d6bb8da955a2..beab6d2643cb 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -295,7 +295,7 @@ fail:
295 * and do_lo_send_write(). 295 * and do_lo_send_write().
296 */ 296 */
297static int __do_lo_send_write(struct file *file, 297static int __do_lo_send_write(struct file *file,
298 u8 __user *buf, const int len, loff_t pos) 298 u8 *buf, const int len, loff_t pos)
299{ 299{
300 ssize_t bw; 300 ssize_t bw;
301 mm_segment_t old_fs = get_fs(); 301 mm_segment_t old_fs = get_fs();
@@ -324,7 +324,7 @@ static int do_lo_send_direct_write(struct loop_device *lo,
324 struct bio_vec *bvec, int bsize, loff_t pos, struct page *page) 324 struct bio_vec *bvec, int bsize, loff_t pos, struct page *page)
325{ 325{
326 ssize_t bw = __do_lo_send_write(lo->lo_backing_file, 326 ssize_t bw = __do_lo_send_write(lo->lo_backing_file,
327 (u8 __user *)kmap(bvec->bv_page) + bvec->bv_offset, 327 kmap(bvec->bv_page) + bvec->bv_offset,
328 bvec->bv_len, pos); 328 bvec->bv_len, pos);
329 kunmap(bvec->bv_page); 329 kunmap(bvec->bv_page);
330 cond_resched(); 330 cond_resched();
@@ -351,7 +351,7 @@ static int do_lo_send_write(struct loop_device *lo, struct bio_vec *bvec,
351 bvec->bv_offset, bvec->bv_len, pos >> 9); 351 bvec->bv_offset, bvec->bv_len, pos >> 9);
352 if (likely(!ret)) 352 if (likely(!ret))
353 return __do_lo_send_write(lo->lo_backing_file, 353 return __do_lo_send_write(lo->lo_backing_file,
354 (u8 __user *)page_address(page), bvec->bv_len, 354 page_address(page), bvec->bv_len,
355 pos); 355 pos);
356 printk(KERN_ERR "loop: Transfer error at byte offset %llu, " 356 printk(KERN_ERR "loop: Transfer error at byte offset %llu, "
357 "length %i.\n", (unsigned long long)pos, bvec->bv_len); 357 "length %i.\n", (unsigned long long)pos, bvec->bv_len);
@@ -1187,7 +1187,7 @@ struct compat_loop_info {
1187 * - noinlined to reduce stack space usage in main part of driver 1187 * - noinlined to reduce stack space usage in main part of driver
1188 */ 1188 */
1189static noinline int 1189static noinline int
1190loop_info64_from_compat(const struct compat_loop_info *arg, 1190loop_info64_from_compat(const struct compat_loop_info __user *arg,
1191 struct loop_info64 *info64) 1191 struct loop_info64 *info64)
1192{ 1192{
1193 struct compat_loop_info info; 1193 struct compat_loop_info info;
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/cdrom.c b/drivers/cdrom/cdrom.c
index 2a0c50d84fc5..7ea0f48f8fa6 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -703,7 +703,7 @@ static int cdrom_has_defect_mgt(struct cdrom_device_info *cdi)
703{ 703{
704 struct packet_command cgc; 704 struct packet_command cgc;
705 char buffer[16]; 705 char buffer[16];
706 __u16 *feature_code; 706 __be16 *feature_code;
707 int ret; 707 int ret;
708 708
709 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ); 709 init_cdrom_command(&cgc, buffer, sizeof(buffer), CGC_DATA_READ);
@@ -716,7 +716,7 @@ static int cdrom_has_defect_mgt(struct cdrom_device_info *cdi)
716 if ((ret = cdi->ops->generic_packet(cdi, &cgc))) 716 if ((ret = cdi->ops->generic_packet(cdi, &cgc)))
717 return ret; 717 return ret;
718 718
719 feature_code = (__u16 *) &buffer[sizeof(struct feature_header)]; 719 feature_code = (__be16 *) &buffer[sizeof(struct feature_header)];
720 if (be16_to_cpu(*feature_code) == CDF_HWDM) 720 if (be16_to_cpu(*feature_code) == CDF_HWDM)
721 return 0; 721 return 0;
722 722
@@ -2963,7 +2963,7 @@ static int mmc_ioctl(struct cdrom_device_info *cdi, unsigned int cmd,
2963 how much data is available for transfer. buffer[1] is 2963 how much data is available for transfer. buffer[1] is
2964 unfortunately ambigious and the only reliable way seem 2964 unfortunately ambigious and the only reliable way seem
2965 to be to simply skip over the block descriptor... */ 2965 to be to simply skip over the block descriptor... */
2966 offset = 8 + be16_to_cpu(*(unsigned short *)(buffer+6)); 2966 offset = 8 + be16_to_cpu(*(__be16 *)(buffer+6));
2967 2967
2968 if (offset + 16 > sizeof(buffer)) 2968 if (offset + 16 > sizeof(buffer))
2969 return -E2BIG; 2969 return -E2BIG;
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..f574962f4288 100644
--- a/drivers/cdrom/mcdx.c
+++ b/drivers/cdrom/mcdx.c
@@ -845,15 +845,11 @@ 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;
852 852
853 if (stuffp == NULL) {
854 xwarn("mcdx: no device for intr %d\n", irq);
855 return IRQ_NONE;
856 }
857#ifdef AK2 853#ifdef AK2
858 if (!stuffp->busy && stuffp->pending) 854 if (!stuffp->busy && stuffp->pending)
859 stuffp->int_err = 1; 855 stuffp->int_err = 1;
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/istallion.c b/drivers/char/istallion.c
index d6e031542c6b..ffdf9df1a67a 100644
--- a/drivers/char/istallion.c
+++ b/drivers/char/istallion.c
@@ -686,37 +686,37 @@ static stlibrd_t *stli_allocbrd(void);
686static void stli_ecpinit(stlibrd_t *brdp); 686static void stli_ecpinit(stlibrd_t *brdp);
687static void stli_ecpenable(stlibrd_t *brdp); 687static void stli_ecpenable(stlibrd_t *brdp);
688static void stli_ecpdisable(stlibrd_t *brdp); 688static void stli_ecpdisable(stlibrd_t *brdp);
689static char *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); 689static void __iomem *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
690static void stli_ecpreset(stlibrd_t *brdp); 690static void stli_ecpreset(stlibrd_t *brdp);
691static void stli_ecpintr(stlibrd_t *brdp); 691static void stli_ecpintr(stlibrd_t *brdp);
692static void stli_ecpeiinit(stlibrd_t *brdp); 692static void stli_ecpeiinit(stlibrd_t *brdp);
693static void stli_ecpeienable(stlibrd_t *brdp); 693static void stli_ecpeienable(stlibrd_t *brdp);
694static void stli_ecpeidisable(stlibrd_t *brdp); 694static void stli_ecpeidisable(stlibrd_t *brdp);
695static char *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line); 695static void __iomem *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
696static void stli_ecpeireset(stlibrd_t *brdp); 696static void stli_ecpeireset(stlibrd_t *brdp);
697static void stli_ecpmcenable(stlibrd_t *brdp); 697static void stli_ecpmcenable(stlibrd_t *brdp);
698static void stli_ecpmcdisable(stlibrd_t *brdp); 698static void stli_ecpmcdisable(stlibrd_t *brdp);
699static char *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); 699static void __iomem *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
700static void stli_ecpmcreset(stlibrd_t *brdp); 700static void stli_ecpmcreset(stlibrd_t *brdp);
701static void stli_ecppciinit(stlibrd_t *brdp); 701static void stli_ecppciinit(stlibrd_t *brdp);
702static char *stli_ecppcigetmemptr(stlibrd_t *brdp, unsigned long offset, int line); 702static void __iomem *stli_ecppcigetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
703static void stli_ecppcireset(stlibrd_t *brdp); 703static void stli_ecppcireset(stlibrd_t *brdp);
704 704
705static void stli_onbinit(stlibrd_t *brdp); 705static void stli_onbinit(stlibrd_t *brdp);
706static void stli_onbenable(stlibrd_t *brdp); 706static void stli_onbenable(stlibrd_t *brdp);
707static void stli_onbdisable(stlibrd_t *brdp); 707static void stli_onbdisable(stlibrd_t *brdp);
708static char *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); 708static void __iomem *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
709static void stli_onbreset(stlibrd_t *brdp); 709static void stli_onbreset(stlibrd_t *brdp);
710static void stli_onbeinit(stlibrd_t *brdp); 710static void stli_onbeinit(stlibrd_t *brdp);
711static void stli_onbeenable(stlibrd_t *brdp); 711static void stli_onbeenable(stlibrd_t *brdp);
712static void stli_onbedisable(stlibrd_t *brdp); 712static void stli_onbedisable(stlibrd_t *brdp);
713static char *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line); 713static void __iomem *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
714static void stli_onbereset(stlibrd_t *brdp); 714static void stli_onbereset(stlibrd_t *brdp);
715static void stli_bbyinit(stlibrd_t *brdp); 715static void stli_bbyinit(stlibrd_t *brdp);
716static char *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line); 716static void __iomem *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
717static void stli_bbyreset(stlibrd_t *brdp); 717static void stli_bbyreset(stlibrd_t *brdp);
718static void stli_stalinit(stlibrd_t *brdp); 718static void stli_stalinit(stlibrd_t *brdp);
719static char *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line); 719static void __iomem *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line);
720static void stli_stalreset(stlibrd_t *brdp); 720static void stli_stalreset(stlibrd_t *brdp);
721 721
722static stliport_t *stli_getport(int brdnr, int panelnr, int portnr); 722static stliport_t *stli_getport(int brdnr, int panelnr, int portnr);
@@ -1566,7 +1566,7 @@ static void stli_flushchars(struct tty_struct *tty)
1566 1566
1567 len = MIN(len, cooksize); 1567 len = MIN(len, cooksize);
1568 count = 0; 1568 count = 0;
1569 shbuf = (char *) EBRDGETMEMPTR(brdp, portp->txoffset); 1569 shbuf = EBRDGETMEMPTR(brdp, portp->txoffset);
1570 buf = stli_txcookbuf; 1570 buf = stli_txcookbuf;
1571 1571
1572 while (len > 0) { 1572 while (len > 0) {
@@ -2948,9 +2948,9 @@ static void stli_ecpdisable(stlibrd_t *brdp)
2948 2948
2949/*****************************************************************************/ 2949/*****************************************************************************/
2950 2950
2951static char *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) 2951static void __iomem *stli_ecpgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
2952{ 2952{
2953 void *ptr; 2953 void __iomem *ptr;
2954 unsigned char val; 2954 unsigned char val;
2955 2955
2956 if (offset > brdp->memsize) { 2956 if (offset > brdp->memsize) {
@@ -3022,9 +3022,9 @@ static void stli_ecpeidisable(stlibrd_t *brdp)
3022 3022
3023/*****************************************************************************/ 3023/*****************************************************************************/
3024 3024
3025static char *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line) 3025static void __iomem *stli_ecpeigetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
3026{ 3026{
3027 void *ptr; 3027 void __iomem *ptr;
3028 unsigned char val; 3028 unsigned char val;
3029 3029
3030 if (offset > brdp->memsize) { 3030 if (offset > brdp->memsize) {
@@ -3074,9 +3074,9 @@ static void stli_ecpmcdisable(stlibrd_t *brdp)
3074 3074
3075/*****************************************************************************/ 3075/*****************************************************************************/
3076 3076
3077static char *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) 3077static void __iomem *stli_ecpmcgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
3078{ 3078{
3079 void *ptr; 3079 void __iomem *ptr;
3080 unsigned char val; 3080 unsigned char val;
3081 3081
3082 if (offset > brdp->memsize) { 3082 if (offset > brdp->memsize) {
@@ -3119,9 +3119,9 @@ static void stli_ecppciinit(stlibrd_t *brdp)
3119 3119
3120/*****************************************************************************/ 3120/*****************************************************************************/
3121 3121
3122static char *stli_ecppcigetmemptr(stlibrd_t *brdp, unsigned long offset, int line) 3122static void __iomem *stli_ecppcigetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
3123{ 3123{
3124 void *ptr; 3124 void __iomem *ptr;
3125 unsigned char val; 3125 unsigned char val;
3126 3126
3127 if (offset > brdp->memsize) { 3127 if (offset > brdp->memsize) {
@@ -3185,9 +3185,9 @@ static void stli_onbdisable(stlibrd_t *brdp)
3185 3185
3186/*****************************************************************************/ 3186/*****************************************************************************/
3187 3187
3188static char *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) 3188static void __iomem *stli_onbgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
3189{ 3189{
3190 void *ptr; 3190 void __iomem *ptr;
3191 3191
3192 if (offset > brdp->memsize) { 3192 if (offset > brdp->memsize) {
3193 printk(KERN_ERR "STALLION: shared memory pointer=%x out of " 3193 printk(KERN_ERR "STALLION: shared memory pointer=%x out of "
@@ -3250,9 +3250,9 @@ static void stli_onbedisable(stlibrd_t *brdp)
3250 3250
3251/*****************************************************************************/ 3251/*****************************************************************************/
3252 3252
3253static char *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line) 3253static void __iomem *stli_onbegetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
3254{ 3254{
3255 void *ptr; 3255 void __iomem *ptr;
3256 unsigned char val; 3256 unsigned char val;
3257 3257
3258 if (offset > brdp->memsize) { 3258 if (offset > brdp->memsize) {
@@ -3300,9 +3300,9 @@ static void stli_bbyinit(stlibrd_t *brdp)
3300 3300
3301/*****************************************************************************/ 3301/*****************************************************************************/
3302 3302
3303static char *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line) 3303static void __iomem *stli_bbygetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
3304{ 3304{
3305 void *ptr; 3305 void __iomem *ptr;
3306 unsigned char val; 3306 unsigned char val;
3307 3307
3308 BUG_ON(offset > brdp->memsize); 3308 BUG_ON(offset > brdp->memsize);
@@ -3337,7 +3337,7 @@ static void stli_stalinit(stlibrd_t *brdp)
3337 3337
3338/*****************************************************************************/ 3338/*****************************************************************************/
3339 3339
3340static char *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line) 3340static void __iomem *stli_stalgetmemptr(stlibrd_t *brdp, unsigned long offset, int line)
3341{ 3341{
3342 BUG_ON(offset > brdp->memsize); 3342 BUG_ON(offset > brdp->memsize);
3343 return brdp->membase + (offset % STAL_PAGESIZE); 3343 return brdp->membase + (offset % STAL_PAGESIZE);
@@ -3876,7 +3876,7 @@ static int stli_eisamemprobe(stlibrd_t *brdp)
3876 continue; 3876 continue;
3877 3877
3878 if (brdp->brdtype == BRD_ECPE) { 3878 if (brdp->brdtype == BRD_ECPE) {
3879 ecpsigp = (cdkecpsig_t __iomem *) stli_ecpeigetmemptr(brdp, 3879 ecpsigp = stli_ecpeigetmemptr(brdp,
3880 CDK_SIGADDR, __LINE__); 3880 CDK_SIGADDR, __LINE__);
3881 memcpy_fromio(&ecpsig, ecpsigp, sizeof(cdkecpsig_t)); 3881 memcpy_fromio(&ecpsig, ecpsigp, sizeof(cdkecpsig_t));
3882 if (ecpsig.magic == cpu_to_le32(ECP_MAGIC)) 3882 if (ecpsig.magic == cpu_to_le32(ECP_MAGIC))
@@ -4184,7 +4184,7 @@ static int stli_initbrds(void)
4184static ssize_t stli_memread(struct file *fp, char __user *buf, size_t count, loff_t *offp) 4184static ssize_t stli_memread(struct file *fp, char __user *buf, size_t count, loff_t *offp)
4185{ 4185{
4186 unsigned long flags; 4186 unsigned long flags;
4187 void *memptr; 4187 void __iomem *memptr;
4188 stlibrd_t *brdp; 4188 stlibrd_t *brdp;
4189 int brdnr, size, n; 4189 int brdnr, size, n;
4190 void *p; 4190 void *p;
@@ -4214,7 +4214,7 @@ static ssize_t stli_memread(struct file *fp, char __user *buf, size_t count, lof
4214 while (size > 0) { 4214 while (size > 0) {
4215 spin_lock_irqsave(&brd_lock, flags); 4215 spin_lock_irqsave(&brd_lock, flags);
4216 EBRDENABLE(brdp); 4216 EBRDENABLE(brdp);
4217 memptr = (void *) EBRDGETMEMPTR(brdp, off); 4217 memptr = EBRDGETMEMPTR(brdp, off);
4218 n = MIN(size, (brdp->pagesize - (((unsigned long) off) % brdp->pagesize))); 4218 n = MIN(size, (brdp->pagesize - (((unsigned long) off) % brdp->pagesize)));
4219 n = MIN(n, PAGE_SIZE); 4219 n = MIN(n, PAGE_SIZE);
4220 memcpy_fromio(p, memptr, n); 4220 memcpy_fromio(p, memptr, n);
@@ -4247,7 +4247,7 @@ out:
4247static ssize_t stli_memwrite(struct file *fp, const char __user *buf, size_t count, loff_t *offp) 4247static ssize_t stli_memwrite(struct file *fp, const char __user *buf, size_t count, loff_t *offp)
4248{ 4248{
4249 unsigned long flags; 4249 unsigned long flags;
4250 void *memptr; 4250 void __iomem *memptr;
4251 stlibrd_t *brdp; 4251 stlibrd_t *brdp;
4252 char __user *chbuf; 4252 char __user *chbuf;
4253 int brdnr, size, n; 4253 int brdnr, size, n;
@@ -4287,7 +4287,7 @@ static ssize_t stli_memwrite(struct file *fp, const char __user *buf, size_t cou
4287 } 4287 }
4288 spin_lock_irqsave(&brd_lock, flags); 4288 spin_lock_irqsave(&brd_lock, flags);
4289 EBRDENABLE(brdp); 4289 EBRDENABLE(brdp);
4290 memptr = (void *) EBRDGETMEMPTR(brdp, off); 4290 memptr = EBRDGETMEMPTR(brdp, off);
4291 memcpy_toio(memptr, p, n); 4291 memcpy_toio(memptr, p, n);
4292 EBRDDISABLE(brdp); 4292 EBRDDISABLE(brdp);
4293 spin_unlock_irqrestore(&brd_lock, flags); 4293 spin_unlock_irqrestore(&brd_lock, flags);
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
deleted file mode 100644
index 9d134e98d2a0..000000000000
--- a/drivers/char/qtronix.c
+++ /dev/null
@@ -1,605 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Qtronix 990P infrared keyboard driver.
5 *
6 *
7 * Copyright 2001 MontaVista Software Inc.
8 * Author: MontaVista Software, Inc.
9 * ppopov@mvista.com or source@mvista.com
10 *
11 *
12 * The bottom portion of this driver was take from
13 * pc_keyb.c Please see that file for copyrights.
14 *
15 * This program is free software; you can redistribute it and/or modify it
16 * under the terms of the GNU General Public License as published by the
17 * Free Software Foundation; either version 2 of the License, or (at your
18 * option) any later version.
19 *
20 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
21 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
22 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
23 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
24 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
26 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
27 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 *
31 * You should have received a copy of the GNU General Public License along
32 * with this program; if not, write to the Free Software Foundation, Inc.,
33 * 675 Mass Ave, Cambridge, MA 02139, USA.
34 */
35
36
37/*
38 * NOTE:
39 *
40 * This driver has only been tested with the Consumer IR
41 * port of the ITE 8172 system controller.
42 *
43 * You do not need this driver if you are using the ps/2 or
44 * USB adapter that the keyboard ships with. You only need
45 * this driver if your board has a IR port and the keyboard
46 * data is being sent directly to the IR. In that case,
47 * you also need some low-level IR support. See it8172_cir.c.
48 *
49 */
50
51#ifdef CONFIG_QTRONIX_KEYBOARD
52
53#include <linux/module.h>
54#include <linux/types.h>
55#include <linux/pci.h>
56#include <linux/kernel.h>
57
58#include <asm/it8172/it8172.h>
59#include <asm/it8172/it8172_int.h>
60#include <asm/it8172/it8172_cir.h>
61
62#include <linux/spinlock.h>
63#include <linux/sched.h>
64#include <linux/interrupt.h>
65#include <linux/tty.h>
66#include <linux/mm.h>
67#include <linux/signal.h>
68#include <linux/init.h>
69#include <linux/kbd_ll.h>
70#include <linux/delay.h>
71#include <linux/poll.h>
72#include <linux/miscdevice.h>
73#include <linux/slab.h>
74#include <linux/kbd_kern.h>
75#include <linux/smp_lock.h>
76#include <asm/io.h>
77#include <linux/pc_keyb.h>
78
79#include <asm/keyboard.h>
80#include <linux/bitops.h>
81#include <asm/uaccess.h>
82#include <asm/irq.h>
83#include <asm/system.h>
84
85#define leading1 0
86#define leading2 0xF
87
88#define KBD_CIR_PORT 0
89#define AUX_RECONNECT 170 /* scancode when ps2 device is plugged (back) in */
90
91static int data_index;
92struct cir_port *cir;
93static unsigned char kbdbytes[5];
94static unsigned char cir_data[32]; /* we only need 16 chars */
95
96static void kbd_int_handler(int irq, void *dev_id, struct pt_regs *regs);
97static int handle_data(unsigned char *p_data);
98static inline void handle_mouse_event(unsigned char scancode);
99static inline void handle_keyboard_event(unsigned char scancode, int down);
100static int __init psaux_init(void);
101
102static struct aux_queue *queue; /* Mouse data buffer. */
103static int aux_count = 0;
104
105/*
106 * Keys accessed through the 'Fn' key
107 * The Fn key does not produce a key-up sequence. So, the first
108 * time the user presses it, it will be key-down event. The key
109 * stays down until the user presses it again.
110 */
111#define NUM_FN_KEYS 56
112static unsigned char fn_keys[NUM_FN_KEYS] = {
113 0,0,0,0,0,0,0,0, /* 0 7 */
114 8,9,10,93,0,0,0,0, /* 8 15 */
115 0,0,0,0,0,0,0,5, /* 16 23 */
116 6,7,91,0,0,0,0,0, /* 24 31 */
117 0,0,0,0,0,2,3,4, /* 32 39 */
118 92,0,0,0,0,0,0,0, /* 40 47 */
119 0,0,0,0,11,0,94,95 /* 48 55 */
120
121};
122
123void __init init_qtronix_990P_kbd(void)
124{
125 int retval;
126
127 cir = (struct cir_port *)kmalloc(sizeof(struct cir_port), GFP_KERNEL);
128 if (!cir) {
129 printk("Unable to initialize Qtronix keyboard\n");
130 return;
131 }
132
133 /*
134 * revisit
135 * this should be programmable, somehow by the, by the user.
136 */
137 cir->port = KBD_CIR_PORT;
138 cir->baud_rate = 0x1d;
139 cir->rdwos = 0;
140 cir->rxdcr = 0x3;
141 cir->hcfs = 0;
142 cir->fifo_tl = 0;
143 cir->cfq = 0x1d;
144 cir_port_init(cir);
145
146 retval = request_irq(IT8172_CIR0_IRQ, kbd_int_handler,
147 (unsigned long )(IRQF_DISABLED|IRQF_SHARED),
148 (const char *)"Qtronix IR Keyboard", (void *)cir);
149
150 if (retval) {
151 printk("unable to allocate cir %d irq %d\n",
152 cir->port, IT8172_CIR0_IRQ);
153 }
154#ifdef CONFIG_PSMOUSE
155 psaux_init();
156#endif
157}
158
159static inline unsigned char BitReverse(unsigned short key)
160{
161 unsigned char rkey = 0;
162 rkey |= (key & 0x1) << 7;
163 rkey |= (key & 0x2) << 5;
164 rkey |= (key & 0x4) << 3;
165 rkey |= (key & 0x8) << 1;
166 rkey |= (key & 0x10) >> 1;
167 rkey |= (key & 0x20) >> 3;
168 rkey |= (key & 0x40) >> 5;
169 rkey |= (key & 0x80) >> 7;
170 return rkey;
171
172}
173
174
175static inline u_int8_t UpperByte(u_int8_t data)
176{
177 return (data >> 4);
178}
179
180
181static inline u_int8_t LowerByte(u_int8_t data)
182{
183 return (data & 0xF);
184}
185
186
187int CheckSumOk(u_int8_t byte1, u_int8_t byte2,
188 u_int8_t byte3, u_int8_t byte4, u_int8_t byte5)
189{
190 u_int8_t CheckSum;
191
192 CheckSum = (byte1 & 0x0F) + byte2 + byte3 + byte4 + byte5;
193 if ( LowerByte(UpperByte(CheckSum) + LowerByte(CheckSum)) != UpperByte(byte1) )
194 return 0;
195 else
196 return 1;
197}
198
199
200static void kbd_int_handler(int irq, void *dev_id, struct pt_regs *regs)
201{
202 struct cir_port *cir;
203 int j;
204 unsigned char int_status;
205
206 cir = (struct cir_port *)dev_id;
207 int_status = get_int_status(cir);
208 if (int_status & 0x4) {
209 clear_fifo(cir);
210 return;
211 }
212
213 while (cir_get_rx_count(cir)) {
214
215 cir_data[data_index] = cir_read_data(cir);
216
217 if (data_index == 0) {/* expecting first byte */
218 if (cir_data[data_index] != leading1) {
219 //printk("!leading byte %x\n", cir_data[data_index]);
220 set_rx_active(cir);
221 clear_fifo(cir);
222 continue;
223 }
224 }
225 if (data_index == 1) {
226 if ((cir_data[data_index] & 0xf) != leading2) {
227 set_rx_active(cir);
228 data_index = 0; /* start over */
229 clear_fifo(cir);
230 continue;
231 }
232 }
233
234 if ( (cir_data[data_index] == 0xff)) { /* last byte */
235 //printk("data_index %d\n", data_index);
236 set_rx_active(cir);
237#if 0
238 for (j=0; j<=data_index; j++) {
239 printk("rx_data %d: %x\n", j, cir_data[j]);
240 }
241#endif
242 data_index = 0;
243 handle_data(cir_data);
244 return;
245 }
246 else if (data_index>16) {
247 set_rx_active(cir);
248#if 0
249 printk("warning: data_index %d\n", data_index);
250 for (j=0; j<=data_index; j++) {
251 printk("rx_data %d: %x\n", j, cir_data[j]);
252 }
253#endif
254 data_index = 0;
255 clear_fifo(cir);
256 return;
257 }
258 data_index++;
259 }
260}
261
262
263#define NUM_KBD_BYTES 5
264static int handle_data(unsigned char *p_data)
265{
266 u_int32_t bit_bucket;
267 u_int32_t i, j;
268 u_int32_t got_bits, next_byte;
269 int down = 0;
270
271 /* Reorganize the bit stream */
272 for (i=0; i<16; i++)
273 p_data[i] = BitReverse(~p_data[i]);
274
275 /*
276 * We've already previously checked that p_data[0]
277 * is equal to leading1 and that (p_data[1] & 0xf)
278 * is equal to leading2. These twelve bits are the
279 * leader code. We can now throw them away (the 12
280 * bits) and continue parsing the stream.
281 */
282 bit_bucket = p_data[1] << 12;
283 got_bits = 4;
284 next_byte = 2;
285
286 /*
287 * Process four bits at a time
288 */
289 for (i=0; i<NUM_KBD_BYTES; i++) {
290
291 kbdbytes[i]=0;
292
293 for (j=0; j<8; j++) /* 8 bits per byte */
294 {
295 if (got_bits < 4) {
296 bit_bucket |= (p_data[next_byte++] << (8 - got_bits));
297 got_bits += 8;
298 }
299
300 if ((bit_bucket & 0xF000) == 0x8000) {
301 /* Convert 1000b to 1 */
302 kbdbytes[i] = 0x80 | (kbdbytes[i] >> 1);
303 got_bits -= 4;
304 bit_bucket = bit_bucket << 4;
305 }
306 else if ((bit_bucket & 0xC000) == 0x8000) {
307 /* Convert 10b to 0 */
308 kbdbytes[i] = kbdbytes[i] >> 1;
309 got_bits -= 2;
310 bit_bucket = bit_bucket << 2;
311 }
312 else {
313 /* bad serial stream */
314 return 1;
315 }
316
317 if (next_byte > 16) {
318 //printk("error: too many bytes\n");
319 return 1;
320 }
321 }
322 }
323
324
325 if (!CheckSumOk(kbdbytes[0], kbdbytes[1],
326 kbdbytes[2], kbdbytes[3], kbdbytes[4])) {
327 //printk("checksum failed\n");
328 return 1;
329 }
330
331 if (kbdbytes[1] & 0x08) {
332 //printk("m: %x %x %x\n", kbdbytes[1], kbdbytes[2], kbdbytes[3]);
333 handle_mouse_event(kbdbytes[1]);
334 handle_mouse_event(kbdbytes[2]);
335 handle_mouse_event(kbdbytes[3]);
336 }
337 else {
338 if (kbdbytes[2] == 0) down = 1;
339#if 0
340 if (down)
341 printk("down %d\n", kbdbytes[3]);
342 else
343 printk("up %d\n", kbdbytes[3]);
344#endif
345 handle_keyboard_event(kbdbytes[3], down);
346 }
347 return 0;
348}
349
350
351DEFINE_SPINLOCK(kbd_controller_lock);
352static unsigned char handle_kbd_event(void);
353
354
355int kbd_setkeycode(unsigned int scancode, unsigned int keycode)
356{
357 printk("kbd_setkeycode scancode %x keycode %x\n", scancode, keycode);
358 return 0;
359}
360
361int kbd_getkeycode(unsigned int scancode)
362{
363 return scancode;
364}
365
366
367int kbd_translate(unsigned char scancode, unsigned char *keycode,
368 char raw_mode)
369{
370 static int prev_scancode = 0;
371
372 if (scancode == 0x00 || scancode == 0xff) {
373 prev_scancode = 0;
374 return 0;
375 }
376
377 /* todo */
378 if (!prev_scancode && scancode == 160) { /* Fn key down */
379 //printk("Fn key down\n");
380 prev_scancode = 160;
381 return 0;
382 }
383 else if (prev_scancode && scancode == 160) { /* Fn key up */
384 //printk("Fn key up\n");
385 prev_scancode = 0;
386 return 0;
387 }
388
389 /* todo */
390 if (prev_scancode == 160) {
391 if (scancode <= NUM_FN_KEYS) {
392 *keycode = fn_keys[scancode];
393 //printk("fn keycode %d\n", *keycode);
394 }
395 else
396 return 0;
397 }
398 else if (scancode <= 127) {
399 *keycode = scancode;
400 }
401 else
402 return 0;
403
404
405 return 1;
406}
407
408char kbd_unexpected_up(unsigned char keycode)
409{
410 //printk("kbd_unexpected_up\n");
411 return 0;
412}
413
414static unsigned char kbd_exists = 1;
415
416static inline void handle_keyboard_event(unsigned char scancode, int down)
417{
418 kbd_exists = 1;
419 handle_scancode(scancode, down);
420 tasklet_schedule(&keyboard_tasklet);
421}
422
423
424void kbd_leds(unsigned char leds)
425{
426}
427
428/* dummy */
429void kbd_init_hw(void)
430{
431}
432
433
434
435static inline void handle_mouse_event(unsigned char scancode)
436{
437 if(scancode == AUX_RECONNECT){
438 queue->head = queue->tail = 0; /* Flush input queue */
439 // __aux_write_ack(AUX_ENABLE_DEV); /* ping the mouse :) */
440 return;
441 }
442
443 if (aux_count) {
444 int head = queue->head;
445
446 queue->buf[head] = scancode;
447 head = (head + 1) & (AUX_BUF_SIZE-1);
448 if (head != queue->tail) {
449 queue->head = head;
450 kill_fasync(&queue->fasync, SIGIO, POLL_IN);
451 wake_up_interruptible(&queue->proc_list);
452 }
453 }
454}
455
456static unsigned char get_from_queue(void)
457{
458 unsigned char result;
459 unsigned long flags;
460
461 spin_lock_irqsave(&kbd_controller_lock, flags);
462 result = queue->buf[queue->tail];
463 queue->tail = (queue->tail + 1) & (AUX_BUF_SIZE-1);
464 spin_unlock_irqrestore(&kbd_controller_lock, flags);
465 return result;
466}
467
468
469static inline int queue_empty(void)
470{
471 return queue->head == queue->tail;
472}
473
474static int fasync_aux(int fd, struct file *filp, int on)
475{
476 int retval;
477
478 //printk("fasync_aux\n");
479 retval = fasync_helper(fd, filp, on, &queue->fasync);
480 if (retval < 0)
481 return retval;
482 return 0;
483}
484
485
486/*
487 * Random magic cookie for the aux device
488 */
489#define AUX_DEV ((void *)queue)
490
491static int release_aux(struct inode * inode, struct file * file)
492{
493 fasync_aux(-1, file, 0);
494 aux_count--;
495 return 0;
496}
497
498static int open_aux(struct inode * inode, struct file * file)
499{
500 if (aux_count++) {
501 return 0;
502 }
503 queue->head = queue->tail = 0; /* Flush input queue */
504 return 0;
505}
506
507/*
508 * Put bytes from input queue to buffer.
509 */
510
511static ssize_t read_aux(struct file * file, char * buffer,
512 size_t count, loff_t *ppos)
513{
514 DECLARE_WAITQUEUE(wait, current);
515 ssize_t i = count;
516 unsigned char c;
517
518 if (queue_empty()) {
519 if (file->f_flags & O_NONBLOCK)
520 return -EAGAIN;
521 add_wait_queue(&queue->proc_list, &wait);
522repeat:
523 set_current_state(TASK_INTERRUPTIBLE);
524 if (queue_empty() && !signal_pending(current)) {
525 schedule();
526 goto repeat;
527 }
528 current->state = TASK_RUNNING;
529 remove_wait_queue(&queue->proc_list, &wait);
530 }
531 while (i > 0 && !queue_empty()) {
532 c = get_from_queue();
533 put_user(c, buffer++);
534 i--;
535 }
536 if (count-i) {
537 struct inode *inode = file->f_dentry->d_inode;
538 inode->i_atime = current_fs_time(inode->i_sb);
539 return count-i;
540 }
541 if (signal_pending(current))
542 return -ERESTARTSYS;
543 return 0;
544}
545
546/*
547 * Write to the aux device.
548 */
549
550static ssize_t write_aux(struct file * file, const char * buffer,
551 size_t count, loff_t *ppos)
552{
553 /*
554 * The ITE boards this was tested on did not have the
555 * transmit wires connected.
556 */
557 return count;
558}
559
560static unsigned int aux_poll(struct file *file, poll_table * wait)
561{
562 poll_wait(file, &queue->proc_list, wait);
563 if (!queue_empty())
564 return POLLIN | POLLRDNORM;
565 return 0;
566}
567
568struct file_operations psaux_fops = {
569 .read = read_aux,
570 .write = write_aux,
571 .poll = aux_poll,
572 .open = open_aux,
573 .release = release_aux,
574 .fasync = fasync_aux,
575};
576
577/*
578 * Initialize driver.
579 */
580static struct miscdevice psaux_mouse = {
581 PSMOUSE_MINOR, "psaux", &psaux_fops
582};
583
584static int __init psaux_init(void)
585{
586 int retval;
587
588 retval = misc_register(&psaux_mouse);
589 if(retval < 0)
590 return retval;
591
592 queue = (struct aux_queue *) kmalloc(sizeof(*queue), GFP_KERNEL);
593 if (!queue) {
594 misc_deregister(&psaux_mouse);
595 return -ENOMEM;
596 }
597
598 memset(queue, 0, sizeof(*queue));
599 queue->head = queue->tail = 0;
600 init_waitqueue_head(&queue->proc_list);
601
602 return 0;
603}
604module_init(init_qtronix_990P_kbd);
605#endif
diff --git a/drivers/char/rio/func.h b/drivers/char/rio/func.h
index 6b039186856d..9e7283bd81a0 100644
--- a/drivers/char/rio/func.h
+++ b/drivers/char/rio/func.h
@@ -88,7 +88,7 @@ void RIOHostReset(unsigned int, struct DpRam __iomem *, unsigned int);
88 88
89/* riointr.c */ 89/* riointr.c */
90void RIOTxEnable(char *); 90void RIOTxEnable(char *);
91void RIOServiceHost(struct rio_info *, struct Host *, int); 91void RIOServiceHost(struct rio_info *, struct Host *);
92int riotproc(struct rio_info *, struct ttystatics *, int, int); 92int riotproc(struct rio_info *, struct ttystatics *, int, int);
93 93
94/* rioparam.c */ 94/* rioparam.c */
diff --git a/drivers/char/rio/rio_linux.c b/drivers/char/rio/rio_linux.c
index 202a3b0945b7..c382df0f82f6 100644
--- a/drivers/char/rio/rio_linux.c
+++ b/drivers/char/rio/rio_linux.c
@@ -363,12 +363,12 @@ 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();
370 370
371 HostP = (struct Host *) ptr; /* &p->RIOHosts[(long)ptr]; */ 371 HostP = ptr; /* &p->RIOHosts[(long)ptr]; */
372 rio_dprintk(RIO_DEBUG_IFLOW, "rio: enter rio_interrupt (%d/%d)\n", irq, HostP->Ivec); 372 rio_dprintk(RIO_DEBUG_IFLOW, "rio: enter rio_interrupt (%d/%d)\n", irq, HostP->Ivec);
373 373
374 /* AAargh! The order in which to do these things is essential and 374 /* AAargh! The order in which to do these things is essential and
@@ -402,7 +402,7 @@ static irqreturn_t rio_interrupt(int irq, void *ptr, struct pt_regs *regs)
402 return IRQ_HANDLED; 402 return IRQ_HANDLED;
403 } 403 }
404 404
405 RIOServiceHost(p, HostP, irq); 405 RIOServiceHost(p, HostP);
406 406
407 rio_dprintk(RIO_DEBUG_IFLOW, "riointr() doing host %p type %d\n", ptr, HostP->Type); 407 rio_dprintk(RIO_DEBUG_IFLOW, "riointr() doing host %p type %d\n", ptr, HostP->Type);
408 408
@@ -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/rio/riointr.c b/drivers/char/rio/riointr.c
index 0bd09040a5c0..eeda40c5e189 100644
--- a/drivers/char/rio/riointr.c
+++ b/drivers/char/rio/riointr.c
@@ -181,7 +181,7 @@ static int RupIntr;
181static int RxIntr; 181static int RxIntr;
182static int TxIntr; 182static int TxIntr;
183 183
184void RIOServiceHost(struct rio_info *p, struct Host *HostP, int From) 184void RIOServiceHost(struct rio_info *p, struct Host *HostP)
185{ 185{
186 rio_spin_lock(&HostP->HostLock); 186 rio_spin_lock(&HostP->HostLock);
187 if ((HostP->Flags & RUN_STATE) != RC_RUNNING) { 187 if ((HostP->Flags & RUN_STATE) != RC_RUNNING) {
diff --git a/drivers/char/riscom8.c b/drivers/char/riscom8.c
index b0ab3f28cc6a..5ab32b38f45a 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;
@@ -559,11 +559,10 @@ static irqreturn_t rc_interrupt(int irq, void * dev_id, struct pt_regs * regs)
559 int handled = 0; 559 int handled = 0;
560 560
561 bp = IRQ_to_board[irq]; 561 bp = IRQ_to_board[irq];
562 562
563 if (!bp || !(bp->flags & RC_BOARD_ACTIVE)) { 563 if (!(bp->flags & RC_BOARD_ACTIVE))
564 return IRQ_NONE; 564 return IRQ_NONE;
565 } 565
566
567 while ((++loop < 16) && ((status = ~(rc_in(bp, RC_BSR))) & 566 while ((++loop < 16) && ((status = ~(rc_in(bp, RC_BSR))) &
568 (RC_BSR_TOUT | RC_BSR_TINT | 567 (RC_BSR_TOUT | RC_BSR_TINT |
569 RC_BSR_MINT | RC_BSR_RINT))) { 568 RC_BSR_MINT | RC_BSR_RINT))) {
diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c
index 656f8c0ca52e..66a7385bc34a 100644
--- a/drivers/char/rtc.c
+++ b/drivers/char/rtc.c
@@ -35,13 +35,13 @@
35 * 1.09a Pete Zaitcev: Sun SPARC 35 * 1.09a Pete Zaitcev: Sun SPARC
36 * 1.09b Jeff Garzik: Modularize, init cleanup 36 * 1.09b Jeff Garzik: Modularize, init cleanup
37 * 1.09c Jeff Garzik: SMP cleanup 37 * 1.09c Jeff Garzik: SMP cleanup
38 * 1.10 Paul Barton-Davis: add support for async I/O 38 * 1.10 Paul Barton-Davis: add support for async I/O
39 * 1.10a Andrea Arcangeli: Alpha updates 39 * 1.10a Andrea Arcangeli: Alpha updates
40 * 1.10b Andrew Morton: SMP lock fix 40 * 1.10b Andrew Morton: SMP lock fix
41 * 1.10c Cesar Barros: SMP locking fixes and cleanup 41 * 1.10c Cesar Barros: SMP locking fixes and cleanup
42 * 1.10d Paul Gortmaker: delete paranoia check in rtc_exit 42 * 1.10d Paul Gortmaker: delete paranoia check in rtc_exit
43 * 1.10e Maciej W. Rozycki: Handle DECstation's year weirdness. 43 * 1.10e Maciej W. Rozycki: Handle DECstation's year weirdness.
44 * 1.11 Takashi Iwai: Kernel access functions 44 * 1.11 Takashi Iwai: Kernel access functions
45 * rtc_register/rtc_unregister/rtc_control 45 * rtc_register/rtc_unregister/rtc_control
46 * 1.11a Daniele Bellucci: Audit create_proc_read_entry in rtc_init 46 * 1.11a Daniele Bellucci: Audit create_proc_read_entry in rtc_init
47 * 1.12 Venkatesh Pallipadi: Hooks for emulating rtc on HPET base-timer 47 * 1.12 Venkatesh Pallipadi: Hooks for emulating rtc on HPET base-timer
@@ -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..461bfe0234c9 100644
--- a/drivers/char/serial167.c
+++ b/drivers/char/serial167.c
@@ -62,6 +62,7 @@
62#include <linux/console.h> 62#include <linux/console.h>
63#include <linux/module.h> 63#include <linux/module.h>
64#include <linux/bitops.h> 64#include <linux/bitops.h>
65#include <linux/tty_flip.h>
65 66
66#include <asm/system.h> 67#include <asm/system.h>
67#include <asm/io.h> 68#include <asm/io.h>
@@ -370,7 +371,7 @@ cy_sched_event(struct cyclades_port *info, int event)
370 received, out buffer empty, modem change, etc. 371 received, out buffer empty, modem change, etc.
371 */ 372 */
372static irqreturn_t 373static irqreturn_t
373cd2401_rxerr_interrupt(int irq, void *dev_id, struct pt_regs *fp) 374cd2401_rxerr_interrupt(int irq, void *dev_id)
374{ 375{
375 struct tty_struct *tty; 376 struct tty_struct *tty;
376 struct cyclades_port *info; 377 struct cyclades_port *info;
@@ -427,8 +428,9 @@ cd2401_rxerr_interrupt(int irq, void *dev_id, struct pt_regs *fp)
427 overflowing, we still loose 428 overflowing, we still loose
428 the next incoming character. 429 the next incoming character.
429 */ 430 */
430 tty_insert_flip_char(tty, data, TTY_NORMAL); 431 if (tty_buffer_request_room(tty, 1) != 0){
431 } 432 tty_insert_flip_char(tty, data, TTY_FRAME);
433 }
432 /* These two conditions may imply */ 434 /* These two conditions may imply */
433 /* a normal read should be done. */ 435 /* a normal read should be done. */
434 /* else if(data & CyTIMEOUT) */ 436 /* else if(data & CyTIMEOUT) */
@@ -437,21 +439,21 @@ cd2401_rxerr_interrupt(int irq, void *dev_id, struct pt_regs *fp)
437 tty_insert_flip_char(tty, 0, TTY_NORMAL); 439 tty_insert_flip_char(tty, 0, TTY_NORMAL);
438 } 440 }
439 }else{ 441 }else{
440 tty_insert_flip_char(tty, data, TTY_NORMAL); 442 tty_insert_flip_char(tty, data, TTY_NORMAL);
441 } 443 }
442 }else{ 444 }else{
443 /* there was a software buffer overrun 445 /* there was a software buffer overrun
444 and nothing could be done about it!!! */ 446 and nothing could be done about it!!! */
445 } 447 }
446 } 448 }
447 schedule_delayed_work(&tty->flip.work, 1); 449 tty_schedule_flip(tty);
448 /* end of service */ 450 /* end of service */
449 base_addr[CyREOIR] = rfoc ? 0 : CyNOTRANS; 451 base_addr[CyREOIR] = rfoc ? 0 : CyNOTRANS;
450 return IRQ_HANDLED; 452 return IRQ_HANDLED;
451} /* cy_rxerr_interrupt */ 453} /* cy_rxerr_interrupt */
452 454
453static irqreturn_t 455static irqreturn_t
454cd2401_modem_interrupt(int irq, void *dev_id, struct pt_regs *fp) 456cd2401_modem_interrupt(int irq, void *dev_id)
455{ 457{
456 struct cyclades_port *info; 458 struct cyclades_port *info;
457 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR; 459 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR;
@@ -506,7 +508,7 @@ cd2401_modem_interrupt(int irq, void *dev_id, struct pt_regs *fp)
506} /* cy_modem_interrupt */ 508} /* cy_modem_interrupt */
507 509
508static irqreturn_t 510static irqreturn_t
509cd2401_tx_interrupt(int irq, void *dev_id, struct pt_regs *fp) 511cd2401_tx_interrupt(int irq, void *dev_id)
510{ 512{
511 struct cyclades_port *info; 513 struct cyclades_port *info;
512 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR; 514 volatile unsigned char *base_addr = (unsigned char *)BASE_ADDR;
@@ -626,7 +628,7 @@ cd2401_tx_interrupt(int irq, void *dev_id, struct pt_regs *fp)
626} /* cy_tx_interrupt */ 628} /* cy_tx_interrupt */
627 629
628static irqreturn_t 630static irqreturn_t
629cd2401_rx_interrupt(int irq, void *dev_id, struct pt_regs *fp) 631cd2401_rx_interrupt(int irq, void *dev_id)
630{ 632{
631 struct tty_struct *tty; 633 struct tty_struct *tty;
632 struct cyclades_port *info; 634 struct cyclades_port *info;
@@ -635,6 +637,7 @@ cd2401_rx_interrupt(int irq, void *dev_id, struct pt_regs *fp)
635 char data; 637 char data;
636 int char_count; 638 int char_count;
637 int save_cnt; 639 int save_cnt;
640 int len;
638 641
639 /* determine the channel and change to that context */ 642 /* determine the channel and change to that context */
640 channel = (u_short ) (base_addr[CyLICR] >> 2); 643 channel = (u_short ) (base_addr[CyLICR] >> 2);
@@ -667,14 +670,15 @@ cd2401_rx_interrupt(int irq, void *dev_id, struct pt_regs *fp)
667 info->mon.char_max = char_count; 670 info->mon.char_max = char_count;
668 info->mon.char_last = char_count; 671 info->mon.char_last = char_count;
669#endif 672#endif
670 while(char_count--){ 673 len = tty_buffer_request_room(tty, char_count);
674 while(len--){
671 data = base_addr[CyRDR]; 675 data = base_addr[CyRDR];
672 tty_insert_flip_char(tty, data, TTY_NORMAL); 676 tty_insert_flip_char(tty, data, TTY_NORMAL);
673#ifdef CYCLOM_16Y_HACK 677#ifdef CYCLOM_16Y_HACK
674 udelay(10L); 678 udelay(10L);
675#endif 679#endif
676 } 680 }
677 schedule_delayed_work(&tty->flip.work, 1); 681 tty_schedule_flip(tty);
678 } 682 }
679 /* end of service */ 683 /* end of service */
680 base_addr[CyREOIR] = save_cnt ? 0 : CyNOTRANS; 684 base_addr[CyREOIR] = save_cnt ? 0 : CyNOTRANS;
@@ -1422,7 +1426,6 @@ cy_tiocmget(struct tty_struct *tty, struct file *file)
1422 volatile unsigned char *base_addr = (u_char *)BASE_ADDR; 1426 volatile unsigned char *base_addr = (u_char *)BASE_ADDR;
1423 unsigned long flags; 1427 unsigned long flags;
1424 unsigned char status; 1428 unsigned char status;
1425 unsigned int result;
1426 1429
1427 channel = info->line; 1430 channel = info->line;
1428 1431
@@ -1446,7 +1449,6 @@ cy_tiocmset(struct tty_struct *tty, struct file *file,
1446 int channel; 1449 int channel;
1447 volatile unsigned char *base_addr = (u_char *)BASE_ADDR; 1450 volatile unsigned char *base_addr = (u_char *)BASE_ADDR;
1448 unsigned long flags; 1451 unsigned long flags;
1449 unsigned int arg;
1450 1452
1451 channel = info->line; 1453 channel = info->line;
1452 1454
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..d0b88d0e87fd 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;
@@ -912,7 +912,7 @@ static irqreturn_t sx_interrupt(int irq, void *dev_id, struct pt_regs *regs)
912 spin_lock_irqsave(&bp->lock, flags); 912 spin_lock_irqsave(&bp->lock, flags);
913 913
914 dprintk (SX_DEBUG_FLOW, "enter %s port %d room: %ld\n", __FUNCTION__, port_No(sx_get_port(bp, "INT")), SERIAL_XMIT_SIZE - sx_get_port(bp, "ITN")->xmit_cnt - 1); 914 dprintk (SX_DEBUG_FLOW, "enter %s port %d room: %ld\n", __FUNCTION__, port_No(sx_get_port(bp, "INT")), SERIAL_XMIT_SIZE - sx_get_port(bp, "ITN")->xmit_cnt - 1);
915 if (!bp || !(bp->flags & SX_BOARD_ACTIVE)) { 915 if (!(bp->flags & SX_BOARD_ACTIVE)) {
916 dprintk (SX_DEBUG_IRQ, "sx: False interrupt. irq %d.\n", irq); 916 dprintk (SX_DEBUG_IRQ, "sx: False interrupt. irq %d.\n", irq);
917 spin_unlock_irqrestore(&bp->lock, flags); 917 spin_unlock_irqrestore(&bp->lock, flags);
918 func_exit(); 918 func_exit();
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..5f49280779fb 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -35,14 +35,15 @@
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>
41#include <asm/irq_regs.h>
40 42
41/* Whether we react on sysrq keys or just ignore them */ 43/* Whether we react on sysrq keys or just ignore them */
42int sysrq_enabled = 1; 44int sysrq_enabled = 1;
43 45
44static void sysrq_handle_loglevel(int key, struct pt_regs *pt_regs, 46static void sysrq_handle_loglevel(int key, struct tty_struct *tty)
45 struct tty_struct *tty)
46{ 47{
47 int i; 48 int i;
48 i = key - '0'; 49 i = key - '0';
@@ -58,8 +59,7 @@ static struct sysrq_key_op sysrq_loglevel_op = {
58}; 59};
59 60
60#ifdef CONFIG_VT 61#ifdef CONFIG_VT
61static void sysrq_handle_SAK(int key, struct pt_regs *pt_regs, 62static void sysrq_handle_SAK(int key, struct tty_struct *tty)
62 struct tty_struct *tty)
63{ 63{
64 if (tty) 64 if (tty)
65 do_SAK(tty); 65 do_SAK(tty);
@@ -76,8 +76,7 @@ static struct sysrq_key_op sysrq_SAK_op = {
76#endif 76#endif
77 77
78#ifdef CONFIG_VT 78#ifdef CONFIG_VT
79static void sysrq_handle_unraw(int key, struct pt_regs *pt_regs, 79static void sysrq_handle_unraw(int key, struct tty_struct *tty)
80 struct tty_struct *tty)
81{ 80{
82 struct kbd_struct *kbd = &kbd_table[fg_console]; 81 struct kbd_struct *kbd = &kbd_table[fg_console];
83 82
@@ -95,10 +94,9 @@ static struct sysrq_key_op sysrq_unraw_op = {
95#endif /* CONFIG_VT */ 94#endif /* CONFIG_VT */
96 95
97#ifdef CONFIG_KEXEC 96#ifdef CONFIG_KEXEC
98static void sysrq_handle_crashdump(int key, struct pt_regs *pt_regs, 97static void sysrq_handle_crashdump(int key, struct tty_struct *tty)
99 struct tty_struct *tty)
100{ 98{
101 crash_kexec(pt_regs); 99 crash_kexec(get_irq_regs());
102} 100}
103static struct sysrq_key_op sysrq_crashdump_op = { 101static struct sysrq_key_op sysrq_crashdump_op = {
104 .handler = sysrq_handle_crashdump, 102 .handler = sysrq_handle_crashdump,
@@ -110,8 +108,7 @@ static struct sysrq_key_op sysrq_crashdump_op = {
110#define sysrq_crashdump_op (*(struct sysrq_key_op *)0) 108#define sysrq_crashdump_op (*(struct sysrq_key_op *)0)
111#endif 109#endif
112 110
113static void sysrq_handle_reboot(int key, struct pt_regs *pt_regs, 111static void sysrq_handle_reboot(int key, struct tty_struct *tty)
114 struct tty_struct *tty)
115{ 112{
116 lockdep_off(); 113 lockdep_off();
117 local_irq_enable(); 114 local_irq_enable();
@@ -124,8 +121,7 @@ static struct sysrq_key_op sysrq_reboot_op = {
124 .enable_mask = SYSRQ_ENABLE_BOOT, 121 .enable_mask = SYSRQ_ENABLE_BOOT,
125}; 122};
126 123
127static void sysrq_handle_sync(int key, struct pt_regs *pt_regs, 124static void sysrq_handle_sync(int key, struct tty_struct *tty)
128 struct tty_struct *tty)
129{ 125{
130 emergency_sync(); 126 emergency_sync();
131} 127}
@@ -136,8 +132,7 @@ static struct sysrq_key_op sysrq_sync_op = {
136 .enable_mask = SYSRQ_ENABLE_SYNC, 132 .enable_mask = SYSRQ_ENABLE_SYNC,
137}; 133};
138 134
139static void sysrq_handle_mountro(int key, struct pt_regs *pt_regs, 135static void sysrq_handle_mountro(int key, struct tty_struct *tty)
140 struct tty_struct *tty)
141{ 136{
142 emergency_remount(); 137 emergency_remount();
143} 138}
@@ -149,8 +144,7 @@ static struct sysrq_key_op sysrq_mountro_op = {
149}; 144};
150 145
151#ifdef CONFIG_LOCKDEP 146#ifdef CONFIG_LOCKDEP
152static void sysrq_handle_showlocks(int key, struct pt_regs *pt_regs, 147static void sysrq_handle_showlocks(int key, struct tty_struct *tty)
153 struct tty_struct *tty)
154{ 148{
155 debug_show_all_locks(); 149 debug_show_all_locks();
156} 150}
@@ -164,11 +158,11 @@ static struct sysrq_key_op sysrq_showlocks_op = {
164#define sysrq_showlocks_op (*(struct sysrq_key_op *)0) 158#define sysrq_showlocks_op (*(struct sysrq_key_op *)0)
165#endif 159#endif
166 160
167static void sysrq_handle_showregs(int key, struct pt_regs *pt_regs, 161static void sysrq_handle_showregs(int key, struct tty_struct *tty)
168 struct tty_struct *tty)
169{ 162{
170 if (pt_regs) 163 struct pt_regs *regs = get_irq_regs();
171 show_regs(pt_regs); 164 if (regs)
165 show_regs(regs);
172} 166}
173static struct sysrq_key_op sysrq_showregs_op = { 167static struct sysrq_key_op sysrq_showregs_op = {
174 .handler = sysrq_handle_showregs, 168 .handler = sysrq_handle_showregs,
@@ -177,8 +171,7 @@ static struct sysrq_key_op sysrq_showregs_op = {
177 .enable_mask = SYSRQ_ENABLE_DUMP, 171 .enable_mask = SYSRQ_ENABLE_DUMP,
178}; 172};
179 173
180static void sysrq_handle_showstate(int key, struct pt_regs *pt_regs, 174static void sysrq_handle_showstate(int key, struct tty_struct *tty)
181 struct tty_struct *tty)
182{ 175{
183 show_state(); 176 show_state();
184} 177}
@@ -189,8 +182,7 @@ static struct sysrq_key_op sysrq_showstate_op = {
189 .enable_mask = SYSRQ_ENABLE_DUMP, 182 .enable_mask = SYSRQ_ENABLE_DUMP,
190}; 183};
191 184
192static void sysrq_handle_showmem(int key, struct pt_regs *pt_regs, 185static void sysrq_handle_showmem(int key, struct tty_struct *tty)
193 struct tty_struct *tty)
194{ 186{
195 show_mem(); 187 show_mem();
196} 188}
@@ -215,8 +207,7 @@ static void send_sig_all(int sig)
215 } 207 }
216} 208}
217 209
218static void sysrq_handle_term(int key, struct pt_regs *pt_regs, 210static void sysrq_handle_term(int key, struct tty_struct *tty)
219 struct tty_struct *tty)
220{ 211{
221 send_sig_all(SIGTERM); 212 send_sig_all(SIGTERM);
222 console_loglevel = 8; 213 console_loglevel = 8;
@@ -236,8 +227,7 @@ static void moom_callback(void *ignored)
236 227
237static DECLARE_WORK(moom_work, moom_callback, NULL); 228static DECLARE_WORK(moom_work, moom_callback, NULL);
238 229
239static void sysrq_handle_moom(int key, struct pt_regs *pt_regs, 230static void sysrq_handle_moom(int key, struct tty_struct *tty)
240 struct tty_struct *tty)
241{ 231{
242 schedule_work(&moom_work); 232 schedule_work(&moom_work);
243} 233}
@@ -247,8 +237,7 @@ static struct sysrq_key_op sysrq_moom_op = {
247 .action_msg = "Manual OOM execution", 237 .action_msg = "Manual OOM execution",
248}; 238};
249 239
250static void sysrq_handle_kill(int key, struct pt_regs *pt_regs, 240static void sysrq_handle_kill(int key, struct tty_struct *tty)
251 struct tty_struct *tty)
252{ 241{
253 send_sig_all(SIGKILL); 242 send_sig_all(SIGKILL);
254 console_loglevel = 8; 243 console_loglevel = 8;
@@ -260,8 +249,7 @@ static struct sysrq_key_op sysrq_kill_op = {
260 .enable_mask = SYSRQ_ENABLE_SIGNAL, 249 .enable_mask = SYSRQ_ENABLE_SIGNAL,
261}; 250};
262 251
263static void sysrq_handle_unrt(int key, struct pt_regs *pt_regs, 252static void sysrq_handle_unrt(int key, struct tty_struct *tty)
264 struct tty_struct *tty)
265{ 253{
266 normalize_rt_tasks(); 254 normalize_rt_tasks();
267} 255}
@@ -361,8 +349,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 349 * 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 350 * by sysrq key handlers, as they are inside of the lock
363 */ 351 */
364void __handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty, 352void __handle_sysrq(int key, struct tty_struct *tty, int check_mask)
365 int check_mask)
366{ 353{
367 struct sysrq_key_op *op_p; 354 struct sysrq_key_op *op_p;
368 int orig_log_level; 355 int orig_log_level;
@@ -384,7 +371,7 @@ void __handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty,
384 (sysrq_enabled & op_p->enable_mask)) { 371 (sysrq_enabled & op_p->enable_mask)) {
385 printk("%s\n", op_p->action_msg); 372 printk("%s\n", op_p->action_msg);
386 console_loglevel = orig_log_level; 373 console_loglevel = orig_log_level;
387 op_p->handler(key, pt_regs, tty); 374 op_p->handler(key, tty);
388 } else { 375 } else {
389 printk("This sysrq operation is disabled.\n"); 376 printk("This sysrq operation is disabled.\n");
390 } 377 }
@@ -413,11 +400,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 400 * This function is called by the keyboard handler when SysRq is pressed
414 * and any other keycode arrives. 401 * and any other keycode arrives.
415 */ 402 */
416void handle_sysrq(int key, struct pt_regs *pt_regs, struct tty_struct *tty) 403void handle_sysrq(int key, struct tty_struct *tty)
417{ 404{
418 if (!sysrq_enabled) 405 if (!sysrq_enabled)
419 return; 406 return;
420 __handle_sysrq(key, pt_regs, tty, 1); 407 __handle_sysrq(key, tty, 1);
421} 408}
422EXPORT_SYMBOL(handle_sysrq); 409EXPORT_SYMBOL(handle_sysrq);
423 410
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/viocons.c b/drivers/char/viocons.c
index a362ee9c92dd..6d2e314860df 100644
--- a/drivers/char/viocons.c
+++ b/drivers/char/viocons.c
@@ -947,7 +947,7 @@ static void vioHandleData(struct HvLpEvent *event)
947 */ 947 */
948 continue; 948 continue;
949 } else if (vio_sysrq_pressed) { 949 } else if (vio_sysrq_pressed) {
950 handle_sysrq(cevent->data[index], NULL, tty); 950 handle_sysrq(cevent->data[index], tty);
951 vio_sysrq_pressed = 0; 951 vio_sysrq_pressed = 0;
952 /* 952 /*
953 * continue because we don't want to add 953 * continue because we don't want to add
diff --git a/drivers/char/vme_scc.c b/drivers/char/vme_scc.c
index c2ca31eb850b..d0b94dd1af6d 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;
@@ -593,7 +593,7 @@ static void scc_enable_tx_interrupts(void *ptr)
593 local_irq_save(flags); 593 local_irq_save(flags);
594 SCCmod(INT_AND_DMA_REG, 0xff, IDR_TX_INT_ENAB); 594 SCCmod(INT_AND_DMA_REG, 0xff, IDR_TX_INT_ENAB);
595 /* restart the transmitter */ 595 /* restart the transmitter */
596 scc_tx_int (0, port, 0); 596 scc_tx_int (0, port);
597 local_irq_restore(flags); 597 local_irq_restore(flags);
598} 598}
599 599
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..0358419a0e48 100644
--- a/drivers/dma/ioatdma.c
+++ b/drivers/dma/ioatdma.c
@@ -80,7 +80,7 @@ static int enumerate_dma_channels(struct ioat_device *device)
80 80
81static struct ioat_desc_sw *ioat_dma_alloc_descriptor( 81static struct ioat_desc_sw *ioat_dma_alloc_descriptor(
82 struct ioat_dma_chan *ioat_chan, 82 struct ioat_dma_chan *ioat_chan,
83 int flags) 83 gfp_t flags)
84{ 84{
85 struct ioat_dma_descriptor *desc; 85 struct ioat_dma_descriptor *desc;
86 struct ioat_desc_sw *desc_sw; 86 struct ioat_desc_sw *desc_sw;
@@ -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;
@@ -686,7 +686,7 @@ static int __devinit ioat_probe(struct pci_dev *pdev,
686{ 686{
687 int err; 687 int err;
688 unsigned long mmio_start, mmio_len; 688 unsigned long mmio_start, mmio_len;
689 void *reg_base; 689 void __iomem *reg_base;
690 struct ioat_device *device; 690 struct ioat_device *device;
691 691
692 err = pci_enable_device(pdev); 692 err = pci_enable_device(pdev);
diff --git a/drivers/dma/ioatdma.h b/drivers/dma/ioatdma.h
index a5d3b3644160..62b26a9be4c9 100644
--- a/drivers/dma/ioatdma.h
+++ b/drivers/dma/ioatdma.h
@@ -44,7 +44,7 @@ extern struct list_head dma_client_list;
44 44
45struct ioat_device { 45struct ioat_device {
46 struct pci_dev *pdev; 46 struct pci_dev *pdev;
47 void *reg_base; 47 void __iomem *reg_base;
48 struct pci_pool *dma_pool; 48 struct pci_pool *dma_pool;
49 struct pci_pool *completion_pool; 49 struct pci_pool *completion_pool;
50 50
@@ -73,7 +73,7 @@ struct ioat_device {
73 73
74struct ioat_dma_chan { 74struct ioat_dma_chan {
75 75
76 void *reg_base; 76 void __iomem *reg_base;
77 77
78 dma_cookie_t completed_cookie; 78 dma_cookie_t completed_cookie;
79 unsigned long last_completion; 79 unsigned long last_completion;
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/firmware/dcdbas.c b/drivers/firmware/dcdbas.c
index 339f405ff708..8bcb58cd4ac0 100644
--- a/drivers/firmware/dcdbas.c
+++ b/drivers/firmware/dcdbas.c
@@ -559,7 +559,7 @@ static int __devinit dcdbas_probe(struct platform_device *dev)
559 while (--i >= 0) 559 while (--i >= 0)
560 sysfs_remove_bin_file(&dev->dev.kobj, 560 sysfs_remove_bin_file(&dev->dev.kobj,
561 dcdbas_bin_attrs[i]); 561 dcdbas_bin_attrs[i]);
562 sysfs_create_group(&dev->dev.kobj, &dcdbas_attr_group); 562 sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group);
563 return error; 563 return error;
564 } 564 }
565 } 565 }
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-powermac.c b/drivers/i2c/busses/i2c-powermac.c
index a508cb962d24..648d55533d87 100644
--- a/drivers/i2c/busses/i2c-powermac.c
+++ b/drivers/i2c/busses/i2c-powermac.c
@@ -182,9 +182,9 @@ static const struct i2c_algorithm i2c_powermac_algorithm = {
182}; 182};
183 183
184 184
185static int i2c_powermac_remove(struct device *dev) 185static int i2c_powermac_remove(struct platform_device *dev)
186{ 186{
187 struct i2c_adapter *adapter = dev_get_drvdata(dev); 187 struct i2c_adapter *adapter = platform_get_drvdata(dev);
188 struct pmac_i2c_bus *bus = i2c_get_adapdata(adapter); 188 struct pmac_i2c_bus *bus = i2c_get_adapdata(adapter);
189 int rc; 189 int rc;
190 190
@@ -195,16 +195,16 @@ static int i2c_powermac_remove(struct device *dev)
195 if (rc) 195 if (rc)
196 printk("i2c-powermac.c: Failed to remove bus %s !\n", 196 printk("i2c-powermac.c: Failed to remove bus %s !\n",
197 adapter->name); 197 adapter->name);
198 dev_set_drvdata(dev, NULL); 198 platform_set_drvdata(dev, NULL);
199 kfree(adapter); 199 kfree(adapter);
200 200
201 return 0; 201 return 0;
202} 202}
203 203
204 204
205static int i2c_powermac_probe(struct device *dev) 205static int __devexit i2c_powermac_probe(struct platform_device *dev)
206{ 206{
207 struct pmac_i2c_bus *bus = dev->platform_data; 207 struct pmac_i2c_bus *bus = dev->dev.platform_data;
208 struct device_node *parent = NULL; 208 struct device_node *parent = NULL;
209 struct i2c_adapter *adapter; 209 struct i2c_adapter *adapter;
210 char name[32]; 210 char name[32];
@@ -246,11 +246,11 @@ static int i2c_powermac_probe(struct device *dev)
246 printk(KERN_ERR "i2c-powermac: can't allocate inteface !\n"); 246 printk(KERN_ERR "i2c-powermac: can't allocate inteface !\n");
247 return -ENOMEM; 247 return -ENOMEM;
248 } 248 }
249 dev_set_drvdata(dev, adapter); 249 platform_set_drvdata(dev, adapter);
250 strcpy(adapter->name, name); 250 strcpy(adapter->name, name);
251 adapter->algo = &i2c_powermac_algorithm; 251 adapter->algo = &i2c_powermac_algorithm;
252 i2c_set_adapdata(adapter, bus); 252 i2c_set_adapdata(adapter, bus);
253 adapter->dev.parent = dev; 253 adapter->dev.parent = &dev->dev;
254 pmac_i2c_attach_adapter(bus, adapter); 254 pmac_i2c_attach_adapter(bus, adapter);
255 rc = i2c_add_adapter(adapter); 255 rc = i2c_add_adapter(adapter);
256 if (rc) { 256 if (rc) {
@@ -265,23 +265,25 @@ static int i2c_powermac_probe(struct device *dev)
265} 265}
266 266
267 267
268static struct device_driver i2c_powermac_driver = { 268static struct platform_driver i2c_powermac_driver = {
269 .name = "i2c-powermac",
270 .bus = &platform_bus_type,
271 .probe = i2c_powermac_probe, 269 .probe = i2c_powermac_probe,
272 .remove = i2c_powermac_remove, 270 .remove = __devexit_p(i2c_powermac_remove),
271 .driver = {
272 .name = "i2c-powermac",
273 .bus = &platform_bus_type,
274 },
273}; 275};
274 276
275static int __init i2c_powermac_init(void) 277static int __init i2c_powermac_init(void)
276{ 278{
277 driver_register(&i2c_powermac_driver); 279 platform_driver_register(&i2c_powermac_driver);
278 return 0; 280 return 0;
279} 281}
280 282
281 283
282static void __exit i2c_powermac_cleanup(void) 284static void __exit i2c_powermac_cleanup(void)
283{ 285{
284 driver_unregister(&i2c_powermac_driver); 286 platform_driver_unregister(&i2c_powermac_driver);
285} 287}
286 288
287module_init(i2c_powermac_init); 289module_init(i2c_powermac_init);
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/ide/mips/swarm.c b/drivers/ide/mips/swarm.c
index 66f6064f4640..09c9e7936b0d 100644
--- a/drivers/ide/mips/swarm.c
+++ b/drivers/ide/mips/swarm.c
@@ -4,6 +4,7 @@
4 * Author: Manish Lachwani, mlachwani@mvista.com 4 * Author: Manish Lachwani, mlachwani@mvista.com
5 * Copyright (C) 2004 MIPS Technologies, Inc. All rights reserved. 5 * Copyright (C) 2004 MIPS Technologies, Inc. All rights reserved.
6 * Author: Maciej W. Rozycki <macro@mips.com> 6 * Author: Maciej W. Rozycki <macro@mips.com>
7 * Copyright (c) 2006 Maciej W. Rozycki
7 * 8 *
8 * This program is free software; you can redistribute it and/or 9 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License 10 * modify it under the terms of the GNU General Public License
@@ -127,6 +128,7 @@ static int __devinit swarm_ide_probe(struct device *dev)
127 memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports)); 128 memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports));
128 hwif->irq = hwif->hw.irq; 129 hwif->irq = hwif->hw.irq;
129 130
131 probe_hwif_init(hwif);
130 dev_set_drvdata(dev, hwif); 132 dev_set_drvdata(dev, hwif);
131 133
132 return 0; 134 return 0;
diff --git a/drivers/ieee1394/nodemgr.c b/drivers/ieee1394/nodemgr.c
index 3e7974c57443..8e7b83f84485 100644
--- a/drivers/ieee1394/nodemgr.c
+++ b/drivers/ieee1394/nodemgr.c
@@ -1614,7 +1614,7 @@ static int nodemgr_host_thread(void *__hi)
1614{ 1614{
1615 struct host_info *hi = (struct host_info *)__hi; 1615 struct host_info *hi = (struct host_info *)__hi;
1616 struct hpsb_host *host = hi->host; 1616 struct hpsb_host *host = hi->host;
1617 unsigned int g, generation = get_hpsb_generation(host) - 1; 1617 unsigned int g, generation = 0;
1618 int i, reset_cycles = 0; 1618 int i, reset_cycles = 0;
1619 1619
1620 /* Setup our device-model entries */ 1620 /* Setup our device-model entries */
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/core/cm.c b/drivers/infiniband/core/cm.c
index f35fcc4c0638..25b1018a476c 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -75,6 +75,7 @@ static struct ib_cm {
75 struct rb_root remote_sidr_table; 75 struct rb_root remote_sidr_table;
76 struct idr local_id_table; 76 struct idr local_id_table;
77 __be32 random_id_operand; 77 __be32 random_id_operand;
78 struct list_head timewait_list;
78 struct workqueue_struct *wq; 79 struct workqueue_struct *wq;
79} cm; 80} cm;
80 81
@@ -112,6 +113,7 @@ struct cm_work {
112 113
113struct cm_timewait_info { 114struct cm_timewait_info {
114 struct cm_work work; /* Must be first. */ 115 struct cm_work work; /* Must be first. */
116 struct list_head list;
115 struct rb_node remote_qp_node; 117 struct rb_node remote_qp_node;
116 struct rb_node remote_id_node; 118 struct rb_node remote_id_node;
117 __be64 remote_ca_guid; 119 __be64 remote_ca_guid;
@@ -647,13 +649,6 @@ static inline int cm_convert_to_ms(int iba_time)
647 649
648static void cm_cleanup_timewait(struct cm_timewait_info *timewait_info) 650static void cm_cleanup_timewait(struct cm_timewait_info *timewait_info)
649{ 651{
650 unsigned long flags;
651
652 if (!timewait_info->inserted_remote_id &&
653 !timewait_info->inserted_remote_qp)
654 return;
655
656 spin_lock_irqsave(&cm.lock, flags);
657 if (timewait_info->inserted_remote_id) { 652 if (timewait_info->inserted_remote_id) {
658 rb_erase(&timewait_info->remote_id_node, &cm.remote_id_table); 653 rb_erase(&timewait_info->remote_id_node, &cm.remote_id_table);
659 timewait_info->inserted_remote_id = 0; 654 timewait_info->inserted_remote_id = 0;
@@ -663,7 +658,6 @@ static void cm_cleanup_timewait(struct cm_timewait_info *timewait_info)
663 rb_erase(&timewait_info->remote_qp_node, &cm.remote_qp_table); 658 rb_erase(&timewait_info->remote_qp_node, &cm.remote_qp_table);
664 timewait_info->inserted_remote_qp = 0; 659 timewait_info->inserted_remote_qp = 0;
665 } 660 }
666 spin_unlock_irqrestore(&cm.lock, flags);
667} 661}
668 662
669static struct cm_timewait_info * cm_create_timewait_info(__be32 local_id) 663static struct cm_timewait_info * cm_create_timewait_info(__be32 local_id)
@@ -684,8 +678,12 @@ static struct cm_timewait_info * cm_create_timewait_info(__be32 local_id)
684static void cm_enter_timewait(struct cm_id_private *cm_id_priv) 678static void cm_enter_timewait(struct cm_id_private *cm_id_priv)
685{ 679{
686 int wait_time; 680 int wait_time;
681 unsigned long flags;
687 682
683 spin_lock_irqsave(&cm.lock, flags);
688 cm_cleanup_timewait(cm_id_priv->timewait_info); 684 cm_cleanup_timewait(cm_id_priv->timewait_info);
685 list_add_tail(&cm_id_priv->timewait_info->list, &cm.timewait_list);
686 spin_unlock_irqrestore(&cm.lock, flags);
689 687
690 /* 688 /*
691 * The cm_id could be destroyed by the user before we exit timewait. 689 * The cm_id could be destroyed by the user before we exit timewait.
@@ -701,9 +699,13 @@ static void cm_enter_timewait(struct cm_id_private *cm_id_priv)
701 699
702static void cm_reset_to_idle(struct cm_id_private *cm_id_priv) 700static void cm_reset_to_idle(struct cm_id_private *cm_id_priv)
703{ 701{
702 unsigned long flags;
703
704 cm_id_priv->id.state = IB_CM_IDLE; 704 cm_id_priv->id.state = IB_CM_IDLE;
705 if (cm_id_priv->timewait_info) { 705 if (cm_id_priv->timewait_info) {
706 spin_lock_irqsave(&cm.lock, flags);
706 cm_cleanup_timewait(cm_id_priv->timewait_info); 707 cm_cleanup_timewait(cm_id_priv->timewait_info);
708 spin_unlock_irqrestore(&cm.lock, flags);
707 kfree(cm_id_priv->timewait_info); 709 kfree(cm_id_priv->timewait_info);
708 cm_id_priv->timewait_info = NULL; 710 cm_id_priv->timewait_info = NULL;
709 } 711 }
@@ -1307,6 +1309,7 @@ static struct cm_id_private * cm_match_req(struct cm_work *work,
1307 if (timewait_info) { 1309 if (timewait_info) {
1308 cur_cm_id_priv = cm_get_id(timewait_info->work.local_id, 1310 cur_cm_id_priv = cm_get_id(timewait_info->work.local_id,
1309 timewait_info->work.remote_id); 1311 timewait_info->work.remote_id);
1312 cm_cleanup_timewait(cm_id_priv->timewait_info);
1310 spin_unlock_irqrestore(&cm.lock, flags); 1313 spin_unlock_irqrestore(&cm.lock, flags);
1311 if (cur_cm_id_priv) { 1314 if (cur_cm_id_priv) {
1312 cm_dup_req_handler(work, cur_cm_id_priv); 1315 cm_dup_req_handler(work, cur_cm_id_priv);
@@ -1315,7 +1318,8 @@ static struct cm_id_private * cm_match_req(struct cm_work *work,
1315 cm_issue_rej(work->port, work->mad_recv_wc, 1318 cm_issue_rej(work->port, work->mad_recv_wc,
1316 IB_CM_REJ_STALE_CONN, CM_MSG_RESPONSE_REQ, 1319 IB_CM_REJ_STALE_CONN, CM_MSG_RESPONSE_REQ,
1317 NULL, 0); 1320 NULL, 0);
1318 goto error; 1321 listen_cm_id_priv = NULL;
1322 goto out;
1319 } 1323 }
1320 1324
1321 /* Find matching listen request. */ 1325 /* Find matching listen request. */
@@ -1323,21 +1327,20 @@ static struct cm_id_private * cm_match_req(struct cm_work *work,
1323 req_msg->service_id, 1327 req_msg->service_id,
1324 req_msg->private_data); 1328 req_msg->private_data);
1325 if (!listen_cm_id_priv) { 1329 if (!listen_cm_id_priv) {
1330 cm_cleanup_timewait(cm_id_priv->timewait_info);
1326 spin_unlock_irqrestore(&cm.lock, flags); 1331 spin_unlock_irqrestore(&cm.lock, flags);
1327 cm_issue_rej(work->port, work->mad_recv_wc, 1332 cm_issue_rej(work->port, work->mad_recv_wc,
1328 IB_CM_REJ_INVALID_SERVICE_ID, CM_MSG_RESPONSE_REQ, 1333 IB_CM_REJ_INVALID_SERVICE_ID, CM_MSG_RESPONSE_REQ,
1329 NULL, 0); 1334 NULL, 0);
1330 goto error; 1335 goto out;
1331 } 1336 }
1332 atomic_inc(&listen_cm_id_priv->refcount); 1337 atomic_inc(&listen_cm_id_priv->refcount);
1333 atomic_inc(&cm_id_priv->refcount); 1338 atomic_inc(&cm_id_priv->refcount);
1334 cm_id_priv->id.state = IB_CM_REQ_RCVD; 1339 cm_id_priv->id.state = IB_CM_REQ_RCVD;
1335 atomic_inc(&cm_id_priv->work_count); 1340 atomic_inc(&cm_id_priv->work_count);
1336 spin_unlock_irqrestore(&cm.lock, flags); 1341 spin_unlock_irqrestore(&cm.lock, flags);
1342out:
1337 return listen_cm_id_priv; 1343 return listen_cm_id_priv;
1338
1339error: cm_cleanup_timewait(cm_id_priv->timewait_info);
1340 return NULL;
1341} 1344}
1342 1345
1343static int cm_req_handler(struct cm_work *work) 1346static int cm_req_handler(struct cm_work *work)
@@ -1899,6 +1902,32 @@ out: spin_unlock_irqrestore(&cm_id_priv->lock, flags);
1899} 1902}
1900EXPORT_SYMBOL(ib_send_cm_drep); 1903EXPORT_SYMBOL(ib_send_cm_drep);
1901 1904
1905static int cm_issue_drep(struct cm_port *port,
1906 struct ib_mad_recv_wc *mad_recv_wc)
1907{
1908 struct ib_mad_send_buf *msg = NULL;
1909 struct cm_dreq_msg *dreq_msg;
1910 struct cm_drep_msg *drep_msg;
1911 int ret;
1912
1913 ret = cm_alloc_response_msg(port, mad_recv_wc, &msg);
1914 if (ret)
1915 return ret;
1916
1917 dreq_msg = (struct cm_dreq_msg *) mad_recv_wc->recv_buf.mad;
1918 drep_msg = (struct cm_drep_msg *) msg->mad;
1919
1920 cm_format_mad_hdr(&drep_msg->hdr, CM_DREP_ATTR_ID, dreq_msg->hdr.tid);
1921 drep_msg->remote_comm_id = dreq_msg->local_comm_id;
1922 drep_msg->local_comm_id = dreq_msg->remote_comm_id;
1923
1924 ret = ib_post_send_mad(msg, NULL);
1925 if (ret)
1926 cm_free_msg(msg);
1927
1928 return ret;
1929}
1930
1902static int cm_dreq_handler(struct cm_work *work) 1931static int cm_dreq_handler(struct cm_work *work)
1903{ 1932{
1904 struct cm_id_private *cm_id_priv; 1933 struct cm_id_private *cm_id_priv;
@@ -1910,8 +1939,10 @@ static int cm_dreq_handler(struct cm_work *work)
1910 dreq_msg = (struct cm_dreq_msg *)work->mad_recv_wc->recv_buf.mad; 1939 dreq_msg = (struct cm_dreq_msg *)work->mad_recv_wc->recv_buf.mad;
1911 cm_id_priv = cm_acquire_id(dreq_msg->remote_comm_id, 1940 cm_id_priv = cm_acquire_id(dreq_msg->remote_comm_id,
1912 dreq_msg->local_comm_id); 1941 dreq_msg->local_comm_id);
1913 if (!cm_id_priv) 1942 if (!cm_id_priv) {
1943 cm_issue_drep(work->port, work->mad_recv_wc);
1914 return -EINVAL; 1944 return -EINVAL;
1945 }
1915 1946
1916 work->cm_event.private_data = &dreq_msg->private_data; 1947 work->cm_event.private_data = &dreq_msg->private_data;
1917 1948
@@ -2601,28 +2632,29 @@ static int cm_timewait_handler(struct cm_work *work)
2601{ 2632{
2602 struct cm_timewait_info *timewait_info; 2633 struct cm_timewait_info *timewait_info;
2603 struct cm_id_private *cm_id_priv; 2634 struct cm_id_private *cm_id_priv;
2604 unsigned long flags;
2605 int ret; 2635 int ret;
2606 2636
2607 timewait_info = (struct cm_timewait_info *)work; 2637 timewait_info = (struct cm_timewait_info *)work;
2608 cm_cleanup_timewait(timewait_info); 2638 spin_lock_irq(&cm.lock);
2639 list_del(&timewait_info->list);
2640 spin_unlock_irq(&cm.lock);
2609 2641
2610 cm_id_priv = cm_acquire_id(timewait_info->work.local_id, 2642 cm_id_priv = cm_acquire_id(timewait_info->work.local_id,
2611 timewait_info->work.remote_id); 2643 timewait_info->work.remote_id);
2612 if (!cm_id_priv) 2644 if (!cm_id_priv)
2613 return -EINVAL; 2645 return -EINVAL;
2614 2646
2615 spin_lock_irqsave(&cm_id_priv->lock, flags); 2647 spin_lock_irq(&cm_id_priv->lock);
2616 if (cm_id_priv->id.state != IB_CM_TIMEWAIT || 2648 if (cm_id_priv->id.state != IB_CM_TIMEWAIT ||
2617 cm_id_priv->remote_qpn != timewait_info->remote_qpn) { 2649 cm_id_priv->remote_qpn != timewait_info->remote_qpn) {
2618 spin_unlock_irqrestore(&cm_id_priv->lock, flags); 2650 spin_unlock_irq(&cm_id_priv->lock);
2619 goto out; 2651 goto out;
2620 } 2652 }
2621 cm_id_priv->id.state = IB_CM_IDLE; 2653 cm_id_priv->id.state = IB_CM_IDLE;
2622 ret = atomic_inc_and_test(&cm_id_priv->work_count); 2654 ret = atomic_inc_and_test(&cm_id_priv->work_count);
2623 if (!ret) 2655 if (!ret)
2624 list_add_tail(&work->list, &cm_id_priv->work_list); 2656 list_add_tail(&work->list, &cm_id_priv->work_list);
2625 spin_unlock_irqrestore(&cm_id_priv->lock, flags); 2657 spin_unlock_irq(&cm_id_priv->lock);
2626 2658
2627 if (ret) 2659 if (ret)
2628 cm_process_work(cm_id_priv, work); 2660 cm_process_work(cm_id_priv, work);
@@ -3374,6 +3406,7 @@ static int __init ib_cm_init(void)
3374 idr_init(&cm.local_id_table); 3406 idr_init(&cm.local_id_table);
3375 get_random_bytes(&cm.random_id_operand, sizeof cm.random_id_operand); 3407 get_random_bytes(&cm.random_id_operand, sizeof cm.random_id_operand);
3376 idr_pre_get(&cm.local_id_table, GFP_KERNEL); 3408 idr_pre_get(&cm.local_id_table, GFP_KERNEL);
3409 INIT_LIST_HEAD(&cm.timewait_list);
3377 3410
3378 cm.wq = create_workqueue("ib_cm"); 3411 cm.wq = create_workqueue("ib_cm");
3379 if (!cm.wq) 3412 if (!cm.wq)
@@ -3391,7 +3424,20 @@ error:
3391 3424
3392static void __exit ib_cm_cleanup(void) 3425static void __exit ib_cm_cleanup(void)
3393{ 3426{
3427 struct cm_timewait_info *timewait_info, *tmp;
3428
3429 spin_lock_irq(&cm.lock);
3430 list_for_each_entry(timewait_info, &cm.timewait_list, list)
3431 cancel_delayed_work(&timewait_info->work.work);
3432 spin_unlock_irq(&cm.lock);
3433
3394 destroy_workqueue(cm.wq); 3434 destroy_workqueue(cm.wq);
3435
3436 list_for_each_entry_safe(timewait_info, tmp, &cm.timewait_list, list) {
3437 list_del(&timewait_info->list);
3438 kfree(timewait_info);
3439 }
3440
3395 ib_unregister_client(&cm_client); 3441 ib_unregister_client(&cm_client);
3396 idr_destroy(&cm.local_id_table); 3442 idr_destroy(&cm.local_id_table);
3397} 3443}
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/amso1100/c2_ae.c b/drivers/infiniband/hw/amso1100/c2_ae.c
index 3aae4978e1cb..a31439bd3b67 100644
--- a/drivers/infiniband/hw/amso1100/c2_ae.c
+++ b/drivers/infiniband/hw/amso1100/c2_ae.c
@@ -66,7 +66,6 @@ static int c2_convert_cm_status(u32 c2_status)
66 } 66 }
67} 67}
68 68
69#ifdef DEBUG
70static const char* to_event_str(int event) 69static const char* to_event_str(int event)
71{ 70{
72 static const char* event_str[] = { 71 static const char* event_str[] = {
@@ -144,7 +143,6 @@ static const char *to_qp_state_str(int state)
144 return "<invalid QP state>"; 143 return "<invalid QP state>";
145 }; 144 };
146} 145}
147#endif
148 146
149void c2_ae_event(struct c2_dev *c2dev, u32 mq_index) 147void c2_ae_event(struct c2_dev *c2dev, u32 mq_index)
150{ 148{
diff --git a/drivers/infiniband/hw/amso1100/c2_qp.c b/drivers/infiniband/hw/amso1100/c2_qp.c
index 12261132b077..5bcf697aa335 100644
--- a/drivers/infiniband/hw/amso1100/c2_qp.c
+++ b/drivers/infiniband/hw/amso1100/c2_qp.c
@@ -35,6 +35,8 @@
35 * 35 *
36 */ 36 */
37 37
38#include <linux/delay.h>
39
38#include "c2.h" 40#include "c2.h"
39#include "c2_vq.h" 41#include "c2_vq.h"
40#include "c2_status.h" 42#include "c2_status.h"
@@ -705,10 +707,8 @@ static inline void c2_activity(struct c2_dev *c2dev, u32 mq_index, u16 shared)
705 * cannot get on the bus and the card and system hang in a 707 * cannot get on the bus and the card and system hang in a
706 * deadlock -- thus the need for this code. [TOT] 708 * deadlock -- thus the need for this code. [TOT]
707 */ 709 */
708 while (readl(c2dev->regs + PCI_BAR0_ADAPTER_HINT) & 0x80000000) { 710 while (readl(c2dev->regs + PCI_BAR0_ADAPTER_HINT) & 0x80000000)
709 set_current_state(TASK_UNINTERRUPTIBLE); 711 udelay(10);
710 schedule_timeout(0);
711 }
712 712
713 __raw_writel(C2_HINT_MAKE(mq_index, shared), 713 __raw_writel(C2_HINT_MAKE(mq_index, shared),
714 c2dev->regs + PCI_BAR0_ADAPTER_HINT); 714 c2dev->regs + PCI_BAR0_ADAPTER_HINT);
@@ -766,6 +766,7 @@ int c2_post_send(struct ib_qp *ibqp, struct ib_send_wr *ib_wr,
766 struct c2_dev *c2dev = to_c2dev(ibqp->device); 766 struct c2_dev *c2dev = to_c2dev(ibqp->device);
767 struct c2_qp *qp = to_c2qp(ibqp); 767 struct c2_qp *qp = to_c2qp(ibqp);
768 union c2wr wr; 768 union c2wr wr;
769 unsigned long lock_flags;
769 int err = 0; 770 int err = 0;
770 771
771 u32 flags; 772 u32 flags;
@@ -881,8 +882,10 @@ int c2_post_send(struct ib_qp *ibqp, struct ib_send_wr *ib_wr,
881 /* 882 /*
882 * Post the puppy! 883 * Post the puppy!
883 */ 884 */
885 spin_lock_irqsave(&qp->lock, lock_flags);
884 err = qp_wr_post(&qp->sq_mq, &wr, qp, msg_size); 886 err = qp_wr_post(&qp->sq_mq, &wr, qp, msg_size);
885 if (err) { 887 if (err) {
888 spin_unlock_irqrestore(&qp->lock, lock_flags);
886 break; 889 break;
887 } 890 }
888 891
@@ -890,6 +893,7 @@ int c2_post_send(struct ib_qp *ibqp, struct ib_send_wr *ib_wr,
890 * Enqueue mq index to activity FIFO. 893 * Enqueue mq index to activity FIFO.
891 */ 894 */
892 c2_activity(c2dev, qp->sq_mq.index, qp->sq_mq.hint_count); 895 c2_activity(c2dev, qp->sq_mq.index, qp->sq_mq.hint_count);
896 spin_unlock_irqrestore(&qp->lock, lock_flags);
893 897
894 ib_wr = ib_wr->next; 898 ib_wr = ib_wr->next;
895 } 899 }
@@ -905,6 +909,7 @@ int c2_post_receive(struct ib_qp *ibqp, struct ib_recv_wr *ib_wr,
905 struct c2_dev *c2dev = to_c2dev(ibqp->device); 909 struct c2_dev *c2dev = to_c2dev(ibqp->device);
906 struct c2_qp *qp = to_c2qp(ibqp); 910 struct c2_qp *qp = to_c2qp(ibqp);
907 union c2wr wr; 911 union c2wr wr;
912 unsigned long lock_flags;
908 int err = 0; 913 int err = 0;
909 914
910 if (qp->state > IB_QPS_RTS) 915 if (qp->state > IB_QPS_RTS)
@@ -945,8 +950,10 @@ int c2_post_receive(struct ib_qp *ibqp, struct ib_recv_wr *ib_wr,
945 break; 950 break;
946 } 951 }
947 952
953 spin_lock_irqsave(&qp->lock, lock_flags);
948 err = qp_wr_post(&qp->rq_mq, &wr, qp, qp->rq_mq.msg_size); 954 err = qp_wr_post(&qp->rq_mq, &wr, qp, qp->rq_mq.msg_size);
949 if (err) { 955 if (err) {
956 spin_unlock_irqrestore(&qp->lock, lock_flags);
950 break; 957 break;
951 } 958 }
952 959
@@ -954,6 +961,7 @@ int c2_post_receive(struct ib_qp *ibqp, struct ib_recv_wr *ib_wr,
954 * Enqueue mq index to activity FIFO 961 * Enqueue mq index to activity FIFO
955 */ 962 */
956 c2_activity(c2dev, qp->rq_mq.index, qp->rq_mq.hint_count); 963 c2_activity(c2dev, qp->rq_mq.index, qp->rq_mq.hint_count);
964 spin_unlock_irqrestore(&qp->lock, lock_flags);
957 965
958 ib_wr = ib_wr->next; 966 ib_wr = ib_wr->next;
959 } 967 }
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/infiniband/hw/mthca/mthca_provider.c b/drivers/infiniband/hw/mthca/mthca_provider.c
index 981fe2eebdfa..fc67f780581b 100644
--- a/drivers/infiniband/hw/mthca/mthca_provider.c
+++ b/drivers/infiniband/hw/mthca/mthca_provider.c
@@ -179,6 +179,8 @@ static int mthca_query_port(struct ib_device *ibdev,
179 props->max_mtu = out_mad->data[41] & 0xf; 179 props->max_mtu = out_mad->data[41] & 0xf;
180 props->active_mtu = out_mad->data[36] >> 4; 180 props->active_mtu = out_mad->data[36] >> 4;
181 props->subnet_timeout = out_mad->data[51] & 0x1f; 181 props->subnet_timeout = out_mad->data[51] & 0x1f;
182 props->max_vl_num = out_mad->data[37] >> 4;
183 props->init_type_reply = out_mad->data[41] >> 4;
182 184
183 out: 185 out:
184 kfree(in_mad); 186 kfree(in_mad);
diff --git a/drivers/infiniband/hw/mthca/mthca_srq.c b/drivers/infiniband/hw/mthca/mthca_srq.c
index 0f316c87bf64..92a72f521528 100644
--- a/drivers/infiniband/hw/mthca/mthca_srq.c
+++ b/drivers/infiniband/hw/mthca/mthca_srq.c
@@ -201,6 +201,8 @@ int mthca_alloc_srq(struct mthca_dev *dev, struct mthca_pd *pd,
201 201
202 if (mthca_is_memfree(dev)) 202 if (mthca_is_memfree(dev))
203 srq->max = roundup_pow_of_two(srq->max + 1); 203 srq->max = roundup_pow_of_two(srq->max + 1);
204 else
205 srq->max = srq->max + 1;
204 206
205 ds = max(64UL, 207 ds = max(64UL,
206 roundup_pow_of_two(sizeof (struct mthca_next_seg) + 208 roundup_pow_of_two(sizeof (struct mthca_next_seg) +
@@ -277,7 +279,7 @@ int mthca_alloc_srq(struct mthca_dev *dev, struct mthca_pd *pd,
277 srq->first_free = 0; 279 srq->first_free = 0;
278 srq->last_free = srq->max - 1; 280 srq->last_free = srq->max - 1;
279 281
280 attr->max_wr = (mthca_is_memfree(dev)) ? srq->max - 1 : srq->max; 282 attr->max_wr = srq->max - 1;
281 attr->max_sge = srq->max_gs; 283 attr->max_sge = srq->max_gs;
282 284
283 return 0; 285 return 0;
@@ -413,7 +415,7 @@ int mthca_query_srq(struct ib_srq *ibsrq, struct ib_srq_attr *srq_attr)
413 srq_attr->srq_limit = be16_to_cpu(tavor_ctx->limit_watermark); 415 srq_attr->srq_limit = be16_to_cpu(tavor_ctx->limit_watermark);
414 } 416 }
415 417
416 srq_attr->max_wr = (mthca_is_memfree(dev)) ? srq->max - 1 : srq->max; 418 srq_attr->max_wr = srq->max - 1;
417 srq_attr->max_sge = srq->max_gs; 419 srq_attr->max_sge = srq->max_gs;
418 420
419out: 421out:
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index f426a69d9a43..8bf5e9ec7c95 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -355,6 +355,11 @@ void ipoib_send(struct net_device *dev, struct sk_buff *skb,
355 tx_req->skb = skb; 355 tx_req->skb = skb;
356 addr = dma_map_single(priv->ca->dma_device, skb->data, skb->len, 356 addr = dma_map_single(priv->ca->dma_device, skb->data, skb->len,
357 DMA_TO_DEVICE); 357 DMA_TO_DEVICE);
358 if (unlikely(dma_mapping_error(addr))) {
359 ++priv->stats.tx_errors;
360 dev_kfree_skb_any(skb);
361 return;
362 }
358 pci_unmap_addr_set(tx_req, mapping, addr); 363 pci_unmap_addr_set(tx_req, mapping, addr);
359 364
360 if (unlikely(post_send(priv, priv->tx_head & (ipoib_sendq_size - 1), 365 if (unlikely(post_send(priv, priv->tx_head & (ipoib_sendq_size - 1),
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 44b9e5be6687..4b09147f438f 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -343,29 +343,32 @@ static int srp_send_req(struct srp_target_port *target)
343 */ 343 */
344 if (target->io_class == SRP_REV10_IB_IO_CLASS) { 344 if (target->io_class == SRP_REV10_IB_IO_CLASS) {
345 memcpy(req->priv.initiator_port_id, 345 memcpy(req->priv.initiator_port_id,
346 target->srp_host->initiator_port_id + 8, 8); 346 &target->path.sgid.global.interface_id, 8);
347 memcpy(req->priv.initiator_port_id + 8, 347 memcpy(req->priv.initiator_port_id + 8,
348 target->srp_host->initiator_port_id, 8); 348 &target->initiator_ext, 8);
349 memcpy(req->priv.target_port_id, &target->ioc_guid, 8); 349 memcpy(req->priv.target_port_id, &target->ioc_guid, 8);
350 memcpy(req->priv.target_port_id + 8, &target->id_ext, 8); 350 memcpy(req->priv.target_port_id + 8, &target->id_ext, 8);
351 } else { 351 } else {
352 memcpy(req->priv.initiator_port_id, 352 memcpy(req->priv.initiator_port_id,
353 target->srp_host->initiator_port_id, 16); 353 &target->initiator_ext, 8);
354 memcpy(req->priv.initiator_port_id + 8,
355 &target->path.sgid.global.interface_id, 8);
354 memcpy(req->priv.target_port_id, &target->id_ext, 8); 356 memcpy(req->priv.target_port_id, &target->id_ext, 8);
355 memcpy(req->priv.target_port_id + 8, &target->ioc_guid, 8); 357 memcpy(req->priv.target_port_id + 8, &target->ioc_guid, 8);
356 } 358 }
357 359
358 /* 360 /*
359 * Topspin/Cisco SRP targets will reject our login unless we 361 * Topspin/Cisco SRP targets will reject our login unless we
360 * zero out the first 8 bytes of our initiator port ID. The 362 * zero out the first 8 bytes of our initiator port ID and set
361 * second 8 bytes must be our local node GUID, but we always 363 * the second 8 bytes to the local node GUID.
362 * use that anyway.
363 */ 364 */
364 if (topspin_workarounds && !memcmp(&target->ioc_guid, topspin_oui, 3)) { 365 if (topspin_workarounds && !memcmp(&target->ioc_guid, topspin_oui, 3)) {
365 printk(KERN_DEBUG PFX "Topspin/Cisco initiator port ID workaround " 366 printk(KERN_DEBUG PFX "Topspin/Cisco initiator port ID workaround "
366 "activated for target GUID %016llx\n", 367 "activated for target GUID %016llx\n",
367 (unsigned long long) be64_to_cpu(target->ioc_guid)); 368 (unsigned long long) be64_to_cpu(target->ioc_guid));
368 memset(req->priv.initiator_port_id, 0, 8); 369 memset(req->priv.initiator_port_id, 0, 8);
370 memcpy(req->priv.initiator_port_id + 8,
371 &target->srp_host->dev->dev->node_guid, 8);
369 } 372 }
370 373
371 status = ib_send_cm_req(target->cm_id, &req->param); 374 status = ib_send_cm_req(target->cm_id, &req->param);
@@ -1553,6 +1556,7 @@ enum {
1553 SRP_OPT_MAX_SECT = 1 << 5, 1556 SRP_OPT_MAX_SECT = 1 << 5,
1554 SRP_OPT_MAX_CMD_PER_LUN = 1 << 6, 1557 SRP_OPT_MAX_CMD_PER_LUN = 1 << 6,
1555 SRP_OPT_IO_CLASS = 1 << 7, 1558 SRP_OPT_IO_CLASS = 1 << 7,
1559 SRP_OPT_INITIATOR_EXT = 1 << 8,
1556 SRP_OPT_ALL = (SRP_OPT_ID_EXT | 1560 SRP_OPT_ALL = (SRP_OPT_ID_EXT |
1557 SRP_OPT_IOC_GUID | 1561 SRP_OPT_IOC_GUID |
1558 SRP_OPT_DGID | 1562 SRP_OPT_DGID |
@@ -1569,6 +1573,7 @@ static match_table_t srp_opt_tokens = {
1569 { SRP_OPT_MAX_SECT, "max_sect=%d" }, 1573 { SRP_OPT_MAX_SECT, "max_sect=%d" },
1570 { SRP_OPT_MAX_CMD_PER_LUN, "max_cmd_per_lun=%d" }, 1574 { SRP_OPT_MAX_CMD_PER_LUN, "max_cmd_per_lun=%d" },
1571 { SRP_OPT_IO_CLASS, "io_class=%x" }, 1575 { SRP_OPT_IO_CLASS, "io_class=%x" },
1576 { SRP_OPT_INITIATOR_EXT, "initiator_ext=%s" },
1572 { SRP_OPT_ERR, NULL } 1577 { SRP_OPT_ERR, NULL }
1573}; 1578};
1574 1579
@@ -1668,6 +1673,12 @@ static int srp_parse_options(const char *buf, struct srp_target_port *target)
1668 target->io_class = token; 1673 target->io_class = token;
1669 break; 1674 break;
1670 1675
1676 case SRP_OPT_INITIATOR_EXT:
1677 p = match_strdup(args);
1678 target->initiator_ext = cpu_to_be64(simple_strtoull(p, NULL, 16));
1679 kfree(p);
1680 break;
1681
1671 default: 1682 default:
1672 printk(KERN_WARNING PFX "unknown parameter or missing value " 1683 printk(KERN_WARNING PFX "unknown parameter or missing value "
1673 "'%s' in target creation request\n", p); 1684 "'%s' in target creation request\n", p);
@@ -1708,7 +1719,6 @@ static ssize_t srp_create_target(struct class_device *class_dev,
1708 target_host->max_lun = SRP_MAX_LUN; 1719 target_host->max_lun = SRP_MAX_LUN;
1709 1720
1710 target = host_to_target(target_host); 1721 target = host_to_target(target_host);
1711 memset(target, 0, sizeof *target);
1712 1722
1713 target->io_class = SRP_REV16A_IB_IO_CLASS; 1723 target->io_class = SRP_REV16A_IB_IO_CLASS;
1714 target->scsi_host = target_host; 1724 target->scsi_host = target_host;
@@ -1815,9 +1825,6 @@ static struct srp_host *srp_add_port(struct srp_device *device, u8 port)
1815 host->dev = device; 1825 host->dev = device;
1816 host->port = port; 1826 host->port = port;
1817 1827
1818 host->initiator_port_id[7] = port;
1819 memcpy(host->initiator_port_id + 8, &device->dev->node_guid, 8);
1820
1821 host->class_dev.class = &srp_class; 1828 host->class_dev.class = &srp_class;
1822 host->class_dev.dev = device->dev->dma_device; 1829 host->class_dev.dev = device->dev->dma_device;
1823 snprintf(host->class_dev.class_id, BUS_ID_SIZE, "srp-%s-%d", 1830 snprintf(host->class_dev.class_id, BUS_ID_SIZE, "srp-%s-%d",
diff --git a/drivers/infiniband/ulp/srp/ib_srp.h b/drivers/infiniband/ulp/srp/ib_srp.h
index 5b581fb8eb0d..d4e35ef51374 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.h
+++ b/drivers/infiniband/ulp/srp/ib_srp.h
@@ -91,7 +91,6 @@ struct srp_device {
91}; 91};
92 92
93struct srp_host { 93struct srp_host {
94 u8 initiator_port_id[16];
95 struct srp_device *dev; 94 struct srp_device *dev;
96 u8 port; 95 u8 port;
97 struct class_device class_dev; 96 struct class_device class_dev;
@@ -122,6 +121,7 @@ struct srp_target_port {
122 __be64 id_ext; 121 __be64 id_ext;
123 __be64 ioc_guid; 122 __be64 ioc_guid;
124 __be64 service_id; 123 __be64 service_id;
124 __be64 initiator_ext;
125 u16 io_class; 125 u16 io_class;
126 struct srp_host *srp_host; 126 struct srp_host *srp_host;
127 struct Scsi_Host *scsi_host; 127 struct Scsi_Host *scsi_host;
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/Kconfig b/drivers/input/keyboard/Kconfig
index 679bde34d247..81a333f73010 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -166,7 +166,7 @@ config KEYBOARD_AMIGA
166 166
167config KEYBOARD_HIL_OLD 167config KEYBOARD_HIL_OLD
168 tristate "HP HIL keyboard support (simple driver)" 168 tristate "HP HIL keyboard support (simple driver)"
169 depends on GSC 169 depends on GSC || HP300
170 default y 170 default y
171 help 171 help
172 The "Human Interface Loop" is a older, 8-channel USB-like 172 The "Human Interface Loop" is a older, 8-channel USB-like
@@ -183,7 +183,7 @@ config KEYBOARD_HIL_OLD
183 183
184config KEYBOARD_HIL 184config KEYBOARD_HIL
185 tristate "HP HIL keyboard support" 185 tristate "HP HIL keyboard support"
186 depends on GSC 186 depends on GSC || HP300
187 default y 187 default y
188 select HP_SDC 188 select HP_SDC
189 select HIL_MLC 189 select HIL_MLC
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..e774dd31e99b 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;
@@ -328,7 +328,7 @@ static int hil_kbd_connect(struct serio *serio, struct serio_driver *drv)
328 kbd->dev->id.vendor = PCI_VENDOR_ID_HP; 328 kbd->dev->id.vendor = PCI_VENDOR_ID_HP;
329 kbd->dev->id.product = 0x0001; /* TODO: get from kbd->rsc */ 329 kbd->dev->id.product = 0x0001; /* TODO: get from kbd->rsc */
330 kbd->dev->id.version = 0x0100; /* TODO: get from kbd->rsc */ 330 kbd->dev->id.version = 0x0100; /* TODO: get from kbd->rsc */
331 kbd->dev->dev = &serio->dev; 331 kbd->dev->cdev.dev = &serio->dev;
332 332
333 for (i = 0; i < 128; i++) { 333 for (i = 0; i < 128; i++) {
334 set_bit(hil_kbd_set1[i], kbd->dev->keybit); 334 set_bit(hil_kbd_set1[i], kbd->dev->keybit);
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/Kconfig b/drivers/input/misc/Kconfig
index a6dfc7455733..ba0e88c64e1e 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -73,7 +73,7 @@ config INPUT_UINPUT
73 73
74config HP_SDC_RTC 74config HP_SDC_RTC
75 tristate "HP SDC Real Time Clock" 75 tristate "HP SDC Real Time Clock"
76 depends on GSC 76 depends on GSC || HP300
77 select HP_SDC 77 select HP_SDC
78 help 78 help
79 Say Y here if you want to support the built-in real time clock 79 Say Y here if you want to support the built-in real time clock
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/Kconfig b/drivers/input/mouse/Kconfig
index f15ccf781688..35d998c3e578 100644
--- a/drivers/input/mouse/Kconfig
+++ b/drivers/input/mouse/Kconfig
@@ -119,7 +119,7 @@ config MOUSE_VSXXXAA
119 119
120config MOUSE_HIL 120config MOUSE_HIL
121 tristate "HIL pointers (mice etc)." 121 tristate "HIL pointers (mice etc)."
122 depends on GSC 122 depends on GSC || HP300
123 select HP_SDC 123 select HP_SDC
124 select HIL_MLC 124 select HIL_MLC
125 help 125 help
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..4f2b503c1ac7 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;
@@ -375,7 +375,7 @@ static int hil_ptr_connect(struct serio *serio, struct serio_driver *driver)
375 ptr->dev->id.vendor = PCI_VENDOR_ID_HP; 375 ptr->dev->id.vendor = PCI_VENDOR_ID_HP;
376 ptr->dev->id.product = 0x0001; /* TODO: get from ptr->rsc */ 376 ptr->dev->id.product = 0x0001; /* TODO: get from ptr->rsc */
377 ptr->dev->id.version = 0x0100; /* TODO: get from ptr->rsc */ 377 ptr->dev->id.version = 0x0100; /* TODO: get from ptr->rsc */
378 ptr->dev->dev = &serio->dev; 378 ptr->dev->cdev.dev = &serio->dev;
379 379
380 input_register_device(ptr->dev); 380 input_register_device(ptr->dev);
381 printk(KERN_INFO "input: %s (%s), ID: %d\n", 381 printk(KERN_INFO "input: %s (%s), ID: %d\n",
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/Kconfig b/drivers/input/serio/Kconfig
index 8cdbfeca5903..adef447f23ea 100644
--- a/drivers/input/serio/Kconfig
+++ b/drivers/input/serio/Kconfig
@@ -112,7 +112,7 @@ config SERIO_GSCPS2
112 112
113config HP_SDC 113config HP_SDC
114 tristate "HP System Device Controller i8042 Support" 114 tristate "HP System Device Controller i8042 Support"
115 depends on GSC && SERIO 115 depends on (GSC || HP300) && SERIO
116 default y 116 default y
117 ---help--- 117 ---help---
118 This option enables support for the "System Device 118 This option enables support for the "System Device
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..74f14e097789 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
@@ -166,7 +166,7 @@ static inline int gscps2_writeb_output(struct gscps2port *ps2port, u8 data)
166 166
167 /* make sure any received data is returned as fast as possible */ 167 /* make sure any received data is returned as fast as possible */
168 /* this is important e.g. when we set the LEDs on the keyboard */ 168 /* this is important e.g. when we set the LEDs on the keyboard */
169 gscps2_interrupt(0, NULL, NULL); 169 gscps2_interrupt(0, NULL);
170 170
171 return 1; 171 return 1;
172} 172}
@@ -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
@@ -306,7 +306,7 @@ static int gscps2_open(struct serio *port)
306 /* enable it */ 306 /* enable it */
307 gscps2_enable(ps2port, ENABLE); 307 gscps2_enable(ps2port, ENABLE);
308 308
309 gscps2_interrupt(0, NULL, NULL); 309 gscps2_interrupt(0, NULL);
310 310
311 return 0; 311 return 0;
312} 312}
diff --git a/drivers/input/serio/hil_mlc.c b/drivers/input/serio/hil_mlc.c
index bbbe15e21904..bdfde046b741 100644
--- a/drivers/input/serio/hil_mlc.c
+++ b/drivers/input/serio/hil_mlc.c
@@ -162,10 +162,10 @@ static void hil_mlc_send_polls(hil_mlc *mlc) {
162 if (did != (p & HIL_PKT_ADDR_MASK) >> 8) { 162 if (did != (p & HIL_PKT_ADDR_MASK) >> 8) {
163 if (drv == NULL || drv->interrupt == NULL) goto skip; 163 if (drv == NULL || drv->interrupt == NULL) goto skip;
164 164
165 drv->interrupt(serio, 0, 0, NULL); 165 drv->interrupt(serio, 0, 0);
166 drv->interrupt(serio, HIL_ERR_INT >> 16, 0, NULL); 166 drv->interrupt(serio, HIL_ERR_INT >> 16, 0);
167 drv->interrupt(serio, HIL_PKT_CMD >> 8, 0, NULL); 167 drv->interrupt(serio, HIL_PKT_CMD >> 8, 0);
168 drv->interrupt(serio, HIL_CMD_POL + cnt, 0, NULL); 168 drv->interrupt(serio, HIL_CMD_POL + cnt, 0);
169 skip: 169 skip:
170 did = (p & HIL_PKT_ADDR_MASK) >> 8; 170 did = (p & HIL_PKT_ADDR_MASK) >> 8;
171 serio = did ? mlc->serio[mlc->di_map[did-1]] : NULL; 171 serio = did ? mlc->serio[mlc->di_map[did-1]] : NULL;
@@ -174,10 +174,10 @@ static void hil_mlc_send_polls(hil_mlc *mlc) {
174 } 174 }
175 cnt++; i++; 175 cnt++; i++;
176 if (drv == NULL || drv->interrupt == NULL) continue; 176 if (drv == NULL || drv->interrupt == NULL) continue;
177 drv->interrupt(serio, (p >> 24), 0, NULL); 177 drv->interrupt(serio, (p >> 24), 0);
178 drv->interrupt(serio, (p >> 16) & 0xff, 0, NULL); 178 drv->interrupt(serio, (p >> 16) & 0xff, 0);
179 drv->interrupt(serio, (p >> 8) & ~HIL_PKT_ADDR_MASK, 0, NULL); 179 drv->interrupt(serio, (p >> 8) & ~HIL_PKT_ADDR_MASK, 0);
180 drv->interrupt(serio, p & 0xff, 0, NULL); 180 drv->interrupt(serio, p & 0xff, 0);
181 } 181 }
182} 182}
183 183
@@ -780,16 +780,16 @@ static int hil_mlc_serio_write(struct serio *serio, unsigned char c) {
780 while ((last != idx) && (*last == 0)) last--; 780 while ((last != idx) && (*last == 0)) last--;
781 781
782 while (idx != last) { 782 while (idx != last) {
783 drv->interrupt(serio, 0, 0, NULL); 783 drv->interrupt(serio, 0, 0);
784 drv->interrupt(serio, HIL_ERR_INT >> 16, 0, NULL); 784 drv->interrupt(serio, HIL_ERR_INT >> 16, 0);
785 drv->interrupt(serio, 0, 0, NULL); 785 drv->interrupt(serio, 0, 0);
786 drv->interrupt(serio, *idx, 0, NULL); 786 drv->interrupt(serio, *idx, 0);
787 idx++; 787 idx++;
788 } 788 }
789 drv->interrupt(serio, 0, 0, NULL); 789 drv->interrupt(serio, 0, 0);
790 drv->interrupt(serio, HIL_ERR_INT >> 16, 0, NULL); 790 drv->interrupt(serio, HIL_ERR_INT >> 16, 0);
791 drv->interrupt(serio, HIL_PKT_CMD >> 8, 0, NULL); 791 drv->interrupt(serio, HIL_PKT_CMD >> 8, 0);
792 drv->interrupt(serio, *idx, 0, NULL); 792 drv->interrupt(serio, *idx, 0);
793 793
794 mlc->serio_oidx[map->didx] = 0; 794 mlc->serio_oidx[map->didx] = 0;
795 mlc->serio_opacket[map->didx] = 0; 795 mlc->serio_opacket[map->didx] = 0;
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..3cac23739344 100644
--- a/drivers/isdn/act2000/act2000_isa.c
+++ b/drivers/isdn/act2000/act2000_isa.c
@@ -16,8 +16,6 @@
16#include "act2000_isa.h" 16#include "act2000_isa.h"
17#include "capi.h" 17#include "capi.h"
18 18
19static act2000_card *irq2card_map[16];
20
21/* 19/*
22 * Reset Controller, then try to read the Card's signature. 20 * Reset Controller, then try to read the Card's signature.
23 + Return: 21 + Return:
@@ -63,16 +61,11 @@ act2000_isa_detect(unsigned short portbase)
63} 61}
64 62
65static irqreturn_t 63static irqreturn_t
66act2000_isa_interrupt(int irq, void *dev_id, struct pt_regs *regs) 64act2000_isa_interrupt(int irq, void *dev_id)
67{ 65{
68 act2000_card *card = irq2card_map[irq]; 66 act2000_card *card = dev_id;
69 u_char istatus; 67 u_char istatus;
70 68
71 if (!card) {
72 printk(KERN_WARNING
73 "act2000: Spurious interrupt!\n");
74 return IRQ_NONE;
75 }
76 istatus = (inb(ISA_PORT_ISR) & 0x07); 69 istatus = (inb(ISA_PORT_ISR) & 0x07);
77 if (istatus & ISA_ISR_OUT) { 70 if (istatus & ISA_ISR_OUT) {
78 /* RX fifo has data */ 71 /* RX fifo has data */
@@ -139,17 +132,15 @@ int
139act2000_isa_config_irq(act2000_card * card, short irq) 132act2000_isa_config_irq(act2000_card * card, short irq)
140{ 133{
141 if (card->flags & ACT2000_FLAGS_IVALID) { 134 if (card->flags & ACT2000_FLAGS_IVALID) {
142 free_irq(card->irq, NULL); 135 free_irq(card->irq, card);
143 irq2card_map[card->irq] = NULL;
144 } 136 }
145 card->flags &= ~ACT2000_FLAGS_IVALID; 137 card->flags &= ~ACT2000_FLAGS_IVALID;
146 outb(ISA_COR_IRQOFF, ISA_PORT_COR); 138 outb(ISA_COR_IRQOFF, ISA_PORT_COR);
147 if (!irq) 139 if (!irq)
148 return 0; 140 return 0;
149 141
150 if (!request_irq(irq, &act2000_isa_interrupt, 0, card->regname, NULL)) { 142 if (!request_irq(irq, &act2000_isa_interrupt, 0, card->regname, card)) {
151 card->irq = irq; 143 card->irq = irq;
152 irq2card_map[card->irq] = card;
153 card->flags |= ACT2000_FLAGS_IVALID; 144 card->flags |= ACT2000_FLAGS_IVALID;
154 printk(KERN_WARNING 145 printk(KERN_WARNING
155 "act2000: Could not request irq %d\n",irq); 146 "act2000: Could not request irq %d\n",irq);
@@ -188,10 +179,9 @@ act2000_isa_release(act2000_card * card)
188 unsigned long flags; 179 unsigned long flags;
189 180
190 spin_lock_irqsave(&card->lock, flags); 181 spin_lock_irqsave(&card->lock, flags);
191 if (card->flags & ACT2000_FLAGS_IVALID) { 182 if (card->flags & ACT2000_FLAGS_IVALID)
192 free_irq(card->irq, NULL); 183 free_irq(card->irq, card);
193 irq2card_map[card->irq] = NULL; 184
194 }
195 card->flags &= ~ACT2000_FLAGS_IVALID; 185 card->flags &= ~ACT2000_FLAGS_IVALID;
196 if (card->flags & ACT2000_FLAGS_PVALID) 186 if (card->flags & ACT2000_FLAGS_PVALID)
197 release_region(card->port, ISA_REGION); 187 release_region(card->port, ISA_REGION);
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..17ef5d3c01b4 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);
@@ -266,7 +266,7 @@ int adb_iop_autopoll(int devs)
266void adb_iop_poll(void) 266void adb_iop_poll(void)
267{ 267{
268 if (adb_iop_state == idle) adb_iop_start(); 268 if (adb_iop_state == idle) adb_iop_start();
269 iop_ism_irq(0, (void *) ADB_IOP, NULL); 269 iop_ism_irq(0, (void *) ADB_IOP);
270} 270}
271 271
272int adb_iop_reset_bus(void) 272int adb_iop_reset_bus(void)
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..797cef72258f 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}
@@ -271,6 +270,6 @@ static void macio_adb_poll(void)
271 270
272 local_irq_save(flags); 271 local_irq_save(flags);
273 if (in_8(&adb->intr.r) != 0) 272 if (in_8(&adb->intr.r) != 0)
274 macio_adb_interrupt(0, NULL, NULL); 273 macio_adb_interrupt(0, NULL);
275 local_irq_restore(flags); 274 local_irq_restore(flags);
276} 275}
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..df66291b1322 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
@@ -437,12 +437,12 @@ cuda_poll(void)
437 * disable_irq(), would that work on m68k ? --BenH 437 * disable_irq(), would that work on m68k ? --BenH
438 */ 438 */
439 local_irq_save(flags); 439 local_irq_save(flags);
440 cuda_interrupt(0, NULL, NULL); 440 cuda_interrupt(0, NULL);
441 local_irq_restore(flags); 441 local_irq_restore(flags);
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..5d88d5b0ad99 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
@@ -295,7 +295,7 @@ static void macii_poll(void)
295 unsigned long flags; 295 unsigned long flags;
296 296
297 local_irq_save(flags); 297 local_irq_save(flags);
298 if (via[IFR] & SR_INT) macii_interrupt(0, NULL, NULL); 298 if (via[IFR] & SR_INT) macii_interrupt(0, NULL);
299 local_irq_restore(flags); 299 local_irq_restore(flags);
300} 300}
301 301
@@ -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..1f0aa5dc9aa5 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);
@@ -421,7 +421,7 @@ maciisi_poll(void)
421 421
422 local_irq_save(flags); 422 local_irq_save(flags);
423 if (via[IFR] & SR_INT) { 423 if (via[IFR] & SR_INT) {
424 maciisi_interrupt(0, NULL, NULL); 424 maciisi_interrupt(0, NULL);
425 } 425 }
426 else /* avoid calling this function too quickly in a loop */ 426 else /* avoid calling this function too quickly in a loop */
427 udelay(ADB_DELAY); 427 udelay(ADB_DELAY);
@@ -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..d9986f3a3fbf 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);
@@ -222,7 +221,7 @@ pmu_init(void)
222 } 221 }
223 if (pmu_state == idle) { 222 if (pmu_state == idle) {
224 adb_int_pending = 1; 223 adb_int_pending = 1;
225 pmu_interrupt(0, NULL, NULL); 224 pmu_interrupt(0, NULL);
226 } 225 }
227 pmu_poll(); 226 pmu_poll();
228 udelay(10); 227 udelay(10);
@@ -563,17 +562,17 @@ pmu_poll(void)
563 local_irq_save(flags); 562 local_irq_save(flags);
564 if (via1[IFR] & SR_INT) { 563 if (via1[IFR] & SR_INT) {
565 via1[IFR] = SR_INT; 564 via1[IFR] = SR_INT;
566 pmu_interrupt(IRQ_MAC_ADB_SR, NULL, NULL); 565 pmu_interrupt(IRQ_MAC_ADB_SR, NULL);
567 } 566 }
568 if (via1[IFR] & CB1_INT) { 567 if (via1[IFR] & CB1_INT) {
569 via1[IFR] = CB1_INT; 568 via1[IFR] = CB1_INT;
570 pmu_interrupt(IRQ_MAC_ADB_CL, NULL, NULL); 569 pmu_interrupt(IRQ_MAC_ADB_CL, NULL);
571 } 570 }
572 local_irq_restore(flags); 571 local_irq_restore(flags);
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/macintosh/windfarm_pm112.c b/drivers/macintosh/windfarm_pm112.c
index ef66bf2778ec..fa4b13f89369 100644
--- a/drivers/macintosh/windfarm_pm112.c
+++ b/drivers/macintosh/windfarm_pm112.c
@@ -650,24 +650,26 @@ static struct notifier_block pm112_events = {
650 .notifier_call = pm112_wf_notify, 650 .notifier_call = pm112_wf_notify,
651}; 651};
652 652
653static int wf_pm112_probe(struct device *dev) 653static int wf_pm112_probe(struct platform_device *dev)
654{ 654{
655 wf_register_client(&pm112_events); 655 wf_register_client(&pm112_events);
656 return 0; 656 return 0;
657} 657}
658 658
659static int wf_pm112_remove(struct device *dev) 659static int __devexit wf_pm112_remove(struct platform_device *dev)
660{ 660{
661 wf_unregister_client(&pm112_events); 661 wf_unregister_client(&pm112_events);
662 /* should release all sensors and controls */ 662 /* should release all sensors and controls */
663 return 0; 663 return 0;
664} 664}
665 665
666static struct device_driver wf_pm112_driver = { 666static struct platform_driver wf_pm112_driver = {
667 .name = "windfarm",
668 .bus = &platform_bus_type,
669 .probe = wf_pm112_probe, 667 .probe = wf_pm112_probe,
670 .remove = wf_pm112_remove, 668 .remove = __devexit_p(wf_pm112_remove),
669 .driver = {
670 .name = "windfarm",
671 .bus = &platform_bus_type,
672 },
671}; 673};
672 674
673static int __init wf_pm112_init(void) 675static int __init wf_pm112_init(void)
@@ -683,13 +685,13 @@ static int __init wf_pm112_init(void)
683 ++nr_cores; 685 ++nr_cores;
684 686
685 printk(KERN_INFO "windfarm: initializing for dual-core desktop G5\n"); 687 printk(KERN_INFO "windfarm: initializing for dual-core desktop G5\n");
686 driver_register(&wf_pm112_driver); 688 platform_driver_register(&wf_pm112_driver);
687 return 0; 689 return 0;
688} 690}
689 691
690static void __exit wf_pm112_exit(void) 692static void __exit wf_pm112_exit(void)
691{ 693{
692 driver_unregister(&wf_pm112_driver); 694 platform_driver_unregister(&wf_pm112_driver);
693} 695}
694 696
695module_init(wf_pm112_init); 697module_init(wf_pm112_init);
diff --git a/drivers/macintosh/windfarm_pm81.c b/drivers/macintosh/windfarm_pm81.c
index 2ff546e4c92f..2a944851b8e1 100644
--- a/drivers/macintosh/windfarm_pm81.c
+++ b/drivers/macintosh/windfarm_pm81.c
@@ -131,8 +131,6 @@
131 131
132static int wf_smu_mach_model; /* machine model id */ 132static int wf_smu_mach_model; /* machine model id */
133 133
134static struct device *wf_smu_dev;
135
136/* Controls & sensors */ 134/* Controls & sensors */
137static struct wf_sensor *sensor_cpu_power; 135static struct wf_sensor *sensor_cpu_power;
138static struct wf_sensor *sensor_cpu_temp; 136static struct wf_sensor *sensor_cpu_temp;
@@ -717,16 +715,14 @@ static int wf_init_pm(void)
717 return 0; 715 return 0;
718} 716}
719 717
720static int wf_smu_probe(struct device *ddev) 718static int wf_smu_probe(struct platform_device *ddev)
721{ 719{
722 wf_smu_dev = ddev;
723
724 wf_register_client(&wf_smu_events); 720 wf_register_client(&wf_smu_events);
725 721
726 return 0; 722 return 0;
727} 723}
728 724
729static int wf_smu_remove(struct device *ddev) 725static int __devexit wf_smu_remove(struct platform_device *ddev)
730{ 726{
731 wf_unregister_client(&wf_smu_events); 727 wf_unregister_client(&wf_smu_events);
732 728
@@ -766,16 +762,16 @@ static int wf_smu_remove(struct device *ddev)
766 if (wf_smu_cpu_fans) 762 if (wf_smu_cpu_fans)
767 kfree(wf_smu_cpu_fans); 763 kfree(wf_smu_cpu_fans);
768 764
769 wf_smu_dev = NULL;
770
771 return 0; 765 return 0;
772} 766}
773 767
774static struct device_driver wf_smu_driver = { 768static struct platform_driver wf_smu_driver = {
775 .name = "windfarm",
776 .bus = &platform_bus_type,
777 .probe = wf_smu_probe, 769 .probe = wf_smu_probe,
778 .remove = wf_smu_remove, 770 .remove = __devexit_p(wf_smu_remove),
771 .driver = {
772 .name = "windfarm",
773 .bus = &platform_bus_type,
774 },
779}; 775};
780 776
781 777
@@ -794,7 +790,7 @@ static int __init wf_smu_init(void)
794 request_module("windfarm_lm75_sensor"); 790 request_module("windfarm_lm75_sensor");
795 791
796#endif /* MODULE */ 792#endif /* MODULE */
797 driver_register(&wf_smu_driver); 793 platform_driver_register(&wf_smu_driver);
798 } 794 }
799 795
800 return rc; 796 return rc;
@@ -803,7 +799,7 @@ static int __init wf_smu_init(void)
803static void __exit wf_smu_exit(void) 799static void __exit wf_smu_exit(void)
804{ 800{
805 801
806 driver_unregister(&wf_smu_driver); 802 platform_driver_unregister(&wf_smu_driver);
807} 803}
808 804
809 805
diff --git a/drivers/macintosh/windfarm_pm91.c b/drivers/macintosh/windfarm_pm91.c
index 59e9ffe37c39..9961a67b4f85 100644
--- a/drivers/macintosh/windfarm_pm91.c
+++ b/drivers/macintosh/windfarm_pm91.c
@@ -63,8 +63,6 @@
63 */ 63 */
64#undef HACKED_OVERTEMP 64#undef HACKED_OVERTEMP
65 65
66static struct device *wf_smu_dev;
67
68/* Controls & sensors */ 66/* Controls & sensors */
69static struct wf_sensor *sensor_cpu_power; 67static struct wf_sensor *sensor_cpu_power;
70static struct wf_sensor *sensor_cpu_temp; 68static struct wf_sensor *sensor_cpu_temp;
@@ -641,16 +639,14 @@ static int wf_init_pm(void)
641 return 0; 639 return 0;
642} 640}
643 641
644static int wf_smu_probe(struct device *ddev) 642static int wf_smu_probe(struct platform_device *ddev)
645{ 643{
646 wf_smu_dev = ddev;
647
648 wf_register_client(&wf_smu_events); 644 wf_register_client(&wf_smu_events);
649 645
650 return 0; 646 return 0;
651} 647}
652 648
653static int wf_smu_remove(struct device *ddev) 649static int __devexit wf_smu_remove(struct platform_device *ddev)
654{ 650{
655 wf_unregister_client(&wf_smu_events); 651 wf_unregister_client(&wf_smu_events);
656 652
@@ -698,16 +694,16 @@ static int wf_smu_remove(struct device *ddev)
698 if (wf_smu_cpu_fans) 694 if (wf_smu_cpu_fans)
699 kfree(wf_smu_cpu_fans); 695 kfree(wf_smu_cpu_fans);
700 696
701 wf_smu_dev = NULL;
702
703 return 0; 697 return 0;
704} 698}
705 699
706static struct device_driver wf_smu_driver = { 700static struct platform_driver wf_smu_driver = {
707 .name = "windfarm",
708 .bus = &platform_bus_type,
709 .probe = wf_smu_probe, 701 .probe = wf_smu_probe,
710 .remove = wf_smu_remove, 702 .remove = __devexit_p(wf_smu_remove),
703 .driver = {
704 .name = "windfarm",
705 .bus = &platform_bus_type,
706 },
711}; 707};
712 708
713 709
@@ -725,7 +721,7 @@ static int __init wf_smu_init(void)
725 request_module("windfarm_lm75_sensor"); 721 request_module("windfarm_lm75_sensor");
726 722
727#endif /* MODULE */ 723#endif /* MODULE */
728 driver_register(&wf_smu_driver); 724 platform_driver_register(&wf_smu_driver);
729 } 725 }
730 726
731 return rc; 727 return rc;
@@ -734,7 +730,7 @@ static int __init wf_smu_init(void)
734static void __exit wf_smu_exit(void) 730static void __exit wf_smu_exit(void)
735{ 731{
736 732
737 driver_unregister(&wf_smu_driver); 733 platform_driver_unregister(&wf_smu_driver);
738} 734}
739 735
740 736
diff --git a/drivers/md/md.c b/drivers/md/md.c
index cb8281605be8..57fa64f93e5f 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -3849,6 +3849,7 @@ static int hot_add_disk(mddev_t * mddev, dev_t dev)
3849 } 3849 }
3850 clear_bit(In_sync, &rdev->flags); 3850 clear_bit(In_sync, &rdev->flags);
3851 rdev->desc_nr = -1; 3851 rdev->desc_nr = -1;
3852 rdev->saved_raid_disk = -1;
3852 err = bind_rdev_to_array(rdev, mddev); 3853 err = bind_rdev_to_array(rdev, mddev);
3853 if (err) 3854 if (err)
3854 goto abort_export; 3855 goto abort_export;
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/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c
index 20df657b70c8..2a461dde480c 100644
--- a/drivers/media/video/em28xx/em28xx-video.c
+++ b/drivers/media/video/em28xx/em28xx-video.c
@@ -174,7 +174,7 @@ static void em28xx_config_i2c(struct em28xx *dev)
174 174
175 route.input = INPUT(dev->ctl_input)->vmux; 175 route.input = INPUT(dev->ctl_input)->vmux;
176 route.output = 0; 176 route.output = 0;
177 em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, 0); 177 em28xx_i2c_call_clients(dev, VIDIOC_INT_RESET, NULL);
178 em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route); 178 em28xx_i2c_call_clients(dev, VIDIOC_INT_S_VIDEO_ROUTING, &route);
179 em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL); 179 em28xx_i2c_call_clients(dev, VIDIOC_STREAMON, NULL);
180 180
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..168e431d7c71 100644
--- a/drivers/media/video/zoran_device.c
+++ b/drivers/media/video/zoran_device.c
@@ -1408,15 +1408,14 @@ 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;
1416 struct zoran *zr; 1415 struct zoran *zr;
1417 unsigned long flags; 1416 unsigned long flags;
1418 1417
1419 zr = (struct zoran *) dev_id; 1418 zr = dev_id;
1420 count = 0; 1419 count = 0;
1421 1420
1422 if (zr->testing) { 1421 if (zr->testing) {
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..1ba8754e9383 100644
--- a/drivers/misc/tifm_7xx1.c
+++ b/drivers/misc/tifm_7xx1.c
@@ -48,7 +48,7 @@ static void tifm_7xx1_remove_media(void *adapter)
48 printk(KERN_INFO DRIVER_NAME 48 printk(KERN_INFO DRIVER_NAME
49 ": demand removing card from socket %d\n", cnt); 49 ": demand removing card from socket %d\n", cnt);
50 sock = fm->sockets[cnt]; 50 sock = fm->sockets[cnt];
51 fm->sockets[cnt] = 0; 51 fm->sockets[cnt] = NULL;
52 fm->remove_mask &= ~(1 << cnt); 52 fm->remove_mask &= ~(1 << cnt);
53 53
54 writel(0x0e00, sock->addr + SOCK_CONTROL); 54 writel(0x0e00, sock->addr + SOCK_CONTROL);
@@ -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;
@@ -118,7 +118,7 @@ static irqreturn_t tifm_7xx1_isr(int irq, void *dev_id, struct pt_regs *regs)
118 return IRQ_HANDLED; 118 return IRQ_HANDLED;
119} 119}
120 120
121static tifm_media_id tifm_7xx1_toggle_sock_power(char *sock_addr, int is_x2) 121static tifm_media_id tifm_7xx1_toggle_sock_power(char __iomem *sock_addr, int is_x2)
122{ 122{
123 unsigned int s_state; 123 unsigned int s_state;
124 int cnt; 124 int cnt;
@@ -163,7 +163,8 @@ static tifm_media_id tifm_7xx1_toggle_sock_power(char *sock_addr, int is_x2)
163 return (readl(sock_addr + SOCK_PRESENT_STATE) >> 4) & 7; 163 return (readl(sock_addr + SOCK_PRESENT_STATE) >> 4) & 7;
164} 164}
165 165
166inline static char *tifm_7xx1_sock_addr(char *base_addr, unsigned int sock_num) 166inline static char __iomem *
167tifm_7xx1_sock_addr(char __iomem *base_addr, unsigned int sock_num)
167{ 168{
168 return base_addr + ((sock_num + 1) << 10); 169 return base_addr + ((sock_num + 1) << 10);
169} 170}
@@ -176,7 +177,7 @@ static void tifm_7xx1_insert_media(void *adapter)
176 char *card_name = "xx"; 177 char *card_name = "xx";
177 int cnt, ok_to_register; 178 int cnt, ok_to_register;
178 unsigned int insert_mask; 179 unsigned int insert_mask;
179 struct tifm_dev *new_sock = 0; 180 struct tifm_dev *new_sock = NULL;
180 181
181 if (!class_device_get(&fm->cdev)) 182 if (!class_device_get(&fm->cdev))
182 return; 183 return;
@@ -230,7 +231,7 @@ static void tifm_7xx1_insert_media(void *adapter)
230 if (!ok_to_register || 231 if (!ok_to_register ||
231 device_register(&new_sock->dev)) { 232 device_register(&new_sock->dev)) {
232 spin_lock_irqsave(&fm->lock, flags); 233 spin_lock_irqsave(&fm->lock, flags);
233 fm->sockets[cnt] = 0; 234 fm->sockets[cnt] = NULL;
234 spin_unlock_irqrestore(&fm->lock, 235 spin_unlock_irqrestore(&fm->lock,
235 flags); 236 flags);
236 tifm_free_device(&new_sock->dev); 237 tifm_free_device(&new_sock->dev);
@@ -390,7 +391,7 @@ static void tifm_7xx1_remove(struct pci_dev *dev)
390 391
391 tifm_remove_adapter(fm); 392 tifm_remove_adapter(fm);
392 393
393 pci_set_drvdata(dev, 0); 394 pci_set_drvdata(dev, NULL);
394 395
395 iounmap(fm->addr); 396 iounmap(fm->addr);
396 pci_intx(dev, 0); 397 pci_intx(dev, 0);
diff --git a/drivers/misc/tifm_core.c b/drivers/misc/tifm_core.c
index cca5f8522469..ee326136d03b 100644
--- a/drivers/misc/tifm_core.c
+++ b/drivers/misc/tifm_core.c
@@ -157,7 +157,7 @@ struct tifm_dev *tifm_alloc_device(struct tifm_adapter *fm, unsigned int id)
157 dev->wq = create_singlethread_workqueue(dev->wq_name); 157 dev->wq = create_singlethread_workqueue(dev->wq_name);
158 if (!dev->wq) { 158 if (!dev->wq) {
159 kfree(dev); 159 kfree(dev);
160 return 0; 160 return NULL;
161 } 161 }
162 dev->dev.parent = fm->dev; 162 dev->dev.parent = fm->dev;
163 dev->dev.bus = &tifm_bus_type; 163 dev->dev.bus = &tifm_bus_type;
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/mmc_block.c b/drivers/mmc/mmc_block.c
index c1293f1bda87..f9027c8db792 100644
--- a/drivers/mmc/mmc_block.c
+++ b/drivers/mmc/mmc_block.c
@@ -28,6 +28,7 @@
28#include <linux/kdev_t.h> 28#include <linux/kdev_t.h>
29#include <linux/blkdev.h> 29#include <linux/blkdev.h>
30#include <linux/mutex.h> 30#include <linux/mutex.h>
31#include <linux/scatterlist.h>
31 32
32#include <linux/mmc/card.h> 33#include <linux/mmc/card.h>
33#include <linux/mmc/host.h> 34#include <linux/mmc/host.h>
@@ -154,6 +155,71 @@ static int mmc_blk_prep_rq(struct mmc_queue *mq, struct request *req)
154 return stat; 155 return stat;
155} 156}
156 157
158static u32 mmc_sd_num_wr_blocks(struct mmc_card *card)
159{
160 int err;
161 u32 blocks;
162
163 struct mmc_request mrq;
164 struct mmc_command cmd;
165 struct mmc_data data;
166 unsigned int timeout_us;
167
168 struct scatterlist sg;
169
170 memset(&cmd, 0, sizeof(struct mmc_command));
171
172 cmd.opcode = MMC_APP_CMD;
173 cmd.arg = card->rca << 16;
174 cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
175
176 err = mmc_wait_for_cmd(card->host, &cmd, 0);
177 if ((err != MMC_ERR_NONE) || !(cmd.resp[0] & R1_APP_CMD))
178 return (u32)-1;
179
180 memset(&cmd, 0, sizeof(struct mmc_command));
181
182 cmd.opcode = SD_APP_SEND_NUM_WR_BLKS;
183 cmd.arg = 0;
184 cmd.flags = MMC_RSP_R1 | MMC_CMD_ADTC;
185
186 memset(&data, 0, sizeof(struct mmc_data));
187
188 data.timeout_ns = card->csd.tacc_ns * 100;
189 data.timeout_clks = card->csd.tacc_clks * 100;
190
191 timeout_us = data.timeout_ns / 1000;
192 timeout_us += data.timeout_clks * 1000 /
193 (card->host->ios.clock / 1000);
194
195 if (timeout_us > 100000) {
196 data.timeout_ns = 100000000;
197 data.timeout_clks = 0;
198 }
199
200 data.blksz = 4;
201 data.blocks = 1;
202 data.flags = MMC_DATA_READ;
203 data.sg = &sg;
204 data.sg_len = 1;
205
206 memset(&mrq, 0, sizeof(struct mmc_request));
207
208 mrq.cmd = &cmd;
209 mrq.data = &data;
210
211 sg_init_one(&sg, &blocks, 4);
212
213 mmc_wait_for_req(card->host, &mrq);
214
215 if (cmd.error != MMC_ERR_NONE || data.error != MMC_ERR_NONE)
216 return (u32)-1;
217
218 blocks = ntohl(blocks);
219
220 return blocks;
221}
222
157static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req) 223static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
158{ 224{
159 struct mmc_blk_data *md = mq->data; 225 struct mmc_blk_data *md = mq->data;
@@ -184,10 +250,13 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
184 250
185 /* 251 /*
186 * If the host doesn't support multiple block writes, force 252 * If the host doesn't support multiple block writes, force
187 * block writes to single block. 253 * block writes to single block. SD cards are excepted from
254 * this rule as they support querying the number of
255 * successfully written sectors.
188 */ 256 */
189 if (rq_data_dir(req) != READ && 257 if (rq_data_dir(req) != READ &&
190 !(card->host->caps & MMC_CAP_MULTIWRITE)) 258 !(card->host->caps & MMC_CAP_MULTIWRITE) &&
259 !mmc_card_sd(card))
191 brq.data.blocks = 1; 260 brq.data.blocks = 1;
192 261
193 if (brq.data.blocks > 1) { 262 if (brq.data.blocks > 1) {
@@ -276,24 +345,41 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
276 return 1; 345 return 1;
277 346
278 cmd_err: 347 cmd_err:
279 mmc_card_release_host(card);
280
281 ret = 1; 348 ret = 1;
282 349
283 /* 350 /*
284 * For writes and where the host claims to support proper 351 * If this is an SD card and we're writing, we can first
285 * error reporting, we first ok the successful blocks. 352 * mark the known good sectors as ok.
353 *
354 * If the card is not SD, we can still ok written sectors
355 * if the controller can do proper error reporting.
286 * 356 *
287 * For reads we just fail the entire chunk as that should 357 * For reads we just fail the entire chunk as that should
288 * be safe in all cases. 358 * be safe in all cases.
289 */ 359 */
290 if (rq_data_dir(req) != READ && 360 if (rq_data_dir(req) != READ && mmc_card_sd(card)) {
291 (card->host->caps & MMC_CAP_MULTIWRITE)) { 361 u32 blocks;
362 unsigned int bytes;
363
364 blocks = mmc_sd_num_wr_blocks(card);
365 if (blocks != (u32)-1) {
366 if (card->csd.write_partial)
367 bytes = blocks << md->block_bits;
368 else
369 bytes = blocks << 9;
370 spin_lock_irq(&md->lock);
371 ret = end_that_request_chunk(req, 1, bytes);
372 spin_unlock_irq(&md->lock);
373 }
374 } else if (rq_data_dir(req) != READ &&
375 (card->host->caps & MMC_CAP_MULTIWRITE)) {
292 spin_lock_irq(&md->lock); 376 spin_lock_irq(&md->lock);
293 ret = end_that_request_chunk(req, 1, brq.data.bytes_xfered); 377 ret = end_that_request_chunk(req, 1, brq.data.bytes_xfered);
294 spin_unlock_irq(&md->lock); 378 spin_unlock_irq(&md->lock);
295 } 379 }
296 380
381 mmc_card_release_host(card);
382
297 spin_lock_irq(&md->lock); 383 spin_lock_irq(&md->lock);
298 while (ret) { 384 while (ret) {
299 ret = end_that_request_chunk(req, 0, 385 ret = end_that_request_chunk(req, 0,
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..9a7d39b7cdbf 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;
@@ -1329,7 +1329,7 @@ static int __devinit sdhci_probe_slot(struct pci_dev *pdev, int slot)
1329 tasklet_init(&host->finish_tasklet, 1329 tasklet_init(&host->finish_tasklet,
1330 sdhci_tasklet_finish, (unsigned long)host); 1330 sdhci_tasklet_finish, (unsigned long)host);
1331 1331
1332 setup_timer(&host->timer, sdhci_timeout_timer, (long)host); 1332 setup_timer(&host->timer, sdhci_timeout_timer, (unsigned long)host);
1333 1333
1334 ret = request_irq(host->irq, sdhci_irq, IRQF_SHARED, 1334 ret = request_irq(host->irq, sdhci_irq, IRQF_SHARED,
1335 host->slot_descr, host); 1335 host->slot_descr, host);
diff --git a/drivers/mmc/tifm_sd.c b/drivers/mmc/tifm_sd.c
index 6d23dc08d169..2bacff60913d 100644
--- a/drivers/mmc/tifm_sd.c
+++ b/drivers/mmc/tifm_sd.c
@@ -501,13 +501,13 @@ static void tifm_sd_end_cmd(void *data)
501 struct tifm_dev *sock = host->dev; 501 struct tifm_dev *sock = host->dev;
502 struct mmc_host *mmc = tifm_get_drvdata(sock); 502 struct mmc_host *mmc = tifm_get_drvdata(sock);
503 struct mmc_request *mrq; 503 struct mmc_request *mrq;
504 struct mmc_data *r_data = 0; 504 struct mmc_data *r_data = NULL;
505 unsigned long flags; 505 unsigned long flags;
506 506
507 spin_lock_irqsave(&sock->lock, flags); 507 spin_lock_irqsave(&sock->lock, flags);
508 508
509 mrq = host->req; 509 mrq = host->req;
510 host->req = 0; 510 host->req = NULL;
511 host->state = IDLE; 511 host->state = IDLE;
512 512
513 if (!mrq) { 513 if (!mrq) {
@@ -546,7 +546,7 @@ static void tifm_sd_request_nodma(struct mmc_host *mmc, struct mmc_request *mrq)
546 struct tifm_dev *sock = host->dev; 546 struct tifm_dev *sock = host->dev;
547 unsigned long flags; 547 unsigned long flags;
548 struct mmc_data *r_data = mrq->cmd->data; 548 struct mmc_data *r_data = mrq->cmd->data;
549 char *t_buffer = 0; 549 char *t_buffer = NULL;
550 550
551 if (r_data) { 551 if (r_data) {
552 t_buffer = kmap(r_data->sg->page); 552 t_buffer = kmap(r_data->sg->page);
@@ -613,13 +613,13 @@ static void tifm_sd_end_cmd_nodma(void *data)
613 struct tifm_dev *sock = host->dev; 613 struct tifm_dev *sock = host->dev;
614 struct mmc_host *mmc = tifm_get_drvdata(sock); 614 struct mmc_host *mmc = tifm_get_drvdata(sock);
615 struct mmc_request *mrq; 615 struct mmc_request *mrq;
616 struct mmc_data *r_data = 0; 616 struct mmc_data *r_data = NULL;
617 unsigned long flags; 617 unsigned long flags;
618 618
619 spin_lock_irqsave(&sock->lock, flags); 619 spin_lock_irqsave(&sock->lock, flags);
620 620
621 mrq = host->req; 621 mrq = host->req;
622 host->req = 0; 622 host->req = NULL;
623 host->state = IDLE; 623 host->state = IDLE;
624 624
625 if (!mrq) { 625 if (!mrq) {
@@ -644,7 +644,7 @@ static void tifm_sd_end_cmd_nodma(void *data)
644 r_data->bytes_xfered += r_data->blksz - 644 r_data->bytes_xfered += r_data->blksz -
645 readl(sock->addr + SOCK_MMCSD_BLOCK_LEN) + 1; 645 readl(sock->addr + SOCK_MMCSD_BLOCK_LEN) + 1;
646 } 646 }
647 host->buffer = 0; 647 host->buffer = NULL;
648 host->buffer_pos = 0; 648 host->buffer_pos = 0;
649 host->buffer_size = 0; 649 host->buffer_size = 0;
650 } 650 }
@@ -895,7 +895,7 @@ static void tifm_sd_remove(struct tifm_dev *sock)
895 sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR); 895 sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR);
896 writel(0, sock->addr + SOCK_DMA_FIFO_INT_ENABLE_SET); 896 writel(0, sock->addr + SOCK_DMA_FIFO_INT_ENABLE_SET);
897 897
898 tifm_set_drvdata(sock, 0); 898 tifm_set_drvdata(sock, NULL);
899 mmc_free_host(mmc); 899 mmc_free_host(mmc);
900} 900}
901 901
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/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c
index bc7cc71788bc..d1717763f719 100644
--- a/drivers/mtd/maps/physmap.c
+++ b/drivers/mtd/maps/physmap.c
@@ -62,7 +62,7 @@ static int physmap_flash_remove(struct platform_device *dev)
62 } 62 }
63 63
64 if (info->map.virt != NULL) 64 if (info->map.virt != NULL)
65 iounmap((void *)info->map.virt); 65 iounmap(info->map.virt);
66 66
67 if (info->res != NULL) { 67 if (info->res != NULL) {
68 release_resource(info->res); 68 release_resource(info->res);
diff --git a/drivers/mtd/nand/cs553x_nand.c b/drivers/mtd/nand/cs553x_nand.c
index e0a1d386e581..94924d52a9b9 100644
--- a/drivers/mtd/nand/cs553x_nand.c
+++ b/drivers/mtd/nand/cs553x_nand.c
@@ -249,7 +249,7 @@ static int __init cs553x_init_one(int cs, int mmio, unsigned long adr)
249 goto out; 249 goto out;
250 250
251out_ior: 251out_ior:
252 iounmap((void *)this->IO_ADDR_R); 252 iounmap(this->IO_ADDR_R);
253out_mtd: 253out_mtd:
254 kfree(new_mtd); 254 kfree(new_mtd);
255out: 255out:
diff --git a/drivers/net/3c501.c b/drivers/net/3c501.c
index 1b82bccd8c71..11d170afa9c3 100644
--- a/drivers/net/3c501.c
+++ b/drivers/net/3c501.c
@@ -496,7 +496,6 @@ static int el_start_xmit(struct sk_buff *skb, struct net_device *dev)
496 * el_interrupt: 496 * el_interrupt:
497 * @irq: Interrupt number 497 * @irq: Interrupt number
498 * @dev_id: The 3c501 that burped 498 * @dev_id: The 3c501 that burped
499 * @regs: Register data (surplus to our requirements)
500 * 499 *
501 * Handle the ether interface interrupts. The 3c501 needs a lot more 500 * Handle the ether interface interrupts. The 3c501 needs a lot more
502 * hand holding than most cards. In particular we get a transmit interrupt 501 * hand holding than most cards. In particular we get a transmit interrupt
@@ -515,7 +514,7 @@ static int el_start_xmit(struct sk_buff *skb, struct net_device *dev)
515 * TCP window. 514 * TCP window.
516 */ 515 */
517 516
518static irqreturn_t el_interrupt(int irq, void *dev_id, struct pt_regs *regs) 517static irqreturn_t el_interrupt(int irq, void *dev_id)
519{ 518{
520 struct net_device *dev = dev_id; 519 struct net_device *dev = dev_id;
521 struct net_local *lp; 520 struct net_local *lp;
diff --git a/drivers/net/3c501.h b/drivers/net/3c501.h
index 39d332474750..c56a2c62f7de 100644
--- a/drivers/net/3c501.h
+++ b/drivers/net/3c501.h
@@ -7,7 +7,7 @@ static int el1_probe1(struct net_device *dev, int ioaddr);
7static int el_open(struct net_device *dev); 7static int el_open(struct net_device *dev);
8static void el_timeout(struct net_device *dev); 8static void el_timeout(struct net_device *dev);
9static int el_start_xmit(struct sk_buff *skb, struct net_device *dev); 9static int el_start_xmit(struct sk_buff *skb, struct net_device *dev);
10static irqreturn_t el_interrupt(int irq, void *dev_id, struct pt_regs *regs); 10static irqreturn_t el_interrupt(int irq, void *dev_id);
11static void el_receive(struct net_device *dev); 11static void el_receive(struct net_device *dev);
12static void el_reset(struct net_device *dev); 12static void el_reset(struct net_device *dev);
13static int el1_close(struct net_device *dev); 13static int el1_close(struct net_device *dev);
diff --git a/drivers/net/3c505.c b/drivers/net/3c505.c
index ab8230a68bea..458cb9cbe915 100644
--- a/drivers/net/3c505.c
+++ b/drivers/net/3c505.c
@@ -649,7 +649,7 @@ static void receive_packet(struct net_device *dev, int len)
649 * 649 *
650 ******************************************************/ 650 ******************************************************/
651 651
652static irqreturn_t elp_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr) 652static irqreturn_t elp_interrupt(int irq, void *dev_id)
653{ 653{
654 int len; 654 int len;
655 int dlen; 655 int dlen;
diff --git a/drivers/net/3c507.c b/drivers/net/3c507.c
index 8205a535c5b7..aa43563610ae 100644
--- a/drivers/net/3c507.c
+++ b/drivers/net/3c507.c
@@ -286,7 +286,7 @@ static unsigned short init_words[] = {
286static int el16_probe1(struct net_device *dev, int ioaddr); 286static int el16_probe1(struct net_device *dev, int ioaddr);
287static int el16_open(struct net_device *dev); 287static int el16_open(struct net_device *dev);
288static int el16_send_packet(struct sk_buff *skb, struct net_device *dev); 288static int el16_send_packet(struct sk_buff *skb, struct net_device *dev);
289static irqreturn_t el16_interrupt(int irq, void *dev_id, struct pt_regs *regs); 289static irqreturn_t el16_interrupt(int irq, void *dev_id);
290static void el16_rx(struct net_device *dev); 290static void el16_rx(struct net_device *dev);
291static int el16_close(struct net_device *dev); 291static int el16_close(struct net_device *dev);
292static struct net_device_stats *el16_get_stats(struct net_device *dev); 292static struct net_device_stats *el16_get_stats(struct net_device *dev);
@@ -543,7 +543,7 @@ static int el16_send_packet (struct sk_buff *skb, struct net_device *dev)
543 543
544/* The typical workload of the driver: 544/* The typical workload of the driver:
545 Handle the network interface interrupts. */ 545 Handle the network interface interrupts. */
546static irqreturn_t el16_interrupt(int irq, void *dev_id, struct pt_regs *regs) 546static irqreturn_t el16_interrupt(int irq, void *dev_id)
547{ 547{
548 struct net_device *dev = dev_id; 548 struct net_device *dev = dev_id;
549 struct net_local *lp; 549 struct net_local *lp;
diff --git a/drivers/net/3c509.c b/drivers/net/3c509.c
index b936373ab2a5..f791bf026e51 100644
--- a/drivers/net/3c509.c
+++ b/drivers/net/3c509.c
@@ -191,7 +191,7 @@ static ushort id_read_eeprom(int index);
191static ushort read_eeprom(int ioaddr, int index); 191static ushort read_eeprom(int ioaddr, int index);
192static int el3_open(struct net_device *dev); 192static int el3_open(struct net_device *dev);
193static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev); 193static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev);
194static irqreturn_t el3_interrupt(int irq, void *dev_id, struct pt_regs *regs); 194static irqreturn_t el3_interrupt(int irq, void *dev_id);
195static void update_stats(struct net_device *dev); 195static void update_stats(struct net_device *dev);
196static struct net_device_stats *el3_get_stats(struct net_device *dev); 196static struct net_device_stats *el3_get_stats(struct net_device *dev);
197static int el3_rx(struct net_device *dev); 197static int el3_rx(struct net_device *dev);
@@ -910,18 +910,13 @@ el3_start_xmit(struct sk_buff *skb, struct net_device *dev)
910 910
911/* The EL3 interrupt handler. */ 911/* The EL3 interrupt handler. */
912static irqreturn_t 912static irqreturn_t
913el3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 913el3_interrupt(int irq, void *dev_id)
914{ 914{
915 struct net_device *dev = (struct net_device *)dev_id; 915 struct net_device *dev = dev_id;
916 struct el3_private *lp; 916 struct el3_private *lp;
917 int ioaddr, status; 917 int ioaddr, status;
918 int i = max_interrupt_work; 918 int i = max_interrupt_work;
919 919
920 if (dev == NULL) {
921 printk ("el3_interrupt(): irq %d for unknown device.\n", irq);
922 return IRQ_NONE;
923 }
924
925 lp = netdev_priv(dev); 920 lp = netdev_priv(dev);
926 spin_lock(&lp->lock); 921 spin_lock(&lp->lock);
927 922
@@ -1006,7 +1001,7 @@ el3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1006static void el3_poll_controller(struct net_device *dev) 1001static void el3_poll_controller(struct net_device *dev)
1007{ 1002{
1008 disable_irq(dev->irq); 1003 disable_irq(dev->irq);
1009 el3_interrupt(dev->irq, dev, NULL); 1004 el3_interrupt(dev->irq, dev);
1010 enable_irq(dev->irq); 1005 enable_irq(dev->irq);
1011} 1006}
1012#endif 1007#endif
diff --git a/drivers/net/3c515.c b/drivers/net/3c515.c
index 91f2232e6050..c307ce66145c 100644
--- a/drivers/net/3c515.c
+++ b/drivers/net/3c515.c
@@ -373,8 +373,7 @@ static int corkscrew_start_xmit(struct sk_buff *skb,
373static int corkscrew_rx(struct net_device *dev); 373static int corkscrew_rx(struct net_device *dev);
374static void corkscrew_timeout(struct net_device *dev); 374static void corkscrew_timeout(struct net_device *dev);
375static int boomerang_rx(struct net_device *dev); 375static int boomerang_rx(struct net_device *dev);
376static irqreturn_t corkscrew_interrupt(int irq, void *dev_id, 376static irqreturn_t corkscrew_interrupt(int irq, void *dev_id);
377 struct pt_regs *regs);
378static int corkscrew_close(struct net_device *dev); 377static int corkscrew_close(struct net_device *dev);
379static void update_stats(int addr, struct net_device *dev); 378static void update_stats(int addr, struct net_device *dev);
380static struct net_device_stats *corkscrew_get_stats(struct net_device *dev); 379static struct net_device_stats *corkscrew_get_stats(struct net_device *dev);
@@ -1116,8 +1115,7 @@ static int corkscrew_start_xmit(struct sk_buff *skb,
1116/* The interrupt handler does all of the Rx thread work and cleans up 1115/* The interrupt handler does all of the Rx thread work and cleans up
1117 after the Tx thread. */ 1116 after the Tx thread. */
1118 1117
1119static irqreturn_t corkscrew_interrupt(int irq, void *dev_id, 1118static irqreturn_t corkscrew_interrupt(int irq, void *dev_id)
1120 struct pt_regs *regs)
1121{ 1119{
1122 /* Use the now-standard shared IRQ implementation. */ 1120 /* Use the now-standard shared IRQ implementation. */
1123 struct net_device *dev = dev_id; 1121 struct net_device *dev = dev_id;
diff --git a/drivers/net/3c523.c b/drivers/net/3c523.c
index cf8a0bc3bf34..91849469b4f4 100644
--- a/drivers/net/3c523.c
+++ b/drivers/net/3c523.c
@@ -180,7 +180,7 @@ sizeof(nop_cmd) = 8;
180 dev->name,__LINE__); \ 180 dev->name,__LINE__); \
181 elmc_id_reset586(); } } } 181 elmc_id_reset586(); } } }
182 182
183static irqreturn_t elmc_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr); 183static irqreturn_t elmc_interrupt(int irq, void *dev_id);
184static int elmc_open(struct net_device *dev); 184static int elmc_open(struct net_device *dev);
185static int elmc_close(struct net_device *dev); 185static int elmc_close(struct net_device *dev);
186static int elmc_send_packet(struct sk_buff *, struct net_device *); 186static int elmc_send_packet(struct sk_buff *, struct net_device *);
@@ -900,16 +900,13 @@ static void *alloc_rfa(struct net_device *dev, void *ptr)
900 */ 900 */
901 901
902static irqreturn_t 902static irqreturn_t
903elmc_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr) 903elmc_interrupt(int irq, void *dev_id)
904{ 904{
905 struct net_device *dev = (struct net_device *) dev_id; 905 struct net_device *dev = dev_id;
906 unsigned short stat; 906 unsigned short stat;
907 struct priv *p; 907 struct priv *p;
908 908
909 if (dev == NULL) { 909 if (!netif_running(dev)) {
910 printk(KERN_ERR "elmc-interrupt: irq %d for unknown device.\n", (int) -(((struct pt_regs *) reg_ptr)->orig_eax + 2));
911 return IRQ_NONE;
912 } else if (!netif_running(dev)) {
913 /* The 3c523 has this habit of generating interrupts during the 910 /* The 3c523 has this habit of generating interrupts during the
914 reset. I'm not sure if the ni52 has this same problem, but it's 911 reset. I'm not sure if the ni52 has this same problem, but it's
915 really annoying if we haven't finished initializing it. I was 912 really annoying if we haven't finished initializing it. I was
diff --git a/drivers/net/3c527.c b/drivers/net/3c527.c
index 625e57dc3b4a..f4aca5386add 100644
--- a/drivers/net/3c527.c
+++ b/drivers/net/3c527.c
@@ -217,7 +217,7 @@ static int mc32_command(struct net_device *dev, u16 cmd, void *data, int le
217static int mc32_open(struct net_device *dev); 217static int mc32_open(struct net_device *dev);
218static void mc32_timeout(struct net_device *dev); 218static void mc32_timeout(struct net_device *dev);
219static int mc32_send_packet(struct sk_buff *skb, struct net_device *dev); 219static int mc32_send_packet(struct sk_buff *skb, struct net_device *dev);
220static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs *regs); 220static irqreturn_t mc32_interrupt(int irq, void *dev_id);
221static int mc32_close(struct net_device *dev); 221static int mc32_close(struct net_device *dev);
222static struct net_device_stats *mc32_get_stats(struct net_device *dev); 222static struct net_device_stats *mc32_get_stats(struct net_device *dev);
223static void mc32_set_multicast_list(struct net_device *dev); 223static void mc32_set_multicast_list(struct net_device *dev);
@@ -1316,7 +1316,7 @@ static void mc32_tx_ring(struct net_device *dev)
1316 * 1316 *
1317 */ 1317 */
1318 1318
1319static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1319static irqreturn_t mc32_interrupt(int irq, void *dev_id)
1320{ 1320{
1321 struct net_device *dev = dev_id; 1321 struct net_device *dev = dev_id;
1322 struct mc32_local *lp; 1322 struct mc32_local *lp;
@@ -1324,11 +1324,6 @@ static irqreturn_t mc32_interrupt(int irq, void *dev_id, struct pt_regs * regs)
1324 int rx_event = 0; 1324 int rx_event = 0;
1325 int tx_event = 0; 1325 int tx_event = 0;
1326 1326
1327 if (dev == NULL) {
1328 printk(KERN_WARNING "%s: irq %d for unknown device.\n", cardname, irq);
1329 return IRQ_NONE;
1330 }
1331
1332 ioaddr = dev->base_addr; 1327 ioaddr = dev->base_addr;
1333 lp = netdev_priv(dev); 1328 lp = netdev_priv(dev);
1334 1329
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
index df42e28cc80f..80bdcf846234 100644
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -717,8 +717,8 @@ static int vortex_start_xmit(struct sk_buff *skb, struct net_device *dev);
717static int boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev); 717static int boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev);
718static int vortex_rx(struct net_device *dev); 718static int vortex_rx(struct net_device *dev);
719static int boomerang_rx(struct net_device *dev); 719static int boomerang_rx(struct net_device *dev);
720static irqreturn_t vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs); 720static irqreturn_t vortex_interrupt(int irq, void *dev_id);
721static irqreturn_t boomerang_interrupt(int irq, void *dev_id, struct pt_regs *regs); 721static irqreturn_t boomerang_interrupt(int irq, void *dev_id);
722static int vortex_close(struct net_device *dev); 722static int vortex_close(struct net_device *dev);
723static void dump_tx_ring(struct net_device *dev); 723static void dump_tx_ring(struct net_device *dev);
724static void update_stats(void __iomem *ioaddr, struct net_device *dev); 724static void update_stats(void __iomem *ioaddr, struct net_device *dev);
@@ -794,7 +794,7 @@ static void poll_vortex(struct net_device *dev)
794 unsigned long flags; 794 unsigned long flags;
795 local_save_flags(flags); 795 local_save_flags(flags);
796 local_irq_disable(); 796 local_irq_disable();
797 (vp->full_bus_master_rx ? boomerang_interrupt:vortex_interrupt)(dev->irq,dev,NULL); 797 (vp->full_bus_master_rx ? boomerang_interrupt:vortex_interrupt)(dev->irq,dev);
798 local_irq_restore(flags); 798 local_irq_restore(flags);
799} 799}
800#endif 800#endif
@@ -1849,9 +1849,9 @@ static void vortex_tx_timeout(struct net_device *dev)
1849 unsigned long flags; 1849 unsigned long flags;
1850 local_irq_save(flags); 1850 local_irq_save(flags);
1851 if (vp->full_bus_master_tx) 1851 if (vp->full_bus_master_tx)
1852 boomerang_interrupt(dev->irq, dev, NULL); 1852 boomerang_interrupt(dev->irq, dev);
1853 else 1853 else
1854 vortex_interrupt(dev->irq, dev, NULL); 1854 vortex_interrupt(dev->irq, dev);
1855 local_irq_restore(flags); 1855 local_irq_restore(flags);
1856 } 1856 }
1857 } 1857 }
@@ -2149,7 +2149,7 @@ boomerang_start_xmit(struct sk_buff *skb, struct net_device *dev)
2149 */ 2149 */
2150 2150
2151static irqreturn_t 2151static irqreturn_t
2152vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2152vortex_interrupt(int irq, void *dev_id)
2153{ 2153{
2154 struct net_device *dev = dev_id; 2154 struct net_device *dev = dev_id;
2155 struct vortex_private *vp = netdev_priv(dev); 2155 struct vortex_private *vp = netdev_priv(dev);
@@ -2254,7 +2254,7 @@ handler_exit:
2254 */ 2254 */
2255 2255
2256static irqreturn_t 2256static irqreturn_t
2257boomerang_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2257boomerang_interrupt(int irq, void *dev_id)
2258{ 2258{
2259 struct net_device *dev = dev_id; 2259 struct net_device *dev = dev_id;
2260 struct vortex_private *vp = netdev_priv(dev); 2260 struct vortex_private *vp = netdev_priv(dev);
diff --git a/drivers/net/7990.c b/drivers/net/7990.c
index db7b19a5cd59..7733697f7776 100644
--- a/drivers/net/7990.c
+++ b/drivers/net/7990.c
@@ -438,7 +438,7 @@ static int lance_tx (struct net_device *dev)
438} 438}
439 439
440static irqreturn_t 440static irqreturn_t
441lance_interrupt (int irq, void *dev_id, struct pt_regs *regs) 441lance_interrupt (int irq, void *dev_id)
442{ 442{
443 struct net_device *dev = (struct net_device *)dev_id; 443 struct net_device *dev = (struct net_device *)dev_id;
444 struct lance_private *lp = netdev_priv(dev); 444 struct lance_private *lp = netdev_priv(dev);
@@ -674,7 +674,7 @@ void lance_poll(struct net_device *dev)
674 WRITERAP(lp, LE_CSR0); 674 WRITERAP(lp, LE_CSR0);
675 WRITERDP(lp, LE_C0_STRT); 675 WRITERDP(lp, LE_C0_STRT);
676 spin_unlock (&lp->devlock); 676 spin_unlock (&lp->devlock);
677 lance_interrupt(dev->irq, dev, NULL); 677 lance_interrupt(dev->irq, dev);
678} 678}
679#endif 679#endif
680 680
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index 5a4990ae3730..458dd9f830c4 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -631,8 +631,7 @@ rx_next:
631 return 1; /* not done */ 631 return 1; /* not done */
632} 632}
633 633
634static irqreturn_t 634static irqreturn_t cp_interrupt (int irq, void *dev_instance)
635cp_interrupt (int irq, void *dev_instance, struct pt_regs *regs)
636{ 635{
637 struct net_device *dev = dev_instance; 636 struct net_device *dev = dev_instance;
638 struct cp_private *cp; 637 struct cp_private *cp;
@@ -696,7 +695,7 @@ cp_interrupt (int irq, void *dev_instance, struct pt_regs *regs)
696static void cp_poll_controller(struct net_device *dev) 695static void cp_poll_controller(struct net_device *dev)
697{ 696{
698 disable_irq(dev->irq); 697 disable_irq(dev->irq);
699 cp_interrupt(dev->irq, dev, NULL); 698 cp_interrupt(dev->irq, dev);
700 enable_irq(dev->irq); 699 enable_irq(dev->irq);
701} 700}
702#endif 701#endif
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index dbc5c0b1b96c..d02ed51abfcc 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -629,8 +629,7 @@ static int rtl8139_poll(struct net_device *dev, int *budget);
629#ifdef CONFIG_NET_POLL_CONTROLLER 629#ifdef CONFIG_NET_POLL_CONTROLLER
630static void rtl8139_poll_controller(struct net_device *dev); 630static void rtl8139_poll_controller(struct net_device *dev);
631#endif 631#endif
632static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance, 632static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance);
633 struct pt_regs *regs);
634static int rtl8139_close (struct net_device *dev); 633static int rtl8139_close (struct net_device *dev);
635static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd); 634static int netdev_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
636static struct net_device_stats *rtl8139_get_stats (struct net_device *dev); 635static struct net_device_stats *rtl8139_get_stats (struct net_device *dev);
@@ -2146,8 +2145,7 @@ static int rtl8139_poll(struct net_device *dev, int *budget)
2146 2145
2147/* The interrupt handler does all of the Rx thread work and cleans up 2146/* The interrupt handler does all of the Rx thread work and cleans up
2148 after the Tx thread. */ 2147 after the Tx thread. */
2149static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance, 2148static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance)
2150 struct pt_regs *regs)
2151{ 2149{
2152 struct net_device *dev = (struct net_device *) dev_instance; 2150 struct net_device *dev = (struct net_device *) dev_instance;
2153 struct rtl8139_private *tp = netdev_priv(dev); 2151 struct rtl8139_private *tp = netdev_priv(dev);
@@ -2219,7 +2217,7 @@ static irqreturn_t rtl8139_interrupt (int irq, void *dev_instance,
2219static void rtl8139_poll_controller(struct net_device *dev) 2217static void rtl8139_poll_controller(struct net_device *dev)
2220{ 2218{
2221 disable_irq(dev->irq); 2219 disable_irq(dev->irq);
2222 rtl8139_interrupt(dev->irq, dev, NULL); 2220 rtl8139_interrupt(dev->irq, dev);
2223 enable_irq(dev->irq); 2221 enable_irq(dev->irq);
2224} 2222}
2225#endif 2223#endif
diff --git a/drivers/net/82596.c b/drivers/net/82596.c
index c9e4dca9d410..8236f26ffd46 100644
--- a/drivers/net/82596.c
+++ b/drivers/net/82596.c
@@ -357,7 +357,7 @@ static char init_setup[] =
357 357
358static int i596_open(struct net_device *dev); 358static int i596_open(struct net_device *dev);
359static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev); 359static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev);
360static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs); 360static irqreturn_t i596_interrupt(int irq, void *dev_id);
361static int i596_close(struct net_device *dev); 361static int i596_close(struct net_device *dev);
362static struct net_device_stats *i596_get_stats(struct net_device *dev); 362static struct net_device_stats *i596_get_stats(struct net_device *dev);
363static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd); 363static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd);
@@ -501,7 +501,7 @@ static void i596_display_data(struct net_device *dev)
501 501
502 502
503#if defined(ENABLE_MVME16x_NET) || defined(ENABLE_BVME6000_NET) 503#if defined(ENABLE_MVME16x_NET) || defined(ENABLE_BVME6000_NET)
504static irqreturn_t i596_error(int irq, void *dev_id, struct pt_regs *regs) 504static irqreturn_t i596_error(int irq, void *dev_id)
505{ 505{
506 struct net_device *dev = dev_id; 506 struct net_device *dev = dev_id;
507#ifdef ENABLE_MVME16x_NET 507#ifdef ENABLE_MVME16x_NET
@@ -1283,7 +1283,7 @@ out:
1283 return ERR_PTR(err); 1283 return ERR_PTR(err);
1284} 1284}
1285 1285
1286static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1286static irqreturn_t i596_interrupt(int irq, void *dev_id)
1287{ 1287{
1288 struct net_device *dev = dev_id; 1288 struct net_device *dev = dev_id;
1289 struct i596_private *lp; 1289 struct i596_private *lp;
@@ -1294,7 +1294,7 @@ static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1294#ifdef ENABLE_BVME6000_NET 1294#ifdef ENABLE_BVME6000_NET
1295 if (MACH_IS_BVME6000) { 1295 if (MACH_IS_BVME6000) {
1296 if (*(char *) BVME_LOCAL_IRQ_STAT & BVME_ETHERR) { 1296 if (*(char *) BVME_LOCAL_IRQ_STAT & BVME_ETHERR) {
1297 i596_error(irq, dev_id, regs); 1297 i596_error(irq, dev_id);
1298 return IRQ_HANDLED; 1298 return IRQ_HANDLED;
1299 } 1299 }
1300 } 1300 }
diff --git a/drivers/net/8390.c b/drivers/net/8390.c
index 9d34056147ad..3d1c599ac3cb 100644
--- a/drivers/net/8390.c
+++ b/drivers/net/8390.c
@@ -391,7 +391,6 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
391 * ei_interrupt - handle the interrupts from an 8390 391 * ei_interrupt - handle the interrupts from an 8390
392 * @irq: interrupt number 392 * @irq: interrupt number
393 * @dev_id: a pointer to the net_device 393 * @dev_id: a pointer to the net_device
394 * @regs: unused
395 * 394 *
396 * Handle the ether interface interrupts. We pull packets from 395 * Handle the ether interface interrupts. We pull packets from
397 * the 8390 via the card specific functions and fire them at the networking 396 * the 8390 via the card specific functions and fire them at the networking
@@ -400,21 +399,15 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
400 * needed. 399 * needed.
401 */ 400 */
402 401
403irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs) 402irqreturn_t ei_interrupt(int irq, void *dev_id)
404{ 403{
405 struct net_device *dev = dev_id; 404 struct net_device *dev = dev_id;
406 long e8390_base; 405 long e8390_base;
407 int interrupts, nr_serviced = 0; 406 int interrupts, nr_serviced = 0;
408 struct ei_device *ei_local; 407 struct ei_device *ei_local;
409 408
410 if (dev == NULL)
411 {
412 printk ("net_interrupt(): irq %d for unknown device.\n", irq);
413 return IRQ_NONE;
414 }
415
416 e8390_base = dev->base_addr; 409 e8390_base = dev->base_addr;
417 ei_local = (struct ei_device *) netdev_priv(dev); 410 ei_local = netdev_priv(dev);
418 411
419 /* 412 /*
420 * Protect the irq test too. 413 * Protect the irq test too.
@@ -506,7 +499,7 @@ irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs * regs)
506void ei_poll(struct net_device *dev) 499void ei_poll(struct net_device *dev)
507{ 500{
508 disable_irq_lockdep(dev->irq); 501 disable_irq_lockdep(dev->irq);
509 ei_interrupt(dev->irq, dev, NULL); 502 ei_interrupt(dev->irq, dev);
510 enable_irq_lockdep(dev->irq); 503 enable_irq_lockdep(dev->irq);
511} 504}
512#endif 505#endif
diff --git a/drivers/net/8390.h b/drivers/net/8390.h
index ca4eb0ccf8cf..f44f1220b3a5 100644
--- a/drivers/net/8390.h
+++ b/drivers/net/8390.h
@@ -35,7 +35,7 @@ extern void ei_poll(struct net_device *dev);
35extern void NS8390_init(struct net_device *dev, int startp); 35extern void NS8390_init(struct net_device *dev, int startp);
36extern int ei_open(struct net_device *dev); 36extern int ei_open(struct net_device *dev);
37extern int ei_close(struct net_device *dev); 37extern int ei_close(struct net_device *dev);
38extern irqreturn_t ei_interrupt(int irq, void *dev_id, struct pt_regs *regs); 38extern irqreturn_t ei_interrupt(int irq, void *dev_id);
39extern struct net_device *__alloc_ei_netdev(int size); 39extern struct net_device *__alloc_ei_netdev(int size);
40static inline struct net_device *alloc_ei_netdev(void) 40static inline struct net_device *alloc_ei_netdev(void)
41{ 41{
diff --git a/drivers/net/a2065.c b/drivers/net/a2065.c
index 5f7258fea19d..d76548e75350 100644
--- a/drivers/net/a2065.c
+++ b/drivers/net/a2065.c
@@ -425,8 +425,7 @@ static int lance_tx (struct net_device *dev)
425 return 0; 425 return 0;
426} 426}
427 427
428static irqreturn_t 428static irqreturn_t lance_interrupt (int irq, void *dev_id)
429lance_interrupt (int irq, void *dev_id, struct pt_regs *regs)
430{ 429{
431 struct net_device *dev; 430 struct net_device *dev;
432 struct lance_private *lp; 431 struct lance_private *lp;
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index 71a4f60f7325..33c6645455ae 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -2144,7 +2144,7 @@ static inline void ace_tx_int(struct net_device *dev,
2144} 2144}
2145 2145
2146 2146
2147static irqreturn_t ace_interrupt(int irq, void *dev_id, struct pt_regs *ptregs) 2147static irqreturn_t ace_interrupt(int irq, void *dev_id)
2148{ 2148{
2149 struct net_device *dev = (struct net_device *)dev_id; 2149 struct net_device *dev = (struct net_device *)dev_id;
2150 struct ace_private *ap = netdev_priv(dev); 2150 struct ace_private *ap = netdev_priv(dev);
diff --git a/drivers/net/acenic.h b/drivers/net/acenic.h
index efb14b9f4d90..8ca8534d70bf 100644
--- a/drivers/net/acenic.h
+++ b/drivers/net/acenic.h
@@ -769,7 +769,7 @@ static int ace_init(struct net_device *dev);
769static void ace_load_std_rx_ring(struct ace_private *ap, int nr_bufs); 769static void ace_load_std_rx_ring(struct ace_private *ap, int nr_bufs);
770static void ace_load_mini_rx_ring(struct ace_private *ap, int nr_bufs); 770static void ace_load_mini_rx_ring(struct ace_private *ap, int nr_bufs);
771static void ace_load_jumbo_rx_ring(struct ace_private *ap, int nr_bufs); 771static void ace_load_jumbo_rx_ring(struct ace_private *ap, int nr_bufs);
772static irqreturn_t ace_interrupt(int irq, void *dev_id, struct pt_regs *regs); 772static irqreturn_t ace_interrupt(int irq, void *dev_id);
773static int ace_load_firmware(struct net_device *dev); 773static int ace_load_firmware(struct net_device *dev);
774static int ace_open(struct net_device *dev); 774static int ace_open(struct net_device *dev);
775static int ace_start_xmit(struct sk_buff *skb, struct net_device *dev); 775static int ace_start_xmit(struct sk_buff *skb, struct net_device *dev);
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index 28855a01ed7b..ef65e5917c8f 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -1257,7 +1257,7 @@ static int amd8111e_calc_coalesce(struct net_device *dev)
1257/* 1257/*
1258This is device interrupt function. It handles transmit, receive,link change and hardware timer interrupts. 1258This is device interrupt function. It handles transmit, receive,link change and hardware timer interrupts.
1259*/ 1259*/
1260static irqreturn_t amd8111e_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1260static irqreturn_t amd8111e_interrupt(int irq, void *dev_id)
1261{ 1261{
1262 1262
1263 struct net_device * dev = (struct net_device *) dev_id; 1263 struct net_device * dev = (struct net_device *) dev_id;
@@ -1336,7 +1336,7 @@ static void amd8111e_poll(struct net_device *dev)
1336 unsigned long flags; 1336 unsigned long flags;
1337 local_save_flags(flags); 1337 local_save_flags(flags);
1338 local_irq_disable(); 1338 local_irq_disable();
1339 amd8111e_interrupt(0, dev, NULL); 1339 amd8111e_interrupt(0, dev);
1340 local_irq_restore(flags); 1340 local_irq_restore(flags);
1341} 1341}
1342#endif 1342#endif
diff --git a/drivers/net/apne.c b/drivers/net/apne.c
index 643b08cc7403..9164d8cd670e 100644
--- a/drivers/net/apne.c
+++ b/drivers/net/apne.c
@@ -88,7 +88,7 @@ static void apne_block_input(struct net_device *dev, int count,
88 struct sk_buff *skb, int ring_offset); 88 struct sk_buff *skb, int ring_offset);
89static void apne_block_output(struct net_device *dev, const int count, 89static void apne_block_output(struct net_device *dev, const int count,
90 const unsigned char *buf, const int start_page); 90 const unsigned char *buf, const int start_page);
91static irqreturn_t apne_interrupt(int irq, void *dev_id, struct pt_regs *regs); 91static irqreturn_t apne_interrupt(int irq, void *dev_id);
92 92
93static int init_pcmcia(void); 93static int init_pcmcia(void);
94 94
@@ -543,7 +543,7 @@ apne_block_output(struct net_device *dev, int count,
543 return; 543 return;
544} 544}
545 545
546static irqreturn_t apne_interrupt(int irq, void *dev_id, struct pt_regs *regs) 546static irqreturn_t apne_interrupt(int irq, void *dev_id)
547{ 547{
548 unsigned char pcmcia_intreq; 548 unsigned char pcmcia_intreq;
549 549
@@ -559,7 +559,7 @@ static irqreturn_t apne_interrupt(int irq, void *dev_id, struct pt_regs *regs)
559 if (ei_debug > 3) 559 if (ei_debug > 3)
560 printk("pcmcia intreq = %x\n", pcmcia_intreq); 560 printk("pcmcia intreq = %x\n", pcmcia_intreq);
561 pcmcia_disable_irq(); /* to get rid of the sti() within ei_interrupt */ 561 pcmcia_disable_irq(); /* to get rid of the sti() within ei_interrupt */
562 ei_interrupt(irq, dev_id, regs); 562 ei_interrupt(irq, dev_id);
563 pcmcia_ack_int(pcmcia_get_intreq()); 563 pcmcia_ack_int(pcmcia_get_intreq());
564 pcmcia_enable_irq(); 564 pcmcia_enable_irq();
565 return IRQ_HANDLED; 565 return IRQ_HANDLED;
diff --git a/drivers/net/appletalk/cops.c b/drivers/net/appletalk/cops.c
index ae7f828344d9..cc1a27ed197f 100644
--- a/drivers/net/appletalk/cops.c
+++ b/drivers/net/appletalk/cops.c
@@ -188,7 +188,7 @@ static void cops_reset (struct net_device *dev, int sleep);
188static void cops_load (struct net_device *dev); 188static void cops_load (struct net_device *dev);
189static int cops_nodeid (struct net_device *dev, int nodeid); 189static int cops_nodeid (struct net_device *dev, int nodeid);
190 190
191static irqreturn_t cops_interrupt (int irq, void *dev_id, struct pt_regs *regs); 191static irqreturn_t cops_interrupt (int irq, void *dev_id);
192static void cops_poll (unsigned long ltdev); 192static void cops_poll (unsigned long ltdev);
193static void cops_timeout(struct net_device *dev); 193static void cops_timeout(struct net_device *dev);
194static void cops_rx (struct net_device *dev); 194static void cops_rx (struct net_device *dev);
@@ -721,7 +721,7 @@ static void cops_poll(unsigned long ltdev)
721 * The typical workload of the driver: 721 * The typical workload of the driver:
722 * Handle the network interface interrupts. 722 * Handle the network interface interrupts.
723 */ 723 */
724static irqreturn_t cops_interrupt(int irq, void *dev_id, struct pt_regs * regs) 724static irqreturn_t cops_interrupt(int irq, void *dev_id)
725{ 725{
726 struct net_device *dev = dev_id; 726 struct net_device *dev = dev_id;
727 struct cops_local *lp; 727 struct cops_local *lp;
diff --git a/drivers/net/appletalk/ltpc.c b/drivers/net/appletalk/ltpc.c
index d5666c37cb0d..2ea44ce49810 100644
--- a/drivers/net/appletalk/ltpc.c
+++ b/drivers/net/appletalk/ltpc.c
@@ -790,7 +790,7 @@ static int sendup_buffer (struct net_device *dev)
790/* the handler for the board interrupt */ 790/* the handler for the board interrupt */
791 791
792static irqreturn_t 792static irqreturn_t
793ltpc_interrupt(int irq, void *dev_id, struct pt_regs *reg_ptr) 793ltpc_interrupt(int irq, void *dev_id)
794{ 794{
795 struct net_device *dev = dev_id; 795 struct net_device *dev = dev_id;
796 796
diff --git a/drivers/net/arcnet/arcnet.c b/drivers/net/arcnet/arcnet.c
index 5a95005253fa..4e91dab1f17f 100644
--- a/drivers/net/arcnet/arcnet.c
+++ b/drivers/net/arcnet/arcnet.c
@@ -752,7 +752,7 @@ static void arcnet_timeout(struct net_device *dev)
752 * interrupts. Establish which device needs attention, and call the correct 752 * interrupts. Establish which device needs attention, and call the correct
753 * chipset interrupt handler. 753 * chipset interrupt handler.
754 */ 754 */
755irqreturn_t arcnet_interrupt(int irq, void *dev_id, struct pt_regs *regs) 755irqreturn_t arcnet_interrupt(int irq, void *dev_id)
756{ 756{
757 struct net_device *dev = dev_id; 757 struct net_device *dev = dev_id;
758 struct arcnet_local *lp; 758 struct arcnet_local *lp;
diff --git a/drivers/net/ariadne.c b/drivers/net/ariadne.c
index 3aef3c10d56f..9dfc09b181c1 100644
--- a/drivers/net/ariadne.c
+++ b/drivers/net/ariadne.c
@@ -120,7 +120,7 @@ static int ariadne_start_xmit(struct sk_buff *skb, struct net_device *dev);
120static void ariadne_tx_timeout(struct net_device *dev); 120static void ariadne_tx_timeout(struct net_device *dev);
121static int ariadne_rx(struct net_device *dev); 121static int ariadne_rx(struct net_device *dev);
122static void ariadne_reset(struct net_device *dev); 122static void ariadne_reset(struct net_device *dev);
123static irqreturn_t ariadne_interrupt(int irq, void *data, struct pt_regs *fp); 123static irqreturn_t ariadne_interrupt(int irq, void *data);
124static int ariadne_close(struct net_device *dev); 124static int ariadne_close(struct net_device *dev);
125static struct net_device_stats *ariadne_get_stats(struct net_device *dev); 125static struct net_device_stats *ariadne_get_stats(struct net_device *dev);
126#ifdef HAVE_MULTICAST 126#ifdef HAVE_MULTICAST
@@ -416,7 +416,7 @@ static inline void ariadne_reset(struct net_device *dev)
416} 416}
417 417
418 418
419static irqreturn_t ariadne_interrupt(int irq, void *data, struct pt_regs *fp) 419static irqreturn_t ariadne_interrupt(int irq, void *data)
420{ 420{
421 struct net_device *dev = (struct net_device *)data; 421 struct net_device *dev = (struct net_device *)data;
422 volatile struct Am79C960 *lance = (struct Am79C960*)dev->base_addr; 422 volatile struct Am79C960 *lance = (struct Am79C960*)dev->base_addr;
diff --git a/drivers/net/arm/am79c961a.c b/drivers/net/arm/am79c961a.c
index 09d5c3f26985..ddd12d44ff22 100644
--- a/drivers/net/arm/am79c961a.c
+++ b/drivers/net/arm/am79c961a.c
@@ -38,7 +38,7 @@
38#include "am79c961a.h" 38#include "am79c961a.h"
39 39
40static irqreturn_t 40static irqreturn_t
41am79c961_interrupt (int irq, void *dev_id, struct pt_regs *regs); 41am79c961_interrupt (int irq, void *dev_id);
42 42
43static unsigned int net_debug = NET_DEBUG; 43static unsigned int net_debug = NET_DEBUG;
44 44
@@ -596,7 +596,7 @@ am79c961_tx(struct net_device *dev, struct dev_priv *priv)
596} 596}
597 597
598static irqreturn_t 598static irqreturn_t
599am79c961_interrupt(int irq, void *dev_id, struct pt_regs *regs) 599am79c961_interrupt(int irq, void *dev_id)
600{ 600{
601 struct net_device *dev = (struct net_device *)dev_id; 601 struct net_device *dev = (struct net_device *)dev_id;
602 struct dev_priv *priv = netdev_priv(dev); 602 struct dev_priv *priv = netdev_priv(dev);
diff --git a/drivers/net/arm/at91_ether.c b/drivers/net/arm/at91_ether.c
index 3ecf2cc53a7c..b54b857e357e 100644
--- a/drivers/net/arm/at91_ether.c
+++ b/drivers/net/arm/at91_ether.c
@@ -196,7 +196,7 @@ static void update_linkspeed(struct net_device *dev, int silent)
196/* 196/*
197 * Handle interrupts from the PHY 197 * Handle interrupts from the PHY
198 */ 198 */
199static irqreturn_t at91ether_phy_interrupt(int irq, void *dev_id, struct pt_regs *regs) 199static irqreturn_t at91ether_phy_interrupt(int irq, void *dev_id)
200{ 200{
201 struct net_device *dev = (struct net_device *) dev_id; 201 struct net_device *dev = (struct net_device *) dev_id;
202 struct at91_private *lp = (struct at91_private *) dev->priv; 202 struct at91_private *lp = (struct at91_private *) dev->priv;
@@ -888,7 +888,7 @@ static void at91ether_rx(struct net_device *dev)
888/* 888/*
889 * MAC interrupt handler 889 * MAC interrupt handler
890 */ 890 */
891static irqreturn_t at91ether_interrupt(int irq, void *dev_id, struct pt_regs *regs) 891static irqreturn_t at91ether_interrupt(int irq, void *dev_id)
892{ 892{
893 struct net_device *dev = (struct net_device *) dev_id; 893 struct net_device *dev = (struct net_device *) dev_id;
894 struct at91_private *lp = (struct at91_private *) dev->priv; 894 struct at91_private *lp = (struct at91_private *) dev->priv;
diff --git a/drivers/net/arm/ep93xx_eth.c b/drivers/net/arm/ep93xx_eth.c
index d231efa624d4..127561c782fd 100644
--- a/drivers/net/arm/ep93xx_eth.c
+++ b/drivers/net/arm/ep93xx_eth.c
@@ -435,7 +435,7 @@ static void ep93xx_tx_complete(struct net_device *dev)
435 netif_wake_queue(dev); 435 netif_wake_queue(dev);
436} 436}
437 437
438static irqreturn_t ep93xx_irq(int irq, void *dev_id, struct pt_regs *regs) 438static irqreturn_t ep93xx_irq(int irq, void *dev_id)
439{ 439{
440 struct net_device *dev = dev_id; 440 struct net_device *dev = dev_id;
441 struct ep93xx_priv *ep = netdev_priv(dev); 441 struct ep93xx_priv *ep = netdev_priv(dev);
diff --git a/drivers/net/arm/ether1.c b/drivers/net/arm/ether1.c
index 312955d07b28..f3478a30e778 100644
--- a/drivers/net/arm/ether1.c
+++ b/drivers/net/arm/ether1.c
@@ -68,7 +68,7 @@ static unsigned int net_debug = NET_DEBUG;
68 68
69static int ether1_open(struct net_device *dev); 69static int ether1_open(struct net_device *dev);
70static int ether1_sendpacket(struct sk_buff *skb, struct net_device *dev); 70static int ether1_sendpacket(struct sk_buff *skb, struct net_device *dev);
71static irqreturn_t ether1_interrupt(int irq, void *dev_id, struct pt_regs *regs); 71static irqreturn_t ether1_interrupt(int irq, void *dev_id);
72static int ether1_close(struct net_device *dev); 72static int ether1_close(struct net_device *dev);
73static struct net_device_stats *ether1_getstats(struct net_device *dev); 73static struct net_device_stats *ether1_getstats(struct net_device *dev);
74static void ether1_setmulticastlist(struct net_device *dev); 74static void ether1_setmulticastlist(struct net_device *dev);
@@ -908,7 +908,7 @@ ether1_recv_done (struct net_device *dev)
908} 908}
909 909
910static irqreturn_t 910static irqreturn_t
911ether1_interrupt (int irq, void *dev_id, struct pt_regs *regs) 911ether1_interrupt (int irq, void *dev_id)
912{ 912{
913 struct net_device *dev = (struct net_device *)dev_id; 913 struct net_device *dev = (struct net_device *)dev_id;
914 int status; 914 int status;
diff --git a/drivers/net/arm/ether3.c b/drivers/net/arm/ether3.c
index 081074180e62..84686c8a5bc2 100644
--- a/drivers/net/arm/ether3.c
+++ b/drivers/net/arm/ether3.c
@@ -81,7 +81,7 @@ static int ether3_rx(struct net_device *dev, unsigned int maxcnt);
81static void ether3_tx(struct net_device *dev); 81static void ether3_tx(struct net_device *dev);
82static int ether3_open (struct net_device *dev); 82static int ether3_open (struct net_device *dev);
83static int ether3_sendpacket (struct sk_buff *skb, struct net_device *dev); 83static int ether3_sendpacket (struct sk_buff *skb, struct net_device *dev);
84static irqreturn_t ether3_interrupt (int irq, void *dev_id, struct pt_regs *regs); 84static irqreturn_t ether3_interrupt (int irq, void *dev_id);
85static int ether3_close (struct net_device *dev); 85static int ether3_close (struct net_device *dev);
86static struct net_device_stats *ether3_getstats (struct net_device *dev); 86static struct net_device_stats *ether3_getstats (struct net_device *dev);
87static void ether3_setmulticastlist (struct net_device *dev); 87static void ether3_setmulticastlist (struct net_device *dev);
@@ -568,7 +568,7 @@ ether3_sendpacket(struct sk_buff *skb, struct net_device *dev)
568} 568}
569 569
570static irqreturn_t 570static irqreturn_t
571ether3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 571ether3_interrupt(int irq, void *dev_id)
572{ 572{
573 struct net_device *dev = (struct net_device *)dev_id; 573 struct net_device *dev = (struct net_device *)dev_id;
574 unsigned int status, handled = IRQ_NONE; 574 unsigned int status, handled = IRQ_NONE;
diff --git a/drivers/net/at1700.c b/drivers/net/at1700.c
index 4aeca11f3ee2..8620a5b470f5 100644
--- a/drivers/net/at1700.c
+++ b/drivers/net/at1700.c
@@ -161,7 +161,7 @@ static int at1700_probe1(struct net_device *dev, int ioaddr);
161static int read_eeprom(long ioaddr, int location); 161static int read_eeprom(long ioaddr, int location);
162static int net_open(struct net_device *dev); 162static int net_open(struct net_device *dev);
163static int net_send_packet(struct sk_buff *skb, struct net_device *dev); 163static int net_send_packet(struct sk_buff *skb, struct net_device *dev);
164static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs *regs); 164static irqreturn_t net_interrupt(int irq, void *dev_id);
165static void net_rx(struct net_device *dev); 165static void net_rx(struct net_device *dev);
166static int net_close(struct net_device *dev); 166static int net_close(struct net_device *dev);
167static struct net_device_stats *net_get_stats(struct net_device *dev); 167static struct net_device_stats *net_get_stats(struct net_device *dev);
@@ -648,8 +648,7 @@ static int net_send_packet (struct sk_buff *skb, struct net_device *dev)
648 648
649/* The typical workload of the driver: 649/* The typical workload of the driver:
650 Handle the network interface interrupts. */ 650 Handle the network interface interrupts. */
651static irqreturn_t 651static irqreturn_t net_interrupt(int irq, void *dev_id)
652net_interrupt(int irq, void *dev_id, struct pt_regs *regs)
653{ 652{
654 struct net_device *dev = dev_id; 653 struct net_device *dev = dev_id;
655 struct net_local *lp; 654 struct net_local *lp;
diff --git a/drivers/net/atari_bionet.c b/drivers/net/atari_bionet.c
index 92b52138acad..4e3bf6a1f22c 100644
--- a/drivers/net/atari_bionet.c
+++ b/drivers/net/atari_bionet.c
@@ -220,7 +220,7 @@ gsend:
220} 220}
221 221
222static irqreturn_t 222static irqreturn_t
223bionet_intr(int irq, void *data, struct pt_regs *fp) { 223bionet_intr(int irq, void *data) {
224 return IRQ_HANDLED; 224 return IRQ_HANDLED;
225} 225}
226 226
diff --git a/drivers/net/atari_pamsnet.c b/drivers/net/atari_pamsnet.c
index a1026251b933..3b5436149286 100644
--- a/drivers/net/atari_pamsnet.c
+++ b/drivers/net/atari_pamsnet.c
@@ -163,7 +163,7 @@ static int pamsnet_close(struct net_device *dev);
163static struct net_device_stats *net_get_stats(struct net_device *dev); 163static struct net_device_stats *net_get_stats(struct net_device *dev);
164static void pamsnet_tick(unsigned long); 164static void pamsnet_tick(unsigned long);
165 165
166static irqreturn_t pamsnet_intr(int irq, void *data, struct pt_regs *fp); 166static irqreturn_t pamsnet_intr(int irq, void *data);
167 167
168static DEFINE_TIMER(pamsnet_timer, pamsnet_tick, 0, 0); 168static DEFINE_TIMER(pamsnet_timer, pamsnet_tick, 0, 0);
169 169
@@ -494,7 +494,6 @@ static irqreturn_t
494pamsnet_intr(irq, data, fp) 494pamsnet_intr(irq, data, fp)
495 int irq; 495 int irq;
496 void *data; 496 void *data;
497 struct pt_regs *fp;
498{ 497{
499 return IRQ_HANDLED; 498 return IRQ_HANDLED;
500} 499}
diff --git a/drivers/net/atarilance.c b/drivers/net/atarilance.c
index b6570ca6ada7..d79489e46249 100644
--- a/drivers/net/atarilance.c
+++ b/drivers/net/atarilance.c
@@ -344,7 +344,7 @@ static unsigned long lance_probe1( struct net_device *dev, struct lance_addr
344static int lance_open( struct net_device *dev ); 344static int lance_open( struct net_device *dev );
345static void lance_init_ring( struct net_device *dev ); 345static void lance_init_ring( struct net_device *dev );
346static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev ); 346static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev );
347static irqreturn_t lance_interrupt( int irq, void *dev_id, struct pt_regs *fp ); 347static irqreturn_t lance_interrupt( int irq, void *dev_id );
348static int lance_rx( struct net_device *dev ); 348static int lance_rx( struct net_device *dev );
349static int lance_close( struct net_device *dev ); 349static int lance_close( struct net_device *dev );
350static struct net_device_stats *lance_get_stats( struct net_device *dev ); 350static struct net_device_stats *lance_get_stats( struct net_device *dev );
@@ -866,7 +866,7 @@ static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev )
866 866
867/* The LANCE interrupt handler. */ 867/* The LANCE interrupt handler. */
868 868
869static irqreturn_t lance_interrupt( int irq, void *dev_id, struct pt_regs *fp) 869static irqreturn_t lance_interrupt( int irq, void *dev_id )
870{ 870{
871 struct net_device *dev = dev_id; 871 struct net_device *dev = dev_id;
872 struct lance_private *lp; 872 struct lance_private *lp;
diff --git a/drivers/net/atp.c b/drivers/net/atp.c
index f2c8e0d5497b..2d306fcb7f36 100644
--- a/drivers/net/atp.c
+++ b/drivers/net/atp.c
@@ -203,7 +203,7 @@ static void hardware_init(struct net_device *dev);
203static void write_packet(long ioaddr, int length, unsigned char *packet, int pad, int mode); 203static void write_packet(long ioaddr, int length, unsigned char *packet, int pad, int mode);
204static void trigger_send(long ioaddr, int length); 204static void trigger_send(long ioaddr, int length);
205static int atp_send_packet(struct sk_buff *skb, struct net_device *dev); 205static int atp_send_packet(struct sk_buff *skb, struct net_device *dev);
206static irqreturn_t atp_interrupt(int irq, void *dev_id, struct pt_regs *regs); 206static irqreturn_t atp_interrupt(int irq, void *dev_id);
207static void net_rx(struct net_device *dev); 207static void net_rx(struct net_device *dev);
208static void read_block(long ioaddr, int length, unsigned char *buffer, int data_mode); 208static void read_block(long ioaddr, int length, unsigned char *buffer, int data_mode);
209static int net_close(struct net_device *dev); 209static int net_close(struct net_device *dev);
@@ -596,20 +596,15 @@ static int atp_send_packet(struct sk_buff *skb, struct net_device *dev)
596 596
597/* The typical workload of the driver: 597/* The typical workload of the driver:
598 Handle the network interface interrupts. */ 598 Handle the network interface interrupts. */
599static irqreturn_t 599static irqreturn_t atp_interrupt(int irq, void *dev_instance)
600atp_interrupt(int irq, void *dev_instance, struct pt_regs * regs)
601{ 600{
602 struct net_device *dev = (struct net_device *)dev_instance; 601 struct net_device *dev = dev_instance;
603 struct net_local *lp; 602 struct net_local *lp;
604 long ioaddr; 603 long ioaddr;
605 static int num_tx_since_rx; 604 static int num_tx_since_rx;
606 int boguscount = max_interrupt_work; 605 int boguscount = max_interrupt_work;
607 int handled = 0; 606 int handled = 0;
608 607
609 if (dev == NULL) {
610 printk(KERN_ERR "ATP_interrupt(): irq %d for unknown device.\n", irq);
611 return IRQ_NONE;
612 }
613 ioaddr = dev->base_addr; 608 ioaddr = dev->base_addr;
614 lp = netdev_priv(dev); 609 lp = netdev_priv(dev);
615 610
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
index ac33b1b9cf4a..4873dc610d22 100644
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
@@ -89,7 +89,7 @@ static int au1000_open(struct net_device *);
89static int au1000_close(struct net_device *); 89static int au1000_close(struct net_device *);
90static int au1000_tx(struct sk_buff *, struct net_device *); 90static int au1000_tx(struct sk_buff *, struct net_device *);
91static int au1000_rx(struct net_device *); 91static int au1000_rx(struct net_device *);
92static irqreturn_t au1000_interrupt(int, void *, struct pt_regs *); 92static irqreturn_t au1000_interrupt(int, void *);
93static void au1000_tx_timeout(struct net_device *); 93static void au1000_tx_timeout(struct net_device *);
94static void set_rx_mode(struct net_device *); 94static void set_rx_mode(struct net_device *);
95static struct net_device_stats *au1000_get_stats(struct net_device *); 95static struct net_device_stats *au1000_get_stats(struct net_device *);
@@ -1253,7 +1253,7 @@ static int au1000_rx(struct net_device *dev)
1253/* 1253/*
1254 * Au1000 interrupt service routine. 1254 * Au1000 interrupt service routine.
1255 */ 1255 */
1256static irqreturn_t au1000_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1256static irqreturn_t au1000_interrupt(int irq, void *dev_id)
1257{ 1257{
1258 struct net_device *dev = (struct net_device *) dev_id; 1258 struct net_device *dev = (struct net_device *) dev_id;
1259 1259
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 973b8eb37dc2..ebb726e655ac 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -896,7 +896,7 @@ static int b44_poll(struct net_device *netdev, int *budget)
896 return (done ? 0 : 1); 896 return (done ? 0 : 1);
897} 897}
898 898
899static irqreturn_t b44_interrupt(int irq, void *dev_id, struct pt_regs *regs) 899static irqreturn_t b44_interrupt(int irq, void *dev_id)
900{ 900{
901 struct net_device *dev = dev_id; 901 struct net_device *dev = dev_id;
902 struct b44 *bp = netdev_priv(dev); 902 struct b44 *bp = netdev_priv(dev);
@@ -1461,7 +1461,7 @@ out:
1461static void b44_poll_controller(struct net_device *dev) 1461static void b44_poll_controller(struct net_device *dev)
1462{ 1462{
1463 disable_irq(dev->irq); 1463 disable_irq(dev->irq);
1464 b44_interrupt(dev->irq, dev, NULL); 1464 b44_interrupt(dev->irq, dev);
1465 enable_irq(dev->irq); 1465 enable_irq(dev->irq);
1466} 1466}
1467#endif 1467#endif
diff --git a/drivers/net/bmac.c b/drivers/net/bmac.c
index 4adfe7b77031..4528ce9c4e43 100644
--- a/drivers/net/bmac.c
+++ b/drivers/net/bmac.c
@@ -152,9 +152,9 @@ static void bmac_init_chip(struct net_device *dev);
152static void bmac_init_registers(struct net_device *dev); 152static void bmac_init_registers(struct net_device *dev);
153static void bmac_enable_and_reset_chip(struct net_device *dev); 153static void bmac_enable_and_reset_chip(struct net_device *dev);
154static int bmac_set_address(struct net_device *dev, void *addr); 154static int bmac_set_address(struct net_device *dev, void *addr);
155static irqreturn_t bmac_misc_intr(int irq, void *dev_id, struct pt_regs *regs); 155static irqreturn_t bmac_misc_intr(int irq, void *dev_id);
156static irqreturn_t bmac_txdma_intr(int irq, void *dev_id, struct pt_regs *regs); 156static irqreturn_t bmac_txdma_intr(int irq, void *dev_id);
157static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs); 157static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id);
158static void bmac_set_timeout(struct net_device *dev); 158static void bmac_set_timeout(struct net_device *dev);
159static void bmac_tx_timeout(unsigned long data); 159static void bmac_tx_timeout(unsigned long data);
160static int bmac_output(struct sk_buff *skb, struct net_device *dev); 160static int bmac_output(struct sk_buff *skb, struct net_device *dev);
@@ -688,7 +688,7 @@ static int bmac_transmit_packet(struct sk_buff *skb, struct net_device *dev)
688 688
689static int rxintcount; 689static int rxintcount;
690 690
691static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs) 691static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id)
692{ 692{
693 struct net_device *dev = (struct net_device *) dev_id; 693 struct net_device *dev = (struct net_device *) dev_id;
694 struct bmac_data *bp = netdev_priv(dev); 694 struct bmac_data *bp = netdev_priv(dev);
@@ -765,7 +765,7 @@ static irqreturn_t bmac_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs)
765 765
766static int txintcount; 766static int txintcount;
767 767
768static irqreturn_t bmac_txdma_intr(int irq, void *dev_id, struct pt_regs *regs) 768static irqreturn_t bmac_txdma_intr(int irq, void *dev_id)
769{ 769{
770 struct net_device *dev = (struct net_device *) dev_id; 770 struct net_device *dev = (struct net_device *) dev_id;
771 struct bmac_data *bp = netdev_priv(dev); 771 struct bmac_data *bp = netdev_priv(dev);
@@ -1082,7 +1082,7 @@ static void bmac_set_multicast(struct net_device *dev)
1082 1082
1083static int miscintcount; 1083static int miscintcount;
1084 1084
1085static irqreturn_t bmac_misc_intr(int irq, void *dev_id, struct pt_regs *regs) 1085static irqreturn_t bmac_misc_intr(int irq, void *dev_id)
1086{ 1086{
1087 struct net_device *dev = (struct net_device *) dev_id; 1087 struct net_device *dev = (struct net_device *) dev_id;
1088 struct bmac_data *bp = netdev_priv(dev); 1088 struct bmac_data *bp = netdev_priv(dev);
@@ -1091,7 +1091,7 @@ static irqreturn_t bmac_misc_intr(int irq, void *dev_id, struct pt_regs *regs)
1091 XXDEBUG(("bmac_misc_intr\n")); 1091 XXDEBUG(("bmac_misc_intr\n"));
1092 } 1092 }
1093 /* XXDEBUG(("bmac_misc_intr, status=%#08x\n", status)); */ 1093 /* XXDEBUG(("bmac_misc_intr, status=%#08x\n", status)); */
1094 /* bmac_txdma_intr_inner(irq, dev_id, regs); */ 1094 /* bmac_txdma_intr_inner(irq, dev_id); */
1095 /* if (status & FrameReceived) bp->stats.rx_dropped++; */ 1095 /* if (status & FrameReceived) bp->stats.rx_dropped++; */
1096 if (status & RxErrorMask) bp->stats.rx_errors++; 1096 if (status & RxErrorMask) bp->stats.rx_errors++;
1097 if (status & RxCRCCntExp) bp->stats.rx_crc_errors++; 1097 if (status & RxCRCCntExp) bp->stats.rx_crc_errors++;
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 6b4edb63c4c4..01b76d3aa42f 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -1888,7 +1888,7 @@ next_rx:
1888 * is that the MSI interrupt is always serviced. 1888 * is that the MSI interrupt is always serviced.
1889 */ 1889 */
1890static irqreturn_t 1890static irqreturn_t
1891bnx2_msi(int irq, void *dev_instance, struct pt_regs *regs) 1891bnx2_msi(int irq, void *dev_instance)
1892{ 1892{
1893 struct net_device *dev = dev_instance; 1893 struct net_device *dev = dev_instance;
1894 struct bnx2 *bp = netdev_priv(dev); 1894 struct bnx2 *bp = netdev_priv(dev);
@@ -1908,7 +1908,7 @@ bnx2_msi(int irq, void *dev_instance, struct pt_regs *regs)
1908} 1908}
1909 1909
1910static irqreturn_t 1910static irqreturn_t
1911bnx2_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1911bnx2_interrupt(int irq, void *dev_instance)
1912{ 1912{
1913 struct net_device *dev = dev_instance; 1913 struct net_device *dev = dev_instance;
1914 struct bnx2 *bp = netdev_priv(dev); 1914 struct bnx2 *bp = netdev_priv(dev);
@@ -5554,7 +5554,7 @@ poll_bnx2(struct net_device *dev)
5554 struct bnx2 *bp = netdev_priv(dev); 5554 struct bnx2 *bp = netdev_priv(dev);
5555 5555
5556 disable_irq(bp->pdev->irq); 5556 disable_irq(bp->pdev->irq);
5557 bnx2_interrupt(bp->pdev->irq, dev, NULL); 5557 bnx2_interrupt(bp->pdev->irq, dev);
5558 enable_irq(bp->pdev->irq); 5558 enable_irq(bp->pdev->irq);
5559} 5559}
5560#endif 5560#endif
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index 7694365092f8..521c5b71023c 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -2469,7 +2469,7 @@ static inline void cas_handle_irqN(struct net_device *dev,
2469 cas_post_rxcs_ringN(dev, cp, ring); 2469 cas_post_rxcs_ringN(dev, cp, ring);
2470} 2470}
2471 2471
2472static irqreturn_t cas_interruptN(int irq, void *dev_id, struct pt_regs *regs) 2472static irqreturn_t cas_interruptN(int irq, void *dev_id)
2473{ 2473{
2474 struct net_device *dev = dev_id; 2474 struct net_device *dev = dev_id;
2475 struct cas *cp = netdev_priv(dev); 2475 struct cas *cp = netdev_priv(dev);
@@ -2522,7 +2522,7 @@ static inline void cas_handle_irq1(struct cas *cp, const u32 status)
2522} 2522}
2523 2523
2524/* ring 2 handles a few more events than 3 and 4 */ 2524/* ring 2 handles a few more events than 3 and 4 */
2525static irqreturn_t cas_interrupt1(int irq, void *dev_id, struct pt_regs *regs) 2525static irqreturn_t cas_interrupt1(int irq, void *dev_id)
2526{ 2526{
2527 struct net_device *dev = dev_id; 2527 struct net_device *dev = dev_id;
2528 struct cas *cp = netdev_priv(dev); 2528 struct cas *cp = netdev_priv(dev);
@@ -2574,7 +2574,7 @@ static inline void cas_handle_irq(struct net_device *dev,
2574 cas_post_rxcs_ringN(dev, cp, 0); 2574 cas_post_rxcs_ringN(dev, cp, 0);
2575} 2575}
2576 2576
2577static irqreturn_t cas_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2577static irqreturn_t cas_interrupt(int irq, void *dev_id)
2578{ 2578{
2579 struct net_device *dev = dev_id; 2579 struct net_device *dev = dev_id;
2580 struct cas *cp = netdev_priv(dev); 2580 struct cas *cp = netdev_priv(dev);
@@ -2689,7 +2689,7 @@ static void cas_netpoll(struct net_device *dev)
2689 struct cas *cp = netdev_priv(dev); 2689 struct cas *cp = netdev_priv(dev);
2690 2690
2691 cas_disable_irq(cp, 0); 2691 cas_disable_irq(cp, 0);
2692 cas_interrupt(cp->pdev->irq, dev, NULL); 2692 cas_interrupt(cp->pdev->irq, dev);
2693 cas_enable_irq(cp, 0); 2693 cas_enable_irq(cp, 0);
2694 2694
2695#ifdef USE_PCI_INTB 2695#ifdef USE_PCI_INTB
diff --git a/drivers/net/chelsio/cpl5_cmd.h b/drivers/net/chelsio/cpl5_cmd.h
index 27925e487bcf..5b357d9e88d6 100644
--- a/drivers/net/chelsio/cpl5_cmd.h
+++ b/drivers/net/chelsio/cpl5_cmd.h
@@ -108,7 +108,7 @@ struct cpl_tx_pkt_lso {
108 u8 iff:4; 108 u8 iff:4;
109#endif 109#endif
110 u16 vlan; 110 u16 vlan;
111 u32 len; 111 __be32 len;
112 112
113 u32 rsvd2; 113 u32 rsvd2;
114 u8 rsvd3; 114 u8 rsvd3;
@@ -119,7 +119,7 @@ struct cpl_tx_pkt_lso {
119 u8 ip_hdr_words:4; 119 u8 ip_hdr_words:4;
120 u8 tcp_hdr_words:4; 120 u8 tcp_hdr_words:4;
121#endif 121#endif
122 u16 eth_type_mss; 122 __be16 eth_type_mss;
123}; 123};
124 124
125struct cpl_rx_pkt { 125struct cpl_rx_pkt {
@@ -138,7 +138,7 @@ struct cpl_rx_pkt {
138 u8 iff:4; 138 u8 iff:4;
139#endif 139#endif
140 u16 csum; 140 u16 csum;
141 u16 vlan; 141 __be16 vlan;
142 u16 len; 142 u16 len;
143}; 143};
144 144
diff --git a/drivers/net/chelsio/cxgb2.c b/drivers/net/chelsio/cxgb2.c
index 5f1b06753462..ad7ff9641a7e 100644
--- a/drivers/net/chelsio/cxgb2.c
+++ b/drivers/net/chelsio/cxgb2.c
@@ -918,7 +918,7 @@ static void t1_netpoll(struct net_device *dev)
918 struct adapter *adapter = dev->priv; 918 struct adapter *adapter = dev->priv;
919 919
920 local_irq_save(flags); 920 local_irq_save(flags);
921 t1_select_intr_handler(adapter)(adapter->pdev->irq, adapter, NULL); 921 t1_select_intr_handler(adapter)(adapter->pdev->irq, adapter);
922 local_irq_restore(flags); 922 local_irq_restore(flags);
923} 923}
924#endif 924#endif
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c
index ddd0bdb498f4..9799c12380fc 100644
--- a/drivers/net/chelsio/sge.c
+++ b/drivers/net/chelsio/sge.c
@@ -1217,7 +1217,7 @@ static inline int napi_is_scheduled(struct net_device *dev)
1217/* 1217/*
1218 * NAPI version of the main interrupt handler. 1218 * NAPI version of the main interrupt handler.
1219 */ 1219 */
1220static irqreturn_t t1_interrupt_napi(int irq, void *data, struct pt_regs *regs) 1220static irqreturn_t t1_interrupt_napi(int irq, void *data)
1221{ 1221{
1222 int handled; 1222 int handled;
1223 struct adapter *adapter = data; 1223 struct adapter *adapter = data;
@@ -1279,7 +1279,7 @@ static irqreturn_t t1_interrupt_napi(int irq, void *data, struct pt_regs *regs)
1279 * 5. If we took an interrupt, but no valid respQ descriptors was found we 1279 * 5. If we took an interrupt, but no valid respQ descriptors was found we
1280 * let the slow_intr_handler run and do error handling. 1280 * let the slow_intr_handler run and do error handling.
1281 */ 1281 */
1282static irqreturn_t t1_interrupt(int irq, void *cookie, struct pt_regs *regs) 1282static irqreturn_t t1_interrupt(int irq, void *cookie)
1283{ 1283{
1284 int work_done; 1284 int work_done;
1285 struct respQ_e *e; 1285 struct respQ_e *e;
@@ -1312,7 +1312,7 @@ static irqreturn_t t1_interrupt(int irq, void *cookie, struct pt_regs *regs)
1312 return IRQ_RETVAL(work_done != 0); 1312 return IRQ_RETVAL(work_done != 0);
1313} 1313}
1314 1314
1315intr_handler_t t1_select_intr_handler(adapter_t *adapter) 1315irq_handler_t t1_select_intr_handler(adapter_t *adapter)
1316{ 1316{
1317 return adapter->params.sge.polling ? t1_interrupt_napi : t1_interrupt; 1317 return adapter->params.sge.polling ? t1_interrupt_napi : t1_interrupt;
1318} 1318}
diff --git a/drivers/net/chelsio/sge.h b/drivers/net/chelsio/sge.h
index 6d0d24a6364f..91af47bab7be 100644
--- a/drivers/net/chelsio/sge.h
+++ b/drivers/net/chelsio/sge.h
@@ -43,13 +43,6 @@
43#include <linux/interrupt.h> 43#include <linux/interrupt.h>
44#include <asm/byteorder.h> 44#include <asm/byteorder.h>
45 45
46#ifndef IRQ_RETVAL
47#define IRQ_RETVAL(x)
48typedef void irqreturn_t;
49#endif
50
51typedef irqreturn_t (*intr_handler_t)(int, void *, struct pt_regs *);
52
53struct sge_intr_counts { 46struct sge_intr_counts {
54 unsigned int respQ_empty; /* # times respQ empty */ 47 unsigned int respQ_empty; /* # times respQ empty */
55 unsigned int respQ_overflow; /* # respQ overflow (fatal) */ 48 unsigned int respQ_overflow; /* # respQ overflow (fatal) */
@@ -88,7 +81,7 @@ struct sge *t1_sge_create(struct adapter *, struct sge_params *);
88int t1_sge_configure(struct sge *, struct sge_params *); 81int t1_sge_configure(struct sge *, struct sge_params *);
89int t1_sge_set_coalesce_params(struct sge *, struct sge_params *); 82int t1_sge_set_coalesce_params(struct sge *, struct sge_params *);
90void t1_sge_destroy(struct sge *); 83void t1_sge_destroy(struct sge *);
91intr_handler_t t1_select_intr_handler(adapter_t *adapter); 84irq_handler_t t1_select_intr_handler(adapter_t *adapter);
92int t1_start_xmit(struct sk_buff *skb, struct net_device *dev); 85int t1_start_xmit(struct sk_buff *skb, struct net_device *dev);
93void t1_set_vlan_accel(struct adapter *adapter, int on_off); 86void t1_set_vlan_accel(struct adapter *adapter, int on_off);
94void t1_sge_start(struct sge *); 87void t1_sge_start(struct sge *);
diff --git a/drivers/net/cris/eth_v10.c b/drivers/net/cris/eth_v10.c
index f1501b6f247e..966b563e42bb 100644
--- a/drivers/net/cris/eth_v10.c
+++ b/drivers/net/cris/eth_v10.c
@@ -403,8 +403,8 @@ static int etrax_ethernet_init(void);
403static int e100_open(struct net_device *dev); 403static int e100_open(struct net_device *dev);
404static int e100_set_mac_address(struct net_device *dev, void *addr); 404static int e100_set_mac_address(struct net_device *dev, void *addr);
405static int e100_send_packet(struct sk_buff *skb, struct net_device *dev); 405static int e100_send_packet(struct sk_buff *skb, struct net_device *dev);
406static irqreturn_t e100rxtx_interrupt(int irq, void *dev_id, struct pt_regs *regs); 406static irqreturn_t e100rxtx_interrupt(int irq, void *dev_id);
407static irqreturn_t e100nw_interrupt(int irq, void *dev_id, struct pt_regs *regs); 407static irqreturn_t e100nw_interrupt(int irq, void *dev_id);
408static void e100_rx(struct net_device *dev); 408static void e100_rx(struct net_device *dev);
409static int e100_close(struct net_device *dev); 409static int e100_close(struct net_device *dev);
410static int e100_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); 410static int e100_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
@@ -1197,7 +1197,7 @@ e100_send_packet(struct sk_buff *skb, struct net_device *dev)
1197 */ 1197 */
1198 1198
1199static irqreturn_t 1199static irqreturn_t
1200e100rxtx_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1200e100rxtx_interrupt(int irq, void *dev_id)
1201{ 1201{
1202 struct net_device *dev = (struct net_device *)dev_id; 1202 struct net_device *dev = (struct net_device *)dev_id;
1203 struct net_local *np = (struct net_local *)dev->priv; 1203 struct net_local *np = (struct net_local *)dev->priv;
@@ -1264,7 +1264,7 @@ e100rxtx_interrupt(int irq, void *dev_id, struct pt_regs * regs)
1264} 1264}
1265 1265
1266static irqreturn_t 1266static irqreturn_t
1267e100nw_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1267e100nw_interrupt(int irq, void *dev_id)
1268{ 1268{
1269 struct net_device *dev = (struct net_device *)dev_id; 1269 struct net_device *dev = (struct net_device *)dev_id;
1270 struct net_local *np = (struct net_local *)dev->priv; 1270 struct net_local *np = (struct net_local *)dev->priv;
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
index e4d50f0de930..4ffc9b44a8e1 100644
--- a/drivers/net/cs89x0.c
+++ b/drivers/net/cs89x0.c
@@ -249,7 +249,7 @@ struct net_local {
249static int cs89x0_probe1(struct net_device *dev, int ioaddr, int modular); 249static int cs89x0_probe1(struct net_device *dev, int ioaddr, int modular);
250static int net_open(struct net_device *dev); 250static int net_open(struct net_device *dev);
251static int net_send_packet(struct sk_buff *skb, struct net_device *dev); 251static int net_send_packet(struct sk_buff *skb, struct net_device *dev);
252static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs *regs); 252static irqreturn_t net_interrupt(int irq, void *dev_id);
253static void set_multicast_list(struct net_device *dev); 253static void set_multicast_list(struct net_device *dev);
254static void net_timeout(struct net_device *dev); 254static void net_timeout(struct net_device *dev);
255static void net_rx(struct net_device *dev); 255static void net_rx(struct net_device *dev);
@@ -495,7 +495,7 @@ get_eeprom_cksum(int off, int len, int *buffer)
495static void net_poll_controller(struct net_device *dev) 495static void net_poll_controller(struct net_device *dev)
496{ 496{
497 disable_irq(dev->irq); 497 disable_irq(dev->irq);
498 net_interrupt(dev->irq, dev, NULL); 498 net_interrupt(dev->irq, dev);
499 enable_irq(dev->irq); 499 enable_irq(dev->irq);
500} 500}
501#endif 501#endif
@@ -1573,7 +1573,7 @@ static int net_send_packet(struct sk_buff *skb, struct net_device *dev)
1573/* The typical workload of the driver: 1573/* The typical workload of the driver:
1574 Handle the network interface interrupts. */ 1574 Handle the network interface interrupts. */
1575 1575
1576static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1576static irqreturn_t net_interrupt(int irq, void *dev_id)
1577{ 1577{
1578 struct net_device *dev = dev_id; 1578 struct net_device *dev = dev_id;
1579 struct net_local *lp; 1579 struct net_local *lp;
diff --git a/drivers/net/de600.c b/drivers/net/de600.c
index 0b930da5d47d..690bb40b353d 100644
--- a/drivers/net/de600.c
+++ b/drivers/net/de600.c
@@ -258,19 +258,13 @@ static int de600_start_xmit(struct sk_buff *skb, struct net_device *dev)
258 * Handle the network interface interrupts. 258 * Handle the network interface interrupts.
259 */ 259 */
260 260
261static irqreturn_t de600_interrupt(int irq, void *dev_id, struct pt_regs * regs) 261static irqreturn_t de600_interrupt(int irq, void *dev_id)
262{ 262{
263 struct net_device *dev = dev_id; 263 struct net_device *dev = dev_id;
264 u8 irq_status; 264 u8 irq_status;
265 int retrig = 0; 265 int retrig = 0;
266 int boguscount = 0; 266 int boguscount = 0;
267 267
268 /* This might just as well be deleted now, no crummy drivers present :-) */
269 if ((dev == NULL) || (DE600_IRQ != irq)) {
270 printk(KERN_ERR "%s: bogus interrupt %d\n", dev?dev->name:"DE-600", irq);
271 return IRQ_NONE;
272 }
273
274 spin_lock(&de600_lock); 268 spin_lock(&de600_lock);
275 269
276 select_nic(); 270 select_nic();
diff --git a/drivers/net/de600.h b/drivers/net/de600.h
index e4073015dcd8..1288e48ba704 100644
--- a/drivers/net/de600.h
+++ b/drivers/net/de600.h
@@ -125,7 +125,7 @@ static struct net_device_stats *get_stats(struct net_device *dev);
125static int de600_start_xmit(struct sk_buff *skb, struct net_device *dev); 125static int de600_start_xmit(struct sk_buff *skb, struct net_device *dev);
126 126
127/* Dispatch from interrupts. */ 127/* Dispatch from interrupts. */
128static irqreturn_t de600_interrupt(int irq, void *dev_id, struct pt_regs *regs); 128static irqreturn_t de600_interrupt(int irq, void *dev_id);
129static int de600_tx_intr(struct net_device *dev, int irq_status); 129static int de600_tx_intr(struct net_device *dev, int irq_status);
130static void de600_rx_intr(struct net_device *dev); 130static void de600_rx_intr(struct net_device *dev);
131 131
diff --git a/drivers/net/de620.c b/drivers/net/de620.c
index a18d4d14b665..b6ad0cb50552 100644
--- a/drivers/net/de620.c
+++ b/drivers/net/de620.c
@@ -221,7 +221,7 @@ static void de620_set_multicast_list(struct net_device *);
221static int de620_start_xmit(struct sk_buff *, struct net_device *); 221static int de620_start_xmit(struct sk_buff *, struct net_device *);
222 222
223/* Dispatch from interrupts. */ 223/* Dispatch from interrupts. */
224static irqreturn_t de620_interrupt(int, void *, struct pt_regs *); 224static irqreturn_t de620_interrupt(int, void *);
225static int de620_rx_intr(struct net_device *); 225static int de620_rx_intr(struct net_device *);
226 226
227/* Initialization */ 227/* Initialization */
@@ -591,7 +591,7 @@ static int de620_start_xmit(struct sk_buff *skb, struct net_device *dev)
591 * 591 *
592 */ 592 */
593static irqreturn_t 593static irqreturn_t
594de620_interrupt(int irq_in, void *dev_id, struct pt_regs *regs) 594de620_interrupt(int irq_in, void *dev_id)
595{ 595{
596 struct net_device *dev = dev_id; 596 struct net_device *dev = dev_id;
597 byte irq_status; 597 byte irq_status;
diff --git a/drivers/net/declance.c b/drivers/net/declance.c
index bbccd741cdbf..00e2a8a134d7 100644
--- a/drivers/net/declance.c
+++ b/drivers/net/declance.c
@@ -694,19 +694,17 @@ out:
694 spin_unlock(&lp->lock); 694 spin_unlock(&lp->lock);
695} 695}
696 696
697static irqreturn_t lance_dma_merr_int(const int irq, void *dev_id, 697static irqreturn_t lance_dma_merr_int(const int irq, void *dev_id)
698 struct pt_regs *regs)
699{ 698{
700 struct net_device *dev = (struct net_device *) dev_id; 699 struct net_device *dev = dev_id;
701 700
702 printk("%s: DMA error\n", dev->name); 701 printk("%s: DMA error\n", dev->name);
703 return IRQ_HANDLED; 702 return IRQ_HANDLED;
704} 703}
705 704
706static irqreturn_t lance_interrupt(const int irq, void *dev_id, 705static irqreturn_t lance_interrupt(const int irq, void *dev_id)
707 struct pt_regs *regs)
708{ 706{
709 struct net_device *dev = (struct net_device *) dev_id; 707 struct net_device *dev = dev_id;
710 struct lance_private *lp = netdev_priv(dev); 708 struct lance_private *lp = netdev_priv(dev);
711 volatile struct lance_regs *ll = lp->ll; 709 volatile struct lance_regs *ll = lp->ll;
712 int csr0; 710 int csr0;
diff --git a/drivers/net/defxx.c b/drivers/net/defxx.c
index ae9680552b82..8f514cc0debd 100644
--- a/drivers/net/defxx.c
+++ b/drivers/net/defxx.c
@@ -248,8 +248,7 @@ static int dfx_close(struct net_device *dev);
248static void dfx_int_pr_halt_id(DFX_board_t *bp); 248static void dfx_int_pr_halt_id(DFX_board_t *bp);
249static void dfx_int_type_0_process(DFX_board_t *bp); 249static void dfx_int_type_0_process(DFX_board_t *bp);
250static void dfx_int_common(struct net_device *dev); 250static void dfx_int_common(struct net_device *dev);
251static irqreturn_t dfx_interrupt(int irq, void *dev_id, 251static irqreturn_t dfx_interrupt(int irq, void *dev_id);
252 struct pt_regs *regs);
253 252
254static struct net_device_stats *dfx_ctl_get_stats(struct net_device *dev); 253static struct net_device_stats *dfx_ctl_get_stats(struct net_device *dev);
255static void dfx_ctl_set_multicast_list(struct net_device *dev); 254static void dfx_ctl_set_multicast_list(struct net_device *dev);
@@ -1693,7 +1692,6 @@ static void dfx_int_common(struct net_device *dev)
1693 * Arguments: 1692 * Arguments:
1694 * irq - interrupt vector 1693 * irq - interrupt vector
1695 * dev_id - pointer to device information 1694 * dev_id - pointer to device information
1696 * regs - pointer to registers structure
1697 * 1695 *
1698 * Functional Description: 1696 * Functional Description:
1699 * This routine calls the interrupt processing routine for this adapter. It 1697 * This routine calls the interrupt processing routine for this adapter. It
@@ -1716,7 +1714,7 @@ static void dfx_int_common(struct net_device *dev)
1716 * Interrupts are disabled, then reenabled at the adapter. 1714 * Interrupts are disabled, then reenabled at the adapter.
1717 */ 1715 */
1718 1716
1719static irqreturn_t dfx_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1717static irqreturn_t dfx_interrupt(int irq, void *dev_id)
1720{ 1718{
1721 struct net_device *dev = dev_id; 1719 struct net_device *dev = dev_id;
1722 DFX_board_t *bp; /* private board structure pointer */ 1720 DFX_board_t *bp; /* private board structure pointer */
diff --git a/drivers/net/depca.c b/drivers/net/depca.c
index af594664df51..f87f6e3dc721 100644
--- a/drivers/net/depca.c
+++ b/drivers/net/depca.c
@@ -518,7 +518,7 @@ struct depca_private {
518*/ 518*/
519static int depca_open(struct net_device *dev); 519static int depca_open(struct net_device *dev);
520static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev); 520static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev);
521static irqreturn_t depca_interrupt(int irq, void *dev_id, struct pt_regs *regs); 521static irqreturn_t depca_interrupt(int irq, void *dev_id);
522static int depca_close(struct net_device *dev); 522static int depca_close(struct net_device *dev);
523static int depca_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 523static int depca_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
524static void depca_tx_timeout(struct net_device *dev); 524static void depca_tx_timeout(struct net_device *dev);
@@ -965,7 +965,7 @@ static int depca_start_xmit(struct sk_buff *skb, struct net_device *dev)
965/* 965/*
966** The DEPCA interrupt handler. 966** The DEPCA interrupt handler.
967*/ 967*/
968static irqreturn_t depca_interrupt(int irq, void *dev_id, struct pt_regs *regs) 968static irqreturn_t depca_interrupt(int irq, void *dev_id)
969{ 969{
970 struct net_device *dev = dev_id; 970 struct net_device *dev = dev_id;
971 struct depca_private *lp; 971 struct depca_private *lp;
diff --git a/drivers/net/dgrs.c b/drivers/net/dgrs.c
index d0842527b369..a79520295fd0 100644
--- a/drivers/net/dgrs.c
+++ b/drivers/net/dgrs.c
@@ -895,10 +895,10 @@ static int dgrs_ioctl(struct net_device *devN, struct ifreq *ifr, int cmd)
895 * dev, priv will always refer to the 0th device in Multi-NIC mode. 895 * dev, priv will always refer to the 0th device in Multi-NIC mode.
896 */ 896 */
897 897
898static irqreturn_t dgrs_intr(int irq, void *dev_id, struct pt_regs *regs) 898static irqreturn_t dgrs_intr(int irq, void *dev_id)
899{ 899{
900 struct net_device *dev0 = (struct net_device *) dev_id; 900 struct net_device *dev0 = dev_id;
901 DGRS_PRIV *priv0 = (DGRS_PRIV *) dev0->priv; 901 DGRS_PRIV *priv0 = dev0->priv;
902 I596_CB *cbp; 902 I596_CB *cbp;
903 int cmd; 903 int cmd;
904 int i; 904 int i;
diff --git a/drivers/net/dl2k.c b/drivers/net/dl2k.c
index 7e95cf1a4872..9d446a0fe0bf 100644
--- a/drivers/net/dl2k.c
+++ b/drivers/net/dl2k.c
@@ -60,7 +60,7 @@ static void rio_timer (unsigned long data);
60static void rio_tx_timeout (struct net_device *dev); 60static void rio_tx_timeout (struct net_device *dev);
61static void alloc_list (struct net_device *dev); 61static void alloc_list (struct net_device *dev);
62static int start_xmit (struct sk_buff *skb, struct net_device *dev); 62static int start_xmit (struct sk_buff *skb, struct net_device *dev);
63static irqreturn_t rio_interrupt (int irq, void *dev_instance, struct pt_regs *regs); 63static irqreturn_t rio_interrupt (int irq, void *dev_instance);
64static void rio_free_tx (struct net_device *dev, int irq); 64static void rio_free_tx (struct net_device *dev, int irq);
65static void tx_error (struct net_device *dev, int tx_status); 65static void tx_error (struct net_device *dev, int tx_status);
66static int receive_packet (struct net_device *dev); 66static int receive_packet (struct net_device *dev);
@@ -665,7 +665,7 @@ start_xmit (struct sk_buff *skb, struct net_device *dev)
665} 665}
666 666
667static irqreturn_t 667static irqreturn_t
668rio_interrupt (int irq, void *dev_instance, struct pt_regs *rgs) 668rio_interrupt (int irq, void *dev_instance)
669{ 669{
670 struct net_device *dev = dev_instance; 670 struct net_device *dev = dev_instance;
671 struct netdev_private *np; 671 struct netdev_private *np;
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index a860ebbbf815..615d2b14efa7 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -159,7 +159,7 @@ static void dm9000_init_dm9000(struct net_device *);
159 159
160static struct net_device_stats *dm9000_get_stats(struct net_device *); 160static struct net_device_stats *dm9000_get_stats(struct net_device *);
161 161
162static irqreturn_t dm9000_interrupt(int, void *, struct pt_regs *); 162static irqreturn_t dm9000_interrupt(int, void *);
163 163
164static int dm9000_phy_read(struct net_device *dev, int phyaddr_unsused, int reg); 164static int dm9000_phy_read(struct net_device *dev, int phyaddr_unsused, int reg);
165static void dm9000_phy_write(struct net_device *dev, int phyaddr_unused, int reg, 165static void dm9000_phy_write(struct net_device *dev, int phyaddr_unused, int reg,
@@ -346,7 +346,7 @@ static void dm9000_timeout(struct net_device *dev)
346static void dm9000_poll_controller(struct net_device *dev) 346static void dm9000_poll_controller(struct net_device *dev)
347{ 347{
348 disable_irq(dev->irq); 348 disable_irq(dev->irq);
349 dm9000_interrupt(dev->irq,dev,NULL); 349 dm9000_interrupt(dev->irq,dev);
350 enable_irq(dev->irq); 350 enable_irq(dev->irq);
351} 351}
352#endif 352#endif
@@ -804,7 +804,7 @@ dm9000_tx_done(struct net_device *dev, board_info_t * db)
804} 804}
805 805
806static irqreturn_t 806static irqreturn_t
807dm9000_interrupt(int irq, void *dev_id, struct pt_regs *regs) 807dm9000_interrupt(int irq, void *dev_id)
808{ 808{
809 struct net_device *dev = dev_id; 809 struct net_device *dev = dev_id;
810 board_info_t *db; 810 board_info_t *db;
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 26073c345213..27d5d2f02533 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -1949,7 +1949,7 @@ static int e100_rx_alloc_list(struct nic *nic)
1949 return 0; 1949 return 0;
1950} 1950}
1951 1951
1952static irqreturn_t e100_intr(int irq, void *dev_id, struct pt_regs *regs) 1952static irqreturn_t e100_intr(int irq, void *dev_id)
1953{ 1953{
1954 struct net_device *netdev = dev_id; 1954 struct net_device *netdev = dev_id;
1955 struct nic *nic = netdev_priv(netdev); 1955 struct nic *nic = netdev_priv(netdev);
@@ -2005,7 +2005,7 @@ static void e100_netpoll(struct net_device *netdev)
2005 struct nic *nic = netdev_priv(netdev); 2005 struct nic *nic = netdev_priv(netdev);
2006 2006
2007 e100_disable_irq(nic); 2007 e100_disable_irq(nic);
2008 e100_intr(nic->pdev->irq, netdev, NULL); 2008 e100_intr(nic->pdev->irq, netdev);
2009 e100_tx_clean(nic); 2009 e100_tx_clean(nic);
2010 e100_enable_irq(nic); 2010 e100_enable_irq(nic);
2011} 2011}
diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c
index 778ede3c0216..773821e4cf57 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -883,8 +883,7 @@ e1000_eeprom_test(struct e1000_adapter *adapter, uint64_t *data)
883 883
884static irqreturn_t 884static irqreturn_t
885e1000_test_intr(int irq, 885e1000_test_intr(int irq,
886 void *data, 886 void *data)
887 struct pt_regs *regs)
888{ 887{
889 struct net_device *netdev = (struct net_device *) data; 888 struct net_device *netdev = (struct net_device *) data;
890 struct e1000_adapter *adapter = netdev_priv(netdev); 889 struct e1000_adapter *adapter = netdev_priv(netdev);
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 7dca38fba6a1..ce0d35fe3947 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -153,7 +153,7 @@ static int e1000_xmit_frame(struct sk_buff *skb, struct net_device *netdev);
153static struct net_device_stats * e1000_get_stats(struct net_device *netdev); 153static struct net_device_stats * e1000_get_stats(struct net_device *netdev);
154static int e1000_change_mtu(struct net_device *netdev, int new_mtu); 154static int e1000_change_mtu(struct net_device *netdev, int new_mtu);
155static int e1000_set_mac(struct net_device *netdev, void *p); 155static int e1000_set_mac(struct net_device *netdev, void *p);
156static irqreturn_t e1000_intr(int irq, void *data, struct pt_regs *regs); 156static irqreturn_t e1000_intr(int irq, void *data);
157static boolean_t e1000_clean_tx_irq(struct e1000_adapter *adapter, 157static boolean_t e1000_clean_tx_irq(struct e1000_adapter *adapter,
158 struct e1000_tx_ring *tx_ring); 158 struct e1000_tx_ring *tx_ring);
159#ifdef CONFIG_E1000_NAPI 159#ifdef CONFIG_E1000_NAPI
@@ -3436,11 +3436,10 @@ e1000_update_stats(struct e1000_adapter *adapter)
3436 * e1000_intr - Interrupt Handler 3436 * e1000_intr - Interrupt Handler
3437 * @irq: interrupt number 3437 * @irq: interrupt number
3438 * @data: pointer to a network interface device structure 3438 * @data: pointer to a network interface device structure
3439 * @pt_regs: CPU registers structure
3440 **/ 3439 **/
3441 3440
3442static irqreturn_t 3441static irqreturn_t
3443e1000_intr(int irq, void *data, struct pt_regs *regs) 3442e1000_intr(int irq, void *data)
3444{ 3443{
3445 struct net_device *netdev = data; 3444 struct net_device *netdev = data;
3446 struct e1000_adapter *adapter = netdev_priv(netdev); 3445 struct e1000_adapter *adapter = netdev_priv(netdev);
@@ -4862,7 +4861,7 @@ e1000_netpoll(struct net_device *netdev)
4862 struct e1000_adapter *adapter = netdev_priv(netdev); 4861 struct e1000_adapter *adapter = netdev_priv(netdev);
4863 4862
4864 disable_irq(adapter->pdev->irq); 4863 disable_irq(adapter->pdev->irq);
4865 e1000_intr(adapter->pdev->irq, netdev, NULL); 4864 e1000_intr(adapter->pdev->irq, netdev);
4866 e1000_clean_tx_irq(adapter, adapter->tx_ring); 4865 e1000_clean_tx_irq(adapter, adapter->tx_ring);
4867#ifndef CONFIG_E1000_NAPI 4866#ifndef CONFIG_E1000_NAPI
4868 adapter->clean_rx(adapter, adapter->rx_ring); 4867 adapter->clean_rx(adapter, adapter->rx_ring);
diff --git a/drivers/net/eepro.c b/drivers/net/eepro.c
index 09ff9b9418f4..a4eb0dc99ecf 100644
--- a/drivers/net/eepro.c
+++ b/drivers/net/eepro.c
@@ -311,7 +311,7 @@ struct eepro_local {
311static int eepro_probe1(struct net_device *dev, int autoprobe); 311static int eepro_probe1(struct net_device *dev, int autoprobe);
312static int eepro_open(struct net_device *dev); 312static int eepro_open(struct net_device *dev);
313static int eepro_send_packet(struct sk_buff *skb, struct net_device *dev); 313static int eepro_send_packet(struct sk_buff *skb, struct net_device *dev);
314static irqreturn_t eepro_interrupt(int irq, void *dev_id, struct pt_regs *regs); 314static irqreturn_t eepro_interrupt(int irq, void *dev_id);
315static void eepro_rx(struct net_device *dev); 315static void eepro_rx(struct net_device *dev);
316static void eepro_transmit_interrupt(struct net_device *dev); 316static void eepro_transmit_interrupt(struct net_device *dev);
317static int eepro_close(struct net_device *dev); 317static int eepro_close(struct net_device *dev);
@@ -994,16 +994,6 @@ static int eepro_open(struct net_device *dev)
994 return -EAGAIN; 994 return -EAGAIN;
995 } 995 }
996 996
997#ifdef irq2dev_map
998 if (((irq2dev_map[dev->irq] != 0)
999 || (irq2dev_map[dev->irq] = dev) == 0) &&
1000 (irq2dev_map[dev->irq]!=dev)) {
1001 /* printk("%s: IRQ map wrong\n", dev->name); */
1002 free_irq(dev->irq, dev);
1003 return -EAGAIN;
1004 }
1005#endif
1006
1007 /* Initialize the 82595. */ 997 /* Initialize the 82595. */
1008 998
1009 eepro_sw2bank2(ioaddr); /* be CAREFUL, BANK 2 now */ 999 eepro_sw2bank2(ioaddr); /* be CAREFUL, BANK 2 now */
@@ -1196,19 +1186,13 @@ static int eepro_send_packet(struct sk_buff *skb, struct net_device *dev)
1196 Handle the network interface interrupts. */ 1186 Handle the network interface interrupts. */
1197 1187
1198static irqreturn_t 1188static irqreturn_t
1199eepro_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1189eepro_interrupt(int irq, void *dev_id)
1200{ 1190{
1201 struct net_device *dev = (struct net_device *)dev_id; 1191 struct net_device *dev = dev_id;
1202 /* (struct net_device *)(irq2dev_map[irq]);*/
1203 struct eepro_local *lp; 1192 struct eepro_local *lp;
1204 int ioaddr, status, boguscount = 20; 1193 int ioaddr, status, boguscount = 20;
1205 int handled = 0; 1194 int handled = 0;
1206 1195
1207 if (dev == NULL) {
1208 printk (KERN_ERR "eepro_interrupt(): irq %d for unknown device.\\n", irq);
1209 return IRQ_NONE;
1210 }
1211
1212 lp = netdev_priv(dev); 1196 lp = netdev_priv(dev);
1213 1197
1214 spin_lock(&lp->lock); 1198 spin_lock(&lp->lock);
@@ -1288,10 +1272,6 @@ static int eepro_close(struct net_device *dev)
1288 /* release the interrupt */ 1272 /* release the interrupt */
1289 free_irq(dev->irq, dev); 1273 free_irq(dev->irq, dev);
1290 1274
1291#ifdef irq2dev_map
1292 irq2dev_map[dev->irq] = 0;
1293#endif
1294
1295 /* Update the statistics here. What statistics? */ 1275 /* Update the statistics here. What statistics? */
1296 1276
1297 return 0; 1277 return 0;
diff --git a/drivers/net/eepro100.c b/drivers/net/eepro100.c
index 499e93b31f54..e28bb1e38f8d 100644
--- a/drivers/net/eepro100.c
+++ b/drivers/net/eepro100.c
@@ -488,7 +488,7 @@ static int speedo_start_xmit(struct sk_buff *skb, struct net_device *dev);
488static void speedo_refill_rx_buffers(struct net_device *dev, int force); 488static void speedo_refill_rx_buffers(struct net_device *dev, int force);
489static int speedo_rx(struct net_device *dev); 489static int speedo_rx(struct net_device *dev);
490static void speedo_tx_buffer_gc(struct net_device *dev); 490static void speedo_tx_buffer_gc(struct net_device *dev);
491static irqreturn_t speedo_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 491static irqreturn_t speedo_interrupt(int irq, void *dev_instance);
492static int speedo_close(struct net_device *dev); 492static int speedo_close(struct net_device *dev);
493static struct net_device_stats *speedo_get_stats(struct net_device *dev); 493static struct net_device_stats *speedo_get_stats(struct net_device *dev);
494static int speedo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 494static int speedo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -606,7 +606,7 @@ static void poll_speedo (struct net_device *dev)
606 /* disable_irq is not very nice, but with the funny lockless design 606 /* disable_irq is not very nice, but with the funny lockless design
607 we have no other choice. */ 607 we have no other choice. */
608 disable_irq(dev->irq); 608 disable_irq(dev->irq);
609 speedo_interrupt (dev->irq, dev, NULL); 609 speedo_interrupt (dev->irq, dev);
610 enable_irq(dev->irq); 610 enable_irq(dev->irq);
611} 611}
612#endif 612#endif
@@ -1541,7 +1541,7 @@ static void speedo_tx_buffer_gc(struct net_device *dev)
1541 1541
1542/* The interrupt handler does all of the Rx thread work and cleans up 1542/* The interrupt handler does all of the Rx thread work and cleans up
1543 after the Tx thread. */ 1543 after the Tx thread. */
1544static irqreturn_t speedo_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1544static irqreturn_t speedo_interrupt(int irq, void *dev_instance)
1545{ 1545{
1546 struct net_device *dev = (struct net_device *)dev_instance; 1546 struct net_device *dev = (struct net_device *)dev_instance;
1547 struct speedo_private *sp; 1547 struct speedo_private *sp;
diff --git a/drivers/net/eexpress.c b/drivers/net/eexpress.c
index 9cb05d99ee1b..e14be020e562 100644
--- a/drivers/net/eexpress.c
+++ b/drivers/net/eexpress.c
@@ -249,7 +249,7 @@ static void eexp_timeout(struct net_device *dev);
249static struct net_device_stats *eexp_stats(struct net_device *dev); 249static struct net_device_stats *eexp_stats(struct net_device *dev);
250static int eexp_xmit(struct sk_buff *buf, struct net_device *dev); 250static int eexp_xmit(struct sk_buff *buf, struct net_device *dev);
251 251
252static irqreturn_t eexp_irq(int irq, void *dev_addr, struct pt_regs *regs); 252static irqreturn_t eexp_irq(int irq, void *dev_addr);
253static void eexp_set_multicast(struct net_device *dev); 253static void eexp_set_multicast(struct net_device *dev);
254 254
255/* 255/*
@@ -789,20 +789,13 @@ static void eexp_cmd_clear(struct net_device *dev)
789 } 789 }
790} 790}
791 791
792static irqreturn_t eexp_irq(int irq, void *dev_info, struct pt_regs *regs) 792static irqreturn_t eexp_irq(int irq, void *dev_info)
793{ 793{
794 struct net_device *dev = dev_info; 794 struct net_device *dev = dev_info;
795 struct net_local *lp; 795 struct net_local *lp;
796 unsigned short ioaddr,status,ack_cmd; 796 unsigned short ioaddr,status,ack_cmd;
797 unsigned short old_read_ptr, old_write_ptr; 797 unsigned short old_read_ptr, old_write_ptr;
798 798
799 if (dev==NULL)
800 {
801 printk(KERN_WARNING "eexpress: irq %d for unknown device\n",
802 irq);
803 return IRQ_NONE;
804 }
805
806 lp = netdev_priv(dev); 799 lp = netdev_priv(dev);
807 ioaddr = dev->base_addr; 800 ioaddr = dev->base_addr;
808 801
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 263d1c5b3f23..c6b31775e26b 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -536,16 +536,14 @@ void ehea_send_irq_tasklet(unsigned long data)
536 tasklet_hi_schedule(&pr->send_comp_task); 536 tasklet_hi_schedule(&pr->send_comp_task);
537} 537}
538 538
539static irqreturn_t ehea_send_irq_handler(int irq, void *param, 539static irqreturn_t ehea_send_irq_handler(int irq, void *param)
540 struct pt_regs *regs)
541{ 540{
542 struct ehea_port_res *pr = param; 541 struct ehea_port_res *pr = param;
543 tasklet_hi_schedule(&pr->send_comp_task); 542 tasklet_hi_schedule(&pr->send_comp_task);
544 return IRQ_HANDLED; 543 return IRQ_HANDLED;
545} 544}
546 545
547static irqreturn_t ehea_recv_irq_handler(int irq, void *param, 546static irqreturn_t ehea_recv_irq_handler(int irq, void *param)
548 struct pt_regs *regs)
549{ 547{
550 struct ehea_port_res *pr = param; 548 struct ehea_port_res *pr = param;
551 struct ehea_port *port = pr->port; 549 struct ehea_port *port = pr->port;
@@ -553,8 +551,7 @@ static irqreturn_t ehea_recv_irq_handler(int irq, void *param,
553 return IRQ_HANDLED; 551 return IRQ_HANDLED;
554} 552}
555 553
556static irqreturn_t ehea_qp_aff_irq_handler(int irq, void *param, 554static irqreturn_t ehea_qp_aff_irq_handler(int irq, void *param)
557 struct pt_regs *regs)
558{ 555{
559 struct ehea_port *port = param; 556 struct ehea_port *port = param;
560 struct ehea_eqe *eqe; 557 struct ehea_eqe *eqe;
@@ -850,8 +847,7 @@ static void ehea_neq_tasklet(unsigned long data)
850 adapter->neq->fw_handle, event_mask); 847 adapter->neq->fw_handle, event_mask);
851} 848}
852 849
853static irqreturn_t ehea_interrupt_neq(int irq, void *param, 850static irqreturn_t ehea_interrupt_neq(int irq, void *param)
854 struct pt_regs *regs)
855{ 851{
856 struct ehea_adapter *adapter = param; 852 struct ehea_adapter *adapter = param;
857 tasklet_hi_schedule(&adapter->neq_tasklet); 853 tasklet_hi_schedule(&adapter->neq_tasklet);
diff --git a/drivers/net/epic100.c b/drivers/net/epic100.c
index ba2565ee0439..3a6a83d3ee1c 100644
--- a/drivers/net/epic100.c
+++ b/drivers/net/epic100.c
@@ -297,7 +297,7 @@ static void epic_init_ring(struct net_device *dev);
297static int epic_start_xmit(struct sk_buff *skb, struct net_device *dev); 297static int epic_start_xmit(struct sk_buff *skb, struct net_device *dev);
298static int epic_rx(struct net_device *dev, int budget); 298static int epic_rx(struct net_device *dev, int budget);
299static int epic_poll(struct net_device *dev, int *budget); 299static int epic_poll(struct net_device *dev, int *budget);
300static irqreturn_t epic_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 300static irqreturn_t epic_interrupt(int irq, void *dev_instance);
301static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 301static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
302static const struct ethtool_ops netdev_ethtool_ops; 302static const struct ethtool_ops netdev_ethtool_ops;
303static int epic_close(struct net_device *dev); 303static int epic_close(struct net_device *dev);
@@ -1081,7 +1081,7 @@ static void epic_tx(struct net_device *dev, struct epic_private *ep)
1081 1081
1082/* The interrupt handler does all of the Rx thread work and cleans up 1082/* The interrupt handler does all of the Rx thread work and cleans up
1083 after the Tx thread. */ 1083 after the Tx thread. */
1084static irqreturn_t epic_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1084static irqreturn_t epic_interrupt(int irq, void *dev_instance)
1085{ 1085{
1086 struct net_device *dev = dev_instance; 1086 struct net_device *dev = dev_instance;
1087 struct epic_private *ep = dev->priv; 1087 struct epic_private *ep = dev->priv;
diff --git a/drivers/net/eth16i.c b/drivers/net/eth16i.c
index f16b6a5aaa34..8cc3c331aca8 100644
--- a/drivers/net/eth16i.c
+++ b/drivers/net/eth16i.c
@@ -410,7 +410,7 @@ static int eth16i_close(struct net_device *dev);
410static int eth16i_tx(struct sk_buff *skb, struct net_device *dev); 410static int eth16i_tx(struct sk_buff *skb, struct net_device *dev);
411static void eth16i_rx(struct net_device *dev); 411static void eth16i_rx(struct net_device *dev);
412static void eth16i_timeout(struct net_device *dev); 412static void eth16i_timeout(struct net_device *dev);
413static irqreturn_t eth16i_interrupt(int irq, void *dev_id, struct pt_regs *regs); 413static irqreturn_t eth16i_interrupt(int irq, void *dev_id);
414static void eth16i_reset(struct net_device *dev); 414static void eth16i_reset(struct net_device *dev);
415static void eth16i_timeout(struct net_device *dev); 415static void eth16i_timeout(struct net_device *dev);
416static void eth16i_skip_packet(struct net_device *dev); 416static void eth16i_skip_packet(struct net_device *dev);
@@ -1226,7 +1226,7 @@ static void eth16i_rx(struct net_device *dev)
1226 } /* while */ 1226 } /* while */
1227} 1227}
1228 1228
1229static irqreturn_t eth16i_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1229static irqreturn_t eth16i_interrupt(int irq, void *dev_id)
1230{ 1230{
1231 struct net_device *dev = dev_id; 1231 struct net_device *dev = dev_id;
1232 struct eth16i_local *lp; 1232 struct eth16i_local *lp;
diff --git a/drivers/net/ewrk3.c b/drivers/net/ewrk3.c
index 75a43f7c70cf..c8c41f0a47d6 100644
--- a/drivers/net/ewrk3.c
+++ b/drivers/net/ewrk3.c
@@ -300,7 +300,7 @@ struct ewrk3_private {
300 */ 300 */
301static int ewrk3_open(struct net_device *dev); 301static int ewrk3_open(struct net_device *dev);
302static int ewrk3_queue_pkt(struct sk_buff *skb, struct net_device *dev); 302static int ewrk3_queue_pkt(struct sk_buff *skb, struct net_device *dev);
303static irqreturn_t ewrk3_interrupt(int irq, void *dev_id, struct pt_regs *regs); 303static irqreturn_t ewrk3_interrupt(int irq, void *dev_id);
304static int ewrk3_close(struct net_device *dev); 304static int ewrk3_close(struct net_device *dev);
305static struct net_device_stats *ewrk3_get_stats(struct net_device *dev); 305static struct net_device_stats *ewrk3_get_stats(struct net_device *dev);
306static void set_multicast_list(struct net_device *dev); 306static void set_multicast_list(struct net_device *dev);
@@ -884,7 +884,7 @@ err_out:
884/* 884/*
885 ** The EWRK3 interrupt handler. 885 ** The EWRK3 interrupt handler.
886 */ 886 */
887static irqreturn_t ewrk3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 887static irqreturn_t ewrk3_interrupt(int irq, void *dev_id)
888{ 888{
889 struct net_device *dev = dev_id; 889 struct net_device *dev = dev_id;
890 struct ewrk3_private *lp; 890 struct ewrk3_private *lp;
diff --git a/drivers/net/fealnx.c b/drivers/net/fealnx.c
index 191bd429076a..38a13f440530 100644
--- a/drivers/net/fealnx.c
+++ b/drivers/net/fealnx.c
@@ -434,7 +434,7 @@ static void reset_timer(unsigned long data);
434static void tx_timeout(struct net_device *dev); 434static void tx_timeout(struct net_device *dev);
435static void init_ring(struct net_device *dev); 435static void init_ring(struct net_device *dev);
436static int start_tx(struct sk_buff *skb, struct net_device *dev); 436static int start_tx(struct sk_buff *skb, struct net_device *dev);
437static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs); 437static irqreturn_t intr_handler(int irq, void *dev_instance);
438static int netdev_rx(struct net_device *dev); 438static int netdev_rx(struct net_device *dev);
439static void set_rx_mode(struct net_device *dev); 439static void set_rx_mode(struct net_device *dev);
440static void __set_rx_mode(struct net_device *dev); 440static void __set_rx_mode(struct net_device *dev);
@@ -1453,7 +1453,7 @@ static void reset_rx_descriptors(struct net_device *dev)
1453 1453
1454/* The interrupt handler does all of the Rx thread work and cleans up 1454/* The interrupt handler does all of the Rx thread work and cleans up
1455 after the Tx thread. */ 1455 after the Tx thread. */
1456static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs) 1456static irqreturn_t intr_handler(int irq, void *dev_instance)
1457{ 1457{
1458 struct net_device *dev = (struct net_device *) dev_instance; 1458 struct net_device *dev = (struct net_device *) dev_instance;
1459 struct netdev_private *np = netdev_priv(dev); 1459 struct netdev_private *np = netdev_priv(dev);
diff --git a/drivers/net/fec.c b/drivers/net/fec.c
index 55d86bc4c104..6764281b4531 100644
--- a/drivers/net/fec.c
+++ b/drivers/net/fec.c
@@ -229,7 +229,7 @@ struct fec_enet_private {
229static int fec_enet_open(struct net_device *dev); 229static int fec_enet_open(struct net_device *dev);
230static int fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev); 230static int fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
231static void fec_enet_mii(struct net_device *dev); 231static void fec_enet_mii(struct net_device *dev);
232static irqreturn_t fec_enet_interrupt(int irq, void * dev_id, struct pt_regs * regs); 232static irqreturn_t fec_enet_interrupt(int irq, void * dev_id);
233static void fec_enet_tx(struct net_device *dev); 233static void fec_enet_tx(struct net_device *dev);
234static void fec_enet_rx(struct net_device *dev); 234static void fec_enet_rx(struct net_device *dev);
235static int fec_enet_close(struct net_device *dev); 235static int fec_enet_close(struct net_device *dev);
@@ -450,7 +450,7 @@ fec_timeout(struct net_device *dev)
450 * This is called from the MPC core interrupt. 450 * This is called from the MPC core interrupt.
451 */ 451 */
452static irqreturn_t 452static irqreturn_t
453fec_enet_interrupt(int irq, void * dev_id, struct pt_regs * regs) 453fec_enet_interrupt(int irq, void * dev_id)
454{ 454{
455 struct net_device *dev = dev_id; 455 struct net_device *dev = dev_id;
456 volatile fec_t *fecp; 456 volatile fec_t *fecp;
@@ -1236,7 +1236,7 @@ static void
1236mii_link_interrupt(void *dev_id); 1236mii_link_interrupt(void *dev_id);
1237#else 1237#else
1238static irqreturn_t 1238static irqreturn_t
1239mii_link_interrupt(int irq, void * dev_id, struct pt_regs * regs); 1239mii_link_interrupt(int irq, void * dev_id);
1240#endif 1240#endif
1241#endif 1241#endif
1242 1242
@@ -1251,7 +1251,7 @@ static void __inline__ fec_request_intrs(struct net_device *dev)
1251 static const struct idesc { 1251 static const struct idesc {
1252 char *name; 1252 char *name;
1253 unsigned short irq; 1253 unsigned short irq;
1254 irqreturn_t (*handler)(int, void *, struct pt_regs *); 1254 irq_handler_t handler;
1255 } *idp, id[] = { 1255 } *idp, id[] = {
1256 { "fec(RX)", 86, fec_enet_interrupt }, 1256 { "fec(RX)", 86, fec_enet_interrupt },
1257 { "fec(TX)", 87, fec_enet_interrupt }, 1257 { "fec(TX)", 87, fec_enet_interrupt },
@@ -2117,7 +2117,7 @@ static void
2117mii_link_interrupt(void *dev_id) 2117mii_link_interrupt(void *dev_id)
2118#else 2118#else
2119static irqreturn_t 2119static irqreturn_t
2120mii_link_interrupt(int irq, void * dev_id, struct pt_regs * regs) 2120mii_link_interrupt(int irq, void * dev_id)
2121#endif 2121#endif
2122{ 2122{
2123 struct net_device *dev = dev_id; 2123 struct net_device *dev = dev_id;
diff --git a/drivers/net/fec_8xx/fec_main.c b/drivers/net/fec_8xx/fec_main.c
index e17a1449ee10..8e7a56fadfd2 100644
--- a/drivers/net/fec_8xx/fec_main.c
+++ b/drivers/net/fec_8xx/fec_main.c
@@ -708,7 +708,7 @@ static void fec_enet_tx(struct net_device *dev)
708 * This is called from the MPC core interrupt. 708 * This is called from the MPC core interrupt.
709 */ 709 */
710static irqreturn_t 710static irqreturn_t
711fec_enet_interrupt(int irq, void *dev_id, struct pt_regs *regs) 711fec_enet_interrupt(int irq, void *dev_id)
712{ 712{
713 struct net_device *dev = dev_id; 713 struct net_device *dev = dev_id;
714 struct fec_enet_private *fep; 714 struct fec_enet_private *fep;
@@ -768,7 +768,7 @@ fec_enet_interrupt(int irq, void *dev_id, struct pt_regs *regs)
768 768
769/* This interrupt occurs when the PHY detects a link change. */ 769/* This interrupt occurs when the PHY detects a link change. */
770static irqreturn_t 770static irqreturn_t
771fec_mii_link_interrupt(int irq, void *dev_id, struct pt_regs *regs) 771fec_mii_link_interrupt(int irq, void *dev_id)
772{ 772{
773 struct net_device *dev = dev_id; 773 struct net_device *dev = dev_id;
774 struct fec_enet_private *fep; 774 struct fec_enet_private *fep;
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 35467e0ac538..c5ed635bce36 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -2397,7 +2397,7 @@ static void nv_link_irq(struct net_device *dev)
2397 dprintk(KERN_DEBUG "%s: link change notification done.\n", dev->name); 2397 dprintk(KERN_DEBUG "%s: link change notification done.\n", dev->name);
2398} 2398}
2399 2399
2400static irqreturn_t nv_nic_irq(int foo, void *data, struct pt_regs *regs) 2400static irqreturn_t nv_nic_irq(int foo, void *data)
2401{ 2401{
2402 struct net_device *dev = (struct net_device *) data; 2402 struct net_device *dev = (struct net_device *) data;
2403 struct fe_priv *np = netdev_priv(dev); 2403 struct fe_priv *np = netdev_priv(dev);
@@ -2490,7 +2490,7 @@ static irqreturn_t nv_nic_irq(int foo, void *data, struct pt_regs *regs)
2490 return IRQ_RETVAL(i); 2490 return IRQ_RETVAL(i);
2491} 2491}
2492 2492
2493static irqreturn_t nv_nic_irq_tx(int foo, void *data, struct pt_regs *regs) 2493static irqreturn_t nv_nic_irq_tx(int foo, void *data)
2494{ 2494{
2495 struct net_device *dev = (struct net_device *) data; 2495 struct net_device *dev = (struct net_device *) data;
2496 struct fe_priv *np = netdev_priv(dev); 2496 struct fe_priv *np = netdev_priv(dev);
@@ -2577,7 +2577,7 @@ static int nv_napi_poll(struct net_device *dev, int *budget)
2577#endif 2577#endif
2578 2578
2579#ifdef CONFIG_FORCEDETH_NAPI 2579#ifdef CONFIG_FORCEDETH_NAPI
2580static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs) 2580static irqreturn_t nv_nic_irq_rx(int foo, void *data)
2581{ 2581{
2582 struct net_device *dev = (struct net_device *) data; 2582 struct net_device *dev = (struct net_device *) data;
2583 u8 __iomem *base = get_hwbase(dev); 2583 u8 __iomem *base = get_hwbase(dev);
@@ -2595,7 +2595,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs)
2595 return IRQ_HANDLED; 2595 return IRQ_HANDLED;
2596} 2596}
2597#else 2597#else
2598static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs) 2598static irqreturn_t nv_nic_irq_rx(int foo, void *data)
2599{ 2599{
2600 struct net_device *dev = (struct net_device *) data; 2600 struct net_device *dev = (struct net_device *) data;
2601 struct fe_priv *np = netdev_priv(dev); 2601 struct fe_priv *np = netdev_priv(dev);
@@ -2643,7 +2643,7 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs)
2643} 2643}
2644#endif 2644#endif
2645 2645
2646static irqreturn_t nv_nic_irq_other(int foo, void *data, struct pt_regs *regs) 2646static irqreturn_t nv_nic_irq_other(int foo, void *data)
2647{ 2647{
2648 struct net_device *dev = (struct net_device *) data; 2648 struct net_device *dev = (struct net_device *) data;
2649 struct fe_priv *np = netdev_priv(dev); 2649 struct fe_priv *np = netdev_priv(dev);
@@ -2698,7 +2698,7 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data, struct pt_regs *regs)
2698 return IRQ_RETVAL(i); 2698 return IRQ_RETVAL(i);
2699} 2699}
2700 2700
2701static irqreturn_t nv_nic_irq_test(int foo, void *data, struct pt_regs *regs) 2701static irqreturn_t nv_nic_irq_test(int foo, void *data)
2702{ 2702{
2703 struct net_device *dev = (struct net_device *) data; 2703 struct net_device *dev = (struct net_device *) data;
2704 struct fe_priv *np = netdev_priv(dev); 2704 struct fe_priv *np = netdev_priv(dev);
@@ -2908,22 +2908,22 @@ static void nv_do_nic_poll(unsigned long data)
2908 pci_push(base); 2908 pci_push(base);
2909 2909
2910 if (!using_multi_irqs(dev)) { 2910 if (!using_multi_irqs(dev)) {
2911 nv_nic_irq(0, dev, NULL); 2911 nv_nic_irq(0, dev);
2912 if (np->msi_flags & NV_MSI_X_ENABLED) 2912 if (np->msi_flags & NV_MSI_X_ENABLED)
2913 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); 2913 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector);
2914 else 2914 else
2915 enable_irq_lockdep(dev->irq); 2915 enable_irq_lockdep(dev->irq);
2916 } else { 2916 } else {
2917 if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { 2917 if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) {
2918 nv_nic_irq_rx(0, dev, NULL); 2918 nv_nic_irq_rx(0, dev);
2919 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); 2919 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector);
2920 } 2920 }
2921 if (np->nic_poll_irq & NVREG_IRQ_TX_ALL) { 2921 if (np->nic_poll_irq & NVREG_IRQ_TX_ALL) {
2922 nv_nic_irq_tx(0, dev, NULL); 2922 nv_nic_irq_tx(0, dev);
2923 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); 2923 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector);
2924 } 2924 }
2925 if (np->nic_poll_irq & NVREG_IRQ_OTHER) { 2925 if (np->nic_poll_irq & NVREG_IRQ_OTHER) {
2926 nv_nic_irq_other(0, dev, NULL); 2926 nv_nic_irq_other(0, dev);
2927 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); 2927 enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector);
2928 } 2928 }
2929 } 2929 }
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index d01870619a4a..cb3958704a87 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -441,7 +441,7 @@ static void fs_enet_tx(struct net_device *dev)
441 * This is called from the MPC core interrupt. 441 * This is called from the MPC core interrupt.
442 */ 442 */
443static irqreturn_t 443static irqreturn_t
444fs_enet_interrupt(int irq, void *dev_id, struct pt_regs *regs) 444fs_enet_interrupt(int irq, void *dev_id)
445{ 445{
446 struct net_device *dev = dev_id; 446 struct net_device *dev = dev_id;
447 struct fs_enet_private *fep; 447 struct fs_enet_private *fep;
@@ -667,7 +667,7 @@ static int fs_enet_start_xmit(struct sk_buff *skb, struct net_device *dev)
667} 667}
668 668
669static int fs_request_irq(struct net_device *dev, int irq, const char *name, 669static int fs_request_irq(struct net_device *dev, int irq, const char *name,
670 irqreturn_t (*irqf)(int irq, void *dev_id, struct pt_regs *regs)) 670 irq_handler_t irqf)
671{ 671{
672 struct fs_enet_private *fep = netdev_priv(dev); 672 struct fs_enet_private *fep = netdev_priv(dev);
673 673
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 280b114e253f..a06d8d1aaceb 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -119,9 +119,9 @@ struct sk_buff *gfar_new_skb(struct net_device *dev, struct rxbd8 *bdp);
119static struct net_device_stats *gfar_get_stats(struct net_device *dev); 119static struct net_device_stats *gfar_get_stats(struct net_device *dev);
120static int gfar_set_mac_address(struct net_device *dev); 120static int gfar_set_mac_address(struct net_device *dev);
121static int gfar_change_mtu(struct net_device *dev, int new_mtu); 121static int gfar_change_mtu(struct net_device *dev, int new_mtu);
122static irqreturn_t gfar_error(int irq, void *dev_id, struct pt_regs *regs); 122static irqreturn_t gfar_error(int irq, void *dev_id);
123static irqreturn_t gfar_transmit(int irq, void *dev_id, struct pt_regs *regs); 123static irqreturn_t gfar_transmit(int irq, void *dev_id);
124static irqreturn_t gfar_interrupt(int irq, void *dev_id, struct pt_regs *regs); 124static irqreturn_t gfar_interrupt(int irq, void *dev_id);
125static void adjust_link(struct net_device *dev); 125static void adjust_link(struct net_device *dev);
126static void init_registers(struct net_device *dev); 126static void init_registers(struct net_device *dev);
127static int init_phy(struct net_device *dev); 127static int init_phy(struct net_device *dev);
@@ -1173,7 +1173,7 @@ static void gfar_timeout(struct net_device *dev)
1173} 1173}
1174 1174
1175/* Interrupt Handler for Transmit complete */ 1175/* Interrupt Handler for Transmit complete */
1176static irqreturn_t gfar_transmit(int irq, void *dev_id, struct pt_regs *regs) 1176static irqreturn_t gfar_transmit(int irq, void *dev_id)
1177{ 1177{
1178 struct net_device *dev = (struct net_device *) dev_id; 1178 struct net_device *dev = (struct net_device *) dev_id;
1179 struct gfar_private *priv = netdev_priv(dev); 1179 struct gfar_private *priv = netdev_priv(dev);
@@ -1305,7 +1305,7 @@ static inline void count_errors(unsigned short status, struct gfar_private *priv
1305 } 1305 }
1306} 1306}
1307 1307
1308irqreturn_t gfar_receive(int irq, void *dev_id, struct pt_regs *regs) 1308irqreturn_t gfar_receive(int irq, void *dev_id)
1309{ 1309{
1310 struct net_device *dev = (struct net_device *) dev_id; 1310 struct net_device *dev = (struct net_device *) dev_id;
1311 struct gfar_private *priv = netdev_priv(dev); 1311 struct gfar_private *priv = netdev_priv(dev);
@@ -1537,7 +1537,7 @@ static int gfar_poll(struct net_device *dev, int *budget)
1537#endif 1537#endif
1538 1538
1539/* The interrupt handler for devices with one interrupt */ 1539/* The interrupt handler for devices with one interrupt */
1540static irqreturn_t gfar_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1540static irqreturn_t gfar_interrupt(int irq, void *dev_id)
1541{ 1541{
1542 struct net_device *dev = dev_id; 1542 struct net_device *dev = dev_id;
1543 struct gfar_private *priv = netdev_priv(dev); 1543 struct gfar_private *priv = netdev_priv(dev);
@@ -1550,11 +1550,11 @@ static irqreturn_t gfar_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1550 1550
1551 /* Check for reception */ 1551 /* Check for reception */
1552 if ((events & IEVENT_RXF0) || (events & IEVENT_RXB0)) 1552 if ((events & IEVENT_RXF0) || (events & IEVENT_RXB0))
1553 gfar_receive(irq, dev_id, regs); 1553 gfar_receive(irq, dev_id);
1554 1554
1555 /* Check for transmit completion */ 1555 /* Check for transmit completion */
1556 if ((events & IEVENT_TXF) || (events & IEVENT_TXB)) 1556 if ((events & IEVENT_TXF) || (events & IEVENT_TXB))
1557 gfar_transmit(irq, dev_id, regs); 1557 gfar_transmit(irq, dev_id);
1558 1558
1559 /* Update error statistics */ 1559 /* Update error statistics */
1560 if (events & IEVENT_TXE) { 1560 if (events & IEVENT_TXE) {
@@ -1578,7 +1578,7 @@ static irqreturn_t gfar_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1578 priv->stats.rx_errors++; 1578 priv->stats.rx_errors++;
1579 priv->extra_stats.rx_bsy++; 1579 priv->extra_stats.rx_bsy++;
1580 1580
1581 gfar_receive(irq, dev_id, regs); 1581 gfar_receive(irq, dev_id);
1582 1582
1583#ifndef CONFIG_GFAR_NAPI 1583#ifndef CONFIG_GFAR_NAPI
1584 /* Clear the halt bit in RSTAT */ 1584 /* Clear the halt bit in RSTAT */
@@ -1857,7 +1857,7 @@ static void gfar_set_mac_for_addr(struct net_device *dev, int num, u8 *addr)
1857} 1857}
1858 1858
1859/* GFAR error interrupt handler */ 1859/* GFAR error interrupt handler */
1860static irqreturn_t gfar_error(int irq, void *dev_id, struct pt_regs *regs) 1860static irqreturn_t gfar_error(int irq, void *dev_id)
1861{ 1861{
1862 struct net_device *dev = dev_id; 1862 struct net_device *dev = dev_id;
1863 struct gfar_private *priv = netdev_priv(dev); 1863 struct gfar_private *priv = netdev_priv(dev);
@@ -1898,7 +1898,7 @@ static irqreturn_t gfar_error(int irq, void *dev_id, struct pt_regs *regs)
1898 priv->stats.rx_errors++; 1898 priv->stats.rx_errors++;
1899 priv->extra_stats.rx_bsy++; 1899 priv->extra_stats.rx_bsy++;
1900 1900
1901 gfar_receive(irq, dev_id, regs); 1901 gfar_receive(irq, dev_id);
1902 1902
1903#ifndef CONFIG_GFAR_NAPI 1903#ifndef CONFIG_GFAR_NAPI
1904 /* Clear the halt bit in RSTAT */ 1904 /* Clear the halt bit in RSTAT */
diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h
index c35d47c40c39..9e81a50cf2be 100644
--- a/drivers/net/gianfar.h
+++ b/drivers/net/gianfar.h
@@ -754,7 +754,7 @@ static inline void gfar_write(volatile unsigned __iomem *addr, u32 val)
754 out_be32(addr, val); 754 out_be32(addr, val);
755} 755}
756 756
757extern irqreturn_t gfar_receive(int irq, void *dev_id, struct pt_regs *regs); 757extern irqreturn_t gfar_receive(int irq, void *dev_id);
758extern int startup_gfar(struct net_device *dev); 758extern int startup_gfar(struct net_device *dev);
759extern void stop_gfar(struct net_device *dev); 759extern void stop_gfar(struct net_device *dev);
760extern void gfar_halt(struct net_device *dev); 760extern void gfar_halt(struct net_device *dev);
diff --git a/drivers/net/hamachi.c b/drivers/net/hamachi.c
index 5c89ae78a519..c3c0d67fc383 100644
--- a/drivers/net/hamachi.c
+++ b/drivers/net/hamachi.c
@@ -556,7 +556,7 @@ static void hamachi_timer(unsigned long data);
556static void hamachi_tx_timeout(struct net_device *dev); 556static void hamachi_tx_timeout(struct net_device *dev);
557static void hamachi_init_ring(struct net_device *dev); 557static void hamachi_init_ring(struct net_device *dev);
558static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev); 558static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev);
559static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 559static irqreturn_t hamachi_interrupt(int irq, void *dev_instance);
560static int hamachi_rx(struct net_device *dev); 560static int hamachi_rx(struct net_device *dev);
561static inline int hamachi_tx(struct net_device *dev); 561static inline int hamachi_tx(struct net_device *dev);
562static void hamachi_error(struct net_device *dev, int intr_status); 562static void hamachi_error(struct net_device *dev, int intr_status);
@@ -1376,7 +1376,7 @@ static int hamachi_start_xmit(struct sk_buff *skb, struct net_device *dev)
1376 1376
1377/* The interrupt handler does all of the Rx thread work and cleans up 1377/* The interrupt handler does all of the Rx thread work and cleans up
1378 after the Tx thread. */ 1378 after the Tx thread. */
1379static irqreturn_t hamachi_interrupt(int irq, void *dev_instance, struct pt_regs *rgs) 1379static irqreturn_t hamachi_interrupt(int irq, void *dev_instance)
1380{ 1380{
1381 struct net_device *dev = dev_instance; 1381 struct net_device *dev = dev_instance;
1382 struct hamachi_private *hmp = netdev_priv(dev); 1382 struct hamachi_private *hmp = netdev_priv(dev);
diff --git a/drivers/net/hamradio/baycom_epp.c b/drivers/net/hamradio/baycom_epp.c
index 9220de9f4fe7..1ed9cccd3c11 100644
--- a/drivers/net/hamradio/baycom_epp.c
+++ b/drivers/net/hamradio/baycom_epp.c
@@ -323,7 +323,7 @@ static int eppconfig(struct baycom_state *bc)
323 323
324/* ---------------------------------------------------------------------- */ 324/* ---------------------------------------------------------------------- */
325 325
326static void epp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 326static void epp_interrupt(int irq, void *dev_id)
327{ 327{
328} 328}
329 329
diff --git a/drivers/net/hamradio/baycom_par.c b/drivers/net/hamradio/baycom_par.c
index 77411a00d1ee..5930aeb35015 100644
--- a/drivers/net/hamradio/baycom_par.c
+++ b/drivers/net/hamradio/baycom_par.c
@@ -270,7 +270,7 @@ static __inline__ void par96_rx(struct net_device *dev, struct baycom_state *bc)
270 270
271/* --------------------------------------------------------------------- */ 271/* --------------------------------------------------------------------- */
272 272
273static void par96_interrupt(int irq, void *dev_id, struct pt_regs *regs) 273static void par96_interrupt(int irq, void *dev_id)
274{ 274{
275 struct net_device *dev = (struct net_device *)dev_id; 275 struct net_device *dev = (struct net_device *)dev_id;
276 struct baycom_state *bc = netdev_priv(dev); 276 struct baycom_state *bc = netdev_priv(dev);
diff --git a/drivers/net/hamradio/baycom_ser_fdx.c b/drivers/net/hamradio/baycom_ser_fdx.c
index 55906c7b4bb1..59214e74b9cf 100644
--- a/drivers/net/hamradio/baycom_ser_fdx.c
+++ b/drivers/net/hamradio/baycom_ser_fdx.c
@@ -279,7 +279,7 @@ static __inline__ void ser12_rx(struct net_device *dev, struct baycom_state *bc,
279 279
280/* --------------------------------------------------------------------- */ 280/* --------------------------------------------------------------------- */
281 281
282static irqreturn_t ser12_interrupt(int irq, void *dev_id, struct pt_regs *regs) 282static irqreturn_t ser12_interrupt(int irq, void *dev_id)
283{ 283{
284 struct net_device *dev = (struct net_device *)dev_id; 284 struct net_device *dev = (struct net_device *)dev_id;
285 struct baycom_state *bc = netdev_priv(dev); 285 struct baycom_state *bc = netdev_priv(dev);
diff --git a/drivers/net/hamradio/baycom_ser_hdx.c b/drivers/net/hamradio/baycom_ser_hdx.c
index de95de8983da..3bcc57acbe6d 100644
--- a/drivers/net/hamradio/baycom_ser_hdx.c
+++ b/drivers/net/hamradio/baycom_ser_hdx.c
@@ -373,7 +373,7 @@ static inline void ser12_rx(struct net_device *dev, struct baycom_state *bc)
373 373
374/* --------------------------------------------------------------------- */ 374/* --------------------------------------------------------------------- */
375 375
376static irqreturn_t ser12_interrupt(int irq, void *dev_id, struct pt_regs *regs) 376static irqreturn_t ser12_interrupt(int irq, void *dev_id)
377{ 377{
378 struct net_device *dev = (struct net_device *)dev_id; 378 struct net_device *dev = (struct net_device *)dev_id;
379 struct baycom_state *bc = netdev_priv(dev); 379 struct baycom_state *bc = netdev_priv(dev);
diff --git a/drivers/net/hamradio/dmascc.c b/drivers/net/hamradio/dmascc.c
index c9a46b89942a..0f8b9afd55b4 100644
--- a/drivers/net/hamradio/dmascc.c
+++ b/drivers/net/hamradio/dmascc.c
@@ -249,7 +249,7 @@ static void start_timer(struct scc_priv *priv, int t, int r15);
249static inline unsigned char random(void); 249static inline unsigned char random(void);
250 250
251static inline void z8530_isr(struct scc_info *info); 251static inline void z8530_isr(struct scc_info *info);
252static irqreturn_t scc_isr(int irq, void *dev_id, struct pt_regs *regs); 252static irqreturn_t scc_isr(int irq, void *dev_id);
253static void rx_isr(struct scc_priv *priv); 253static void rx_isr(struct scc_priv *priv);
254static void special_condition(struct scc_priv *priv, int rc); 254static void special_condition(struct scc_priv *priv, int rc);
255static void rx_bh(void *arg); 255static void rx_bh(void *arg);
@@ -1142,7 +1142,7 @@ static inline void z8530_isr(struct scc_info *info)
1142} 1142}
1143 1143
1144 1144
1145static irqreturn_t scc_isr(int irq, void *dev_id, struct pt_regs *regs) 1145static irqreturn_t scc_isr(int irq, void *dev_id)
1146{ 1146{
1147 struct scc_info *info = dev_id; 1147 struct scc_info *info = dev_id;
1148 1148
diff --git a/drivers/net/hamradio/scc.c b/drivers/net/hamradio/scc.c
index df4b68142ac7..ec9b6d9b6f05 100644
--- a/drivers/net/hamradio/scc.c
+++ b/drivers/net/hamradio/scc.c
@@ -200,7 +200,7 @@ static void z8530_init(void);
200 200
201static void init_channel(struct scc_channel *scc); 201static void init_channel(struct scc_channel *scc);
202static void scc_key_trx (struct scc_channel *scc, char tx); 202static void scc_key_trx (struct scc_channel *scc, char tx);
203static irqreturn_t scc_isr(int irq, void *dev_id, struct pt_regs *regs); 203static irqreturn_t scc_isr(int irq, void *dev_id);
204static void scc_init_timer(struct scc_channel *scc); 204static void scc_init_timer(struct scc_channel *scc);
205 205
206static int scc_net_alloc(const char *name, struct scc_channel *scc); 206static int scc_net_alloc(const char *name, struct scc_channel *scc);
@@ -626,7 +626,7 @@ static void scc_isr_dispatch(struct scc_channel *scc, int vector)
626 626
627#define SCC_IRQTIMEOUT 30000 627#define SCC_IRQTIMEOUT 30000
628 628
629static irqreturn_t scc_isr(int irq, void *dev_id, struct pt_regs *regs) 629static irqreturn_t scc_isr(int irq, void *dev_id)
630{ 630{
631 unsigned char vector; 631 unsigned char vector;
632 struct scc_channel *scc; 632 struct scc_channel *scc;
diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c
index f98f5777dfbb..3c4455bd466d 100644
--- a/drivers/net/hamradio/yam.c
+++ b/drivers/net/hamradio/yam.c
@@ -702,7 +702,7 @@ static void yam_tx_byte(struct net_device *dev, struct yam_port *yp)
702* ISR routine 702* ISR routine
703************************************************************************************/ 703************************************************************************************/
704 704
705static irqreturn_t yam_interrupt(int irq, void *dev_id, struct pt_regs *regs) 705static irqreturn_t yam_interrupt(int irq, void *dev_id)
706{ 706{
707 struct net_device *dev; 707 struct net_device *dev;
708 struct yam_port *yp; 708 struct yam_port *yp;
diff --git a/drivers/net/hp100.c b/drivers/net/hp100.c
index ae8ad4f763bf..844c136e9920 100644
--- a/drivers/net/hp100.c
+++ b/drivers/net/hp100.c
@@ -249,7 +249,7 @@ static void hp100_misc_interrupt(struct net_device *dev);
249static void hp100_update_stats(struct net_device *dev); 249static void hp100_update_stats(struct net_device *dev);
250static void hp100_clear_stats(struct hp100_private *lp, int ioaddr); 250static void hp100_clear_stats(struct hp100_private *lp, int ioaddr);
251static void hp100_set_multicast_list(struct net_device *dev); 251static void hp100_set_multicast_list(struct net_device *dev);
252static irqreturn_t hp100_interrupt(int irq, void *dev_id, struct pt_regs *regs); 252static irqreturn_t hp100_interrupt(int irq, void *dev_id);
253static void hp100_start_interface(struct net_device *dev); 253static void hp100_start_interface(struct net_device *dev);
254static void hp100_stop_interface(struct net_device *dev); 254static void hp100_stop_interface(struct net_device *dev);
255static void hp100_load_eeprom(struct net_device *dev, u_short ioaddr); 255static void hp100_load_eeprom(struct net_device *dev, u_short ioaddr);
@@ -2187,7 +2187,7 @@ static void hp100_set_multicast_list(struct net_device *dev)
2187 * hardware interrupt handling 2187 * hardware interrupt handling
2188 */ 2188 */
2189 2189
2190static irqreturn_t hp100_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2190static irqreturn_t hp100_interrupt(int irq, void *dev_id)
2191{ 2191{
2192 struct net_device *dev = (struct net_device *) dev_id; 2192 struct net_device *dev = (struct net_device *) dev_id;
2193 struct hp100_private *lp = netdev_priv(dev); 2193 struct hp100_private *lp = netdev_priv(dev);
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c
index d52e3bd01301..ffeafb28f782 100644
--- a/drivers/net/ibm_emac/ibm_emac_core.c
+++ b/drivers/net/ibm_emac/ibm_emac_core.c
@@ -184,7 +184,7 @@ static const char emac_stats_keys[EMAC_ETHTOOL_STATS_COUNT][ETH_GSTRING_LEN] = {
184 "tx_errors" 184 "tx_errors"
185}; 185};
186 186
187static irqreturn_t emac_irq(int irq, void *dev_instance, struct pt_regs *regs); 187static irqreturn_t emac_irq(int irq, void *dev_instance);
188static void emac_clean_tx_ring(struct ocp_enet_private *dev); 188static void emac_clean_tx_ring(struct ocp_enet_private *dev);
189 189
190static inline int emac_phy_supports_gige(int phy_mode) 190static inline int emac_phy_supports_gige(int phy_mode)
@@ -1515,7 +1515,7 @@ static void emac_rxde(void *param)
1515} 1515}
1516 1516
1517/* Hard IRQ */ 1517/* Hard IRQ */
1518static irqreturn_t emac_irq(int irq, void *dev_instance, struct pt_regs *regs) 1518static irqreturn_t emac_irq(int irq, void *dev_instance)
1519{ 1519{
1520 struct ocp_enet_private *dev = dev_instance; 1520 struct ocp_enet_private *dev = dev_instance;
1521 struct emac_regs __iomem *p = dev->emacp; 1521 struct emac_regs __iomem *p = dev->emacp;
diff --git a/drivers/net/ibm_emac/ibm_emac_debug.c b/drivers/net/ibm_emac/ibm_emac_debug.c
index c3645908034d..92f970d402df 100644
--- a/drivers/net/ibm_emac/ibm_emac_debug.c
+++ b/drivers/net/ibm_emac/ibm_emac_debug.c
@@ -179,8 +179,7 @@ void emac_dbg_dump_all(void)
179} 179}
180 180
181#if defined(CONFIG_MAGIC_SYSRQ) 181#if defined(CONFIG_MAGIC_SYSRQ)
182static void emac_sysrq_handler(int key, struct pt_regs *pt_regs, 182static void emac_sysrq_handler(int key, struct tty_struct *tty)
183 struct tty_struct *tty)
184{ 183{
185 emac_dbg_dump_all(); 184 emac_dbg_dump_all();
186} 185}
diff --git a/drivers/net/ibm_emac/ibm_emac_mal.c b/drivers/net/ibm_emac/ibm_emac_mal.c
index af50e7b2e0d7..6c0f071e4052 100644
--- a/drivers/net/ibm_emac/ibm_emac_mal.c
+++ b/drivers/net/ibm_emac/ibm_emac_mal.c
@@ -168,7 +168,7 @@ static inline void mal_disable_eob_irq(struct ibm_ocp_mal *mal)
168 MAL_DBG2("%d: disable_irq" NL, mal->def->index); 168 MAL_DBG2("%d: disable_irq" NL, mal->def->index);
169} 169}
170 170
171static irqreturn_t mal_serr(int irq, void *dev_instance, struct pt_regs *regs) 171static irqreturn_t mal_serr(int irq, void *dev_instance)
172{ 172{
173 struct ibm_ocp_mal *mal = dev_instance; 173 struct ibm_ocp_mal *mal = dev_instance;
174 u32 esr = get_mal_dcrn(mal, MAL_ESR); 174 u32 esr = get_mal_dcrn(mal, MAL_ESR);
@@ -216,7 +216,7 @@ static inline void mal_schedule_poll(struct ibm_ocp_mal *mal)
216 MAL_DBG2("%d: already in poll" NL, mal->def->index); 216 MAL_DBG2("%d: already in poll" NL, mal->def->index);
217} 217}
218 218
219static irqreturn_t mal_txeob(int irq, void *dev_instance, struct pt_regs *regs) 219static irqreturn_t mal_txeob(int irq, void *dev_instance)
220{ 220{
221 struct ibm_ocp_mal *mal = dev_instance; 221 struct ibm_ocp_mal *mal = dev_instance;
222 u32 r = get_mal_dcrn(mal, MAL_TXEOBISR); 222 u32 r = get_mal_dcrn(mal, MAL_TXEOBISR);
@@ -226,7 +226,7 @@ static irqreturn_t mal_txeob(int irq, void *dev_instance, struct pt_regs *regs)
226 return IRQ_HANDLED; 226 return IRQ_HANDLED;
227} 227}
228 228
229static irqreturn_t mal_rxeob(int irq, void *dev_instance, struct pt_regs *regs) 229static irqreturn_t mal_rxeob(int irq, void *dev_instance)
230{ 230{
231 struct ibm_ocp_mal *mal = dev_instance; 231 struct ibm_ocp_mal *mal = dev_instance;
232 u32 r = get_mal_dcrn(mal, MAL_RXEOBISR); 232 u32 r = get_mal_dcrn(mal, MAL_RXEOBISR);
@@ -236,7 +236,7 @@ static irqreturn_t mal_rxeob(int irq, void *dev_instance, struct pt_regs *regs)
236 return IRQ_HANDLED; 236 return IRQ_HANDLED;
237} 237}
238 238
239static irqreturn_t mal_txde(int irq, void *dev_instance, struct pt_regs *regs) 239static irqreturn_t mal_txde(int irq, void *dev_instance)
240{ 240{
241 struct ibm_ocp_mal *mal = dev_instance; 241 struct ibm_ocp_mal *mal = dev_instance;
242 u32 deir = get_mal_dcrn(mal, MAL_TXDEIR); 242 u32 deir = get_mal_dcrn(mal, MAL_TXDEIR);
@@ -252,7 +252,7 @@ static irqreturn_t mal_txde(int irq, void *dev_instance, struct pt_regs *regs)
252 return IRQ_HANDLED; 252 return IRQ_HANDLED;
253} 253}
254 254
255static irqreturn_t mal_rxde(int irq, void *dev_instance, struct pt_regs *regs) 255static irqreturn_t mal_rxde(int irq, void *dev_instance)
256{ 256{
257 struct ibm_ocp_mal *mal = dev_instance; 257 struct ibm_ocp_mal *mal = dev_instance;
258 struct list_head *l; 258 struct list_head *l;
diff --git a/drivers/net/ibmlana.c b/drivers/net/ibmlana.c
index 2a95d72fa593..3f946c811511 100644
--- a/drivers/net/ibmlana.c
+++ b/drivers/net/ibmlana.c
@@ -705,7 +705,7 @@ static void irqtxerr_handler(struct net_device *dev)
705 705
706/* general interrupt entry */ 706/* general interrupt entry */
707 707
708static irqreturn_t irq_handler(int irq, void *device, struct pt_regs *regs) 708static irqreturn_t irq_handler(int irq, void *device)
709{ 709{
710 struct net_device *dev = (struct net_device *) device; 710 struct net_device *dev = (struct net_device *) device;
711 u16 ival; 711 u16 ival;
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index 16f3faa7ea5b..bf414a93facb 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -93,7 +93,7 @@ static void ibmveth_proc_register_driver(void);
93static void ibmveth_proc_unregister_driver(void); 93static void ibmveth_proc_unregister_driver(void);
94static void ibmveth_proc_register_adapter(struct ibmveth_adapter *adapter); 94static void ibmveth_proc_register_adapter(struct ibmveth_adapter *adapter);
95static void ibmveth_proc_unregister_adapter(struct ibmveth_adapter *adapter); 95static void ibmveth_proc_unregister_adapter(struct ibmveth_adapter *adapter);
96static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 96static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance);
97static inline void ibmveth_rxq_harvest_buffer(struct ibmveth_adapter *adapter); 97static inline void ibmveth_rxq_harvest_buffer(struct ibmveth_adapter *adapter);
98static struct kobj_type ktype_veth_pool; 98static struct kobj_type ktype_veth_pool;
99 99
@@ -570,7 +570,7 @@ static int ibmveth_open(struct net_device *netdev)
570 } 570 }
571 571
572 ibmveth_debug_printk("initial replenish cycle\n"); 572 ibmveth_debug_printk("initial replenish cycle\n");
573 ibmveth_interrupt(netdev->irq, netdev, NULL); 573 ibmveth_interrupt(netdev->irq, netdev);
574 574
575 netif_start_queue(netdev); 575 netif_start_queue(netdev);
576 576
@@ -843,7 +843,7 @@ static int ibmveth_poll(struct net_device *netdev, int *budget)
843 return 0; 843 return 0;
844} 844}
845 845
846static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 846static irqreturn_t ibmveth_interrupt(int irq, void *dev_instance)
847{ 847{
848 struct net_device *netdev = dev_instance; 848 struct net_device *netdev = dev_instance;
849 struct ibmveth_adapter *adapter = netdev->priv; 849 struct ibmveth_adapter *adapter = netdev->priv;
@@ -1303,7 +1303,7 @@ const char * buf, size_t count)
1303 } 1303 }
1304 1304
1305 /* kick the interrupt handler to allocate/deallocate pools */ 1305 /* kick the interrupt handler to allocate/deallocate pools */
1306 ibmveth_interrupt(netdev->irq, netdev, NULL); 1306 ibmveth_interrupt(netdev->irq, netdev);
1307 return count; 1307 return count;
1308} 1308}
1309 1309
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c
index 87650237dc5c..e963dbf816be 100644
--- a/drivers/net/ioc3-eth.c
+++ b/drivers/net/ioc3-eth.c
@@ -750,7 +750,7 @@ static void ioc3_error(struct ioc3_private *ip, u32 eisr)
750 750
751/* The interrupt handler does all of the Rx thread work and cleans up 751/* The interrupt handler does all of the Rx thread work and cleans up
752 after the Tx thread. */ 752 after the Tx thread. */
753static irqreturn_t ioc3_interrupt(int irq, void *_dev, struct pt_regs *regs) 753static irqreturn_t ioc3_interrupt(int irq, void *_dev)
754{ 754{
755 struct net_device *dev = (struct net_device *)_dev; 755 struct net_device *dev = (struct net_device *)_dev;
756 struct ioc3_private *ip = netdev_priv(dev); 756 struct ioc3_private *ip = netdev_priv(dev);
diff --git a/drivers/net/irda/ali-ircc.c b/drivers/net/irda/ali-ircc.c
index 68d4c418cb98..cebf8c374bc5 100644
--- a/drivers/net/irda/ali-ircc.c
+++ b/drivers/net/irda/ali-ircc.c
@@ -660,22 +660,15 @@ static int ali_ircc_read_dongle_id (int i, chipio_t *info)
660 * An interrupt from the chip has arrived. Time to do some work 660 * An interrupt from the chip has arrived. Time to do some work
661 * 661 *
662 */ 662 */
663static irqreturn_t ali_ircc_interrupt(int irq, void *dev_id, 663static irqreturn_t ali_ircc_interrupt(int irq, void *dev_id)
664 struct pt_regs *regs)
665{ 664{
666 struct net_device *dev = (struct net_device *) dev_id; 665 struct net_device *dev = dev_id;
667 struct ali_ircc_cb *self; 666 struct ali_ircc_cb *self;
668 int ret; 667 int ret;
669 668
670 IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __FUNCTION__); 669 IRDA_DEBUG(2, "%s(), ---------------- Start ----------------\n", __FUNCTION__);
671 670
672 if (!dev) { 671 self = dev->priv;
673 IRDA_WARNING("%s: irq %d for unknown device.\n",
674 ALI_IRCC_DRIVER_NAME, irq);
675 return IRQ_NONE;
676 }
677
678 self = (struct ali_ircc_cb *) dev->priv;
679 672
680 spin_lock(&self->lock); 673 spin_lock(&self->lock);
681 674
diff --git a/drivers/net/irda/au1k_ir.c b/drivers/net/irda/au1k_ir.c
index 7b2b4135bb23..37914dc5b90e 100644
--- a/drivers/net/irda/au1k_ir.c
+++ b/drivers/net/irda/au1k_ir.c
@@ -51,7 +51,7 @@ static int au1k_irda_start(struct net_device *);
51static int au1k_irda_stop(struct net_device *dev); 51static int au1k_irda_stop(struct net_device *dev);
52static int au1k_irda_hard_xmit(struct sk_buff *, struct net_device *); 52static int au1k_irda_hard_xmit(struct sk_buff *, struct net_device *);
53static int au1k_irda_rx(struct net_device *); 53static int au1k_irda_rx(struct net_device *);
54static void au1k_irda_interrupt(int, void *, struct pt_regs *); 54static void au1k_irda_interrupt(int, void *);
55static void au1k_tx_timeout(struct net_device *); 55static void au1k_tx_timeout(struct net_device *);
56static struct net_device_stats *au1k_irda_stats(struct net_device *); 56static struct net_device_stats *au1k_irda_stats(struct net_device *);
57static int au1k_irda_ioctl(struct net_device *, struct ifreq *, int); 57static int au1k_irda_ioctl(struct net_device *, struct ifreq *, int);
@@ -627,7 +627,7 @@ static int au1k_irda_rx(struct net_device *dev)
627} 627}
628 628
629 629
630void au1k_irda_interrupt(int irq, void *dev_id, struct pt_regs *regs) 630void au1k_irda_interrupt(int irq, void *dev_id)
631{ 631{
632 struct net_device *dev = (struct net_device *) dev_id; 632 struct net_device *dev = (struct net_device *) dev_id;
633 633
diff --git a/drivers/net/irda/donauboe.c b/drivers/net/irda/donauboe.c
index 33c07d5275da..16620bd97fbf 100644
--- a/drivers/net/irda/donauboe.c
+++ b/drivers/net/irda/donauboe.c
@@ -657,12 +657,6 @@ toshoboe_makemttpacket (struct toshoboe_cb *self, void *buf, int mtt)
657 return xbofs; 657 return xbofs;
658} 658}
659 659
660static int toshoboe_invalid_dev(int irq)
661{
662 printk (KERN_WARNING DRIVER_NAME ": irq %d for unknown device.\n", irq);
663 return 1;
664}
665
666#ifdef USE_PROBE 660#ifdef USE_PROBE
667/***********************************************************************/ 661/***********************************************************************/
668/* Probe code */ 662/* Probe code */
@@ -709,14 +703,11 @@ stuff_byte (__u8 byte, __u8 * buf)
709} 703}
710 704
711static irqreturn_t 705static irqreturn_t
712toshoboe_probeinterrupt (int irq, void *dev_id, struct pt_regs *regs) 706toshoboe_probeinterrupt (int irq, void *dev_id)
713{ 707{
714 struct toshoboe_cb *self = (struct toshoboe_cb *) dev_id; 708 struct toshoboe_cb *self = dev_id;
715 __u8 irqstat; 709 __u8 irqstat;
716 710
717 if (self == NULL && toshoboe_invalid_dev(irq))
718 return IRQ_NONE;
719
720 irqstat = INB (OBOE_ISR); 711 irqstat = INB (OBOE_ISR);
721 712
722/* was it us */ 713/* was it us */
@@ -1161,15 +1152,12 @@ dumpbufs(skb->data,skb->len,'>');
1161 1152
1162/*interrupt handler */ 1153/*interrupt handler */
1163static irqreturn_t 1154static irqreturn_t
1164toshoboe_interrupt (int irq, void *dev_id, struct pt_regs *regs) 1155toshoboe_interrupt (int irq, void *dev_id)
1165{ 1156{
1166 struct toshoboe_cb *self = (struct toshoboe_cb *) dev_id; 1157 struct toshoboe_cb *self = dev_id;
1167 __u8 irqstat; 1158 __u8 irqstat;
1168 struct sk_buff *skb = NULL; 1159 struct sk_buff *skb = NULL;
1169 1160
1170 if (self == NULL && toshoboe_invalid_dev(irq))
1171 return IRQ_NONE;
1172
1173 irqstat = INB (OBOE_ISR); 1161 irqstat = INB (OBOE_ISR);
1174 1162
1175/* was it us */ 1163/* was it us */
@@ -1357,13 +1345,11 @@ toshoboe_net_open (struct net_device *dev)
1357{ 1345{
1358 struct toshoboe_cb *self; 1346 struct toshoboe_cb *self;
1359 unsigned long flags; 1347 unsigned long flags;
1348 int rc;
1360 1349
1361 IRDA_DEBUG (4, "%s()\n", __FUNCTION__); 1350 IRDA_DEBUG (4, "%s()\n", __FUNCTION__);
1362 1351
1363 IRDA_ASSERT (dev != NULL, return -1; ); 1352 self = netdev_priv(dev);
1364 self = (struct toshoboe_cb *) dev->priv;
1365
1366 IRDA_ASSERT (self != NULL, return 0; );
1367 1353
1368 if (self->async) 1354 if (self->async)
1369 return -EBUSY; 1355 return -EBUSY;
@@ -1371,11 +1357,10 @@ toshoboe_net_open (struct net_device *dev)
1371 if (self->stopped) 1357 if (self->stopped)
1372 return 0; 1358 return 0;
1373 1359
1374 if (request_irq (self->io.irq, toshoboe_interrupt, 1360 rc = request_irq (self->io.irq, toshoboe_interrupt,
1375 IRQF_SHARED | IRQF_DISABLED, dev->name, (void *) self)) 1361 IRQF_SHARED | IRQF_DISABLED, dev->name, self);
1376 { 1362 if (rc)
1377 return -EAGAIN; 1363 return rc;
1378 }
1379 1364
1380 spin_lock_irqsave(&self->spinlock, flags); 1365 spin_lock_irqsave(&self->spinlock, flags);
1381 toshoboe_startchip (self); 1366 toshoboe_startchip (self);
diff --git a/drivers/net/irda/irda-usb.c b/drivers/net/irda/irda-usb.c
index 383cef1f5999..14bda765c2fa 100644
--- a/drivers/net/irda/irda-usb.c
+++ b/drivers/net/irda/irda-usb.c
@@ -114,9 +114,9 @@ static void irda_usb_change_speed_xbofs(struct irda_usb_cb *self);
114static int irda_usb_hard_xmit(struct sk_buff *skb, struct net_device *dev); 114static int irda_usb_hard_xmit(struct sk_buff *skb, struct net_device *dev);
115static int irda_usb_open(struct irda_usb_cb *self); 115static int irda_usb_open(struct irda_usb_cb *self);
116static void irda_usb_close(struct irda_usb_cb *self); 116static void irda_usb_close(struct irda_usb_cb *self);
117static void speed_bulk_callback(struct urb *urb, struct pt_regs *regs); 117static void speed_bulk_callback(struct urb *urb);
118static void write_bulk_callback(struct urb *urb, struct pt_regs *regs); 118static void write_bulk_callback(struct urb *urb);
119static void irda_usb_receive(struct urb *urb, struct pt_regs *regs); 119static void irda_usb_receive(struct urb *urb);
120static void irda_usb_rx_defer_expired(unsigned long data); 120static void irda_usb_rx_defer_expired(unsigned long data);
121static int irda_usb_net_open(struct net_device *dev); 121static int irda_usb_net_open(struct net_device *dev);
122static int irda_usb_net_close(struct net_device *dev); 122static int irda_usb_net_close(struct net_device *dev);
@@ -343,7 +343,7 @@ static void irda_usb_change_speed_xbofs(struct irda_usb_cb *self)
343 * Speed URB callback 343 * Speed URB callback
344 * Now, we can only get called for the speed URB. 344 * Now, we can only get called for the speed URB.
345 */ 345 */
346static void speed_bulk_callback(struct urb *urb, struct pt_regs *regs) 346static void speed_bulk_callback(struct urb *urb)
347{ 347{
348 struct irda_usb_cb *self = urb->context; 348 struct irda_usb_cb *self = urb->context;
349 349
@@ -562,7 +562,7 @@ drop:
562/* 562/*
563 * Note : this function will be called only for tx_urb... 563 * Note : this function will be called only for tx_urb...
564 */ 564 */
565static void write_bulk_callback(struct urb *urb, struct pt_regs *regs) 565static void write_bulk_callback(struct urb *urb)
566{ 566{
567 unsigned long flags; 567 unsigned long flags;
568 struct sk_buff *skb = urb->context; 568 struct sk_buff *skb = urb->context;
@@ -809,7 +809,7 @@ static void irda_usb_submit(struct irda_usb_cb *self, struct sk_buff *skb, struc
809 * Called by the USB subsystem when a frame has been received 809 * Called by the USB subsystem when a frame has been received
810 * 810 *
811 */ 811 */
812static void irda_usb_receive(struct urb *urb, struct pt_regs *regs) 812static void irda_usb_receive(struct urb *urb)
813{ 813{
814 struct sk_buff *skb = (struct sk_buff *) urb->context; 814 struct sk_buff *skb = (struct sk_buff *) urb->context;
815 struct irda_usb_cb *self; 815 struct irda_usb_cb *self;
diff --git a/drivers/net/irda/irport.c b/drivers/net/irda/irport.c
index ba4f3eb988b3..654a68b490ae 100644
--- a/drivers/net/irda/irport.c
+++ b/drivers/net/irda/irport.c
@@ -87,8 +87,7 @@ static struct net_device_stats *irport_net_get_stats(struct net_device *dev);
87static int irport_change_speed_complete(struct irda_task *task); 87static int irport_change_speed_complete(struct irda_task *task);
88static void irport_timeout(struct net_device *dev); 88static void irport_timeout(struct net_device *dev);
89 89
90static irqreturn_t irport_interrupt(int irq, void *dev_id, 90static irqreturn_t irport_interrupt(int irq, void *dev_id);
91 struct pt_regs *regs);
92static int irport_hard_xmit(struct sk_buff *skb, struct net_device *dev); 91static int irport_hard_xmit(struct sk_buff *skb, struct net_device *dev);
93static void irport_change_speed(void *priv, __u32 speed); 92static void irport_change_speed(void *priv, __u32 speed);
94static int irport_net_open(struct net_device *dev); 93static int irport_net_open(struct net_device *dev);
@@ -761,25 +760,20 @@ static inline void irport_receive(struct irport_cb *self)
761} 760}
762 761
763/* 762/*
764 * Function irport_interrupt (irq, dev_id, regs) 763 * Function irport_interrupt (irq, dev_id)
765 * 764 *
766 * Interrupt handler 765 * Interrupt handler
767 */ 766 */
768static irqreturn_t irport_interrupt(int irq, void *dev_id, 767static irqreturn_t irport_interrupt(int irq, void *dev_id)
769 struct pt_regs *regs)
770{ 768{
771 struct net_device *dev = (struct net_device *) dev_id; 769 struct net_device *dev = dev_id;
772 struct irport_cb *self; 770 struct irport_cb *self;
773 int boguscount = 0; 771 int boguscount = 0;
774 int iobase; 772 int iobase;
775 int iir, lsr; 773 int iir, lsr;
776 int handled = 0; 774 int handled = 0;
777 775
778 if (!dev) { 776 self = dev->priv;
779 IRDA_WARNING("%s() irq %d for unknown device.\n", __FUNCTION__, irq);
780 return IRQ_NONE;
781 }
782 self = (struct irport_cb *) dev->priv;
783 777
784 spin_lock(&self->lock); 778 spin_lock(&self->lock);
785 779
diff --git a/drivers/net/irda/irport.h b/drivers/net/irda/irport.h
index fc89c8c3dd7f..3f46b84c6c85 100644
--- a/drivers/net/irda/irport.h
+++ b/drivers/net/irda/irport.h
@@ -74,7 +74,7 @@ struct irport_cb {
74 /* For piggyback drivers */ 74 /* For piggyback drivers */
75 void *priv; 75 void *priv;
76 void (*change_speed)(void *priv, __u32 speed); 76 void (*change_speed)(void *priv, __u32 speed);
77 int (*interrupt)(int irq, void *dev_id, struct pt_regs *regs); 77 irqreturn_t (*interrupt)(int irq, void *dev_id);
78}; 78};
79 79
80#endif /* IRPORT_H */ 80#endif /* IRPORT_H */
diff --git a/drivers/net/irda/mcs7780.c b/drivers/net/irda/mcs7780.c
index 415ba8dc94ce..b32c52ed19d7 100644
--- a/drivers/net/irda/mcs7780.c
+++ b/drivers/net/irda/mcs7780.c
@@ -764,7 +764,7 @@ static struct net_device_stats *mcs_net_get_stats(struct net_device *netdev)
764} 764}
765 765
766/* Receive callback function. */ 766/* Receive callback function. */
767static void mcs_receive_irq(struct urb *urb, struct pt_regs *regs) 767static void mcs_receive_irq(struct urb *urb)
768{ 768{
769 __u8 *bytes; 769 __u8 *bytes;
770 struct mcs_cb *mcs = urb->context; 770 struct mcs_cb *mcs = urb->context;
@@ -813,7 +813,7 @@ static void mcs_receive_irq(struct urb *urb, struct pt_regs *regs)
813} 813}
814 814
815/* Transmit callback funtion. */ 815/* Transmit callback funtion. */
816static void mcs_send_irq(struct urb *urb, struct pt_regs *regs) 816static void mcs_send_irq(struct urb *urb)
817{ 817{
818 struct mcs_cb *mcs = urb->context; 818 struct mcs_cb *mcs = urb->context;
819 struct net_device *ndev = mcs->netdev; 819 struct net_device *ndev = mcs->netdev;
diff --git a/drivers/net/irda/mcs7780.h b/drivers/net/irda/mcs7780.h
index 1a723d725c2a..b18148cee638 100644
--- a/drivers/net/irda/mcs7780.h
+++ b/drivers/net/irda/mcs7780.h
@@ -156,8 +156,8 @@ static int mcs_net_close(struct net_device *netdev);
156static int mcs_net_open(struct net_device *netdev); 156static int mcs_net_open(struct net_device *netdev);
157static struct net_device_stats *mcs_net_get_stats(struct net_device *netdev); 157static struct net_device_stats *mcs_net_get_stats(struct net_device *netdev);
158 158
159static void mcs_receive_irq(struct urb *urb, struct pt_regs *regs); 159static void mcs_receive_irq(struct urb *urb);
160static void mcs_send_irq(struct urb *urb, struct pt_regs *regs); 160static void mcs_send_irq(struct urb *urb);
161static int mcs_hard_xmit(struct sk_buff *skb, struct net_device *netdev); 161static int mcs_hard_xmit(struct sk_buff *skb, struct net_device *netdev);
162 162
163static int mcs_probe(struct usb_interface *intf, 163static int mcs_probe(struct usb_interface *intf,
diff --git a/drivers/net/irda/nsc-ircc.c b/drivers/net/irda/nsc-ircc.c
index 7185a4ee3c1e..29b5ccd29d0b 100644
--- a/drivers/net/irda/nsc-ircc.c
+++ b/drivers/net/irda/nsc-ircc.c
@@ -2066,20 +2066,14 @@ static void nsc_ircc_fir_interrupt(struct nsc_ircc_cb *self, int iobase,
2066 * An interrupt from the chip has arrived. Time to do some work 2066 * An interrupt from the chip has arrived. Time to do some work
2067 * 2067 *
2068 */ 2068 */
2069static irqreturn_t nsc_ircc_interrupt(int irq, void *dev_id, 2069static irqreturn_t nsc_ircc_interrupt(int irq, void *dev_id)
2070 struct pt_regs *regs)
2071{ 2070{
2072 struct net_device *dev = (struct net_device *) dev_id; 2071 struct net_device *dev = dev_id;
2073 struct nsc_ircc_cb *self; 2072 struct nsc_ircc_cb *self;
2074 __u8 bsr, eir; 2073 __u8 bsr, eir;
2075 int iobase; 2074 int iobase;
2076 2075
2077 if (!dev) { 2076 self = dev->priv;
2078 IRDA_WARNING("%s: irq %d for unknown device.\n",
2079 driver_name, irq);
2080 return IRQ_NONE;
2081 }
2082 self = (struct nsc_ircc_cb *) dev->priv;
2083 2077
2084 spin_lock(&self->lock); 2078 spin_lock(&self->lock);
2085 2079
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c
index afb19e8d95c8..f9a1c88a4283 100644
--- a/drivers/net/irda/pxaficp_ir.c
+++ b/drivers/net/irda/pxaficp_ir.c
@@ -199,7 +199,7 @@ static int pxa_irda_set_speed(struct pxa_irda *si, int speed)
199} 199}
200 200
201/* SIR interrupt service routine. */ 201/* SIR interrupt service routine. */
202static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id, struct pt_regs *regs) 202static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id)
203{ 203{
204 struct net_device *dev = dev_id; 204 struct net_device *dev = dev_id;
205 struct pxa_irda *si = netdev_priv(dev); 205 struct pxa_irda *si = netdev_priv(dev);
@@ -281,7 +281,7 @@ static irqreturn_t pxa_irda_sir_irq(int irq, void *dev_id, struct pt_regs *regs)
281} 281}
282 282
283/* FIR Receive DMA interrupt handler */ 283/* FIR Receive DMA interrupt handler */
284static void pxa_irda_fir_dma_rx_irq(int channel, void *data, struct pt_regs *regs) 284static void pxa_irda_fir_dma_rx_irq(int channel, void *data)
285{ 285{
286 int dcsr = DCSR(channel); 286 int dcsr = DCSR(channel);
287 287
@@ -291,7 +291,7 @@ static void pxa_irda_fir_dma_rx_irq(int channel, void *data, struct pt_regs *reg
291} 291}
292 292
293/* FIR Transmit DMA interrupt handler */ 293/* FIR Transmit DMA interrupt handler */
294static void pxa_irda_fir_dma_tx_irq(int channel, void *data, struct pt_regs *regs) 294static void pxa_irda_fir_dma_tx_irq(int channel, void *data)
295{ 295{
296 struct net_device *dev = data; 296 struct net_device *dev = data;
297 struct pxa_irda *si = netdev_priv(dev); 297 struct pxa_irda *si = netdev_priv(dev);
@@ -388,7 +388,7 @@ static void pxa_irda_fir_irq_eif(struct pxa_irda *si, struct net_device *dev)
388} 388}
389 389
390/* FIR interrupt handler */ 390/* FIR interrupt handler */
391static irqreturn_t pxa_irda_fir_irq(int irq, void *dev_id, struct pt_regs *regs) 391static irqreturn_t pxa_irda_fir_irq(int irq, void *dev_id)
392{ 392{
393 struct net_device *dev = dev_id; 393 struct net_device *dev = dev_id;
394 struct pxa_irda *si = netdev_priv(dev); 394 struct pxa_irda *si = netdev_priv(dev);
diff --git a/drivers/net/irda/sa1100_ir.c b/drivers/net/irda/sa1100_ir.c
index 8d5a288d7976..937372d00398 100644
--- a/drivers/net/irda/sa1100_ir.c
+++ b/drivers/net/irda/sa1100_ir.c
@@ -579,7 +579,7 @@ static void sa1100_irda_fir_irq(struct net_device *dev)
579 sa1100_irda_rx_dma_start(si); 579 sa1100_irda_rx_dma_start(si);
580} 580}
581 581
582static irqreturn_t sa1100_irda_irq(int irq, void *dev_id, struct pt_regs *regs) 582static irqreturn_t sa1100_irda_irq(int irq, void *dev_id)
583{ 583{
584 struct net_device *dev = dev_id; 584 struct net_device *dev = dev_id;
585 if (IS_FIR(((struct sa1100_irda *)dev->priv))) 585 if (IS_FIR(((struct sa1100_irda *)dev->priv)))
diff --git a/drivers/net/irda/smsc-ircc2.c b/drivers/net/irda/smsc-ircc2.c
index 22358ff68c4c..31c623381ea8 100644
--- a/drivers/net/irda/smsc-ircc2.c
+++ b/drivers/net/irda/smsc-ircc2.c
@@ -196,7 +196,7 @@ static void smsc_ircc_dma_xmit(struct smsc_ircc_cb *self, int bofs);
196static void smsc_ircc_dma_xmit_complete(struct smsc_ircc_cb *self); 196static void smsc_ircc_dma_xmit_complete(struct smsc_ircc_cb *self);
197static void smsc_ircc_change_speed(struct smsc_ircc_cb *self, u32 speed); 197static void smsc_ircc_change_speed(struct smsc_ircc_cb *self, u32 speed);
198static void smsc_ircc_set_sir_speed(struct smsc_ircc_cb *self, u32 speed); 198static void smsc_ircc_set_sir_speed(struct smsc_ircc_cb *self, u32 speed);
199static irqreturn_t smsc_ircc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 199static irqreturn_t smsc_ircc_interrupt(int irq, void *dev_id);
200static irqreturn_t smsc_ircc_interrupt_sir(struct net_device *dev); 200static irqreturn_t smsc_ircc_interrupt_sir(struct net_device *dev);
201static void smsc_ircc_sir_start(struct smsc_ircc_cb *self); 201static void smsc_ircc_sir_start(struct smsc_ircc_cb *self);
202#if SMSC_IRCC2_C_SIR_STOP 202#if SMSC_IRCC2_C_SIR_STOP
@@ -1455,7 +1455,7 @@ static void smsc_ircc_sir_receive(struct smsc_ircc_cb *self)
1455 * An interrupt from the chip has arrived. Time to do some work 1455 * An interrupt from the chip has arrived. Time to do some work
1456 * 1456 *
1457 */ 1457 */
1458static irqreturn_t smsc_ircc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1458static irqreturn_t smsc_ircc_interrupt(int irq, void *dev_id)
1459{ 1459{
1460 struct net_device *dev = (struct net_device *) dev_id; 1460 struct net_device *dev = (struct net_device *) dev_id;
1461 struct smsc_ircc_cb *self; 1461 struct smsc_ircc_cb *self;
@@ -1520,7 +1520,7 @@ static irqreturn_t smsc_ircc_interrupt(int irq, void *dev_id, struct pt_regs *re
1520} 1520}
1521 1521
1522/* 1522/*
1523 * Function irport_interrupt_sir (irq, dev_id, regs) 1523 * Function irport_interrupt_sir (irq, dev_id)
1524 * 1524 *
1525 * Interrupt handler for SIR modes 1525 * Interrupt handler for SIR modes
1526 */ 1526 */
diff --git a/drivers/net/irda/stir4200.c b/drivers/net/irda/stir4200.c
index 12103c93f7ef..be8a66e702b0 100644
--- a/drivers/net/irda/stir4200.c
+++ b/drivers/net/irda/stir4200.c
@@ -804,7 +804,7 @@ static int stir_transmit_thread(void *arg)
804 * Wakes up every ms (usb round trip) with wrapped 804 * Wakes up every ms (usb round trip) with wrapped
805 * data. 805 * data.
806 */ 806 */
807static void stir_rcv_irq(struct urb *urb, struct pt_regs *regs) 807static void stir_rcv_irq(struct urb *urb)
808{ 808{
809 struct stir_cb *stir = urb->context; 809 struct stir_cb *stir = urb->context;
810 int err; 810 int err;
diff --git a/drivers/net/irda/via-ircc.c b/drivers/net/irda/via-ircc.c
index d916e1257c47..c3ed9b3067e5 100644
--- a/drivers/net/irda/via-ircc.c
+++ b/drivers/net/irda/via-ircc.c
@@ -93,8 +93,7 @@ static int via_ircc_hard_xmit_fir(struct sk_buff *skb,
93 struct net_device *dev); 93 struct net_device *dev);
94static void via_hw_init(struct via_ircc_cb *self); 94static void via_hw_init(struct via_ircc_cb *self);
95static void via_ircc_change_speed(struct via_ircc_cb *self, __u32 baud); 95static void via_ircc_change_speed(struct via_ircc_cb *self, __u32 baud);
96static irqreturn_t via_ircc_interrupt(int irq, void *dev_id, 96static irqreturn_t via_ircc_interrupt(int irq, void *dev_id);
97 struct pt_regs *regs);
98static int via_ircc_is_receiving(struct via_ircc_cb *self); 97static int via_ircc_is_receiving(struct via_ircc_cb *self);
99static int via_ircc_read_dongle_id(int iobase); 98static int via_ircc_read_dongle_id(int iobase);
100 99
@@ -1345,13 +1344,12 @@ static int RxTimerHandler(struct via_ircc_cb *self, int iobase)
1345 1344
1346 1345
1347/* 1346/*
1348 * Function via_ircc_interrupt (irq, dev_id, regs) 1347 * Function via_ircc_interrupt (irq, dev_id)
1349 * 1348 *
1350 * An interrupt from the chip has arrived. Time to do some work 1349 * An interrupt from the chip has arrived. Time to do some work
1351 * 1350 *
1352 */ 1351 */
1353static irqreturn_t via_ircc_interrupt(int irq, void *dev_id, 1352static irqreturn_t via_ircc_interrupt(int irq, void *dev_id)
1354 struct pt_regs *regs)
1355{ 1353{
1356 struct net_device *dev = (struct net_device *) dev_id; 1354 struct net_device *dev = (struct net_device *) dev_id;
1357 struct via_ircc_cb *self; 1355 struct via_ircc_cb *self;
diff --git a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c
index 92d646cc9edc..18c68193bf14 100644
--- a/drivers/net/irda/vlsi_ir.c
+++ b/drivers/net/irda/vlsi_ir.c
@@ -1455,8 +1455,7 @@ static int vlsi_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
1455 1455
1456/********************************************************/ 1456/********************************************************/
1457 1457
1458static irqreturn_t vlsi_interrupt(int irq, void *dev_instance, 1458static irqreturn_t vlsi_interrupt(int irq, void *dev_instance)
1459 struct pt_regs *regs)
1460{ 1459{
1461 struct net_device *ndev = dev_instance; 1460 struct net_device *ndev = dev_instance;
1462 vlsi_irda_dev_t *idev = ndev->priv; 1461 vlsi_irda_dev_t *idev = ndev->priv;
diff --git a/drivers/net/irda/w83977af_ir.c b/drivers/net/irda/w83977af_ir.c
index 7de1afdeec3d..4212657fa4f9 100644
--- a/drivers/net/irda/w83977af_ir.c
+++ b/drivers/net/irda/w83977af_ir.c
@@ -1111,20 +1111,14 @@ static __u8 w83977af_fir_interrupt(struct w83977af_ir *self, int isr)
1111 * An interrupt from the chip has arrived. Time to do some work 1111 * An interrupt from the chip has arrived. Time to do some work
1112 * 1112 *
1113 */ 1113 */
1114static irqreturn_t w83977af_interrupt(int irq, void *dev_id, 1114static irqreturn_t w83977af_interrupt(int irq, void *dev_id)
1115 struct pt_regs *regs)
1116{ 1115{
1117 struct net_device *dev = (struct net_device *) dev_id; 1116 struct net_device *dev = dev_id;
1118 struct w83977af_ir *self; 1117 struct w83977af_ir *self;
1119 __u8 set, icr, isr; 1118 __u8 set, icr, isr;
1120 int iobase; 1119 int iobase;
1121 1120
1122 if (!dev) { 1121 self = dev->priv;
1123 printk(KERN_WARNING "%s: irq %d for unknown device.\n",
1124 driver_name, irq);
1125 return IRQ_NONE;
1126 }
1127 self = (struct w83977af_ir *) dev->priv;
1128 1122
1129 iobase = self->io.fir_base; 1123 iobase = self->io.fir_base;
1130 1124
diff --git a/drivers/net/isa-skeleton.c b/drivers/net/isa-skeleton.c
index 984c31d1b3fb..0343f12d2ffb 100644
--- a/drivers/net/isa-skeleton.c
+++ b/drivers/net/isa-skeleton.c
@@ -107,7 +107,7 @@ struct net_local {
107static int netcard_probe1(struct net_device *dev, int ioaddr); 107static int netcard_probe1(struct net_device *dev, int ioaddr);
108static int net_open(struct net_device *dev); 108static int net_open(struct net_device *dev);
109static int net_send_packet(struct sk_buff *skb, struct net_device *dev); 109static int net_send_packet(struct sk_buff *skb, struct net_device *dev);
110static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs *regs); 110static irqreturn_t net_interrupt(int irq, void *dev_id);
111static void net_rx(struct net_device *dev); 111static void net_rx(struct net_device *dev);
112static int net_close(struct net_device *dev); 112static int net_close(struct net_device *dev);
113static struct net_device_stats *net_get_stats(struct net_device *dev); 113static struct net_device_stats *net_get_stats(struct net_device *dev);
@@ -504,7 +504,7 @@ void net_tx(struct net_device *dev)
504 * The typical workload of the driver: 504 * The typical workload of the driver:
505 * Handle the network interface interrupts. 505 * Handle the network interface interrupts.
506 */ 506 */
507static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs * regs) 507static irqreturn_t net_interrupt(int irq, void *dev_id)
508{ 508{
509 struct net_device *dev = dev_id; 509 struct net_device *dev = dev_id;
510 struct net_local *np; 510 struct net_local *np;
diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c
index 41b1d08fd57b..2284e2ce1692 100644
--- a/drivers/net/iseries_veth.c
+++ b/drivers/net/iseries_veth.c
@@ -586,7 +586,7 @@ static void veth_handle_int(struct veth_lpevent *event)
586 }; 586 };
587} 587}
588 588
589static void veth_handle_event(struct HvLpEvent *event, struct pt_regs *regs) 589static void veth_handle_event(struct HvLpEvent *event)
590{ 590{
591 struct veth_lpevent *veth_event = (struct veth_lpevent *)event; 591 struct veth_lpevent *veth_event = (struct veth_lpevent *)event;
592 592
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index cfde7c2569bb..e09f575a3a38 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -93,7 +93,7 @@ static int ixgb_xmit_frame(struct sk_buff *skb, struct net_device *netdev);
93static struct net_device_stats *ixgb_get_stats(struct net_device *netdev); 93static struct net_device_stats *ixgb_get_stats(struct net_device *netdev);
94static int ixgb_change_mtu(struct net_device *netdev, int new_mtu); 94static int ixgb_change_mtu(struct net_device *netdev, int new_mtu);
95static int ixgb_set_mac(struct net_device *netdev, void *p); 95static int ixgb_set_mac(struct net_device *netdev, void *p);
96static irqreturn_t ixgb_intr(int irq, void *data, struct pt_regs *regs); 96static irqreturn_t ixgb_intr(int irq, void *data);
97static boolean_t ixgb_clean_tx_irq(struct ixgb_adapter *adapter); 97static boolean_t ixgb_clean_tx_irq(struct ixgb_adapter *adapter);
98 98
99#ifdef CONFIG_IXGB_NAPI 99#ifdef CONFIG_IXGB_NAPI
@@ -1687,11 +1687,10 @@ ixgb_update_stats(struct ixgb_adapter *adapter)
1687 * ixgb_intr - Interrupt Handler 1687 * ixgb_intr - Interrupt Handler
1688 * @irq: interrupt number 1688 * @irq: interrupt number
1689 * @data: pointer to a network interface device structure 1689 * @data: pointer to a network interface device structure
1690 * @pt_regs: CPU registers structure
1691 **/ 1690 **/
1692 1691
1693static irqreturn_t 1692static irqreturn_t
1694ixgb_intr(int irq, void *data, struct pt_regs *regs) 1693ixgb_intr(int irq, void *data)
1695{ 1694{
1696 struct net_device *netdev = data; 1695 struct net_device *netdev = data;
1697 struct ixgb_adapter *adapter = netdev_priv(netdev); 1696 struct ixgb_adapter *adapter = netdev_priv(netdev);
@@ -2213,7 +2212,7 @@ static void ixgb_netpoll(struct net_device *dev)
2213 struct ixgb_adapter *adapter = netdev_priv(dev); 2212 struct ixgb_adapter *adapter = netdev_priv(dev);
2214 2213
2215 disable_irq(adapter->pdev->irq); 2214 disable_irq(adapter->pdev->irq);
2216 ixgb_intr(adapter->pdev->irq, dev, NULL); 2215 ixgb_intr(adapter->pdev->irq, dev);
2217 enable_irq(adapter->pdev->irq); 2216 enable_irq(adapter->pdev->irq);
2218} 2217}
2219#endif 2218#endif
diff --git a/drivers/net/ixp2000/ixpdev.c b/drivers/net/ixp2000/ixpdev.c
index 6eeb965b4d72..a4eccb11d677 100644
--- a/drivers/net/ixp2000/ixpdev.c
+++ b/drivers/net/ixp2000/ixpdev.c
@@ -188,7 +188,7 @@ static void ixpdev_tx_complete(void)
188 } 188 }
189} 189}
190 190
191static irqreturn_t ixpdev_interrupt(int irq, void *dev_id, struct pt_regs *regs) 191static irqreturn_t ixpdev_interrupt(int irq, void *dev_id)
192{ 192{
193 u32 status; 193 u32 status;
194 194
diff --git a/drivers/net/lance.c b/drivers/net/lance.c
index f349e88e0ddf..6efbd499d752 100644
--- a/drivers/net/lance.c
+++ b/drivers/net/lance.c
@@ -301,7 +301,7 @@ static int lance_open(struct net_device *dev);
301static void lance_init_ring(struct net_device *dev, gfp_t mode); 301static void lance_init_ring(struct net_device *dev, gfp_t mode);
302static int lance_start_xmit(struct sk_buff *skb, struct net_device *dev); 302static int lance_start_xmit(struct sk_buff *skb, struct net_device *dev);
303static int lance_rx(struct net_device *dev); 303static int lance_rx(struct net_device *dev);
304static irqreturn_t lance_interrupt(int irq, void *dev_id, struct pt_regs *regs); 304static irqreturn_t lance_interrupt(int irq, void *dev_id);
305static int lance_close(struct net_device *dev); 305static int lance_close(struct net_device *dev);
306static struct net_device_stats *lance_get_stats(struct net_device *dev); 306static struct net_device_stats *lance_get_stats(struct net_device *dev);
307static void set_multicast_list(struct net_device *dev); 307static void set_multicast_list(struct net_device *dev);
@@ -1012,19 +1012,13 @@ out:
1012} 1012}
1013 1013
1014/* The LANCE interrupt handler. */ 1014/* The LANCE interrupt handler. */
1015static irqreturn_t 1015static irqreturn_t lance_interrupt(int irq, void *dev_id)
1016lance_interrupt(int irq, void *dev_id, struct pt_regs * regs)
1017{ 1016{
1018 struct net_device *dev = dev_id; 1017 struct net_device *dev = dev_id;
1019 struct lance_private *lp; 1018 struct lance_private *lp;
1020 int csr0, ioaddr, boguscnt=10; 1019 int csr0, ioaddr, boguscnt=10;
1021 int must_restart; 1020 int must_restart;
1022 1021
1023 if (dev == NULL) {
1024 printk ("lance_interrupt(): irq %d for unknown device.\n", irq);
1025 return IRQ_NONE;
1026 }
1027
1028 ioaddr = dev->base_addr; 1022 ioaddr = dev->base_addr;
1029 lp = dev->priv; 1023 lp = dev->priv;
1030 1024
diff --git a/drivers/net/lasi_82596.c b/drivers/net/lasi_82596.c
index da1eedef0b55..f4d815bca643 100644
--- a/drivers/net/lasi_82596.c
+++ b/drivers/net/lasi_82596.c
@@ -403,7 +403,7 @@ static char init_setup[] =
403 403
404static int i596_open(struct net_device *dev); 404static int i596_open(struct net_device *dev);
405static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev); 405static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev);
406static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs); 406static irqreturn_t i596_interrupt(int irq, void *dev_id);
407static int i596_close(struct net_device *dev); 407static int i596_close(struct net_device *dev);
408static struct net_device_stats *i596_get_stats(struct net_device *dev); 408static struct net_device_stats *i596_get_stats(struct net_device *dev);
409static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd); 409static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd);
@@ -527,7 +527,7 @@ static void i596_display_data(struct net_device *dev)
527 527
528 528
529#if defined(ENABLE_MVME16x_NET) || defined(ENABLE_BVME6000_NET) 529#if defined(ENABLE_MVME16x_NET) || defined(ENABLE_BVME6000_NET)
530static void i596_error(int irq, void *dev_id, struct pt_regs *regs) 530static void i596_error(int irq, void *dev_id)
531{ 531{
532 struct net_device *dev = dev_id; 532 struct net_device *dev = dev_id;
533 volatile unsigned char *pcc2 = (unsigned char *) 0xfff42000; 533 volatile unsigned char *pcc2 = (unsigned char *) 0xfff42000;
@@ -1252,12 +1252,12 @@ static int __devinit i82596_probe(struct net_device *dev,
1252static void i596_poll_controller(struct net_device *dev) 1252static void i596_poll_controller(struct net_device *dev)
1253{ 1253{
1254 disable_irq(dev->irq); 1254 disable_irq(dev->irq);
1255 i596_interrupt(dev->irq, dev, NULL); 1255 i596_interrupt(dev->irq, dev);
1256 enable_irq(dev->irq); 1256 enable_irq(dev->irq);
1257} 1257}
1258#endif 1258#endif
1259 1259
1260static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1260static irqreturn_t i596_interrupt(int irq, void *dev_id)
1261{ 1261{
1262 struct net_device *dev = dev_id; 1262 struct net_device *dev = dev_id;
1263 struct i596_private *lp; 1263 struct i596_private *lp;
diff --git a/drivers/net/lp486e.c b/drivers/net/lp486e.c
index 0258aaca9ed3..b833016f1825 100644
--- a/drivers/net/lp486e.c
+++ b/drivers/net/lp486e.c
@@ -379,7 +379,7 @@ static char init_setup[14] = {
379 379
380static int i596_open(struct net_device *dev); 380static int i596_open(struct net_device *dev);
381static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev); 381static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev);
382static irqreturn_t i596_interrupt(int irq, void *dev_id, struct pt_regs *regs); 382static irqreturn_t i596_interrupt(int irq, void *dev_id);
383static int i596_close(struct net_device *dev); 383static int i596_close(struct net_device *dev);
384static struct net_device_stats *i596_get_stats(struct net_device *dev); 384static struct net_device_stats *i596_get_stats(struct net_device *dev);
385static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd); 385static void i596_add_cmd(struct net_device *dev, struct i596_cmd *cmd);
@@ -1151,7 +1151,7 @@ i596_handle_CU_completion(struct net_device *dev,
1151} 1151}
1152 1152
1153static irqreturn_t 1153static irqreturn_t
1154i596_interrupt (int irq, void *dev_instance, struct pt_regs *regs) { 1154i596_interrupt (int irq, void *dev_instance) {
1155 struct net_device *dev = (struct net_device *) dev_instance; 1155 struct net_device *dev = (struct net_device *) dev_instance;
1156 struct i596_private *lp; 1156 struct i596_private *lp;
1157 unsigned short status, ack_cmd = 0; 1157 unsigned short status, ack_cmd = 0;
diff --git a/drivers/net/mac89x0.c b/drivers/net/mac89x0.c
index 8472b71641da..e960138011c0 100644
--- a/drivers/net/mac89x0.c
+++ b/drivers/net/mac89x0.c
@@ -129,7 +129,7 @@ extern void reset_chip(struct net_device *dev);
129#endif 129#endif
130static int net_open(struct net_device *dev); 130static int net_open(struct net_device *dev);
131static int net_send_packet(struct sk_buff *skb, struct net_device *dev); 131static int net_send_packet(struct sk_buff *skb, struct net_device *dev);
132static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs *regs); 132static irqreturn_t net_interrupt(int irq, void *dev_id);
133static void set_multicast_list(struct net_device *dev); 133static void set_multicast_list(struct net_device *dev);
134static void net_rx(struct net_device *dev); 134static void net_rx(struct net_device *dev);
135static int net_close(struct net_device *dev); 135static int net_close(struct net_device *dev);
@@ -431,7 +431,7 @@ net_send_packet(struct sk_buff *skb, struct net_device *dev)
431 431
432/* The typical workload of the driver: 432/* The typical workload of the driver:
433 Handle the network interface interrupts. */ 433 Handle the network interface interrupts. */
434static irqreturn_t net_interrupt(int irq, void *dev_id, struct pt_regs * regs) 434static irqreturn_t net_interrupt(int irq, void *dev_id)
435{ 435{
436 struct net_device *dev = dev_id; 436 struct net_device *dev = dev_id;
437 struct net_local *lp; 437 struct net_local *lp;
diff --git a/drivers/net/mace.c b/drivers/net/mace.c
index 27c24eaa2414..2907cfb12ada 100644
--- a/drivers/net/mace.c
+++ b/drivers/net/mace.c
@@ -82,9 +82,9 @@ static struct net_device_stats *mace_stats(struct net_device *dev);
82static void mace_set_multicast(struct net_device *dev); 82static void mace_set_multicast(struct net_device *dev);
83static void mace_reset(struct net_device *dev); 83static void mace_reset(struct net_device *dev);
84static int mace_set_address(struct net_device *dev, void *addr); 84static int mace_set_address(struct net_device *dev, void *addr);
85static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs); 85static irqreturn_t mace_interrupt(int irq, void *dev_id);
86static irqreturn_t mace_txdma_intr(int irq, void *dev_id, struct pt_regs *regs); 86static irqreturn_t mace_txdma_intr(int irq, void *dev_id);
87static irqreturn_t mace_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs); 87static irqreturn_t mace_rxdma_intr(int irq, void *dev_id);
88static void mace_set_timeout(struct net_device *dev); 88static void mace_set_timeout(struct net_device *dev);
89static void mace_tx_timeout(unsigned long data); 89static void mace_tx_timeout(unsigned long data);
90static inline void dbdma_reset(volatile struct dbdma_regs __iomem *dma); 90static inline void dbdma_reset(volatile struct dbdma_regs __iomem *dma);
@@ -678,7 +678,7 @@ static void mace_handle_misc_intrs(struct mace_data *mp, int intr)
678 printk(KERN_DEBUG "mace: jabbering transceiver\n"); 678 printk(KERN_DEBUG "mace: jabbering transceiver\n");
679} 679}
680 680
681static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs) 681static irqreturn_t mace_interrupt(int irq, void *dev_id)
682{ 682{
683 struct net_device *dev = (struct net_device *) dev_id; 683 struct net_device *dev = (struct net_device *) dev_id;
684 struct mace_data *mp = (struct mace_data *) dev->priv; 684 struct mace_data *mp = (struct mace_data *) dev->priv;
@@ -890,12 +890,12 @@ out:
890 spin_unlock_irqrestore(&mp->lock, flags); 890 spin_unlock_irqrestore(&mp->lock, flags);
891} 891}
892 892
893static irqreturn_t mace_txdma_intr(int irq, void *dev_id, struct pt_regs *regs) 893static irqreturn_t mace_txdma_intr(int irq, void *dev_id)
894{ 894{
895 return IRQ_HANDLED; 895 return IRQ_HANDLED;
896} 896}
897 897
898static irqreturn_t mace_rxdma_intr(int irq, void *dev_id, struct pt_regs *regs) 898static irqreturn_t mace_rxdma_intr(int irq, void *dev_id)
899{ 899{
900 struct net_device *dev = (struct net_device *) dev_id; 900 struct net_device *dev = (struct net_device *) dev_id;
901 struct mace_data *mp = (struct mace_data *) dev->priv; 901 struct mace_data *mp = (struct mace_data *) dev->priv;
diff --git a/drivers/net/macmace.c b/drivers/net/macmace.c
index 696d5513e558..464e4a6f3d5f 100644
--- a/drivers/net/macmace.c
+++ b/drivers/net/macmace.c
@@ -77,8 +77,8 @@ static int mace_xmit_start(struct sk_buff *skb, struct net_device *dev);
77static struct net_device_stats *mace_stats(struct net_device *dev); 77static struct net_device_stats *mace_stats(struct net_device *dev);
78static void mace_set_multicast(struct net_device *dev); 78static void mace_set_multicast(struct net_device *dev);
79static int mace_set_address(struct net_device *dev, void *addr); 79static int mace_set_address(struct net_device *dev, void *addr);
80static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs); 80static irqreturn_t mace_interrupt(int irq, void *dev_id);
81static irqreturn_t mace_dma_intr(int irq, void *dev_id, struct pt_regs *regs); 81static irqreturn_t mace_dma_intr(int irq, void *dev_id);
82static void mace_tx_timeout(struct net_device *dev); 82static void mace_tx_timeout(struct net_device *dev);
83 83
84/* Bit-reverse one byte of an ethernet hardware address. */ 84/* Bit-reverse one byte of an ethernet hardware address. */
@@ -573,7 +573,7 @@ static void mace_recv_interrupt(struct net_device *dev)
573 * Process the chip interrupt 573 * Process the chip interrupt
574 */ 574 */
575 575
576static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs) 576static irqreturn_t mace_interrupt(int irq, void *dev_id)
577{ 577{
578 struct net_device *dev = (struct net_device *) dev_id; 578 struct net_device *dev = (struct net_device *) dev_id;
579 struct mace_data *mp = (struct mace_data *) dev->priv; 579 struct mace_data *mp = (struct mace_data *) dev->priv;
@@ -645,7 +645,7 @@ static void mace_dma_rx_frame(struct net_device *dev, struct mace_frame *mf)
645 * The PSC has passed us a DMA interrupt event. 645 * The PSC has passed us a DMA interrupt event.
646 */ 646 */
647 647
648static irqreturn_t mace_dma_intr(int irq, void *dev_id, struct pt_regs *regs) 648static irqreturn_t mace_dma_intr(int irq, void *dev_id)
649{ 649{
650 struct net_device *dev = (struct net_device *) dev_id; 650 struct net_device *dev = (struct net_device *) dev_id;
651 struct mace_data *mp = (struct mace_data *) dev->priv; 651 struct mace_data *mp = (struct mace_data *) dev->priv;
diff --git a/drivers/net/meth.c b/drivers/net/meth.c
index 55b1495a70d6..c1aa60b9a982 100644
--- a/drivers/net/meth.c
+++ b/drivers/net/meth.c
@@ -92,7 +92,7 @@ struct meth_private {
92}; 92};
93 93
94static void meth_tx_timeout(struct net_device *dev); 94static void meth_tx_timeout(struct net_device *dev);
95static irqreturn_t meth_interrupt(int irq, void *dev_id, struct pt_regs *pregs); 95static irqreturn_t meth_interrupt(int irq, void *dev_id);
96 96
97/* global, initialized in ip32-setup.c */ 97/* global, initialized in ip32-setup.c */
98char o2meth_eaddr[8]={0,0,0,0,0,0,0,0}; 98char o2meth_eaddr[8]={0,0,0,0,0,0,0,0};
@@ -569,7 +569,7 @@ static void meth_error(struct net_device* dev, unsigned status)
569/* 569/*
570 * The typical interrupt entry point 570 * The typical interrupt entry point
571 */ 571 */
572static irqreturn_t meth_interrupt(int irq, void *dev_id, struct pt_regs *pregs) 572static irqreturn_t meth_interrupt(int irq, void *dev_id)
573{ 573{
574 struct net_device *dev = (struct net_device *)dev_id; 574 struct net_device *dev = (struct net_device *)dev_id;
575 struct meth_private *priv = (struct meth_private *) dev->priv; 575 struct meth_private *priv = (struct meth_private *) dev->priv;
diff --git a/drivers/net/mipsnet.c b/drivers/net/mipsnet.c
index 07e58f4a2916..c9469985bd71 100644
--- a/drivers/net/mipsnet.c
+++ b/drivers/net/mipsnet.c
@@ -116,8 +116,7 @@ static inline ssize_t mipsnet_get_fromdev(struct net_device *dev, size_t count)
116 return count; 116 return count;
117} 117}
118 118
119static irqreturn_t 119static irqreturn_t mipsnet_interrupt(int irq, void *dev_id)
120mipsnet_interrupt(int irq, void *dev_id, struct pt_regs *regs)
121{ 120{
122 struct net_device *dev = dev_id; 121 struct net_device *dev = dev_id;
123 122
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index eccedf3e627d..9997081c6dae 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -507,8 +507,7 @@ static void mv643xx_eth_update_pscr(struct net_device *dev,
507 * Output : N/A 507 * Output : N/A
508 */ 508 */
509 509
510static irqreturn_t mv643xx_eth_int_handler(int irq, void *dev_id, 510static irqreturn_t mv643xx_eth_int_handler(int irq, void *dev_id)
511 struct pt_regs *regs)
512{ 511{
513 struct net_device *dev = (struct net_device *)dev_id; 512 struct net_device *dev = (struct net_device *)dev_id;
514 struct mv643xx_private *mp = netdev_priv(dev); 513 struct mv643xx_private *mp = netdev_priv(dev);
@@ -1252,7 +1251,7 @@ static void mv643xx_netpoll(struct net_device *netdev)
1252 /* wait for previous write to complete */ 1251 /* wait for previous write to complete */
1253 mv_read(MV643XX_ETH_INTERRUPT_MASK_REG(port_num)); 1252 mv_read(MV643XX_ETH_INTERRUPT_MASK_REG(port_num));
1254 1253
1255 mv643xx_eth_int_handler(netdev->irq, netdev, NULL); 1254 mv643xx_eth_int_handler(netdev->irq, netdev);
1256 1255
1257 mv_write(MV643XX_ETH_INTERRUPT_MASK_REG(port_num), ETH_INT_UNMASK_ALL); 1256 mv_write(MV643XX_ETH_INTERRUPT_MASK_REG(port_num), ETH_INT_UNMASK_ALL);
1258} 1257}
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 4330197994df..fdbb0d7213b0 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -1148,7 +1148,7 @@ static int myri10ge_poll(struct net_device *netdev, int *budget)
1148 return 1; 1148 return 1;
1149} 1149}
1150 1150
1151static irqreturn_t myri10ge_intr(int irq, void *arg, struct pt_regs *regs) 1151static irqreturn_t myri10ge_intr(int irq, void *arg)
1152{ 1152{
1153 struct myri10ge_priv *mgp = arg; 1153 struct myri10ge_priv *mgp = arg;
1154 struct mcp_irq_data *stats = mgp->fw_stats; 1154 struct mcp_irq_data *stats = mgp->fw_stats;
diff --git a/drivers/net/myri_sbus.c b/drivers/net/myri_sbus.c
index a925bc9db4ac..466b484c9fa4 100644
--- a/drivers/net/myri_sbus.c
+++ b/drivers/net/myri_sbus.c
@@ -536,7 +536,7 @@ static void myri_rx(struct myri_eth *mp, struct net_device *dev)
536 } 536 }
537} 537}
538 538
539static irqreturn_t myri_interrupt(int irq, void *dev_id, struct pt_regs *regs) 539static irqreturn_t myri_interrupt(int irq, void *dev_id)
540{ 540{
541 struct net_device *dev = (struct net_device *) dev_id; 541 struct net_device *dev = (struct net_device *) dev_id;
542 struct myri_eth *mp = (struct myri_eth *) dev->priv; 542 struct myri_eth *mp = (struct myri_eth *) dev->priv;
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index d7b241f7d7bc..ffa0afd2eddc 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -623,7 +623,7 @@ static void free_ring(struct net_device *dev);
623static void reinit_ring(struct net_device *dev); 623static void reinit_ring(struct net_device *dev);
624static void init_registers(struct net_device *dev); 624static void init_registers(struct net_device *dev);
625static int start_tx(struct sk_buff *skb, struct net_device *dev); 625static int start_tx(struct sk_buff *skb, struct net_device *dev);
626static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs); 626static irqreturn_t intr_handler(int irq, void *dev_instance);
627static void netdev_error(struct net_device *dev, int intr_status); 627static void netdev_error(struct net_device *dev, int intr_status);
628static int natsemi_poll(struct net_device *dev, int *budget); 628static int natsemi_poll(struct net_device *dev, int *budget);
629static void netdev_rx(struct net_device *dev, int *work_done, int work_to_do); 629static void netdev_rx(struct net_device *dev, int *work_done, int work_to_do);
@@ -2088,7 +2088,7 @@ static void netdev_tx_done(struct net_device *dev)
2088 2088
2089/* The interrupt handler doesn't actually handle interrupts itself, it 2089/* The interrupt handler doesn't actually handle interrupts itself, it
2090 * schedules a NAPI poll if there is anything to do. */ 2090 * schedules a NAPI poll if there is anything to do. */
2091static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs) 2091static irqreturn_t intr_handler(int irq, void *dev_instance)
2092{ 2092{
2093 struct net_device *dev = dev_instance; 2093 struct net_device *dev = dev_instance;
2094 struct netdev_private *np = netdev_priv(dev); 2094 struct netdev_private *np = netdev_priv(dev);
@@ -2373,7 +2373,7 @@ static struct net_device_stats *get_stats(struct net_device *dev)
2373static void natsemi_poll_controller(struct net_device *dev) 2373static void natsemi_poll_controller(struct net_device *dev)
2374{ 2374{
2375 disable_irq(dev->irq); 2375 disable_irq(dev->irq);
2376 intr_handler(dev->irq, dev, NULL); 2376 intr_handler(dev->irq, dev);
2377 enable_irq(dev->irq); 2377 enable_irq(dev->irq);
2378} 2378}
2379#endif 2379#endif
diff --git a/drivers/net/netx-eth.c b/drivers/net/netx-eth.c
index 30ed9a5a40e0..a53644f6a29b 100644
--- a/drivers/net/netx-eth.c
+++ b/drivers/net/netx-eth.c
@@ -176,7 +176,7 @@ static void netx_eth_receive(struct net_device *ndev)
176} 176}
177 177
178static irqreturn_t 178static irqreturn_t
179netx_eth_interrupt(int irq, void *dev_id, struct pt_regs *regs) 179netx_eth_interrupt(int irq, void *dev_id)
180{ 180{
181 struct net_device *ndev = dev_id; 181 struct net_device *ndev = dev_id;
182 struct netx_eth_priv *priv = netdev_priv(ndev); 182 struct netx_eth_priv *priv = netdev_priv(ndev);
diff --git a/drivers/net/ni5010.c b/drivers/net/ni5010.c
index 383c690eefec..8be0d030d6f4 100644
--- a/drivers/net/ni5010.c
+++ b/drivers/net/ni5010.c
@@ -99,7 +99,7 @@ struct ni5010_local {
99static int ni5010_probe1(struct net_device *dev, int ioaddr); 99static int ni5010_probe1(struct net_device *dev, int ioaddr);
100static int ni5010_open(struct net_device *dev); 100static int ni5010_open(struct net_device *dev);
101static int ni5010_send_packet(struct sk_buff *skb, struct net_device *dev); 101static int ni5010_send_packet(struct sk_buff *skb, struct net_device *dev);
102static irqreturn_t ni5010_interrupt(int irq, void *dev_id, struct pt_regs *regs); 102static irqreturn_t ni5010_interrupt(int irq, void *dev_id);
103static void ni5010_rx(struct net_device *dev); 103static void ni5010_rx(struct net_device *dev);
104static void ni5010_timeout(struct net_device *dev); 104static void ni5010_timeout(struct net_device *dev);
105static int ni5010_close(struct net_device *dev); 105static int ni5010_close(struct net_device *dev);
@@ -468,7 +468,7 @@ static int ni5010_send_packet(struct sk_buff *skb, struct net_device *dev)
468 * The typical workload of the driver: 468 * The typical workload of the driver:
469 * Handle the network interface interrupts. 469 * Handle the network interface interrupts.
470 */ 470 */
471static irqreturn_t ni5010_interrupt(int irq, void *dev_id, struct pt_regs *regs) 471static irqreturn_t ni5010_interrupt(int irq, void *dev_id)
472{ 472{
473 struct net_device *dev = dev_id; 473 struct net_device *dev = dev_id;
474 struct ni5010_local *lp; 474 struct ni5010_local *lp;
diff --git a/drivers/net/ni52.c b/drivers/net/ni52.c
index e8889235996e..26e42f6e9fb1 100644
--- a/drivers/net/ni52.c
+++ b/drivers/net/ni52.c
@@ -195,7 +195,7 @@ sizeof(nop_cmd) = 8;
195#define NI52_ADDR2 0x01 195#define NI52_ADDR2 0x01
196 196
197static int ni52_probe1(struct net_device *dev,int ioaddr); 197static int ni52_probe1(struct net_device *dev,int ioaddr);
198static irqreturn_t ni52_interrupt(int irq,void *dev_id,struct pt_regs *reg_ptr); 198static irqreturn_t ni52_interrupt(int irq,void *dev_id);
199static int ni52_open(struct net_device *dev); 199static int ni52_open(struct net_device *dev);
200static int ni52_close(struct net_device *dev); 200static int ni52_close(struct net_device *dev);
201static int ni52_send_packet(struct sk_buff *,struct net_device *); 201static int ni52_send_packet(struct sk_buff *,struct net_device *);
@@ -837,7 +837,7 @@ static void *alloc_rfa(struct net_device *dev,void *ptr)
837 * Interrupt Handler ... 837 * Interrupt Handler ...
838 */ 838 */
839 839
840static irqreturn_t ni52_interrupt(int irq,void *dev_id,struct pt_regs *reg_ptr) 840static irqreturn_t ni52_interrupt(int irq,void *dev_id)
841{ 841{
842 struct net_device *dev = dev_id; 842 struct net_device *dev = dev_id;
843 unsigned short stat; 843 unsigned short stat;
diff --git a/drivers/net/ni65.c b/drivers/net/ni65.c
index fab3c8593ac1..340ad0d5388a 100644
--- a/drivers/net/ni65.c
+++ b/drivers/net/ni65.c
@@ -248,7 +248,7 @@ struct priv
248}; 248};
249 249
250static int ni65_probe1(struct net_device *dev,int); 250static int ni65_probe1(struct net_device *dev,int);
251static irqreturn_t ni65_interrupt(int irq, void * dev_id, struct pt_regs *regs); 251static irqreturn_t ni65_interrupt(int irq, void * dev_id);
252static void ni65_recv_intr(struct net_device *dev,int); 252static void ni65_recv_intr(struct net_device *dev,int);
253static void ni65_xmit_intr(struct net_device *dev,int); 253static void ni65_xmit_intr(struct net_device *dev,int);
254static int ni65_open(struct net_device *dev); 254static int ni65_open(struct net_device *dev);
@@ -871,7 +871,7 @@ static int ni65_lance_reinit(struct net_device *dev)
871/* 871/*
872 * interrupt handler 872 * interrupt handler
873 */ 873 */
874static irqreturn_t ni65_interrupt(int irq, void * dev_id, struct pt_regs * regs) 874static irqreturn_t ni65_interrupt(int irq, void * dev_id)
875{ 875{
876 int csr0 = 0; 876 int csr0 = 0;
877 struct net_device *dev = dev_id; 877 struct net_device *dev = dev_id;
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c
index e10da1aa3d30..b0127c71a5b6 100644
--- a/drivers/net/ns83820.c
+++ b/drivers/net/ns83820.c
@@ -1288,7 +1288,7 @@ static void ns83820_mib_isr(struct ns83820 *dev)
1288} 1288}
1289 1289
1290static void ns83820_do_isr(struct net_device *ndev, u32 isr); 1290static void ns83820_do_isr(struct net_device *ndev, u32 isr);
1291static irqreturn_t ns83820_irq(int foo, void *data, struct pt_regs *regs) 1291static irqreturn_t ns83820_irq(int foo, void *data)
1292{ 1292{
1293 struct net_device *ndev = data; 1293 struct net_device *ndev = data;
1294 struct ns83820 *dev = PRIV(ndev); 1294 struct ns83820 *dev = PRIV(ndev);
diff --git a/drivers/net/pci-skeleton.c b/drivers/net/pci-skeleton.c
index 2687e747657d..00ca0fdb837b 100644
--- a/drivers/net/pci-skeleton.c
+++ b/drivers/net/pci-skeleton.c
@@ -502,8 +502,7 @@ static void netdrv_tx_timeout (struct net_device *dev);
502static void netdrv_init_ring (struct net_device *dev); 502static void netdrv_init_ring (struct net_device *dev);
503static int netdrv_start_xmit (struct sk_buff *skb, 503static int netdrv_start_xmit (struct sk_buff *skb,
504 struct net_device *dev); 504 struct net_device *dev);
505static irqreturn_t netdrv_interrupt (int irq, void *dev_instance, 505static irqreturn_t netdrv_interrupt (int irq, void *dev_instance);
506 struct pt_regs *regs);
507static int netdrv_close (struct net_device *dev); 506static int netdrv_close (struct net_device *dev);
508static int netdrv_ioctl (struct net_device *dev, struct ifreq *rq, int cmd); 507static int netdrv_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
509static struct net_device_stats *netdrv_get_stats (struct net_device *dev); 508static struct net_device_stats *netdrv_get_stats (struct net_device *dev);
@@ -1654,8 +1653,7 @@ static void netdrv_weird_interrupt (struct net_device *dev,
1654 1653
1655/* The interrupt handler does all of the Rx thread work and cleans up 1654/* The interrupt handler does all of the Rx thread work and cleans up
1656 after the Tx thread. */ 1655 after the Tx thread. */
1657static irqreturn_t netdrv_interrupt (int irq, void *dev_instance, 1656static irqreturn_t netdrv_interrupt (int irq, void *dev_instance)
1658 struct pt_regs *regs)
1659{ 1657{
1660 struct net_device *dev = (struct net_device *) dev_instance; 1658 struct net_device *dev = (struct net_device *) dev_instance;
1661 struct netdrv_private *tp = dev->priv; 1659 struct netdrv_private *tp = dev->priv;
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index 2418cdb9d317..046009928526 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -238,7 +238,7 @@ static void tc574_reset(struct net_device *dev);
238static void media_check(unsigned long arg); 238static void media_check(unsigned long arg);
239static int el3_open(struct net_device *dev); 239static int el3_open(struct net_device *dev);
240static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev); 240static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev);
241static irqreturn_t el3_interrupt(int irq, void *dev_id, struct pt_regs *regs); 241static irqreturn_t el3_interrupt(int irq, void *dev_id);
242static void update_stats(struct net_device *dev); 242static void update_stats(struct net_device *dev);
243static struct net_device_stats *el3_get_stats(struct net_device *dev); 243static struct net_device_stats *el3_get_stats(struct net_device *dev);
244static int el3_rx(struct net_device *dev, int worklimit); 244static int el3_rx(struct net_device *dev, int worklimit);
@@ -817,7 +817,7 @@ static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev)
817} 817}
818 818
819/* The EL3 interrupt handler. */ 819/* The EL3 interrupt handler. */
820static irqreturn_t el3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 820static irqreturn_t el3_interrupt(int irq, void *dev_id)
821{ 821{
822 struct net_device *dev = (struct net_device *) dev_id; 822 struct net_device *dev = (struct net_device *) dev_id;
823 struct el3_private *lp = netdev_priv(dev); 823 struct el3_private *lp = netdev_priv(dev);
@@ -927,7 +927,7 @@ static void media_check(unsigned long arg)
927 if ((inw(ioaddr + EL3_STATUS) & IntLatch) && (inb(ioaddr + Timer) == 0xff)) { 927 if ((inw(ioaddr + EL3_STATUS) & IntLatch) && (inb(ioaddr + Timer) == 0xff)) {
928 if (!lp->fast_poll) 928 if (!lp->fast_poll)
929 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 929 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
930 el3_interrupt(dev->irq, lp, NULL); 930 el3_interrupt(dev->irq, lp);
931 lp->fast_poll = HZ; 931 lp->fast_poll = HZ;
932 } 932 }
933 if (lp->fast_poll) { 933 if (lp->fast_poll) {
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index a0e2b01c027c..231fa2c9ec6c 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -151,7 +151,7 @@ static void media_check(unsigned long arg);
151static int el3_config(struct net_device *dev, struct ifmap *map); 151static int el3_config(struct net_device *dev, struct ifmap *map);
152static int el3_open(struct net_device *dev); 152static int el3_open(struct net_device *dev);
153static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev); 153static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev);
154static irqreturn_t el3_interrupt(int irq, void *dev_id, struct pt_regs *regs); 154static irqreturn_t el3_interrupt(int irq, void *dev_id);
155static void update_stats(struct net_device *dev); 155static void update_stats(struct net_device *dev);
156static struct net_device_stats *el3_get_stats(struct net_device *dev); 156static struct net_device_stats *el3_get_stats(struct net_device *dev);
157static int el3_rx(struct net_device *dev); 157static int el3_rx(struct net_device *dev);
@@ -645,7 +645,7 @@ static int el3_start_xmit(struct sk_buff *skb, struct net_device *dev)
645} 645}
646 646
647/* The EL3 interrupt handler. */ 647/* The EL3 interrupt handler. */
648static irqreturn_t el3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 648static irqreturn_t el3_interrupt(int irq, void *dev_id)
649{ 649{
650 struct net_device *dev = (struct net_device *) dev_id; 650 struct net_device *dev = (struct net_device *) dev_id;
651 struct el3_private *lp = netdev_priv(dev); 651 struct el3_private *lp = netdev_priv(dev);
@@ -748,7 +748,7 @@ static void media_check(unsigned long arg)
748 (inb(ioaddr + EL3_TIMER) == 0xff)) { 748 (inb(ioaddr + EL3_TIMER) == 0xff)) {
749 if (!lp->fast_poll) 749 if (!lp->fast_poll)
750 printk(KERN_WARNING "%s: interrupt(s) dropped!\n", dev->name); 750 printk(KERN_WARNING "%s: interrupt(s) dropped!\n", dev->name);
751 el3_interrupt(dev->irq, lp, NULL); 751 el3_interrupt(dev->irq, lp);
752 lp->fast_poll = HZ; 752 lp->fast_poll = HZ;
753 } 753 }
754 if (lp->fast_poll) { 754 if (lp->fast_poll) {
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index a8891a9000ac..5ddd5742f779 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -92,7 +92,7 @@ static int axnet_open(struct net_device *dev);
92static int axnet_close(struct net_device *dev); 92static int axnet_close(struct net_device *dev);
93static int axnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 93static int axnet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
94static const struct ethtool_ops netdev_ethtool_ops; 94static const struct ethtool_ops netdev_ethtool_ops;
95static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs); 95static irqreturn_t ei_irq_wrapper(int irq, void *dev_id);
96static void ei_watchdog(u_long arg); 96static void ei_watchdog(u_long arg);
97static void axnet_reset_8390(struct net_device *dev); 97static void axnet_reset_8390(struct net_device *dev);
98 98
@@ -112,7 +112,7 @@ static void axdev_setup(struct net_device *dev);
112static void AX88190_init(struct net_device *dev, int startp); 112static void AX88190_init(struct net_device *dev, int startp);
113static int ax_open(struct net_device *dev); 113static int ax_open(struct net_device *dev);
114static int ax_close(struct net_device *dev); 114static int ax_close(struct net_device *dev);
115static irqreturn_t ax_interrupt(int irq, void *dev_id, struct pt_regs *regs); 115static irqreturn_t ax_interrupt(int irq, void *dev_id);
116 116
117/*====================================================================*/ 117/*====================================================================*/
118 118
@@ -599,11 +599,11 @@ static void axnet_reset_8390(struct net_device *dev)
599 599
600/*====================================================================*/ 600/*====================================================================*/
601 601
602static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs) 602static irqreturn_t ei_irq_wrapper(int irq, void *dev_id)
603{ 603{
604 struct net_device *dev = dev_id; 604 struct net_device *dev = dev_id;
605 PRIV(dev)->stale = 0; 605 PRIV(dev)->stale = 0;
606 return ax_interrupt(irq, dev_id, regs); 606 return ax_interrupt(irq, dev_id);
607} 607}
608 608
609static void ei_watchdog(u_long arg) 609static void ei_watchdog(u_long arg)
@@ -621,7 +621,7 @@ static void ei_watchdog(u_long arg)
621 if (info->stale++ && (inb_p(nic_base + EN0_ISR) & ENISR_ALL)) { 621 if (info->stale++ && (inb_p(nic_base + EN0_ISR) & ENISR_ALL)) {
622 if (!info->fast_poll) 622 if (!info->fast_poll)
623 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 623 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
624 ei_irq_wrapper(dev->irq, dev, NULL); 624 ei_irq_wrapper(dev->irq, dev);
625 info->fast_poll = HZ; 625 info->fast_poll = HZ;
626 } 626 }
627 if (info->fast_poll) { 627 if (info->fast_poll) {
@@ -1193,7 +1193,7 @@ static int ei_start_xmit(struct sk_buff *skb, struct net_device *dev)
1193 * needed. 1193 * needed.
1194 */ 1194 */
1195 1195
1196static irqreturn_t ax_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1196static irqreturn_t ax_interrupt(int irq, void *dev_id)
1197{ 1197{
1198 struct net_device *dev = dev_id; 1198 struct net_device *dev = dev_id;
1199 long e8390_base; 1199 long e8390_base;
@@ -1201,14 +1201,8 @@ static irqreturn_t ax_interrupt(int irq, void *dev_id, struct pt_regs * regs)
1201 struct ei_device *ei_local; 1201 struct ei_device *ei_local;
1202 int handled = 0; 1202 int handled = 0;
1203 1203
1204 if (dev == NULL)
1205 {
1206 printk ("net_interrupt(): irq %d for unknown device.\n", irq);
1207 return IRQ_NONE;
1208 }
1209
1210 e8390_base = dev->base_addr; 1204 e8390_base = dev->base_addr;
1211 ei_local = (struct ei_device *) netdev_priv(dev); 1205 ei_local = netdev_priv(dev);
1212 1206
1213 /* 1207 /*
1214 * Protect the irq test too. 1208 * Protect the irq test too.
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index d682f30dea6e..65f6fdf43725 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -97,7 +97,7 @@ static int fjn_config(struct net_device *dev, struct ifmap *map);
97static int fjn_open(struct net_device *dev); 97static int fjn_open(struct net_device *dev);
98static int fjn_close(struct net_device *dev); 98static int fjn_close(struct net_device *dev);
99static int fjn_start_xmit(struct sk_buff *skb, struct net_device *dev); 99static int fjn_start_xmit(struct sk_buff *skb, struct net_device *dev);
100static irqreturn_t fjn_interrupt(int irq, void *dev_id, struct pt_regs *regs); 100static irqreturn_t fjn_interrupt(int irq, void *dev_id);
101static void fjn_rx(struct net_device *dev); 101static void fjn_rx(struct net_device *dev);
102static void fjn_reset(struct net_device *dev); 102static void fjn_reset(struct net_device *dev);
103static struct net_device_stats *fjn_get_stats(struct net_device *dev); 103static struct net_device_stats *fjn_get_stats(struct net_device *dev);
@@ -733,7 +733,7 @@ module_exit(exit_fmvj18x_cs);
733 733
734/*====================================================================*/ 734/*====================================================================*/
735 735
736static irqreturn_t fjn_interrupt(int irq, void *dev_id, struct pt_regs *regs) 736static irqreturn_t fjn_interrupt(int irq, void *dev_id)
737{ 737{
738 struct net_device *dev = dev_id; 738 struct net_device *dev = dev_id;
739 local_info_t *lp = netdev_priv(dev); 739 local_info_t *lp = netdev_priv(dev);
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index 7d5687e94607..e77110e4c288 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -426,7 +426,7 @@ static int mace_open(struct net_device *dev);
426static int mace_close(struct net_device *dev); 426static int mace_close(struct net_device *dev);
427static int mace_start_xmit(struct sk_buff *skb, struct net_device *dev); 427static int mace_start_xmit(struct sk_buff *skb, struct net_device *dev);
428static void mace_tx_timeout(struct net_device *dev); 428static void mace_tx_timeout(struct net_device *dev);
429static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs); 429static irqreturn_t mace_interrupt(int irq, void *dev_id);
430static struct net_device_stats *mace_get_stats(struct net_device *dev); 430static struct net_device_stats *mace_get_stats(struct net_device *dev);
431static int mace_rx(struct net_device *dev, unsigned char RxCnt); 431static int mace_rx(struct net_device *dev, unsigned char RxCnt);
432static void restore_multicast_list(struct net_device *dev); 432static void restore_multicast_list(struct net_device *dev);
@@ -1002,7 +1002,7 @@ static int mace_start_xmit(struct sk_buff *skb, struct net_device *dev)
1002mace_interrupt 1002mace_interrupt
1003 The interrupt handler. 1003 The interrupt handler.
1004---------------------------------------------------------------------------- */ 1004---------------------------------------------------------------------------- */
1005static irqreturn_t mace_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1005static irqreturn_t mace_interrupt(int irq, void *dev_id)
1006{ 1006{
1007 struct net_device *dev = (struct net_device *) dev_id; 1007 struct net_device *dev = (struct net_device *) dev_id;
1008 mace_private *lp = netdev_priv(dev); 1008 mace_private *lp = netdev_priv(dev);
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index a09c22840f63..0c00d182e7fd 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -109,7 +109,7 @@ static int pcnet_open(struct net_device *dev);
109static int pcnet_close(struct net_device *dev); 109static int pcnet_close(struct net_device *dev);
110static int ei_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 110static int ei_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
111static const struct ethtool_ops netdev_ethtool_ops; 111static const struct ethtool_ops netdev_ethtool_ops;
112static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs); 112static irqreturn_t ei_irq_wrapper(int irq, void *dev_id);
113static void ei_watchdog(u_long arg); 113static void ei_watchdog(u_long arg);
114static void pcnet_reset_8390(struct net_device *dev); 114static void pcnet_reset_8390(struct net_device *dev);
115static int set_config(struct net_device *dev, struct ifmap *map); 115static int set_config(struct net_device *dev, struct ifmap *map);
@@ -1071,11 +1071,11 @@ static int set_config(struct net_device *dev, struct ifmap *map)
1071 1071
1072/*====================================================================*/ 1072/*====================================================================*/
1073 1073
1074static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs) 1074static irqreturn_t ei_irq_wrapper(int irq, void *dev_id)
1075{ 1075{
1076 struct net_device *dev = dev_id; 1076 struct net_device *dev = dev_id;
1077 pcnet_dev_t *info; 1077 pcnet_dev_t *info;
1078 irqreturn_t ret = ei_interrupt(irq, dev_id, regs); 1078 irqreturn_t ret = ei_interrupt(irq, dev_id);
1079 1079
1080 if (ret == IRQ_HANDLED) { 1080 if (ret == IRQ_HANDLED) {
1081 info = PRIV(dev); 1081 info = PRIV(dev);
@@ -1100,7 +1100,7 @@ static void ei_watchdog(u_long arg)
1100 if (info->stale++ && (inb_p(nic_base + EN0_ISR) & ENISR_ALL)) { 1100 if (info->stale++ && (inb_p(nic_base + EN0_ISR) & ENISR_ALL)) {
1101 if (!info->fast_poll) 1101 if (!info->fast_poll)
1102 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 1102 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
1103 ei_irq_wrapper(dev->irq, dev, NULL); 1103 ei_irq_wrapper(dev->irq, dev);
1104 info->fast_poll = HZ; 1104 info->fast_poll = HZ;
1105 } 1105 }
1106 if (info->fast_poll) { 1106 if (info->fast_poll) {
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index a2f3a0e2a005..20fcc3576202 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -287,7 +287,7 @@ static int smc_close(struct net_device *dev);
287static int smc_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 287static int smc_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
288static void smc_tx_timeout(struct net_device *dev); 288static void smc_tx_timeout(struct net_device *dev);
289static int smc_start_xmit(struct sk_buff *skb, struct net_device *dev); 289static int smc_start_xmit(struct sk_buff *skb, struct net_device *dev);
290static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 290static irqreturn_t smc_interrupt(int irq, void *dev_id);
291static void smc_rx(struct net_device *dev); 291static void smc_rx(struct net_device *dev);
292static struct net_device_stats *smc_get_stats(struct net_device *dev); 292static struct net_device_stats *smc_get_stats(struct net_device *dev);
293static void set_rx_mode(struct net_device *dev); 293static void set_rx_mode(struct net_device *dev);
@@ -1545,7 +1545,7 @@ static void smc_eph_irq(struct net_device *dev)
1545 1545
1546/*====================================================================*/ 1546/*====================================================================*/
1547 1547
1548static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1548static irqreturn_t smc_interrupt(int irq, void *dev_id)
1549{ 1549{
1550 struct net_device *dev = dev_id; 1550 struct net_device *dev = dev_id;
1551 struct smc_private *smc = netdev_priv(dev); 1551 struct smc_private *smc = netdev_priv(dev);
@@ -1966,7 +1966,7 @@ static void media_check(u_long arg)
1966 if (smc->watchdog++ && ((i>>8) & i)) { 1966 if (smc->watchdog++ && ((i>>8) & i)) {
1967 if (!smc->fast_poll) 1967 if (!smc->fast_poll)
1968 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name); 1968 printk(KERN_INFO "%s: interrupt(s) dropped!\n", dev->name);
1969 smc_interrupt(dev->irq, smc, NULL); 1969 smc_interrupt(dev->irq, smc);
1970 smc->fast_poll = HZ; 1970 smc->fast_poll = HZ;
1971 } 1971 }
1972 if (smc->fast_poll) { 1972 if (smc->fast_poll) {
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index 62664c01eb45..f3914f58d67f 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -308,7 +308,7 @@ static void xirc2ps_detach(struct pcmcia_device *p_dev);
308 * less on other parts of the kernel. 308 * less on other parts of the kernel.
309 */ 309 */
310 310
311static irqreturn_t xirc2ps_interrupt(int irq, void *dev_id, struct pt_regs *regs); 311static irqreturn_t xirc2ps_interrupt(int irq, void *dev_id);
312 312
313/**************** 313/****************
314 * A linked list of "instances" of the device. Each actual 314 * A linked list of "instances" of the device. Each actual
@@ -1121,7 +1121,7 @@ static int xirc2ps_resume(struct pcmcia_device *link)
1121 * This is the Interrupt service route. 1121 * This is the Interrupt service route.
1122 */ 1122 */
1123static irqreturn_t 1123static irqreturn_t
1124xirc2ps_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1124xirc2ps_interrupt(int irq, void *dev_id)
1125{ 1125{
1126 struct net_device *dev = (struct net_device *)dev_id; 1126 struct net_device *dev = (struct net_device *)dev_id;
1127 local_info_t *lp = netdev_priv(dev); 1127 local_info_t *lp = netdev_priv(dev);
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index a43e24245b7e..36f9d988278f 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -304,7 +304,7 @@ static int pcnet32_open(struct net_device *);
304static int pcnet32_init_ring(struct net_device *); 304static int pcnet32_init_ring(struct net_device *);
305static int pcnet32_start_xmit(struct sk_buff *, struct net_device *); 305static int pcnet32_start_xmit(struct sk_buff *, struct net_device *);
306static void pcnet32_tx_timeout(struct net_device *dev); 306static void pcnet32_tx_timeout(struct net_device *dev);
307static irqreturn_t pcnet32_interrupt(int, void *, struct pt_regs *); 307static irqreturn_t pcnet32_interrupt(int, void *);
308static int pcnet32_close(struct net_device *); 308static int pcnet32_close(struct net_device *);
309static struct net_device_stats *pcnet32_get_stats(struct net_device *); 309static struct net_device_stats *pcnet32_get_stats(struct net_device *);
310static void pcnet32_load_multicast(struct net_device *dev); 310static void pcnet32_load_multicast(struct net_device *dev);
@@ -674,7 +674,7 @@ static void pcnet32_purge_rx_ring(struct net_device *dev)
674static void pcnet32_poll_controller(struct net_device *dev) 674static void pcnet32_poll_controller(struct net_device *dev)
675{ 675{
676 disable_irq(dev->irq); 676 disable_irq(dev->irq);
677 pcnet32_interrupt(0, dev, NULL); 677 pcnet32_interrupt(0, dev);
678 enable_irq(dev->irq); 678 enable_irq(dev->irq);
679} 679}
680#endif 680#endif
@@ -2561,7 +2561,7 @@ static int pcnet32_start_xmit(struct sk_buff *skb, struct net_device *dev)
2561 2561
2562/* The PCNET32 interrupt handler. */ 2562/* The PCNET32 interrupt handler. */
2563static irqreturn_t 2563static irqreturn_t
2564pcnet32_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2564pcnet32_interrupt(int irq, void *dev_id)
2565{ 2565{
2566 struct net_device *dev = dev_id; 2566 struct net_device *dev = dev_id;
2567 struct pcnet32_private *lp; 2567 struct pcnet32_private *lp;
@@ -2569,13 +2569,6 @@ pcnet32_interrupt(int irq, void *dev_id, struct pt_regs *regs)
2569 u16 csr0; 2569 u16 csr0;
2570 int boguscnt = max_interrupt_work; 2570 int boguscnt = max_interrupt_work;
2571 2571
2572 if (!dev) {
2573 if (pcnet32_debug & NETIF_MSG_INTR)
2574 printk(KERN_DEBUG "%s(): irq %d for unknown device\n",
2575 __FUNCTION__, irq);
2576 return IRQ_NONE;
2577 }
2578
2579 ioaddr = dev->base_addr; 2572 ioaddr = dev->base_addr;
2580 lp = dev->priv; 2573 lp = dev->priv;
2581 2574
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index f5aad77288f9..3af9fcf76c81 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -480,7 +480,7 @@ void phy_error(struct phy_device *phydev)
480 * description: When a PHY interrupt occurs, the handler disables 480 * description: When a PHY interrupt occurs, the handler disables
481 * interrupts, and schedules a work task to clear the interrupt. 481 * interrupts, and schedules a work task to clear the interrupt.
482 */ 482 */
483static irqreturn_t phy_interrupt(int irq, void *phy_dat, struct pt_regs *regs) 483static irqreturn_t phy_interrupt(int irq, void *phy_dat)
484{ 484{
485 struct phy_device *phydev = phy_dat; 485 struct phy_device *phydev = phy_dat;
486 486
diff --git a/drivers/net/plip.c b/drivers/net/plip.c
index d4f54e9798cd..71afb274498f 100644
--- a/drivers/net/plip.c
+++ b/drivers/net/plip.c
@@ -143,7 +143,7 @@ static void plip_bh(struct net_device *dev);
143static void plip_timer_bh(struct net_device *dev); 143static void plip_timer_bh(struct net_device *dev);
144 144
145/* Interrupt handler */ 145/* Interrupt handler */
146static void plip_interrupt(int irq, void *dev_id, struct pt_regs *regs); 146static void plip_interrupt(int irq, void *dev_id);
147 147
148/* Functions for DEV methods */ 148/* Functions for DEV methods */
149static int plip_tx_packet(struct sk_buff *skb, struct net_device *dev); 149static int plip_tx_packet(struct sk_buff *skb, struct net_device *dev);
@@ -385,7 +385,7 @@ plip_timer_bh(struct net_device *dev)
385 struct net_local *nl = netdev_priv(dev); 385 struct net_local *nl = netdev_priv(dev);
386 386
387 if (!(atomic_read (&nl->kill_timer))) { 387 if (!(atomic_read (&nl->kill_timer))) {
388 plip_interrupt (-1, dev, NULL); 388 plip_interrupt (-1, dev);
389 389
390 schedule_delayed_work(&nl->timer, 1); 390 schedule_delayed_work(&nl->timer, 1);
391 } 391 }
@@ -902,18 +902,13 @@ plip_error(struct net_device *dev, struct net_local *nl,
902 902
903/* Handle the parallel port interrupts. */ 903/* Handle the parallel port interrupts. */
904static void 904static void
905plip_interrupt(int irq, void *dev_id, struct pt_regs * regs) 905plip_interrupt(int irq, void *dev_id)
906{ 906{
907 struct net_device *dev = dev_id; 907 struct net_device *dev = dev_id;
908 struct net_local *nl; 908 struct net_local *nl;
909 struct plip_local *rcv; 909 struct plip_local *rcv;
910 unsigned char c0; 910 unsigned char c0;
911 911
912 if (dev == NULL) {
913 printk(KERN_DEBUG "plip_interrupt: irq %d for unknown device.\n", irq);
914 return;
915 }
916
917 nl = netdev_priv(dev); 912 nl = netdev_priv(dev);
918 rcv = &nl->rcv_data; 913 rcv = &nl->rcv_data;
919 914
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 157471846349..ec640f6229ae 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -1965,7 +1965,7 @@ quit_polling:
1965 return 1; 1965 return 1;
1966} 1966}
1967 1967
1968static irqreturn_t ql3xxx_isr(int irq, void *dev_id, struct pt_regs *regs) 1968static irqreturn_t ql3xxx_isr(int irq, void *dev_id)
1969{ 1969{
1970 1970
1971 struct net_device *ndev = dev_id; 1971 struct net_device *ndev = dev_id;
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 4c47c5b10ba0..f1c75751cab7 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -473,8 +473,7 @@ MODULE_VERSION(RTL8169_VERSION);
473 473
474static int rtl8169_open(struct net_device *dev); 474static int rtl8169_open(struct net_device *dev);
475static int rtl8169_start_xmit(struct sk_buff *skb, struct net_device *dev); 475static int rtl8169_start_xmit(struct sk_buff *skb, struct net_device *dev);
476static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance, 476static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance);
477 struct pt_regs *regs);
478static int rtl8169_init_ring(struct net_device *dev); 477static int rtl8169_init_ring(struct net_device *dev);
479static void rtl8169_hw_start(struct net_device *dev); 478static void rtl8169_hw_start(struct net_device *dev);
480static int rtl8169_close(struct net_device *dev); 479static int rtl8169_close(struct net_device *dev);
@@ -1392,7 +1391,7 @@ static void rtl8169_netpoll(struct net_device *dev)
1392 struct pci_dev *pdev = tp->pci_dev; 1391 struct pci_dev *pdev = tp->pci_dev;
1393 1392
1394 disable_irq(pdev->irq); 1393 disable_irq(pdev->irq);
1395 rtl8169_interrupt(pdev->irq, dev, NULL); 1394 rtl8169_interrupt(pdev->irq, dev);
1396 enable_irq(pdev->irq); 1395 enable_irq(pdev->irq);
1397} 1396}
1398#endif 1397#endif
@@ -2592,7 +2591,7 @@ rtl8169_rx_interrupt(struct net_device *dev, struct rtl8169_private *tp,
2592 2591
2593/* The interrupt handler does all of the Rx thread work and cleans up after the Tx thread. */ 2592/* The interrupt handler does all of the Rx thread work and cleans up after the Tx thread. */
2594static irqreturn_t 2593static irqreturn_t
2595rtl8169_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 2594rtl8169_interrupt(int irq, void *dev_instance)
2596{ 2595{
2597 struct net_device *dev = (struct net_device *) dev_instance; 2596 struct net_device *dev = (struct net_device *) dev_instance;
2598 struct rtl8169_private *tp = netdev_priv(dev); 2597 struct rtl8169_private *tp = netdev_priv(dev);
diff --git a/drivers/net/rrunner.c b/drivers/net/rrunner.c
index 6108bac8d56a..d81536f90df6 100644
--- a/drivers/net/rrunner.c
+++ b/drivers/net/rrunner.c
@@ -1053,7 +1053,7 @@ static void rx_int(struct net_device *dev, u32 rxlimit, u32 index)
1053} 1053}
1054 1054
1055 1055
1056static irqreturn_t rr_interrupt(int irq, void *dev_id, struct pt_regs *ptregs) 1056static irqreturn_t rr_interrupt(int irq, void *dev_id)
1057{ 1057{
1058 struct rr_private *rrpriv; 1058 struct rr_private *rrpriv;
1059 struct rr_regs __iomem *regs; 1059 struct rr_regs __iomem *regs;
diff --git a/drivers/net/rrunner.h b/drivers/net/rrunner.h
index 99451b523399..9f3e050c4dc6 100644
--- a/drivers/net/rrunner.h
+++ b/drivers/net/rrunner.h
@@ -829,7 +829,7 @@ struct rr_private
829 */ 829 */
830static int rr_init(struct net_device *dev); 830static int rr_init(struct net_device *dev);
831static int rr_init1(struct net_device *dev); 831static int rr_init1(struct net_device *dev);
832static irqreturn_t rr_interrupt(int irq, void *dev_id, struct pt_regs *regs); 832static irqreturn_t rr_interrupt(int irq, void *dev_id);
833 833
834static int rr_open(struct net_device *dev); 834static int rr_open(struct net_device *dev);
835static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev); 835static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev);
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 1bf23e41f580..a231ab7d28dd 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -4029,8 +4029,7 @@ static int s2io_chk_rx_buffers(nic_t *sp, int rng_n)
4029 return 0; 4029 return 0;
4030} 4030}
4031 4031
4032static irqreturn_t 4032static irqreturn_t s2io_msi_handle(int irq, void *dev_id)
4033s2io_msi_handle(int irq, void *dev_id, struct pt_regs *regs)
4034{ 4033{
4035 struct net_device *dev = (struct net_device *) dev_id; 4034 struct net_device *dev = (struct net_device *) dev_id;
4036 nic_t *sp = dev->priv; 4035 nic_t *sp = dev->priv;
@@ -4063,8 +4062,7 @@ s2io_msi_handle(int irq, void *dev_id, struct pt_regs *regs)
4063 return IRQ_HANDLED; 4062 return IRQ_HANDLED;
4064} 4063}
4065 4064
4066static irqreturn_t 4065static irqreturn_t s2io_msix_ring_handle(int irq, void *dev_id)
4067s2io_msix_ring_handle(int irq, void *dev_id, struct pt_regs *regs)
4068{ 4066{
4069 ring_info_t *ring = (ring_info_t *)dev_id; 4067 ring_info_t *ring = (ring_info_t *)dev_id;
4070 nic_t *sp = ring->nic; 4068 nic_t *sp = ring->nic;
@@ -4078,8 +4076,7 @@ s2io_msix_ring_handle(int irq, void *dev_id, struct pt_regs *regs)
4078 return IRQ_HANDLED; 4076 return IRQ_HANDLED;
4079} 4077}
4080 4078
4081static irqreturn_t 4079static irqreturn_t s2io_msix_fifo_handle(int irq, void *dev_id)
4082s2io_msix_fifo_handle(int irq, void *dev_id, struct pt_regs *regs)
4083{ 4080{
4084 fifo_info_t *fifo = (fifo_info_t *)dev_id; 4081 fifo_info_t *fifo = (fifo_info_t *)dev_id;
4085 nic_t *sp = fifo->nic; 4082 nic_t *sp = fifo->nic;
@@ -4155,7 +4152,6 @@ static void s2io_txpic_intr_handle(nic_t *sp)
4155 * s2io_isr - ISR handler of the device . 4152 * s2io_isr - ISR handler of the device .
4156 * @irq: the irq of the device. 4153 * @irq: the irq of the device.
4157 * @dev_id: a void pointer to the dev structure of the NIC. 4154 * @dev_id: a void pointer to the dev structure of the NIC.
4158 * @pt_regs: pointer to the registers pushed on the stack.
4159 * Description: This function is the ISR handler of the device. It 4155 * Description: This function is the ISR handler of the device. It
4160 * identifies the reason for the interrupt and calls the relevant 4156 * identifies the reason for the interrupt and calls the relevant
4161 * service routines. As a contongency measure, this ISR allocates the 4157 * service routines. As a contongency measure, this ISR allocates the
@@ -4165,7 +4161,7 @@ static void s2io_txpic_intr_handle(nic_t *sp)
4165 * IRQ_HANDLED: will be returned if IRQ was handled by this routine 4161 * IRQ_HANDLED: will be returned if IRQ was handled by this routine
4166 * IRQ_NONE: will be returned if interrupt is not from our device 4162 * IRQ_NONE: will be returned if interrupt is not from our device
4167 */ 4163 */
4168static irqreturn_t s2io_isr(int irq, void *dev_id, struct pt_regs *regs) 4164static irqreturn_t s2io_isr(int irq, void *dev_id)
4169{ 4165{
4170 struct net_device *dev = (struct net_device *) dev_id; 4166 struct net_device *dev = (struct net_device *) dev_id;
4171 nic_t *sp = dev->priv; 4167 nic_t *sp = dev->priv;
diff --git a/drivers/net/s2io.h b/drivers/net/s2io.h
index 3afd9126a591..12b719f4d00f 100644
--- a/drivers/net/s2io.h
+++ b/drivers/net/s2io.h
@@ -116,179 +116,179 @@ typedef struct {
116/* The statistics block of Xena */ 116/* The statistics block of Xena */
117typedef struct stat_block { 117typedef struct stat_block {
118/* Tx MAC statistics counters. */ 118/* Tx MAC statistics counters. */
119 u32 tmac_data_octets; 119 __le32 tmac_data_octets;
120 u32 tmac_frms; 120 __le32 tmac_frms;
121 u64 tmac_drop_frms; 121 __le64 tmac_drop_frms;
122 u32 tmac_bcst_frms; 122 __le32 tmac_bcst_frms;
123 u32 tmac_mcst_frms; 123 __le32 tmac_mcst_frms;
124 u64 tmac_pause_ctrl_frms; 124 __le64 tmac_pause_ctrl_frms;
125 u32 tmac_ucst_frms; 125 __le32 tmac_ucst_frms;
126 u32 tmac_ttl_octets; 126 __le32 tmac_ttl_octets;
127 u32 tmac_any_err_frms; 127 __le32 tmac_any_err_frms;
128 u32 tmac_nucst_frms; 128 __le32 tmac_nucst_frms;
129 u64 tmac_ttl_less_fb_octets; 129 __le64 tmac_ttl_less_fb_octets;
130 u64 tmac_vld_ip_octets; 130 __le64 tmac_vld_ip_octets;
131 u32 tmac_drop_ip; 131 __le32 tmac_drop_ip;
132 u32 tmac_vld_ip; 132 __le32 tmac_vld_ip;
133 u32 tmac_rst_tcp; 133 __le32 tmac_rst_tcp;
134 u32 tmac_icmp; 134 __le32 tmac_icmp;
135 u64 tmac_tcp; 135 __le64 tmac_tcp;
136 u32 reserved_0; 136 __le32 reserved_0;
137 u32 tmac_udp; 137 __le32 tmac_udp;
138 138
139/* Rx MAC Statistics counters. */ 139/* Rx MAC Statistics counters. */
140 u32 rmac_data_octets; 140 __le32 rmac_data_octets;
141 u32 rmac_vld_frms; 141 __le32 rmac_vld_frms;
142 u64 rmac_fcs_err_frms; 142 __le64 rmac_fcs_err_frms;
143 u64 rmac_drop_frms; 143 __le64 rmac_drop_frms;
144 u32 rmac_vld_bcst_frms; 144 __le32 rmac_vld_bcst_frms;
145 u32 rmac_vld_mcst_frms; 145 __le32 rmac_vld_mcst_frms;
146 u32 rmac_out_rng_len_err_frms; 146 __le32 rmac_out_rng_len_err_frms;
147 u32 rmac_in_rng_len_err_frms; 147 __le32 rmac_in_rng_len_err_frms;
148 u64 rmac_long_frms; 148 __le64 rmac_long_frms;
149 u64 rmac_pause_ctrl_frms; 149 __le64 rmac_pause_ctrl_frms;
150 u64 rmac_unsup_ctrl_frms; 150 __le64 rmac_unsup_ctrl_frms;
151 u32 rmac_accepted_ucst_frms; 151 __le32 rmac_accepted_ucst_frms;
152 u32 rmac_ttl_octets; 152 __le32 rmac_ttl_octets;
153 u32 rmac_discarded_frms; 153 __le32 rmac_discarded_frms;
154 u32 rmac_accepted_nucst_frms; 154 __le32 rmac_accepted_nucst_frms;
155 u32 reserved_1; 155 __le32 reserved_1;
156 u32 rmac_drop_events; 156 __le32 rmac_drop_events;
157 u64 rmac_ttl_less_fb_octets; 157 __le64 rmac_ttl_less_fb_octets;
158 u64 rmac_ttl_frms; 158 __le64 rmac_ttl_frms;
159 u64 reserved_2; 159 __le64 reserved_2;
160 u32 rmac_usized_frms; 160 __le32 rmac_usized_frms;
161 u32 reserved_3; 161 __le32 reserved_3;
162 u32 rmac_frag_frms; 162 __le32 rmac_frag_frms;
163 u32 rmac_osized_frms; 163 __le32 rmac_osized_frms;
164 u32 reserved_4; 164 __le32 reserved_4;
165 u32 rmac_jabber_frms; 165 __le32 rmac_jabber_frms;
166 u64 rmac_ttl_64_frms; 166 __le64 rmac_ttl_64_frms;
167 u64 rmac_ttl_65_127_frms; 167 __le64 rmac_ttl_65_127_frms;
168 u64 reserved_5; 168 __le64 reserved_5;
169 u64 rmac_ttl_128_255_frms; 169 __le64 rmac_ttl_128_255_frms;
170 u64 rmac_ttl_256_511_frms; 170 __le64 rmac_ttl_256_511_frms;
171 u64 reserved_6; 171 __le64 reserved_6;
172 u64 rmac_ttl_512_1023_frms; 172 __le64 rmac_ttl_512_1023_frms;
173 u64 rmac_ttl_1024_1518_frms; 173 __le64 rmac_ttl_1024_1518_frms;
174 u32 rmac_ip; 174 __le32 rmac_ip;
175 u32 reserved_7; 175 __le32 reserved_7;
176 u64 rmac_ip_octets; 176 __le64 rmac_ip_octets;
177 u32 rmac_drop_ip; 177 __le32 rmac_drop_ip;
178 u32 rmac_hdr_err_ip; 178 __le32 rmac_hdr_err_ip;
179 u32 reserved_8; 179 __le32 reserved_8;
180 u32 rmac_icmp; 180 __le32 rmac_icmp;
181 u64 rmac_tcp; 181 __le64 rmac_tcp;
182 u32 rmac_err_drp_udp; 182 __le32 rmac_err_drp_udp;
183 u32 rmac_udp; 183 __le32 rmac_udp;
184 u64 rmac_xgmii_err_sym; 184 __le64 rmac_xgmii_err_sym;
185 u64 rmac_frms_q0; 185 __le64 rmac_frms_q0;
186 u64 rmac_frms_q1; 186 __le64 rmac_frms_q1;
187 u64 rmac_frms_q2; 187 __le64 rmac_frms_q2;
188 u64 rmac_frms_q3; 188 __le64 rmac_frms_q3;
189 u64 rmac_frms_q4; 189 __le64 rmac_frms_q4;
190 u64 rmac_frms_q5; 190 __le64 rmac_frms_q5;
191 u64 rmac_frms_q6; 191 __le64 rmac_frms_q6;
192 u64 rmac_frms_q7; 192 __le64 rmac_frms_q7;
193 u16 rmac_full_q3; 193 __le16 rmac_full_q3;
194 u16 rmac_full_q2; 194 __le16 rmac_full_q2;
195 u16 rmac_full_q1; 195 __le16 rmac_full_q1;
196 u16 rmac_full_q0; 196 __le16 rmac_full_q0;
197 u16 rmac_full_q7; 197 __le16 rmac_full_q7;
198 u16 rmac_full_q6; 198 __le16 rmac_full_q6;
199 u16 rmac_full_q5; 199 __le16 rmac_full_q5;
200 u16 rmac_full_q4; 200 __le16 rmac_full_q4;
201 u32 reserved_9; 201 __le32 reserved_9;
202 u32 rmac_pause_cnt; 202 __le32 rmac_pause_cnt;
203 u64 rmac_xgmii_data_err_cnt; 203 __le64 rmac_xgmii_data_err_cnt;
204 u64 rmac_xgmii_ctrl_err_cnt; 204 __le64 rmac_xgmii_ctrl_err_cnt;
205 u32 rmac_err_tcp; 205 __le32 rmac_err_tcp;
206 u32 rmac_accepted_ip; 206 __le32 rmac_accepted_ip;
207 207
208/* PCI/PCI-X Read transaction statistics. */ 208/* PCI/PCI-X Read transaction statistics. */
209 u32 new_rd_req_cnt; 209 __le32 new_rd_req_cnt;
210 u32 rd_req_cnt; 210 __le32 rd_req_cnt;
211 u32 rd_rtry_cnt; 211 __le32 rd_rtry_cnt;
212 u32 new_rd_req_rtry_cnt; 212 __le32 new_rd_req_rtry_cnt;
213 213
214/* PCI/PCI-X Write/Read transaction statistics. */ 214/* PCI/PCI-X Write/Read transaction statistics. */
215 u32 wr_req_cnt; 215 __le32 wr_req_cnt;
216 u32 wr_rtry_rd_ack_cnt; 216 __le32 wr_rtry_rd_ack_cnt;
217 u32 new_wr_req_rtry_cnt; 217 __le32 new_wr_req_rtry_cnt;
218 u32 new_wr_req_cnt; 218 __le32 new_wr_req_cnt;
219 u32 wr_disc_cnt; 219 __le32 wr_disc_cnt;
220 u32 wr_rtry_cnt; 220 __le32 wr_rtry_cnt;
221 221
222/* PCI/PCI-X Write / DMA Transaction statistics. */ 222/* PCI/PCI-X Write / DMA Transaction statistics. */
223 u32 txp_wr_cnt; 223 __le32 txp_wr_cnt;
224 u32 rd_rtry_wr_ack_cnt; 224 __le32 rd_rtry_wr_ack_cnt;
225 u32 txd_wr_cnt; 225 __le32 txd_wr_cnt;
226 u32 txd_rd_cnt; 226 __le32 txd_rd_cnt;
227 u32 rxd_wr_cnt; 227 __le32 rxd_wr_cnt;
228 u32 rxd_rd_cnt; 228 __le32 rxd_rd_cnt;
229 u32 rxf_wr_cnt; 229 __le32 rxf_wr_cnt;
230 u32 txf_rd_cnt; 230 __le32 txf_rd_cnt;
231 231
232/* Tx MAC statistics overflow counters. */ 232/* Tx MAC statistics overflow counters. */
233 u32 tmac_data_octets_oflow; 233 __le32 tmac_data_octets_oflow;
234 u32 tmac_frms_oflow; 234 __le32 tmac_frms_oflow;
235 u32 tmac_bcst_frms_oflow; 235 __le32 tmac_bcst_frms_oflow;
236 u32 tmac_mcst_frms_oflow; 236 __le32 tmac_mcst_frms_oflow;
237 u32 tmac_ucst_frms_oflow; 237 __le32 tmac_ucst_frms_oflow;
238 u32 tmac_ttl_octets_oflow; 238 __le32 tmac_ttl_octets_oflow;
239 u32 tmac_any_err_frms_oflow; 239 __le32 tmac_any_err_frms_oflow;
240 u32 tmac_nucst_frms_oflow; 240 __le32 tmac_nucst_frms_oflow;
241 u64 tmac_vlan_frms; 241 __le64 tmac_vlan_frms;
242 u32 tmac_drop_ip_oflow; 242 __le32 tmac_drop_ip_oflow;
243 u32 tmac_vld_ip_oflow; 243 __le32 tmac_vld_ip_oflow;
244 u32 tmac_rst_tcp_oflow; 244 __le32 tmac_rst_tcp_oflow;
245 u32 tmac_icmp_oflow; 245 __le32 tmac_icmp_oflow;
246 u32 tpa_unknown_protocol; 246 __le32 tpa_unknown_protocol;
247 u32 tmac_udp_oflow; 247 __le32 tmac_udp_oflow;
248 u32 reserved_10; 248 __le32 reserved_10;
249 u32 tpa_parse_failure; 249 __le32 tpa_parse_failure;
250 250
251/* Rx MAC Statistics overflow counters. */ 251/* Rx MAC Statistics overflow counters. */
252 u32 rmac_data_octets_oflow; 252 __le32 rmac_data_octets_oflow;
253 u32 rmac_vld_frms_oflow; 253 __le32 rmac_vld_frms_oflow;
254 u32 rmac_vld_bcst_frms_oflow; 254 __le32 rmac_vld_bcst_frms_oflow;
255 u32 rmac_vld_mcst_frms_oflow; 255 __le32 rmac_vld_mcst_frms_oflow;
256 u32 rmac_accepted_ucst_frms_oflow; 256 __le32 rmac_accepted_ucst_frms_oflow;
257 u32 rmac_ttl_octets_oflow; 257 __le32 rmac_ttl_octets_oflow;
258 u32 rmac_discarded_frms_oflow; 258 __le32 rmac_discarded_frms_oflow;
259 u32 rmac_accepted_nucst_frms_oflow; 259 __le32 rmac_accepted_nucst_frms_oflow;
260 u32 rmac_usized_frms_oflow; 260 __le32 rmac_usized_frms_oflow;
261 u32 rmac_drop_events_oflow; 261 __le32 rmac_drop_events_oflow;
262 u32 rmac_frag_frms_oflow; 262 __le32 rmac_frag_frms_oflow;
263 u32 rmac_osized_frms_oflow; 263 __le32 rmac_osized_frms_oflow;
264 u32 rmac_ip_oflow; 264 __le32 rmac_ip_oflow;
265 u32 rmac_jabber_frms_oflow; 265 __le32 rmac_jabber_frms_oflow;
266 u32 rmac_icmp_oflow; 266 __le32 rmac_icmp_oflow;
267 u32 rmac_drop_ip_oflow; 267 __le32 rmac_drop_ip_oflow;
268 u32 rmac_err_drp_udp_oflow; 268 __le32 rmac_err_drp_udp_oflow;
269 u32 rmac_udp_oflow; 269 __le32 rmac_udp_oflow;
270 u32 reserved_11; 270 __le32 reserved_11;
271 u32 rmac_pause_cnt_oflow; 271 __le32 rmac_pause_cnt_oflow;
272 u64 rmac_ttl_1519_4095_frms; 272 __le64 rmac_ttl_1519_4095_frms;
273 u64 rmac_ttl_4096_8191_frms; 273 __le64 rmac_ttl_4096_8191_frms;
274 u64 rmac_ttl_8192_max_frms; 274 __le64 rmac_ttl_8192_max_frms;
275 u64 rmac_ttl_gt_max_frms; 275 __le64 rmac_ttl_gt_max_frms;
276 u64 rmac_osized_alt_frms; 276 __le64 rmac_osized_alt_frms;
277 u64 rmac_jabber_alt_frms; 277 __le64 rmac_jabber_alt_frms;
278 u64 rmac_gt_max_alt_frms; 278 __le64 rmac_gt_max_alt_frms;
279 u64 rmac_vlan_frms; 279 __le64 rmac_vlan_frms;
280 u32 rmac_len_discard; 280 __le32 rmac_len_discard;
281 u32 rmac_fcs_discard; 281 __le32 rmac_fcs_discard;
282 u32 rmac_pf_discard; 282 __le32 rmac_pf_discard;
283 u32 rmac_da_discard; 283 __le32 rmac_da_discard;
284 u32 rmac_red_discard; 284 __le32 rmac_red_discard;
285 u32 rmac_rts_discard; 285 __le32 rmac_rts_discard;
286 u32 reserved_12; 286 __le32 reserved_12;
287 u32 rmac_ingm_full_discard; 287 __le32 rmac_ingm_full_discard;
288 u32 reserved_13; 288 __le32 reserved_13;
289 u32 rmac_accepted_ip_oflow; 289 __le32 rmac_accepted_ip_oflow;
290 u32 reserved_14; 290 __le32 reserved_14;
291 u32 link_fault_cnt; 291 __le32 link_fault_cnt;
292 u8 buffer[20]; 292 u8 buffer[20];
293 swStat_t sw_stat; 293 swStat_t sw_stat;
294 xpakStat_t xpak_stat; 294 xpakStat_t xpak_stat;
@@ -992,12 +992,12 @@ static void s2io_init_pci(nic_t * sp);
992static int s2io_set_mac_addr(struct net_device *dev, u8 * addr); 992static int s2io_set_mac_addr(struct net_device *dev, u8 * addr);
993static void s2io_alarm_handle(unsigned long data); 993static void s2io_alarm_handle(unsigned long data);
994static int s2io_enable_msi(nic_t *nic); 994static int s2io_enable_msi(nic_t *nic);
995static irqreturn_t s2io_msi_handle(int irq, void *dev_id, struct pt_regs *regs); 995static irqreturn_t s2io_msi_handle(int irq, void *dev_id);
996static irqreturn_t 996static irqreturn_t
997s2io_msix_ring_handle(int irq, void *dev_id, struct pt_regs *regs); 997s2io_msix_ring_handle(int irq, void *dev_id);
998static irqreturn_t 998static irqreturn_t
999s2io_msix_fifo_handle(int irq, void *dev_id, struct pt_regs *regs); 999s2io_msix_fifo_handle(int irq, void *dev_id);
1000static irqreturn_t s2io_isr(int irq, void *dev_id, struct pt_regs *regs); 1000static irqreturn_t s2io_isr(int irq, void *dev_id);
1001static int verify_xena_quiescence(nic_t *sp, u64 val64, int flag); 1001static int verify_xena_quiescence(nic_t *sp, u64 val64, int flag);
1002static const struct ethtool_ops netdev_ethtool_ops; 1002static const struct ethtool_ops netdev_ethtool_ops;
1003static void s2io_set_link(unsigned long data); 1003static void s2io_set_link(unsigned long data);
diff --git a/drivers/net/saa9730.c b/drivers/net/saa9730.c
index c479b07be788..b269513cde45 100644
--- a/drivers/net/saa9730.c
+++ b/drivers/net/saa9730.c
@@ -745,10 +745,9 @@ static int lan_saa9730_rx(struct net_device *dev)
745 return 0; 745 return 0;
746} 746}
747 747
748static irqreturn_t lan_saa9730_interrupt(const int irq, void *dev_id, 748static irqreturn_t lan_saa9730_interrupt(const int irq, void *dev_id)
749 struct pt_regs *regs)
750{ 749{
751 struct net_device *dev = (struct net_device *) dev_id; 750 struct net_device *dev = dev_id;
752 struct lan_saa9730_private *lp = netdev_priv(dev); 751 struct lan_saa9730_private *lp = netdev_priv(dev);
753 752
754 if (lan_saa9730_debug > 5) 753 if (lan_saa9730_debug > 5)
diff --git a/drivers/net/sb1000.c b/drivers/net/sb1000.c
index a1789ae59278..b9fa4fbb1398 100644
--- a/drivers/net/sb1000.c
+++ b/drivers/net/sb1000.c
@@ -84,7 +84,7 @@ extern int sb1000_probe(struct net_device *dev);
84static int sb1000_open(struct net_device *dev); 84static int sb1000_open(struct net_device *dev);
85static int sb1000_dev_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd); 85static int sb1000_dev_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd);
86static int sb1000_start_xmit(struct sk_buff *skb, struct net_device *dev); 86static int sb1000_start_xmit(struct sk_buff *skb, struct net_device *dev);
87static irqreturn_t sb1000_interrupt(int irq, void *dev_id, struct pt_regs *regs); 87static irqreturn_t sb1000_interrupt(int irq, void *dev_id);
88static struct net_device_stats *sb1000_stats(struct net_device *dev); 88static struct net_device_stats *sb1000_stats(struct net_device *dev);
89static int sb1000_close(struct net_device *dev); 89static int sb1000_close(struct net_device *dev);
90 90
@@ -1079,24 +1079,18 @@ sb1000_start_xmit(struct sk_buff *skb, struct net_device *dev)
1079} 1079}
1080 1080
1081/* SB1000 interrupt handler. */ 1081/* SB1000 interrupt handler. */
1082static irqreturn_t sb1000_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1082static irqreturn_t sb1000_interrupt(int irq, void *dev_id)
1083{ 1083{
1084 char *name; 1084 char *name;
1085 unsigned char st; 1085 unsigned char st;
1086 int ioaddr[2]; 1086 int ioaddr[2];
1087 struct net_device *dev = (struct net_device *) dev_id; 1087 struct net_device *dev = dev_id;
1088 struct sb1000_private *lp = netdev_priv(dev); 1088 struct sb1000_private *lp = netdev_priv(dev);
1089 1089
1090 const unsigned char Command0[6] = {0x80, 0x2c, 0x00, 0x00, 0x00, 0x00}; 1090 const unsigned char Command0[6] = {0x80, 0x2c, 0x00, 0x00, 0x00, 0x00};
1091 const unsigned char Command1[6] = {0x80, 0x2e, 0x00, 0x00, 0x00, 0x00}; 1091 const unsigned char Command1[6] = {0x80, 0x2e, 0x00, 0x00, 0x00, 0x00};
1092 const int MaxRxErrorCount = 6; 1092 const int MaxRxErrorCount = 6;
1093 1093
1094 if (dev == NULL) {
1095 printk(KERN_ERR "sb1000_interrupt(): irq %d for unknown device.\n",
1096 irq);
1097 return IRQ_NONE;
1098 }
1099
1100 ioaddr[0] = dev->base_addr; 1094 ioaddr[0] = dev->base_addr;
1101 /* mem_start holds the second I/O address */ 1095 /* mem_start holds the second I/O address */
1102 ioaddr[1] = dev->mem_start; 1096 ioaddr[1] = dev->mem_start;
diff --git a/drivers/net/sb1250-mac.c b/drivers/net/sb1250-mac.c
index e4c8896b76cb..db2324939b69 100644
--- a/drivers/net/sb1250-mac.c
+++ b/drivers/net/sb1250-mac.c
@@ -294,7 +294,7 @@ static void sbmac_channel_stop(struct sbmac_softc *s);
294static sbmac_state_t sbmac_set_channel_state(struct sbmac_softc *,sbmac_state_t); 294static sbmac_state_t sbmac_set_channel_state(struct sbmac_softc *,sbmac_state_t);
295static void sbmac_promiscuous_mode(struct sbmac_softc *sc,int onoff); 295static void sbmac_promiscuous_mode(struct sbmac_softc *sc,int onoff);
296static uint64_t sbmac_addr2reg(unsigned char *ptr); 296static uint64_t sbmac_addr2reg(unsigned char *ptr);
297static irqreturn_t sbmac_intr(int irq,void *dev_instance,struct pt_regs *rgs); 297static irqreturn_t sbmac_intr(int irq,void *dev_instance);
298static int sbmac_start_tx(struct sk_buff *skb, struct net_device *dev); 298static int sbmac_start_tx(struct sk_buff *skb, struct net_device *dev);
299static void sbmac_setmulti(struct sbmac_softc *sc); 299static void sbmac_setmulti(struct sbmac_softc *sc);
300static int sbmac_init(struct net_device *dev, int idx); 300static int sbmac_init(struct net_device *dev, int idx);
@@ -2049,7 +2049,7 @@ static int sbmac_set_duplex(struct sbmac_softc *s,sbmac_duplex_t duplex,sbmac_fc
2049 * Return value: 2049 * Return value:
2050 * nothing 2050 * nothing
2051 ********************************************************************* */ 2051 ********************************************************************* */
2052static irqreturn_t sbmac_intr(int irq,void *dev_instance,struct pt_regs *rgs) 2052static irqreturn_t sbmac_intr(int irq,void *dev_instance)
2053{ 2053{
2054 struct net_device *dev = (struct net_device *) dev_instance; 2054 struct net_device *dev = (struct net_device *) dev_instance;
2055 struct sbmac_softc *sc = netdev_priv(dev); 2055 struct sbmac_softc *sc = netdev_priv(dev);
diff --git a/drivers/net/seeq8005.c b/drivers/net/seeq8005.c
index 20afdc7f2b97..d9d0a3a3c558 100644
--- a/drivers/net/seeq8005.c
+++ b/drivers/net/seeq8005.c
@@ -83,7 +83,7 @@ static int seeq8005_probe1(struct net_device *dev, int ioaddr);
83static int seeq8005_open(struct net_device *dev); 83static int seeq8005_open(struct net_device *dev);
84static void seeq8005_timeout(struct net_device *dev); 84static void seeq8005_timeout(struct net_device *dev);
85static int seeq8005_send_packet(struct sk_buff *skb, struct net_device *dev); 85static int seeq8005_send_packet(struct sk_buff *skb, struct net_device *dev);
86static irqreturn_t seeq8005_interrupt(int irq, void *dev_id, struct pt_regs *regs); 86static irqreturn_t seeq8005_interrupt(int irq, void *dev_id);
87static void seeq8005_rx(struct net_device *dev); 87static void seeq8005_rx(struct net_device *dev);
88static int seeq8005_close(struct net_device *dev); 88static int seeq8005_close(struct net_device *dev);
89static struct net_device_stats *seeq8005_get_stats(struct net_device *dev); 89static struct net_device_stats *seeq8005_get_stats(struct net_device *dev);
@@ -437,7 +437,7 @@ inline void wait_for_buffer(struct net_device * dev)
437 437
438/* The typical workload of the driver: 438/* The typical workload of the driver:
439 Handle the network interface interrupts. */ 439 Handle the network interface interrupts. */
440static irqreturn_t seeq8005_interrupt(int irq, void *dev_id, struct pt_regs * regs) 440static irqreturn_t seeq8005_interrupt(int irq, void *dev_id)
441{ 441{
442 struct net_device *dev = dev_id; 442 struct net_device *dev = dev_id;
443 struct net_local *lp; 443 struct net_local *lp;
diff --git a/drivers/net/sgiseeq.c b/drivers/net/sgiseeq.c
index f95a5b0223fb..a833e7f9757f 100644
--- a/drivers/net/sgiseeq.c
+++ b/drivers/net/sgiseeq.c
@@ -432,7 +432,7 @@ static inline void sgiseeq_tx(struct net_device *dev, struct sgiseeq_private *sp
432 } 432 }
433} 433}
434 434
435static irqreturn_t sgiseeq_interrupt(int irq, void *dev_id, struct pt_regs *regs) 435static irqreturn_t sgiseeq_interrupt(int irq, void *dev_id)
436{ 436{
437 struct net_device *dev = (struct net_device *) dev_id; 437 struct net_device *dev = (struct net_device *) dev_id;
438 struct sgiseeq_private *sp = netdev_priv(dev); 438 struct sgiseeq_private *sp = netdev_priv(dev);
diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c
index e8f26b79bbaf..aaba458584fb 100644
--- a/drivers/net/sis190.c
+++ b/drivers/net/sis190.c
@@ -713,7 +713,7 @@ static void sis190_tx_interrupt(struct net_device *dev,
713 * The interrupt handler does all of the Rx thread work and cleans up after 713 * The interrupt handler does all of the Rx thread work and cleans up after
714 * the Tx thread. 714 * the Tx thread.
715 */ 715 */
716static irqreturn_t sis190_interrupt(int irq, void *__dev, struct pt_regs *regs) 716static irqreturn_t sis190_interrupt(int irq, void *__dev)
717{ 717{
718 struct net_device *dev = __dev; 718 struct net_device *dev = __dev;
719 struct sis190_private *tp = netdev_priv(dev); 719 struct sis190_private *tp = netdev_priv(dev);
@@ -758,7 +758,7 @@ static void sis190_netpoll(struct net_device *dev)
758 struct pci_dev *pdev = tp->pci_dev; 758 struct pci_dev *pdev = tp->pci_dev;
759 759
760 disable_irq(pdev->irq); 760 disable_irq(pdev->irq);
761 sis190_interrupt(pdev->irq, dev, NULL); 761 sis190_interrupt(pdev->irq, dev);
762 enable_irq(pdev->irq); 762 enable_irq(pdev->irq);
763} 763}
764#endif 764#endif
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c
index 28606e20df1c..fb2b53051635 100644
--- a/drivers/net/sis900.c
+++ b/drivers/net/sis900.c
@@ -218,7 +218,7 @@ static void sis900_init_rx_ring(struct net_device *net_dev);
218static int sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev); 218static int sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev);
219static int sis900_rx(struct net_device *net_dev); 219static int sis900_rx(struct net_device *net_dev);
220static void sis900_finish_xmit (struct net_device *net_dev); 220static void sis900_finish_xmit (struct net_device *net_dev);
221static irqreturn_t sis900_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 221static irqreturn_t sis900_interrupt(int irq, void *dev_instance);
222static int sis900_close(struct net_device *net_dev); 222static int sis900_close(struct net_device *net_dev);
223static int mii_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd); 223static int mii_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd);
224static struct net_device_stats *sis900_get_stats(struct net_device *net_dev); 224static struct net_device_stats *sis900_get_stats(struct net_device *net_dev);
@@ -988,7 +988,7 @@ static u16 sis900_reset_phy(struct net_device *net_dev, int phy_addr)
988static void sis900_poll(struct net_device *dev) 988static void sis900_poll(struct net_device *dev)
989{ 989{
990 disable_irq(dev->irq); 990 disable_irq(dev->irq);
991 sis900_interrupt(dev->irq, dev, NULL); 991 sis900_interrupt(dev->irq, dev);
992 enable_irq(dev->irq); 992 enable_irq(dev->irq);
993} 993}
994#endif 994#endif
@@ -1642,7 +1642,7 @@ sis900_start_xmit(struct sk_buff *skb, struct net_device *net_dev)
1642 * and cleans up after the Tx thread 1642 * and cleans up after the Tx thread
1643 */ 1643 */
1644 1644
1645static irqreturn_t sis900_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1645static irqreturn_t sis900_interrupt(int irq, void *dev_instance)
1646{ 1646{
1647 struct net_device *net_dev = dev_instance; 1647 struct net_device *net_dev = dev_instance;
1648 struct sis900_private *sis_priv = net_dev->priv; 1648 struct sis900_private *sis_priv = net_dev->priv;
diff --git a/drivers/net/sk98lin/skge.c b/drivers/net/sk98lin/skge.c
index 99e92627642c..d4913c3de2a1 100644
--- a/drivers/net/sk98lin/skge.c
+++ b/drivers/net/sk98lin/skge.c
@@ -196,8 +196,8 @@ static SK_BOOL BoardAllocMem(SK_AC *pAC);
196static void BoardFreeMem(SK_AC *pAC); 196static void BoardFreeMem(SK_AC *pAC);
197static void BoardInitMem(SK_AC *pAC); 197static void BoardInitMem(SK_AC *pAC);
198static void SetupRing(SK_AC*, void*, uintptr_t, RXD**, RXD**, RXD**, int*, SK_BOOL); 198static void SetupRing(SK_AC*, void*, uintptr_t, RXD**, RXD**, RXD**, int*, SK_BOOL);
199static SkIsrRetVar SkGeIsr(int irq, void *dev_id, struct pt_regs *ptregs); 199static SkIsrRetVar SkGeIsr(int irq, void *dev_id);
200static SkIsrRetVar SkGeIsrOnePort(int irq, void *dev_id, struct pt_regs *ptregs); 200static SkIsrRetVar SkGeIsrOnePort(int irq, void *dev_id);
201static int SkGeOpen(struct SK_NET_DEVICE *dev); 201static int SkGeOpen(struct SK_NET_DEVICE *dev);
202static int SkGeClose(struct SK_NET_DEVICE *dev); 202static int SkGeClose(struct SK_NET_DEVICE *dev);
203static int SkGeXmit(struct sk_buff *skb, struct SK_NET_DEVICE *dev); 203static int SkGeXmit(struct sk_buff *skb, struct SK_NET_DEVICE *dev);
@@ -880,7 +880,7 @@ int PortIndex) /* index of the port for which to re-init */
880 * Returns: N/A 880 * Returns: N/A
881 * 881 *
882 */ 882 */
883static SkIsrRetVar SkGeIsr(int irq, void *dev_id, struct pt_regs *ptregs) 883static SkIsrRetVar SkGeIsr(int irq, void *dev_id)
884{ 884{
885struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id; 885struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id;
886DEV_NET *pNet; 886DEV_NET *pNet;
@@ -1029,7 +1029,7 @@ SK_U32 IntSrc; /* interrupts source register contents */
1029 * Returns: N/A 1029 * Returns: N/A
1030 * 1030 *
1031 */ 1031 */
1032static SkIsrRetVar SkGeIsrOnePort(int irq, void *dev_id, struct pt_regs *ptregs) 1032static SkIsrRetVar SkGeIsrOnePort(int irq, void *dev_id)
1033{ 1033{
1034struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id; 1034struct SK_NET_DEVICE *dev = (struct SK_NET_DEVICE *)dev_id;
1035DEV_NET *pNet; 1035DEV_NET *pNet;
@@ -1140,7 +1140,7 @@ SK_U32 IntSrc; /* interrupts source register contents */
1140static void SkGePollController(struct net_device *dev) 1140static void SkGePollController(struct net_device *dev)
1141{ 1141{
1142 disable_irq(dev->irq); 1142 disable_irq(dev->irq);
1143 SkGeIsr(dev->irq, dev, NULL); 1143 SkGeIsr(dev->irq, dev);
1144 enable_irq(dev->irq); 1144 enable_irq(dev->irq);
1145} 1145}
1146#endif 1146#endif
diff --git a/drivers/net/sk_mca.c b/drivers/net/sk_mca.c
index 37b88da1abe5..96e06c51b75d 100644
--- a/drivers/net/sk_mca.c
+++ b/drivers/net/sk_mca.c
@@ -732,7 +732,7 @@ static u16 irqtx_handler(struct net_device *dev, u16 oldcsr0)
732 732
733/* general interrupt entry */ 733/* general interrupt entry */
734 734
735static irqreturn_t irq_handler(int irq, void *device, struct pt_regs *regs) 735static irqreturn_t irq_handler(int irq, void *device)
736{ 736{
737 struct net_device *dev = (struct net_device *) device; 737 struct net_device *dev = (struct net_device *) device;
738 u16 csr0val; 738 u16 csr0val;
diff --git a/drivers/net/skfp/skfddi.c b/drivers/net/skfp/skfddi.c
index 8e4d18440a56..9733a11c6146 100644
--- a/drivers/net/skfp/skfddi.c
+++ b/drivers/net/skfp/skfddi.c
@@ -101,7 +101,7 @@ static const char * const boot_msg =
101static int skfp_driver_init(struct net_device *dev); 101static int skfp_driver_init(struct net_device *dev);
102static int skfp_open(struct net_device *dev); 102static int skfp_open(struct net_device *dev);
103static int skfp_close(struct net_device *dev); 103static int skfp_close(struct net_device *dev);
104static irqreturn_t skfp_interrupt(int irq, void *dev_id, struct pt_regs *regs); 104static irqreturn_t skfp_interrupt(int irq, void *dev_id);
105static struct net_device_stats *skfp_ctl_get_stats(struct net_device *dev); 105static struct net_device_stats *skfp_ctl_get_stats(struct net_device *dev);
106static void skfp_ctl_set_multicast_list(struct net_device *dev); 106static void skfp_ctl_set_multicast_list(struct net_device *dev);
107static void skfp_ctl_set_multicast_list_wo_lock(struct net_device *dev); 107static void skfp_ctl_set_multicast_list_wo_lock(struct net_device *dev);
@@ -593,7 +593,6 @@ static int skfp_close(struct net_device *dev)
593 * Arguments: 593 * Arguments:
594 * irq - interrupt vector 594 * irq - interrupt vector
595 * dev_id - pointer to device information 595 * dev_id - pointer to device information
596 * regs - pointer to registers structure
597 * 596 *
598 * Functional Description: 597 * Functional Description:
599 * This routine calls the interrupt processing routine for this adapter. It 598 * This routine calls the interrupt processing routine for this adapter. It
@@ -615,17 +614,12 @@ static int skfp_close(struct net_device *dev)
615 * Interrupts are disabled, then reenabled at the adapter. 614 * Interrupts are disabled, then reenabled at the adapter.
616 */ 615 */
617 616
618irqreturn_t skfp_interrupt(int irq, void *dev_id, struct pt_regs *regs) 617irqreturn_t skfp_interrupt(int irq, void *dev_id)
619{ 618{
620 struct net_device *dev = (struct net_device *) dev_id; 619 struct net_device *dev = dev_id;
621 struct s_smc *smc; /* private board structure pointer */ 620 struct s_smc *smc; /* private board structure pointer */
622 skfddi_priv *bp; 621 skfddi_priv *bp;
623 622
624 if (dev == NULL) {
625 printk("%s: irq %d for unknown device\n", dev->name, irq);
626 return IRQ_NONE;
627 }
628
629 smc = netdev_priv(dev); 623 smc = netdev_priv(dev);
630 bp = &smc->os; 624 bp = &smc->os;
631 625
diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index 705e9a8fa30f..a4a58e4e93a1 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -3051,7 +3051,7 @@ static void skge_extirq(void *arg)
3051 spin_unlock_irq(&hw->hw_lock); 3051 spin_unlock_irq(&hw->hw_lock);
3052} 3052}
3053 3053
3054static irqreturn_t skge_intr(int irq, void *dev_id, struct pt_regs *regs) 3054static irqreturn_t skge_intr(int irq, void *dev_id)
3055{ 3055{
3056 struct skge_hw *hw = dev_id; 3056 struct skge_hw *hw = dev_id;
3057 u32 status; 3057 u32 status;
@@ -3125,7 +3125,7 @@ static void skge_netpoll(struct net_device *dev)
3125 struct skge_port *skge = netdev_priv(dev); 3125 struct skge_port *skge = netdev_priv(dev);
3126 3126
3127 disable_irq(dev->irq); 3127 disable_irq(dev->irq);
3128 skge_intr(dev->irq, skge->hw, NULL); 3128 skge_intr(dev->irq, skge->hw);
3129 enable_irq(dev->irq); 3129 enable_irq(dev->irq);
3130} 3130}
3131#endif 3131#endif
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c
index 68515150ff3b..5a5289b7a885 100644
--- a/drivers/net/sky2.c
+++ b/drivers/net/sky2.c
@@ -2364,7 +2364,7 @@ static int sky2_poll(struct net_device *dev0, int *budget)
2364 } 2364 }
2365} 2365}
2366 2366
2367static irqreturn_t sky2_intr(int irq, void *dev_id, struct pt_regs *regs) 2367static irqreturn_t sky2_intr(int irq, void *dev_id)
2368{ 2368{
2369 struct sky2_hw *hw = dev_id; 2369 struct sky2_hw *hw = dev_id;
2370 struct net_device *dev0 = hw->dev[0]; 2370 struct net_device *dev0 = hw->dev[0];
@@ -3298,8 +3298,7 @@ static void __devinit sky2_show_addr(struct net_device *dev)
3298} 3298}
3299 3299
3300/* Handle software interrupt used during MSI test */ 3300/* Handle software interrupt used during MSI test */
3301static irqreturn_t __devinit sky2_test_intr(int irq, void *dev_id, 3301static irqreturn_t __devinit sky2_test_intr(int irq, void *dev_id)
3302 struct pt_regs *regs)
3303{ 3302{
3304 struct sky2_hw *hw = dev_id; 3303 struct sky2_hw *hw = dev_id;
3305 u32 status = sky2_read32(hw, B0_Y2_SP_ISRC2); 3304 u32 status = sky2_read32(hw, B0_Y2_SP_ISRC2);
diff --git a/drivers/net/smc-ultra.c b/drivers/net/smc-ultra.c
index 7986514883ac..889ef0d7c374 100644
--- a/drivers/net/smc-ultra.c
+++ b/drivers/net/smc-ultra.c
@@ -127,7 +127,7 @@ MODULE_DEVICE_TABLE(isapnp, ultra_device_ids);
127static void ultra_poll(struct net_device *dev) 127static void ultra_poll(struct net_device *dev)
128{ 128{
129 disable_irq(dev->irq); 129 disable_irq(dev->irq);
130 ei_interrupt(dev->irq, dev, NULL); 130 ei_interrupt(dev->irq, dev);
131 enable_irq(dev->irq); 131 enable_irq(dev->irq);
132} 132}
133#endif 133#endif
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index a621b17456e5..2c4343395a4d 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -1074,7 +1074,7 @@ static void smc911x_phy_interrupt(struct net_device *dev)
1074 * This is the main routine of the driver, to handle the device when 1074 * This is the main routine of the driver, to handle the device when
1075 * it needs some attention. 1075 * it needs some attention.
1076 */ 1076 */
1077static irqreturn_t smc911x_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1077static irqreturn_t smc911x_interrupt(int irq, void *dev_id)
1078{ 1078{
1079 struct net_device *dev = dev_id; 1079 struct net_device *dev = dev_id;
1080 unsigned long ioaddr = dev->base_addr; 1080 unsigned long ioaddr = dev->base_addr;
@@ -1251,7 +1251,7 @@ static irqreturn_t smc911x_interrupt(int irq, void *dev_id, struct pt_regs *regs
1251 1251
1252#ifdef SMC_USE_DMA 1252#ifdef SMC_USE_DMA
1253static void 1253static void
1254smc911x_tx_dma_irq(int dma, void *data, struct pt_regs *regs) 1254smc911x_tx_dma_irq(int dma, void *data)
1255{ 1255{
1256 struct net_device *dev = (struct net_device *)data; 1256 struct net_device *dev = (struct net_device *)data;
1257 struct smc911x_local *lp = netdev_priv(dev); 1257 struct smc911x_local *lp = netdev_priv(dev);
@@ -1285,7 +1285,7 @@ smc911x_tx_dma_irq(int dma, void *data, struct pt_regs *regs)
1285 "%s: TX DMA irq completed\n", dev->name); 1285 "%s: TX DMA irq completed\n", dev->name);
1286} 1286}
1287static void 1287static void
1288smc911x_rx_dma_irq(int dma, void *data, struct pt_regs *regs) 1288smc911x_rx_dma_irq(int dma, void *data)
1289{ 1289{
1290 struct net_device *dev = (struct net_device *)data; 1290 struct net_device *dev = (struct net_device *)data;
1291 unsigned long ioaddr = dev->base_addr; 1291 unsigned long ioaddr = dev->base_addr;
diff --git a/drivers/net/smc9194.c b/drivers/net/smc9194.c
index 5506a0d3efe2..c0d13d650913 100644
--- a/drivers/net/smc9194.c
+++ b/drivers/net/smc9194.c
@@ -270,7 +270,7 @@ static void smc_set_multicast_list(struct net_device *dev);
270/* 270/*
271 . Handles the actual interrupt 271 . Handles the actual interrupt
272*/ 272*/
273static irqreturn_t smc_interrupt(int irq, void *, struct pt_regs *regs); 273static irqreturn_t smc_interrupt(int irq, void *);
274/* 274/*
275 . This is a separate procedure to handle the receipt of a packet, to 275 . This is a separate procedure to handle the receipt of a packet, to
276 . leave the interrupt code looking slightly cleaner 276 . leave the interrupt code looking slightly cleaner
@@ -1391,7 +1391,7 @@ static void smc_tx( struct net_device * dev )
1391 . 1391 .
1392 ---------------------------------------------------------------------*/ 1392 ---------------------------------------------------------------------*/
1393 1393
1394static irqreturn_t smc_interrupt(int irq, void * dev_id, struct pt_regs * regs) 1394static irqreturn_t smc_interrupt(int irq, void * dev_id)
1395{ 1395{
1396 struct net_device *dev = dev_id; 1396 struct net_device *dev = dev_id;
1397 int ioaddr = dev->base_addr; 1397 int ioaddr = dev->base_addr;
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index d7e56438b5d6..95b6478f55c6 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -1284,7 +1284,7 @@ static void smc_eph_interrupt(struct net_device *dev)
1284 * This is the main routine of the driver, to handle the device when 1284 * This is the main routine of the driver, to handle the device when
1285 * it needs some attention. 1285 * it needs some attention.
1286 */ 1286 */
1287static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1287static irqreturn_t smc_interrupt(int irq, void *dev_id)
1288{ 1288{
1289 struct net_device *dev = dev_id; 1289 struct net_device *dev = dev_id;
1290 struct smc_local *lp = netdev_priv(dev); 1290 struct smc_local *lp = netdev_priv(dev);
@@ -1400,7 +1400,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1400static void smc_poll_controller(struct net_device *dev) 1400static void smc_poll_controller(struct net_device *dev)
1401{ 1401{
1402 disable_irq(dev->irq); 1402 disable_irq(dev->irq);
1403 smc_interrupt(dev->irq, dev, NULL); 1403 smc_interrupt(dev->irq, dev);
1404 enable_irq(dev->irq); 1404 enable_irq(dev->irq);
1405} 1405}
1406#endif 1406#endif
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h
index fedd1a37bc3e..636dbfcdf8cb 100644
--- a/drivers/net/smc91x.h
+++ b/drivers/net/smc91x.h
@@ -507,7 +507,7 @@ smc_pxa_dma_insw(void __iomem *ioaddr, u_long physaddr, int reg, int dma,
507#endif 507#endif
508 508
509static void 509static void
510smc_pxa_dma_irq(int dma, void *dummy, struct pt_regs *regs) 510smc_pxa_dma_irq(int dma, void *dummy)
511{ 511{
512 DCSR(dma) = 0; 512 DCSR(dma) = 0;
513} 513}
diff --git a/drivers/net/sonic.c b/drivers/net/sonic.c
index 870cf6b07389..ed7aa0a5acca 100644
--- a/drivers/net/sonic.c
+++ b/drivers/net/sonic.c
@@ -293,17 +293,12 @@ static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev)
293 * The typical workload of the driver: 293 * The typical workload of the driver:
294 * Handle the network interface interrupts. 294 * Handle the network interface interrupts.
295 */ 295 */
296static irqreturn_t sonic_interrupt(int irq, void *dev_id, struct pt_regs *regs) 296static irqreturn_t sonic_interrupt(int irq, void *dev_id)
297{ 297{
298 struct net_device *dev = (struct net_device *) dev_id; 298 struct net_device *dev = dev_id;
299 struct sonic_local *lp = netdev_priv(dev); 299 struct sonic_local *lp = netdev_priv(dev);
300 int status; 300 int status;
301 301
302 if (dev == NULL) {
303 printk(KERN_ERR "sonic_interrupt: irq %d for unknown device.\n", irq);
304 return IRQ_NONE;
305 }
306
307 if (!(status = SONIC_READ(SONIC_ISR) & SONIC_IMR_DEFAULT)) 302 if (!(status = SONIC_READ(SONIC_ISR) & SONIC_IMR_DEFAULT))
308 return IRQ_NONE; 303 return IRQ_NONE;
309 304
diff --git a/drivers/net/sonic.h b/drivers/net/sonic.h
index 7f886e8ae28f..7db13e4a7ea5 100644
--- a/drivers/net/sonic.h
+++ b/drivers/net/sonic.h
@@ -328,7 +328,7 @@ struct sonic_local {
328 328
329static int sonic_open(struct net_device *dev); 329static int sonic_open(struct net_device *dev);
330static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev); 330static int sonic_send_packet(struct sk_buff *skb, struct net_device *dev);
331static irqreturn_t sonic_interrupt(int irq, void *dev_id, struct pt_regs *regs); 331static irqreturn_t sonic_interrupt(int irq, void *dev_id);
332static void sonic_rx(struct net_device *dev); 332static void sonic_rx(struct net_device *dev);
333static int sonic_close(struct net_device *dev); 333static int sonic_close(struct net_device *dev);
334static struct net_device_stats *sonic_get_stats(struct net_device *dev); 334static struct net_device_stats *sonic_get_stats(struct net_device *dev);
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index 1397fc55cf68..46a009085f7c 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1445,7 +1445,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg)
1445 * interrupts for this device and makes the stack poll the driver 1445 * interrupts for this device and makes the stack poll the driver
1446 */ 1446 */
1447static irqreturn_t 1447static irqreturn_t
1448spider_net_interrupt(int irq, void *ptr, struct pt_regs *regs) 1448spider_net_interrupt(int irq, void *ptr)
1449{ 1449{
1450 struct net_device *netdev = ptr; 1450 struct net_device *netdev = ptr;
1451 struct spider_net_card *card = netdev_priv(netdev); 1451 struct spider_net_card *card = netdev_priv(netdev);
@@ -1481,7 +1481,7 @@ static void
1481spider_net_poll_controller(struct net_device *netdev) 1481spider_net_poll_controller(struct net_device *netdev)
1482{ 1482{
1483 disable_irq(netdev->irq); 1483 disable_irq(netdev->irq);
1484 spider_net_interrupt(netdev->irq, netdev, NULL); 1484 spider_net_interrupt(netdev->irq, netdev);
1485 enable_irq(netdev->irq); 1485 enable_irq(netdev->irq);
1486} 1486}
1487#endif /* CONFIG_NET_POLL_CONTROLLER */ 1487#endif /* CONFIG_NET_POLL_CONTROLLER */
diff --git a/drivers/net/starfire.c b/drivers/net/starfire.c
index 3d617e8f54b5..7a0aee6c869d 100644
--- a/drivers/net/starfire.c
+++ b/drivers/net/starfire.c
@@ -632,7 +632,7 @@ static void check_duplex(struct net_device *dev);
632static void tx_timeout(struct net_device *dev); 632static void tx_timeout(struct net_device *dev);
633static void init_ring(struct net_device *dev); 633static void init_ring(struct net_device *dev);
634static int start_tx(struct sk_buff *skb, struct net_device *dev); 634static int start_tx(struct sk_buff *skb, struct net_device *dev);
635static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs); 635static irqreturn_t intr_handler(int irq, void *dev_instance);
636static void netdev_error(struct net_device *dev, int intr_status); 636static void netdev_error(struct net_device *dev, int intr_status);
637static int __netdev_rx(struct net_device *dev, int *quota); 637static int __netdev_rx(struct net_device *dev, int *quota);
638static void refill_rx_ring(struct net_device *dev); 638static void refill_rx_ring(struct net_device *dev);
@@ -1307,7 +1307,7 @@ static int start_tx(struct sk_buff *skb, struct net_device *dev)
1307 1307
1308/* The interrupt handler does all of the Rx thread work and cleans up 1308/* The interrupt handler does all of the Rx thread work and cleans up
1309 after the Tx thread. */ 1309 after the Tx thread. */
1310static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs) 1310static irqreturn_t intr_handler(int irq, void *dev_instance)
1311{ 1311{
1312 struct net_device *dev = dev_instance; 1312 struct net_device *dev = dev_instance;
1313 struct netdev_private *np = netdev_priv(dev); 1313 struct netdev_private *np = netdev_priv(dev);
diff --git a/drivers/net/sun3_82586.c b/drivers/net/sun3_82586.c
index 0605461bc56d..d1d1885b0295 100644
--- a/drivers/net/sun3_82586.c
+++ b/drivers/net/sun3_82586.c
@@ -122,7 +122,7 @@ sizeof(nop_cmd) = 8;
122 DELAY_16(); DELAY_16(); } } 122 DELAY_16(); DELAY_16(); } }
123 123
124static int sun3_82586_probe1(struct net_device *dev,int ioaddr); 124static int sun3_82586_probe1(struct net_device *dev,int ioaddr);
125static irqreturn_t sun3_82586_interrupt(int irq,void *dev_id,struct pt_regs *reg_ptr); 125static irqreturn_t sun3_82586_interrupt(int irq,void *dev_id);
126static int sun3_82586_open(struct net_device *dev); 126static int sun3_82586_open(struct net_device *dev);
127static int sun3_82586_close(struct net_device *dev); 127static int sun3_82586_close(struct net_device *dev);
128static int sun3_82586_send_packet(struct sk_buff *,struct net_device *); 128static int sun3_82586_send_packet(struct sk_buff *,struct net_device *);
@@ -678,7 +678,7 @@ static void *alloc_rfa(struct net_device *dev,void *ptr)
678 * Interrupt Handler ... 678 * Interrupt Handler ...
679 */ 679 */
680 680
681static irqreturn_t sun3_82586_interrupt(int irq,void *dev_id,struct pt_regs *reg_ptr) 681static irqreturn_t sun3_82586_interrupt(int irq,void *dev_id)
682{ 682{
683 struct net_device *dev = dev_id; 683 struct net_device *dev = dev_id;
684 unsigned short stat; 684 unsigned short stat;
diff --git a/drivers/net/sun3lance.c b/drivers/net/sun3lance.c
index 61a832ce7ccf..91c76544e4dd 100644
--- a/drivers/net/sun3lance.c
+++ b/drivers/net/sun3lance.c
@@ -237,7 +237,7 @@ static int lance_probe( struct net_device *dev);
237static int lance_open( struct net_device *dev ); 237static int lance_open( struct net_device *dev );
238static void lance_init_ring( struct net_device *dev ); 238static void lance_init_ring( struct net_device *dev );
239static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev ); 239static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev );
240static irqreturn_t lance_interrupt( int irq, void *dev_id, struct pt_regs *fp ); 240static irqreturn_t lance_interrupt( int irq, void *dev_id);
241static int lance_rx( struct net_device *dev ); 241static int lance_rx( struct net_device *dev );
242static int lance_close( struct net_device *dev ); 242static int lance_close( struct net_device *dev );
243static struct net_device_stats *lance_get_stats( struct net_device *dev ); 243static struct net_device_stats *lance_get_stats( struct net_device *dev );
@@ -642,7 +642,7 @@ static int lance_start_xmit( struct sk_buff *skb, struct net_device *dev )
642 642
643/* The LANCE interrupt handler. */ 643/* The LANCE interrupt handler. */
644 644
645static irqreturn_t lance_interrupt( int irq, void *dev_id, struct pt_regs *fp) 645static irqreturn_t lance_interrupt( int irq, void *dev_id)
646{ 646{
647 struct net_device *dev = dev_id; 647 struct net_device *dev = dev_id;
648 struct lance_private *lp = netdev_priv(dev); 648 struct lance_private *lp = netdev_priv(dev);
diff --git a/drivers/net/sunbmac.c b/drivers/net/sunbmac.c
index 9e4be86495a0..6439b0cef1e4 100644
--- a/drivers/net/sunbmac.c
+++ b/drivers/net/sunbmac.c
@@ -888,7 +888,7 @@ static void bigmac_rx(struct bigmac *bp)
888 printk(KERN_NOTICE "%s: Memory squeeze, deferring packet.\n", bp->dev->name); 888 printk(KERN_NOTICE "%s: Memory squeeze, deferring packet.\n", bp->dev->name);
889} 889}
890 890
891static irqreturn_t bigmac_interrupt(int irq, void *dev_id, struct pt_regs *regs) 891static irqreturn_t bigmac_interrupt(int irq, void *dev_id)
892{ 892{
893 struct bigmac *bp = (struct bigmac *) dev_id; 893 struct bigmac *bp = (struct bigmac *) dev_id;
894 u32 qec_status, bmac_status; 894 u32 qec_status, bmac_status;
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index 6b8f4baf87fd..41c503d8bac4 100644
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -420,7 +420,7 @@ static void tx_timeout(struct net_device *dev);
420static void init_ring(struct net_device *dev); 420static void init_ring(struct net_device *dev);
421static int start_tx(struct sk_buff *skb, struct net_device *dev); 421static int start_tx(struct sk_buff *skb, struct net_device *dev);
422static int reset_tx (struct net_device *dev); 422static int reset_tx (struct net_device *dev);
423static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs); 423static irqreturn_t intr_handler(int irq, void *dev_instance);
424static void rx_poll(unsigned long data); 424static void rx_poll(unsigned long data);
425static void tx_poll(unsigned long data); 425static void tx_poll(unsigned long data);
426static void refill_rx (struct net_device *dev); 426static void refill_rx (struct net_device *dev);
@@ -1102,7 +1102,7 @@ reset_tx (struct net_device *dev)
1102 1102
1103/* The interrupt handler cleans up after the Tx thread, 1103/* The interrupt handler cleans up after the Tx thread,
1104 and schedule a Rx thread work */ 1104 and schedule a Rx thread work */
1105static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs) 1105static irqreturn_t intr_handler(int irq, void *dev_instance)
1106{ 1106{
1107 struct net_device *dev = (struct net_device *)dev_instance; 1107 struct net_device *dev = (struct net_device *)dev_instance;
1108 struct netdev_private *np = netdev_priv(dev); 1108 struct netdev_private *np = netdev_priv(dev);
diff --git a/drivers/net/sungem.c b/drivers/net/sungem.c
index 0975695ae31b..253e96e7ad20 100644
--- a/drivers/net/sungem.c
+++ b/drivers/net/sungem.c
@@ -932,7 +932,7 @@ static int gem_poll(struct net_device *dev, int *budget)
932 return 0; 932 return 0;
933} 933}
934 934
935static irqreturn_t gem_interrupt(int irq, void *dev_id, struct pt_regs *regs) 935static irqreturn_t gem_interrupt(int irq, void *dev_id)
936{ 936{
937 struct net_device *dev = dev_id; 937 struct net_device *dev = dev_id;
938 struct gem *gp = dev->priv; 938 struct gem *gp = dev->priv;
@@ -975,7 +975,7 @@ static void gem_poll_controller(struct net_device *dev)
975 /* gem_interrupt is safe to reentrance so no need 975 /* gem_interrupt is safe to reentrance so no need
976 * to disable_irq here. 976 * to disable_irq here.
977 */ 977 */
978 gem_interrupt(dev->irq, dev, NULL); 978 gem_interrupt(dev->irq, dev);
979} 979}
980#endif 980#endif
981 981
diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
index f05eea53623b..9d7cd130c19d 100644
--- a/drivers/net/sunhme.c
+++ b/drivers/net/sunhme.c
@@ -2093,10 +2093,10 @@ static void happy_meal_rx(struct happy_meal *hp, struct net_device *dev)
2093 RXD((">")); 2093 RXD((">"));
2094} 2094}
2095 2095
2096static irqreturn_t happy_meal_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2096static irqreturn_t happy_meal_interrupt(int irq, void *dev_id)
2097{ 2097{
2098 struct net_device *dev = (struct net_device *) dev_id; 2098 struct net_device *dev = dev_id;
2099 struct happy_meal *hp = dev->priv; 2099 struct happy_meal *hp = netdev_priv(dev);
2100 u32 happy_status = hme_read32(hp, hp->gregs + GREG_STAT); 2100 u32 happy_status = hme_read32(hp, hp->gregs + GREG_STAT);
2101 2101
2102 HMD(("happy_meal_interrupt: status=%08x ", happy_status)); 2102 HMD(("happy_meal_interrupt: status=%08x ", happy_status));
@@ -2132,7 +2132,7 @@ out:
2132} 2132}
2133 2133
2134#ifdef CONFIG_SBUS 2134#ifdef CONFIG_SBUS
2135static irqreturn_t quattro_sbus_interrupt(int irq, void *cookie, struct pt_regs *ptregs) 2135static irqreturn_t quattro_sbus_interrupt(int irq, void *cookie)
2136{ 2136{
2137 struct quattro *qp = (struct quattro *) cookie; 2137 struct quattro *qp = (struct quattro *) cookie;
2138 int i; 2138 int i;
diff --git a/drivers/net/sunlance.c b/drivers/net/sunlance.c
index feb42db10ee1..5b00d79b5573 100644
--- a/drivers/net/sunlance.c
+++ b/drivers/net/sunlance.c
@@ -820,9 +820,9 @@ out:
820 spin_unlock(&lp->lock); 820 spin_unlock(&lp->lock);
821} 821}
822 822
823static irqreturn_t lance_interrupt(int irq, void *dev_id, struct pt_regs *regs) 823static irqreturn_t lance_interrupt(int irq, void *dev_id)
824{ 824{
825 struct net_device *dev = (struct net_device *)dev_id; 825 struct net_device *dev = dev_id;
826 struct lance_private *lp = netdev_priv(dev); 826 struct lance_private *lp = netdev_priv(dev);
827 int csr0; 827 int csr0;
828 828
diff --git a/drivers/net/sunqe.c b/drivers/net/sunqe.c
index 9202a1c369dd..7874eb1ef043 100644
--- a/drivers/net/sunqe.c
+++ b/drivers/net/sunqe.c
@@ -466,9 +466,9 @@ static void qe_tx_reclaim(struct sunqe *qep);
466 * so we just run through each qe and check to see who is signaling 466 * so we just run through each qe and check to see who is signaling
467 * and thus needs to be serviced. 467 * and thus needs to be serviced.
468 */ 468 */
469static irqreturn_t qec_interrupt(int irq, void *dev_id, struct pt_regs *regs) 469static irqreturn_t qec_interrupt(int irq, void *dev_id)
470{ 470{
471 struct sunqec *qecp = (struct sunqec *) dev_id; 471 struct sunqec *qecp = dev_id;
472 u32 qec_status; 472 u32 qec_status;
473 int channel = 0; 473 int channel = 0;
474 474
diff --git a/drivers/net/tc35815.c b/drivers/net/tc35815.c
index 60f026509487..81ed82f0b520 100644
--- a/drivers/net/tc35815.c
+++ b/drivers/net/tc35815.c
@@ -453,7 +453,7 @@ static int __devinit tc35815_probe1(struct pci_dev *pdev, unsigned int base_addr
453static int tc35815_open(struct net_device *dev); 453static int tc35815_open(struct net_device *dev);
454static int tc35815_send_packet(struct sk_buff *skb, struct net_device *dev); 454static int tc35815_send_packet(struct sk_buff *skb, struct net_device *dev);
455static void tc35815_tx_timeout(struct net_device *dev); 455static void tc35815_tx_timeout(struct net_device *dev);
456static irqreturn_t tc35815_interrupt(int irq, void *dev_id, struct pt_regs *regs); 456static irqreturn_t tc35815_interrupt(int irq, void *dev_id);
457static void tc35815_rx(struct net_device *dev); 457static void tc35815_rx(struct net_device *dev);
458static void tc35815_txdone(struct net_device *dev); 458static void tc35815_txdone(struct net_device *dev);
459static int tc35815_close(struct net_device *dev); 459static int tc35815_close(struct net_device *dev);
@@ -1044,7 +1044,7 @@ static void tc35815_fatal_error_interrupt(struct net_device *dev, int status)
1044 * The typical workload of the driver: 1044 * The typical workload of the driver:
1045 * Handle the network interface interrupts. 1045 * Handle the network interface interrupts.
1046 */ 1046 */
1047static irqreturn_t tc35815_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1047static irqreturn_t tc35815_interrupt(int irq, void *dev_id)
1048{ 1048{
1049 struct net_device *dev = dev_id; 1049 struct net_device *dev = dev_id;
1050 struct tc35815_regs *tr; 1050 struct tc35815_regs *tr;
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index c25ba273b745..327836b1014e 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -3481,7 +3481,7 @@ static inline void tg3_full_unlock(struct tg3 *tp)
3481/* One-shot MSI handler - Chip automatically disables interrupt 3481/* One-shot MSI handler - Chip automatically disables interrupt
3482 * after sending MSI so driver doesn't have to do it. 3482 * after sending MSI so driver doesn't have to do it.
3483 */ 3483 */
3484static irqreturn_t tg3_msi_1shot(int irq, void *dev_id, struct pt_regs *regs) 3484static irqreturn_t tg3_msi_1shot(int irq, void *dev_id)
3485{ 3485{
3486 struct net_device *dev = dev_id; 3486 struct net_device *dev = dev_id;
3487 struct tg3 *tp = netdev_priv(dev); 3487 struct tg3 *tp = netdev_priv(dev);
@@ -3499,7 +3499,7 @@ static irqreturn_t tg3_msi_1shot(int irq, void *dev_id, struct pt_regs *regs)
3499 * flush status block and interrupt mailbox. PCI ordering rules 3499 * flush status block and interrupt mailbox. PCI ordering rules
3500 * guarantee that MSI will arrive after the status block. 3500 * guarantee that MSI will arrive after the status block.
3501 */ 3501 */
3502static irqreturn_t tg3_msi(int irq, void *dev_id, struct pt_regs *regs) 3502static irqreturn_t tg3_msi(int irq, void *dev_id)
3503{ 3503{
3504 struct net_device *dev = dev_id; 3504 struct net_device *dev = dev_id;
3505 struct tg3 *tp = netdev_priv(dev); 3505 struct tg3 *tp = netdev_priv(dev);
@@ -3520,7 +3520,7 @@ static irqreturn_t tg3_msi(int irq, void *dev_id, struct pt_regs *regs)
3520 return IRQ_RETVAL(1); 3520 return IRQ_RETVAL(1);
3521} 3521}
3522 3522
3523static irqreturn_t tg3_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3523static irqreturn_t tg3_interrupt(int irq, void *dev_id)
3524{ 3524{
3525 struct net_device *dev = dev_id; 3525 struct net_device *dev = dev_id;
3526 struct tg3 *tp = netdev_priv(dev); 3526 struct tg3 *tp = netdev_priv(dev);
@@ -3563,7 +3563,7 @@ out:
3563 return IRQ_RETVAL(handled); 3563 return IRQ_RETVAL(handled);
3564} 3564}
3565 3565
3566static irqreturn_t tg3_interrupt_tagged(int irq, void *dev_id, struct pt_regs *regs) 3566static irqreturn_t tg3_interrupt_tagged(int irq, void *dev_id)
3567{ 3567{
3568 struct net_device *dev = dev_id; 3568 struct net_device *dev = dev_id;
3569 struct tg3 *tp = netdev_priv(dev); 3569 struct tg3 *tp = netdev_priv(dev);
@@ -3606,8 +3606,7 @@ out:
3606} 3606}
3607 3607
3608/* ISR for interrupt test */ 3608/* ISR for interrupt test */
3609static irqreturn_t tg3_test_isr(int irq, void *dev_id, 3609static irqreturn_t tg3_test_isr(int irq, void *dev_id)
3610 struct pt_regs *regs)
3611{ 3610{
3612 struct net_device *dev = dev_id; 3611 struct net_device *dev = dev_id;
3613 struct tg3 *tp = netdev_priv(dev); 3612 struct tg3 *tp = netdev_priv(dev);
@@ -3651,7 +3650,7 @@ static void tg3_poll_controller(struct net_device *dev)
3651{ 3650{
3652 struct tg3 *tp = netdev_priv(dev); 3651 struct tg3 *tp = netdev_priv(dev);
3653 3652
3654 tg3_interrupt(tp->pdev->irq, dev, NULL); 3653 tg3_interrupt(tp->pdev->irq, dev);
3655} 3654}
3656#endif 3655#endif
3657 3656
@@ -6838,7 +6837,7 @@ restart_timer:
6838 6837
6839static int tg3_request_irq(struct tg3 *tp) 6838static int tg3_request_irq(struct tg3 *tp)
6840{ 6839{
6841 irqreturn_t (*fn)(int, void *, struct pt_regs *); 6840 irq_handler_t fn;
6842 unsigned long flags; 6841 unsigned long flags;
6843 struct net_device *dev = tp->dev; 6842 struct net_device *dev = tp->dev;
6844 6843
diff --git a/drivers/net/tlan.c b/drivers/net/tlan.c
index 8d807bf603a0..e14f5a00f65a 100644
--- a/drivers/net/tlan.c
+++ b/drivers/net/tlan.c
@@ -289,7 +289,7 @@ static void TLan_Eisa_Cleanup( void );
289static int TLan_Init( struct net_device * ); 289static int TLan_Init( struct net_device * );
290static int TLan_Open( struct net_device *dev ); 290static int TLan_Open( struct net_device *dev );
291static int TLan_StartTx( struct sk_buff *, struct net_device *); 291static int TLan_StartTx( struct sk_buff *, struct net_device *);
292static irqreturn_t TLan_HandleInterrupt( int, void *, struct pt_regs *); 292static irqreturn_t TLan_HandleInterrupt( int, void *);
293static int TLan_Close( struct net_device *); 293static int TLan_Close( struct net_device *);
294static struct net_device_stats *TLan_GetStats( struct net_device *); 294static struct net_device_stats *TLan_GetStats( struct net_device *);
295static void TLan_SetMulticastList( struct net_device *); 295static void TLan_SetMulticastList( struct net_device *);
@@ -824,7 +824,7 @@ static void __init TLan_EisaProbe (void)
824static void TLan_Poll(struct net_device *dev) 824static void TLan_Poll(struct net_device *dev)
825{ 825{
826 disable_irq(dev->irq); 826 disable_irq(dev->irq);
827 TLan_HandleInterrupt(dev->irq, dev, NULL); 827 TLan_HandleInterrupt(dev->irq, dev);
828 enable_irq(dev->irq); 828 enable_irq(dev->irq);
829} 829}
830#endif 830#endif
@@ -1151,7 +1151,6 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
1151 * occurred. 1151 * occurred.
1152 * dev_id A pointer to the device assigned to 1152 * dev_id A pointer to the device assigned to
1153 * this irq line. 1153 * this irq line.
1154 * regs ???
1155 * 1154 *
1156 * This function handles an interrupt generated by its 1155 * This function handles an interrupt generated by its
1157 * assigned TLAN adapter. The function deactivates 1156 * assigned TLAN adapter. The function deactivates
@@ -1162,7 +1161,7 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
1162 * 1161 *
1163 **************************************************************/ 1162 **************************************************************/
1164 1163
1165static irqreturn_t TLan_HandleInterrupt(int irq, void *dev_id, struct pt_regs *regs) 1164static irqreturn_t TLan_HandleInterrupt(int irq, void *dev_id)
1166{ 1165{
1167 u32 ack; 1166 u32 ack;
1168 struct net_device *dev; 1167 struct net_device *dev;
diff --git a/drivers/net/tokenring/3c359.c b/drivers/net/tokenring/3c359.c
index 412390ba142e..7580bdeacadc 100644
--- a/drivers/net/tokenring/3c359.c
+++ b/drivers/net/tokenring/3c359.c
@@ -130,7 +130,7 @@ static int xl_xmit(struct sk_buff *skb, struct net_device *dev);
130static void xl_dn_comp(struct net_device *dev); 130static void xl_dn_comp(struct net_device *dev);
131static int xl_close(struct net_device *dev); 131static int xl_close(struct net_device *dev);
132static void xl_set_rx_mode(struct net_device *dev); 132static void xl_set_rx_mode(struct net_device *dev);
133static irqreturn_t xl_interrupt(int irq, void *dev_id, struct pt_regs *regs); 133static irqreturn_t xl_interrupt(int irq, void *dev_id);
134static struct net_device_stats * xl_get_stats(struct net_device *dev); 134static struct net_device_stats * xl_get_stats(struct net_device *dev);
135static int xl_set_mac_address(struct net_device *dev, void *addr) ; 135static int xl_set_mac_address(struct net_device *dev, void *addr) ;
136static void xl_arb_cmd(struct net_device *dev); 136static void xl_arb_cmd(struct net_device *dev);
@@ -1042,7 +1042,7 @@ static void xl_freemem(struct net_device *dev)
1042 return ; 1042 return ;
1043} 1043}
1044 1044
1045static irqreturn_t xl_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1045static irqreturn_t xl_interrupt(int irq, void *dev_id)
1046{ 1046{
1047 struct net_device *dev = (struct net_device *)dev_id; 1047 struct net_device *dev = (struct net_device *)dev_id;
1048 struct xl_private *xl_priv =(struct xl_private *)dev->priv; 1048 struct xl_private *xl_priv =(struct xl_private *)dev->priv;
diff --git a/drivers/net/tokenring/ibmtr.c b/drivers/net/tokenring/ibmtr.c
index 4470025ff7f8..bfe59865b1dd 100644
--- a/drivers/net/tokenring/ibmtr.c
+++ b/drivers/net/tokenring/ibmtr.c
@@ -197,7 +197,7 @@ static void open_sap(unsigned char type, struct net_device *dev);
197static void tok_set_multicast_list(struct net_device *dev); 197static void tok_set_multicast_list(struct net_device *dev);
198static int tok_send_packet(struct sk_buff *skb, struct net_device *dev); 198static int tok_send_packet(struct sk_buff *skb, struct net_device *dev);
199static int tok_close(struct net_device *dev); 199static int tok_close(struct net_device *dev);
200static irqreturn_t tok_interrupt(int irq, void *dev_id, struct pt_regs *regs); 200static irqreturn_t tok_interrupt(int irq, void *dev_id);
201static void initial_tok_int(struct net_device *dev); 201static void initial_tok_int(struct net_device *dev);
202static void tr_tx(struct net_device *dev); 202static void tr_tx(struct net_device *dev);
203static void tr_rx(struct net_device *dev); 203static void tr_rx(struct net_device *dev);
@@ -1166,7 +1166,7 @@ static void dir_open_adapter (struct net_device *dev)
1166 1166
1167/******************************************************************************/ 1167/******************************************************************************/
1168 1168
1169static irqreturn_t tok_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1169static irqreturn_t tok_interrupt(int irq, void *dev_id)
1170{ 1170{
1171 unsigned char status; 1171 unsigned char status;
1172 /* unsigned char status_even ; */ 1172 /* unsigned char status_even ; */
@@ -1178,7 +1178,7 @@ static irqreturn_t tok_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1178 1178
1179 dev = dev_id; 1179 dev = dev_id;
1180#if TR_VERBOSE 1180#if TR_VERBOSE
1181 DPRINTK("Int from tok_driver, dev : %p irq%d regs=%p\n", dev,irq,regs); 1181 DPRINTK("Int from tok_driver, dev : %p irq%d\n", dev,irq);
1182#endif 1182#endif
1183 ti = (struct tok_info *) dev->priv; 1183 ti = (struct tok_info *) dev->priv;
1184 if (ti->sram_phys & 1) 1184 if (ti->sram_phys & 1)
diff --git a/drivers/net/tokenring/lanstreamer.c b/drivers/net/tokenring/lanstreamer.c
index bfc8c3eae9a1..e999feb8c0bb 100644
--- a/drivers/net/tokenring/lanstreamer.c
+++ b/drivers/net/tokenring/lanstreamer.c
@@ -206,8 +206,7 @@ static int streamer_open(struct net_device *dev);
206static int streamer_xmit(struct sk_buff *skb, struct net_device *dev); 206static int streamer_xmit(struct sk_buff *skb, struct net_device *dev);
207static int streamer_close(struct net_device *dev); 207static int streamer_close(struct net_device *dev);
208static void streamer_set_rx_mode(struct net_device *dev); 208static void streamer_set_rx_mode(struct net_device *dev);
209static irqreturn_t streamer_interrupt(int irq, void *dev_id, 209static irqreturn_t streamer_interrupt(int irq, void *dev_id);
210 struct pt_regs *regs);
211static struct net_device_stats *streamer_get_stats(struct net_device *dev); 210static struct net_device_stats *streamer_get_stats(struct net_device *dev);
212static int streamer_set_mac_address(struct net_device *dev, void *addr); 211static int streamer_set_mac_address(struct net_device *dev, void *addr);
213static void streamer_arb_cmd(struct net_device *dev); 212static void streamer_arb_cmd(struct net_device *dev);
@@ -1028,7 +1027,7 @@ static void streamer_rx(struct net_device *dev)
1028 } /* end for all completed rx descriptors */ 1027 } /* end for all completed rx descriptors */
1029} 1028}
1030 1029
1031static irqreturn_t streamer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1030static irqreturn_t streamer_interrupt(int irq, void *dev_id)
1032{ 1031{
1033 struct net_device *dev = (struct net_device *) dev_id; 1032 struct net_device *dev = (struct net_device *) dev_id;
1034 struct streamer_private *streamer_priv = 1033 struct streamer_private *streamer_priv =
diff --git a/drivers/net/tokenring/madgemc.c b/drivers/net/tokenring/madgemc.c
index 666bbaaae82f..ed274d6909d0 100644
--- a/drivers/net/tokenring/madgemc.c
+++ b/drivers/net/tokenring/madgemc.c
@@ -70,7 +70,7 @@ static void madgemc_setregpage(struct net_device *dev, int page);
70static void madgemc_setsifsel(struct net_device *dev, int val); 70static void madgemc_setsifsel(struct net_device *dev, int val);
71static void madgemc_setint(struct net_device *dev, int val); 71static void madgemc_setint(struct net_device *dev, int val);
72 72
73static irqreturn_t madgemc_interrupt(int irq, void *dev_id, struct pt_regs *regs); 73static irqreturn_t madgemc_interrupt(int irq, void *dev_id);
74 74
75/* 75/*
76 * These work around paging, however they don't guarentee you're on the 76 * These work around paging, however they don't guarentee you're on the
@@ -417,7 +417,7 @@ getout:
417 * exhausted all contiguous interrupts. 417 * exhausted all contiguous interrupts.
418 * 418 *
419 */ 419 */
420static irqreturn_t madgemc_interrupt(int irq, void *dev_id, struct pt_regs *regs) 420static irqreturn_t madgemc_interrupt(int irq, void *dev_id)
421{ 421{
422 int pending,reg1; 422 int pending,reg1;
423 struct net_device *dev; 423 struct net_device *dev;
@@ -451,7 +451,7 @@ static irqreturn_t madgemc_interrupt(int irq, void *dev_id, struct pt_regs *regs
451 outb(reg1, dev->base_addr + MC_CONTROL_REG1); 451 outb(reg1, dev->base_addr + MC_CONTROL_REG1);
452 452
453 /* Continue handling as normal */ 453 /* Continue handling as normal */
454 tms380tr_interrupt(irq, dev_id, regs); 454 tms380tr_interrupt(irq, dev_id);
455 455
456 pending = SIFREADW(SIFSTS); /* restart - the SIF way */ 456 pending = SIFREADW(SIFSTS); /* restart - the SIF way */
457 457
diff --git a/drivers/net/tokenring/olympic.c b/drivers/net/tokenring/olympic.c
index 85831484bc40..cd142d0302bc 100644
--- a/drivers/net/tokenring/olympic.c
+++ b/drivers/net/tokenring/olympic.c
@@ -185,7 +185,7 @@ static int olympic_xmit(struct sk_buff *skb, struct net_device *dev);
185static int olympic_close(struct net_device *dev); 185static int olympic_close(struct net_device *dev);
186static void olympic_set_rx_mode(struct net_device *dev); 186static void olympic_set_rx_mode(struct net_device *dev);
187static void olympic_freemem(struct net_device *dev) ; 187static void olympic_freemem(struct net_device *dev) ;
188static irqreturn_t olympic_interrupt(int irq, void *dev_id, struct pt_regs *regs); 188static irqreturn_t olympic_interrupt(int irq, void *dev_id);
189static struct net_device_stats * olympic_get_stats(struct net_device *dev); 189static struct net_device_stats * olympic_get_stats(struct net_device *dev);
190static int olympic_set_mac_address(struct net_device *dev, void *addr) ; 190static int olympic_set_mac_address(struct net_device *dev, void *addr) ;
191static void olympic_arb_cmd(struct net_device *dev); 191static void olympic_arb_cmd(struct net_device *dev);
@@ -925,7 +925,7 @@ static void olympic_freemem(struct net_device *dev)
925 return ; 925 return ;
926} 926}
927 927
928static irqreturn_t olympic_interrupt(int irq, void *dev_id, struct pt_regs *regs) 928static irqreturn_t olympic_interrupt(int irq, void *dev_id)
929{ 929{
930 struct net_device *dev= (struct net_device *)dev_id; 930 struct net_device *dev= (struct net_device *)dev_id;
931 struct olympic_private *olympic_priv=(struct olympic_private *)dev->priv; 931 struct olympic_private *olympic_priv=(struct olympic_private *)dev->priv;
diff --git a/drivers/net/tokenring/smctr.c b/drivers/net/tokenring/smctr.c
index 85a7f797d343..46dabdb12071 100644
--- a/drivers/net/tokenring/smctr.c
+++ b/drivers/net/tokenring/smctr.c
@@ -141,7 +141,7 @@ static int smctr_init_shared_memory(struct net_device *dev);
141static int smctr_init_tx_bdbs(struct net_device *dev); 141static int smctr_init_tx_bdbs(struct net_device *dev);
142static int smctr_init_tx_fcbs(struct net_device *dev); 142static int smctr_init_tx_fcbs(struct net_device *dev);
143static int smctr_internal_self_test(struct net_device *dev); 143static int smctr_internal_self_test(struct net_device *dev);
144static irqreturn_t smctr_interrupt(int irq, void *dev_id, struct pt_regs *regs); 144static irqreturn_t smctr_interrupt(int irq, void *dev_id);
145static int smctr_issue_enable_int_cmd(struct net_device *dev, 145static int smctr_issue_enable_int_cmd(struct net_device *dev,
146 __u16 interrupt_enable_mask); 146 __u16 interrupt_enable_mask);
147static int smctr_issue_int_ack(struct net_device *dev, __u16 iack_code, 147static int smctr_issue_int_ack(struct net_device *dev, __u16 iack_code,
@@ -1980,7 +1980,7 @@ static int smctr_internal_self_test(struct net_device *dev)
1980/* 1980/*
1981 * The typical workload of the driver: Handle the network interface interrupts. 1981 * The typical workload of the driver: Handle the network interface interrupts.
1982 */ 1982 */
1983static irqreturn_t smctr_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1983static irqreturn_t smctr_interrupt(int irq, void *dev_id)
1984{ 1984{
1985 struct net_device *dev = dev_id; 1985 struct net_device *dev = dev_id;
1986 struct net_local *tp; 1986 struct net_local *tp;
@@ -1990,15 +1990,8 @@ static irqreturn_t smctr_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1990 __u8 isb_type, isb_subtype; 1990 __u8 isb_type, isb_subtype;
1991 __u16 isb_index; 1991 __u16 isb_index;
1992 1992
1993 if(dev == NULL)
1994 {
1995 printk(KERN_CRIT "%s: irq %d for unknown device.\n", dev->name, irq);
1996 return IRQ_NONE;
1997 }
1998
1999 ioaddr = dev->base_addr; 1993 ioaddr = dev->base_addr;
2000 tp = netdev_priv(dev); 1994 tp = netdev_priv(dev);
2001
2002 1995
2003 if(tp->status == NOT_INITIALIZED) 1996 if(tp->status == NOT_INITIALIZED)
2004 return IRQ_NONE; 1997 return IRQ_NONE;
diff --git a/drivers/net/tokenring/tms380tr.c b/drivers/net/tokenring/tms380tr.c
index c1925590a0e1..ea797ca2b988 100644
--- a/drivers/net/tokenring/tms380tr.c
+++ b/drivers/net/tokenring/tms380tr.c
@@ -744,18 +744,13 @@ static void tms380tr_timer_chk(unsigned long data)
744/* 744/*
745 * The typical workload of the driver: Handle the network interface interrupts. 745 * The typical workload of the driver: Handle the network interface interrupts.
746 */ 746 */
747irqreturn_t tms380tr_interrupt(int irq, void *dev_id, struct pt_regs *regs) 747irqreturn_t tms380tr_interrupt(int irq, void *dev_id)
748{ 748{
749 struct net_device *dev = dev_id; 749 struct net_device *dev = dev_id;
750 struct net_local *tp; 750 struct net_local *tp;
751 unsigned short irq_type; 751 unsigned short irq_type;
752 int handled = 0; 752 int handled = 0;
753 753
754 if(dev == NULL) {
755 printk(KERN_INFO "%s: irq %d for unknown device.\n", dev->name, irq);
756 return IRQ_NONE;
757 }
758
759 tp = netdev_priv(dev); 754 tp = netdev_priv(dev);
760 755
761 irq_type = SIFREADW(SIFSTS); 756 irq_type = SIFREADW(SIFSTS);
diff --git a/drivers/net/tokenring/tms380tr.h b/drivers/net/tokenring/tms380tr.h
index 30452c67bb68..2a16078ac3fd 100644
--- a/drivers/net/tokenring/tms380tr.h
+++ b/drivers/net/tokenring/tms380tr.h
@@ -16,7 +16,7 @@
16/* module prototypes */ 16/* module prototypes */
17int tms380tr_open(struct net_device *dev); 17int tms380tr_open(struct net_device *dev);
18int tms380tr_close(struct net_device *dev); 18int tms380tr_close(struct net_device *dev);
19irqreturn_t tms380tr_interrupt(int irq, void *dev_id, struct pt_regs *regs); 19irqreturn_t tms380tr_interrupt(int irq, void *dev_id);
20int tmsdev_init(struct net_device *dev, struct device *pdev); 20int tmsdev_init(struct net_device *dev, struct device *pdev);
21void tmsdev_term(struct net_device *dev); 21void tmsdev_term(struct net_device *dev);
22void tms380tr_wait(unsigned long time); 22void tms380tr_wait(unsigned long time);
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c
index e1b48bd86646..2cfd9634895a 100644
--- a/drivers/net/tulip/de2104x.c
+++ b/drivers/net/tulip/de2104x.c
@@ -484,7 +484,7 @@ rx_next:
484 de->rx_tail = rx_tail; 484 de->rx_tail = rx_tail;
485} 485}
486 486
487static irqreturn_t de_interrupt (int irq, void *dev_instance, struct pt_regs *regs) 487static irqreturn_t de_interrupt (int irq, void *dev_instance)
488{ 488{
489 struct net_device *dev = dev_instance; 489 struct net_device *dev = dev_instance;
490 struct de_private *de = dev->priv; 490 struct de_private *de = dev->priv;
diff --git a/drivers/net/tulip/de4x5.c b/drivers/net/tulip/de4x5.c
index fb5fa7d68888..3f4b6408b755 100644
--- a/drivers/net/tulip/de4x5.c
+++ b/drivers/net/tulip/de4x5.c
@@ -896,7 +896,7 @@ static struct {
896*/ 896*/
897static int de4x5_open(struct net_device *dev); 897static int de4x5_open(struct net_device *dev);
898static int de4x5_queue_pkt(struct sk_buff *skb, struct net_device *dev); 898static int de4x5_queue_pkt(struct sk_buff *skb, struct net_device *dev);
899static irqreturn_t de4x5_interrupt(int irq, void *dev_id, struct pt_regs *regs); 899static irqreturn_t de4x5_interrupt(int irq, void *dev_id);
900static int de4x5_close(struct net_device *dev); 900static int de4x5_close(struct net_device *dev);
901static struct net_device_stats *de4x5_get_stats(struct net_device *dev); 901static struct net_device_stats *de4x5_get_stats(struct net_device *dev);
902static void de4x5_local_stats(struct net_device *dev, char *buf, int pkt_len); 902static void de4x5_local_stats(struct net_device *dev, char *buf, int pkt_len);
@@ -1538,18 +1538,14 @@ de4x5_queue_pkt(struct sk_buff *skb, struct net_device *dev)
1538** interrupt is asserted and this routine entered. 1538** interrupt is asserted and this routine entered.
1539*/ 1539*/
1540static irqreturn_t 1540static irqreturn_t
1541de4x5_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1541de4x5_interrupt(int irq, void *dev_id)
1542{ 1542{
1543 struct net_device *dev = (struct net_device *)dev_id; 1543 struct net_device *dev = dev_id;
1544 struct de4x5_private *lp; 1544 struct de4x5_private *lp;
1545 s32 imr, omr, sts, limit; 1545 s32 imr, omr, sts, limit;
1546 u_long iobase; 1546 u_long iobase;
1547 unsigned int handled = 0; 1547 unsigned int handled = 0;
1548 1548
1549 if (dev == NULL) {
1550 printk ("de4x5_interrupt(): irq %d for unknown device.\n", irq);
1551 return IRQ_NONE;
1552 }
1553 lp = netdev_priv(dev); 1549 lp = netdev_priv(dev);
1554 spin_lock(&lp->lock); 1550 spin_lock(&lp->lock);
1555 iobase = dev->base_addr; 1551 iobase = dev->base_addr;
diff --git a/drivers/net/tulip/dmfe.c b/drivers/net/tulip/dmfe.c
index ccf2c225f084..4dd8a0bae860 100644
--- a/drivers/net/tulip/dmfe.c
+++ b/drivers/net/tulip/dmfe.c
@@ -300,7 +300,7 @@ static struct net_device_stats * dmfe_get_stats(struct DEVICE *);
300static void dmfe_set_filter_mode(struct DEVICE *); 300static void dmfe_set_filter_mode(struct DEVICE *);
301static const struct ethtool_ops netdev_ethtool_ops; 301static const struct ethtool_ops netdev_ethtool_ops;
302static u16 read_srom_word(long ,int); 302static u16 read_srom_word(long ,int);
303static irqreturn_t dmfe_interrupt(int , void *, struct pt_regs *); 303static irqreturn_t dmfe_interrupt(int , void *);
304#ifdef CONFIG_NET_POLL_CONTROLLER 304#ifdef CONFIG_NET_POLL_CONTROLLER
305static void poll_dmfe (struct net_device *dev); 305static void poll_dmfe (struct net_device *dev);
306#endif 306#endif
@@ -735,7 +735,7 @@ static int dmfe_stop(struct DEVICE *dev)
735 * receive the packet to upper layer, free the transmitted packet 735 * receive the packet to upper layer, free the transmitted packet
736 */ 736 */
737 737
738static irqreturn_t dmfe_interrupt(int irq, void *dev_id, struct pt_regs *regs) 738static irqreturn_t dmfe_interrupt(int irq, void *dev_id)
739{ 739{
740 struct DEVICE *dev = dev_id; 740 struct DEVICE *dev = dev_id;
741 struct dmfe_board_info *db = netdev_priv(dev); 741 struct dmfe_board_info *db = netdev_priv(dev);
@@ -806,7 +806,7 @@ static void poll_dmfe (struct net_device *dev)
806 /* disable_irq here is not very nice, but with the lockless 806 /* disable_irq here is not very nice, but with the lockless
807 interrupt handler we have no other choice. */ 807 interrupt handler we have no other choice. */
808 disable_irq(dev->irq); 808 disable_irq(dev->irq);
809 dmfe_interrupt (dev->irq, dev, NULL); 809 dmfe_interrupt (dev->irq, dev);
810 enable_irq(dev->irq); 810 enable_irq(dev->irq);
811} 811}
812#endif 812#endif
diff --git a/drivers/net/tulip/interrupt.c b/drivers/net/tulip/interrupt.c
index 7f8f5d42a761..e3488d7b8ede 100644
--- a/drivers/net/tulip/interrupt.c
+++ b/drivers/net/tulip/interrupt.c
@@ -496,7 +496,7 @@ static inline unsigned int phy_interrupt (struct net_device *dev)
496 496
497/* The interrupt handler does all of the Rx thread work and cleans up 497/* The interrupt handler does all of the Rx thread work and cleans up
498 after the Tx thread. */ 498 after the Tx thread. */
499irqreturn_t tulip_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 499irqreturn_t tulip_interrupt(int irq, void *dev_instance)
500{ 500{
501 struct net_device *dev = (struct net_device *)dev_instance; 501 struct net_device *dev = (struct net_device *)dev_instance;
502 struct tulip_private *tp = netdev_priv(dev); 502 struct tulip_private *tp = netdev_priv(dev);
diff --git a/drivers/net/tulip/tulip.h b/drivers/net/tulip/tulip.h
index 25668ddb1f7e..ad107f45c7b1 100644
--- a/drivers/net/tulip/tulip.h
+++ b/drivers/net/tulip/tulip.h
@@ -424,7 +424,7 @@ int tulip_read_eeprom(struct net_device *dev, int location, int addr_len);
424/* interrupt.c */ 424/* interrupt.c */
425extern unsigned int tulip_max_interrupt_work; 425extern unsigned int tulip_max_interrupt_work;
426extern int tulip_rx_copybreak; 426extern int tulip_rx_copybreak;
427irqreturn_t tulip_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 427irqreturn_t tulip_interrupt(int irq, void *dev_instance);
428int tulip_refill_rx(struct net_device *dev); 428int tulip_refill_rx(struct net_device *dev);
429#ifdef CONFIG_TULIP_NAPI 429#ifdef CONFIG_TULIP_NAPI
430int tulip_poll(struct net_device *dev, int *budget); 430int tulip_poll(struct net_device *dev, int *budget);
diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c
index 831919a81918..0aee618f883c 100644
--- a/drivers/net/tulip/tulip_core.c
+++ b/drivers/net/tulip/tulip_core.c
@@ -1823,7 +1823,7 @@ static void poll_tulip (struct net_device *dev)
1823 /* disable_irq here is not very nice, but with the lockless 1823 /* disable_irq here is not very nice, but with the lockless
1824 interrupt handler we have no other choice. */ 1824 interrupt handler we have no other choice. */
1825 disable_irq(dev->irq); 1825 disable_irq(dev->irq);
1826 tulip_interrupt (dev->irq, dev, NULL); 1826 tulip_interrupt (dev->irq, dev);
1827 enable_irq(dev->irq); 1827 enable_irq(dev->irq);
1828} 1828}
1829#endif 1829#endif
diff --git a/drivers/net/tulip/uli526x.c b/drivers/net/tulip/uli526x.c
index 0b176be51eb3..229158e8e4be 100644
--- a/drivers/net/tulip/uli526x.c
+++ b/drivers/net/tulip/uli526x.c
@@ -224,7 +224,7 @@ static struct net_device_stats * uli526x_get_stats(struct net_device *);
224static void uli526x_set_filter_mode(struct net_device *); 224static void uli526x_set_filter_mode(struct net_device *);
225static const struct ethtool_ops netdev_ethtool_ops; 225static const struct ethtool_ops netdev_ethtool_ops;
226static u16 read_srom_word(long, int); 226static u16 read_srom_word(long, int);
227static irqreturn_t uli526x_interrupt(int, void *, struct pt_regs *); 227static irqreturn_t uli526x_interrupt(int, void *);
228static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long); 228static void uli526x_descriptor_init(struct uli526x_board_info *, unsigned long);
229static void allocate_rx_buffer(struct uli526x_board_info *); 229static void allocate_rx_buffer(struct uli526x_board_info *);
230static void update_cr6(u32, unsigned long); 230static void update_cr6(u32, unsigned long);
@@ -659,7 +659,7 @@ static int uli526x_stop(struct net_device *dev)
659 * receive the packet to upper layer, free the transmitted packet 659 * receive the packet to upper layer, free the transmitted packet
660 */ 660 */
661 661
662static irqreturn_t uli526x_interrupt(int irq, void *dev_id, struct pt_regs *regs) 662static irqreturn_t uli526x_interrupt(int irq, void *dev_id)
663{ 663{
664 struct net_device *dev = dev_id; 664 struct net_device *dev = dev_id;
665 struct uli526x_board_info *db = netdev_priv(dev); 665 struct uli526x_board_info *db = netdev_priv(dev);
diff --git a/drivers/net/tulip/winbond-840.c b/drivers/net/tulip/winbond-840.c
index 2fca1ee24f5a..002a05e0722f 100644
--- a/drivers/net/tulip/winbond-840.c
+++ b/drivers/net/tulip/winbond-840.c
@@ -332,7 +332,7 @@ static void tx_timeout(struct net_device *dev);
332static int alloc_ringdesc(struct net_device *dev); 332static int alloc_ringdesc(struct net_device *dev);
333static void free_ringdesc(struct netdev_private *np); 333static void free_ringdesc(struct netdev_private *np);
334static int start_tx(struct sk_buff *skb, struct net_device *dev); 334static int start_tx(struct sk_buff *skb, struct net_device *dev);
335static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *regs); 335static irqreturn_t intr_handler(int irq, void *dev_instance);
336static void netdev_error(struct net_device *dev, int intr_status); 336static void netdev_error(struct net_device *dev, int intr_status);
337static int netdev_rx(struct net_device *dev); 337static int netdev_rx(struct net_device *dev);
338static u32 __set_rx_mode(struct net_device *dev); 338static u32 __set_rx_mode(struct net_device *dev);
@@ -1110,7 +1110,7 @@ static void netdev_tx_done(struct net_device *dev)
1110 1110
1111/* The interrupt handler does all of the Rx thread work and cleans up 1111/* The interrupt handler does all of the Rx thread work and cleans up
1112 after the Tx thread. */ 1112 after the Tx thread. */
1113static irqreturn_t intr_handler(int irq, void *dev_instance, struct pt_regs *rgs) 1113static irqreturn_t intr_handler(int irq, void *dev_instance)
1114{ 1114{
1115 struct net_device *dev = (struct net_device *)dev_instance; 1115 struct net_device *dev = (struct net_device *)dev_instance;
1116 struct netdev_private *np = netdev_priv(dev); 1116 struct netdev_private *np = netdev_priv(dev);
diff --git a/drivers/net/tulip/xircom_cb.c b/drivers/net/tulip/xircom_cb.c
index 629eac645289..61d313049dd0 100644
--- a/drivers/net/tulip/xircom_cb.c
+++ b/drivers/net/tulip/xircom_cb.c
@@ -114,7 +114,7 @@ struct xircom_private {
114/* Function prototypes */ 114/* Function prototypes */
115static int xircom_probe(struct pci_dev *pdev, const struct pci_device_id *id); 115static int xircom_probe(struct pci_dev *pdev, const struct pci_device_id *id);
116static void xircom_remove(struct pci_dev *pdev); 116static void xircom_remove(struct pci_dev *pdev);
117static irqreturn_t xircom_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 117static irqreturn_t xircom_interrupt(int irq, void *dev_instance);
118static int xircom_start_xmit(struct sk_buff *skb, struct net_device *dev); 118static int xircom_start_xmit(struct sk_buff *skb, struct net_device *dev);
119static int xircom_open(struct net_device *dev); 119static int xircom_open(struct net_device *dev);
120static int xircom_close(struct net_device *dev); 120static int xircom_close(struct net_device *dev);
@@ -334,7 +334,7 @@ static void __devexit xircom_remove(struct pci_dev *pdev)
334 leave("xircom_remove"); 334 leave("xircom_remove");
335} 335}
336 336
337static irqreturn_t xircom_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 337static irqreturn_t xircom_interrupt(int irq, void *dev_instance)
338{ 338{
339 struct net_device *dev = (struct net_device *) dev_instance; 339 struct net_device *dev = (struct net_device *) dev_instance;
340 struct xircom_private *card = netdev_priv(dev); 340 struct xircom_private *card = netdev_priv(dev);
@@ -513,7 +513,7 @@ static struct net_device_stats *xircom_get_stats(struct net_device *dev)
513static void xircom_poll_controller(struct net_device *dev) 513static void xircom_poll_controller(struct net_device *dev)
514{ 514{
515 disable_irq(dev->irq); 515 disable_irq(dev->irq);
516 xircom_interrupt(dev->irq, dev, NULL); 516 xircom_interrupt(dev->irq, dev);
517 enable_irq(dev->irq); 517 enable_irq(dev->irq);
518} 518}
519#endif 519#endif
diff --git a/drivers/net/tulip/xircom_tulip_cb.c b/drivers/net/tulip/xircom_tulip_cb.c
index 312788caa4c6..a998c5d0ae9c 100644
--- a/drivers/net/tulip/xircom_tulip_cb.c
+++ b/drivers/net/tulip/xircom_tulip_cb.c
@@ -328,7 +328,7 @@ static void xircom_init_ring(struct net_device *dev);
328static int xircom_start_xmit(struct sk_buff *skb, struct net_device *dev); 328static int xircom_start_xmit(struct sk_buff *skb, struct net_device *dev);
329static int xircom_rx(struct net_device *dev); 329static int xircom_rx(struct net_device *dev);
330static void xircom_media_change(struct net_device *dev); 330static void xircom_media_change(struct net_device *dev);
331static irqreturn_t xircom_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 331static irqreturn_t xircom_interrupt(int irq, void *dev_instance);
332static int xircom_close(struct net_device *dev); 332static int xircom_close(struct net_device *dev);
333static struct net_device_stats *xircom_get_stats(struct net_device *dev); 333static struct net_device_stats *xircom_get_stats(struct net_device *dev);
334static int xircom_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 334static int xircom_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -1044,7 +1044,7 @@ static void check_duplex(struct net_device *dev)
1044 1044
1045/* The interrupt handler does all of the Rx thread work and cleans up 1045/* The interrupt handler does all of the Rx thread work and cleans up
1046 after the Tx thread. */ 1046 after the Tx thread. */
1047static irqreturn_t xircom_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 1047static irqreturn_t xircom_interrupt(int irq, void *dev_instance)
1048{ 1048{
1049 struct net_device *dev = dev_instance; 1049 struct net_device *dev = dev_instance;
1050 struct xircom_private *tp = netdev_priv(dev); 1050 struct xircom_private *tp = netdev_priv(dev);
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index d5c32e9caa97..3bf9e630404f 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -1826,7 +1826,7 @@ typhoon_poll(struct net_device *dev, int *total_budget)
1826} 1826}
1827 1827
1828static irqreturn_t 1828static irqreturn_t
1829typhoon_interrupt(int irq, void *dev_instance, struct pt_regs *rgs) 1829typhoon_interrupt(int irq, void *dev_instance)
1830{ 1830{
1831 struct net_device *dev = (struct net_device *) dev_instance; 1831 struct net_device *dev = (struct net_device *) dev_instance;
1832 struct typhoon *tp = dev->priv; 1832 struct typhoon *tp = dev->priv;
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 700ebd7d1457..12cd7b561f35 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3844,8 +3844,7 @@ static int ucc_geth_poll(struct net_device *dev, int *budget)
3844} 3844}
3845#endif /* CONFIG_UGETH_NAPI */ 3845#endif /* CONFIG_UGETH_NAPI */
3846 3846
3847static irqreturn_t ucc_geth_irq_handler(int irq, void *info, 3847static irqreturn_t ucc_geth_irq_handler(int irq, void *info)
3848 struct pt_regs *regs)
3849{ 3848{
3850 struct net_device *dev = (struct net_device *)info; 3849 struct net_device *dev = (struct net_device *)info;
3851 ucc_geth_private_t *ugeth = netdev_priv(dev); 3850 ucc_geth_private_t *ugeth = netdev_priv(dev);
@@ -3910,7 +3909,7 @@ static irqreturn_t ucc_geth_irq_handler(int irq, void *info,
3910 return IRQ_HANDLED; 3909 return IRQ_HANDLED;
3911} 3910}
3912 3911
3913static irqreturn_t phy_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3912static irqreturn_t phy_interrupt(int irq, void *dev_id)
3914{ 3913{
3915 struct net_device *dev = (struct net_device *)dev_id; 3914 struct net_device *dev = (struct net_device *)dev_id;
3916 ucc_geth_private_t *ugeth = netdev_priv(dev); 3915 ucc_geth_private_t *ugeth = netdev_priv(dev);
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c
index cbebf1b96e9d..ebbda1d8f542 100644
--- a/drivers/net/via-rhine.c
+++ b/drivers/net/via-rhine.c
@@ -404,7 +404,7 @@ static void mdio_write(struct net_device *dev, int phy_id, int location, int val
404static int rhine_open(struct net_device *dev); 404static int rhine_open(struct net_device *dev);
405static void rhine_tx_timeout(struct net_device *dev); 405static void rhine_tx_timeout(struct net_device *dev);
406static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev); 406static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev);
407static irqreturn_t rhine_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 407static irqreturn_t rhine_interrupt(int irq, void *dev_instance);
408static void rhine_tx(struct net_device *dev); 408static void rhine_tx(struct net_device *dev);
409static int rhine_rx(struct net_device *dev, int limit); 409static int rhine_rx(struct net_device *dev, int limit);
410static void rhine_error(struct net_device *dev, int intr_status); 410static void rhine_error(struct net_device *dev, int intr_status);
@@ -569,7 +569,7 @@ static void __devinit rhine_reload_eeprom(long pioaddr, struct net_device *dev)
569static void rhine_poll(struct net_device *dev) 569static void rhine_poll(struct net_device *dev)
570{ 570{
571 disable_irq(dev->irq); 571 disable_irq(dev->irq);
572 rhine_interrupt(dev->irq, (void *)dev, NULL); 572 rhine_interrupt(dev->irq, (void *)dev);
573 enable_irq(dev->irq); 573 enable_irq(dev->irq);
574} 574}
575#endif 575#endif
@@ -1290,7 +1290,7 @@ static int rhine_start_tx(struct sk_buff *skb, struct net_device *dev)
1290 1290
1291/* The interrupt handler does all of the Rx thread work and cleans up 1291/* The interrupt handler does all of the Rx thread work and cleans up
1292 after the Tx thread. */ 1292 after the Tx thread. */
1293static irqreturn_t rhine_interrupt(int irq, void *dev_instance, struct pt_regs *rgs) 1293static irqreturn_t rhine_interrupt(int irq, void *dev_instance)
1294{ 1294{
1295 struct net_device *dev = dev_instance; 1295 struct net_device *dev = dev_instance;
1296 struct rhine_private *rp = netdev_priv(dev); 1296 struct rhine_private *rp = netdev_priv(dev);
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index 7d8808ce541f..74f894795a1b 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -236,7 +236,7 @@ static void velocity_print_info(struct velocity_info *vptr);
236static int velocity_open(struct net_device *dev); 236static int velocity_open(struct net_device *dev);
237static int velocity_change_mtu(struct net_device *dev, int mtu); 237static int velocity_change_mtu(struct net_device *dev, int mtu);
238static int velocity_xmit(struct sk_buff *skb, struct net_device *dev); 238static int velocity_xmit(struct sk_buff *skb, struct net_device *dev);
239static int velocity_intr(int irq, void *dev_instance, struct pt_regs *regs); 239static int velocity_intr(int irq, void *dev_instance);
240static void velocity_set_multi(struct net_device *dev); 240static void velocity_set_multi(struct net_device *dev);
241static struct net_device_stats *velocity_get_stats(struct net_device *dev); 241static struct net_device_stats *velocity_get_stats(struct net_device *dev);
242static int velocity_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 242static int velocity_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -2036,7 +2036,6 @@ static int velocity_xmit(struct sk_buff *skb, struct net_device *dev)
2036 * velocity_intr - interrupt callback 2036 * velocity_intr - interrupt callback
2037 * @irq: interrupt number 2037 * @irq: interrupt number
2038 * @dev_instance: interrupting device 2038 * @dev_instance: interrupting device
2039 * @pt_regs: CPU register state at interrupt
2040 * 2039 *
2041 * Called whenever an interrupt is generated by the velocity 2040 * Called whenever an interrupt is generated by the velocity
2042 * adapter IRQ line. We may not be the source of the interrupt 2041 * adapter IRQ line. We may not be the source of the interrupt
@@ -2044,7 +2043,7 @@ static int velocity_xmit(struct sk_buff *skb, struct net_device *dev)
2044 * efficiently as possible. 2043 * efficiently as possible.
2045 */ 2044 */
2046 2045
2047static int velocity_intr(int irq, void *dev_instance, struct pt_regs *regs) 2046static int velocity_intr(int irq, void *dev_instance)
2048{ 2047{
2049 struct net_device *dev = dev_instance; 2048 struct net_device *dev = dev_instance;
2050 struct velocity_info *vptr = netdev_priv(dev); 2049 struct velocity_info *vptr = netdev_priv(dev);
diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c
index 1f95b4864ea1..e1bf8b93f958 100644
--- a/drivers/net/wan/cosa.c
+++ b/drivers/net/wan/cosa.c
@@ -345,7 +345,7 @@ static void put_driver_status(struct cosa_data *cosa);
345static void put_driver_status_nolock(struct cosa_data *cosa); 345static void put_driver_status_nolock(struct cosa_data *cosa);
346 346
347/* Interrupt handling */ 347/* Interrupt handling */
348static irqreturn_t cosa_interrupt(int irq, void *cosa, struct pt_regs *regs); 348static irqreturn_t cosa_interrupt(int irq, void *cosa);
349 349
350/* I/O ops debugging */ 350/* I/O ops debugging */
351#ifdef DEBUG_IO 351#ifdef DEBUG_IO
@@ -1972,7 +1972,7 @@ out:
1972 spin_unlock_irqrestore(&cosa->lock, flags); 1972 spin_unlock_irqrestore(&cosa->lock, flags);
1973} 1973}
1974 1974
1975static irqreturn_t cosa_interrupt(int irq, void *cosa_, struct pt_regs *regs) 1975static irqreturn_t cosa_interrupt(int irq, void *cosa_)
1976{ 1976{
1977 unsigned status; 1977 unsigned status;
1978 int count = 0; 1978 int count = 0;
diff --git a/drivers/net/wan/cycx_main.c b/drivers/net/wan/cycx_main.c
index a5e7ce1bd16a..6e5f1c898517 100644
--- a/drivers/net/wan/cycx_main.c
+++ b/drivers/net/wan/cycx_main.c
@@ -74,7 +74,7 @@ static int cycx_wan_setup(struct wan_device *wandev, wandev_conf_t *conf);
74static int cycx_wan_shutdown(struct wan_device *wandev); 74static int cycx_wan_shutdown(struct wan_device *wandev);
75 75
76/* Miscellaneous functions */ 76/* Miscellaneous functions */
77static irqreturn_t cycx_isr(int irq, void *dev_id, struct pt_regs *regs); 77static irqreturn_t cycx_isr(int irq, void *dev_id);
78 78
79/* Global Data 79/* Global Data
80 * Note: All data must be explicitly initialized!!! 80 * Note: All data must be explicitly initialized!!!
@@ -301,11 +301,11 @@ out: return ret;
301 * o acknowledge Cyclom 2X hardware interrupt. 301 * o acknowledge Cyclom 2X hardware interrupt.
302 * o call protocol-specific interrupt service routine, if any. 302 * o call protocol-specific interrupt service routine, if any.
303 */ 303 */
304static irqreturn_t cycx_isr(int irq, void *dev_id, struct pt_regs *regs) 304static irqreturn_t cycx_isr(int irq, void *dev_id)
305{ 305{
306 struct cycx_device *card = (struct cycx_device *)dev_id; 306 struct cycx_device *card = dev_id;
307 307
308 if (!card || card->wandev.state == WAN_UNCONFIGURED) 308 if (card->wandev.state == WAN_UNCONFIGURED)
309 goto out; 309 goto out;
310 310
311 if (card->in_isr) { 311 if (card->in_isr) {
diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c
index af4d4155905b..25021a7992a9 100644
--- a/drivers/net/wan/dscc4.c
+++ b/drivers/net/wan/dscc4.c
@@ -365,7 +365,7 @@ static int dscc4_init_ring(struct net_device *);
365static void dscc4_release_ring(struct dscc4_dev_priv *); 365static void dscc4_release_ring(struct dscc4_dev_priv *);
366static void dscc4_timer(unsigned long); 366static void dscc4_timer(unsigned long);
367static void dscc4_tx_timeout(struct net_device *); 367static void dscc4_tx_timeout(struct net_device *);
368static irqreturn_t dscc4_irq(int irq, void *dev_id, struct pt_regs *ptregs); 368static irqreturn_t dscc4_irq(int irq, void *dev_id);
369static int dscc4_hdlc_attach(struct net_device *, unsigned short, unsigned short); 369static int dscc4_hdlc_attach(struct net_device *, unsigned short, unsigned short);
370static int dscc4_set_iface(struct dscc4_dev_priv *, struct net_device *); 370static int dscc4_set_iface(struct dscc4_dev_priv *, struct net_device *);
371#ifdef DSCC4_POLLING 371#ifdef DSCC4_POLLING
@@ -1476,7 +1476,7 @@ static int dscc4_set_iface(struct dscc4_dev_priv *dpriv, struct net_device *dev)
1476 return ret; 1476 return ret;
1477} 1477}
1478 1478
1479static irqreturn_t dscc4_irq(int irq, void *token, struct pt_regs *ptregs) 1479static irqreturn_t dscc4_irq(int irq, void *token)
1480{ 1480{
1481 struct dscc4_dev_priv *root = token; 1481 struct dscc4_dev_priv *root = token;
1482 struct dscc4_pci_priv *priv; 1482 struct dscc4_pci_priv *priv;
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c
index 564351aafa41..c45d6a83339d 100644
--- a/drivers/net/wan/farsync.c
+++ b/drivers/net/wan/farsync.c
@@ -1498,7 +1498,7 @@ do_bottom_half_rx(struct fst_card_info *card)
1498 * Dev_id is our fst_card_info pointer 1498 * Dev_id is our fst_card_info pointer
1499 */ 1499 */
1500static irqreturn_t 1500static irqreturn_t
1501fst_intr(int irq, void *dev_id, struct pt_regs *regs) 1501fst_intr(int irq, void *dev_id)
1502{ 1502{
1503 struct fst_card_info *card; 1503 struct fst_card_info *card;
1504 struct fst_port_info *port; 1504 struct fst_port_info *port;
diff --git a/drivers/net/wan/hd6457x.c b/drivers/net/wan/hd6457x.c
index dce2bb317b82..8d0a1f2f00e5 100644
--- a/drivers/net/wan/hd6457x.c
+++ b/drivers/net/wan/hd6457x.c
@@ -424,7 +424,7 @@ static inline void sca_tx_intr(port_t *port)
424 424
425 425
426 426
427static irqreturn_t sca_intr(int irq, void* dev_id, struct pt_regs *regs) 427static irqreturn_t sca_intr(int irq, void* dev_id)
428{ 428{
429 card_t *card = dev_id; 429 card_t *card = dev_id;
430 int i; 430 int i;
diff --git a/drivers/net/wan/lmc/lmc_main.c b/drivers/net/wan/lmc/lmc_main.c
index 7b5d81deb028..2b54f1bc3a0d 100644
--- a/drivers/net/wan/lmc/lmc_main.c
+++ b/drivers/net/wan/lmc/lmc_main.c
@@ -100,7 +100,7 @@ static int lmc_rx (struct net_device *dev);
100static int lmc_open(struct net_device *dev); 100static int lmc_open(struct net_device *dev);
101static int lmc_close(struct net_device *dev); 101static int lmc_close(struct net_device *dev);
102static struct net_device_stats *lmc_get_stats(struct net_device *dev); 102static struct net_device_stats *lmc_get_stats(struct net_device *dev);
103static irqreturn_t lmc_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 103static irqreturn_t lmc_interrupt(int irq, void *dev_instance);
104static void lmc_initcsrs(lmc_softc_t * const sc, lmc_csrptr_t csr_base, size_t csr_size); 104static void lmc_initcsrs(lmc_softc_t * const sc, lmc_csrptr_t csr_base, size_t csr_size);
105static void lmc_softreset(lmc_softc_t * const); 105static void lmc_softreset(lmc_softc_t * const);
106static void lmc_running_reset(struct net_device *dev); 106static void lmc_running_reset(struct net_device *dev);
@@ -1273,7 +1273,7 @@ static int lmc_ifdown (struct net_device *dev) /*fold00*/
1273/* Interrupt handling routine. This will take an incoming packet, or clean 1273/* Interrupt handling routine. This will take an incoming packet, or clean
1274 * up after a trasmit. 1274 * up after a trasmit.
1275 */ 1275 */
1276static irqreturn_t lmc_interrupt (int irq, void *dev_instance, struct pt_regs *regs) /*fold00*/ 1276static irqreturn_t lmc_interrupt (int irq, void *dev_instance) /*fold00*/
1277{ 1277{
1278 struct net_device *dev = (struct net_device *) dev_instance; 1278 struct net_device *dev = (struct net_device *) dev_instance;
1279 lmc_softc_t *sc; 1279 lmc_softc_t *sc;
diff --git a/drivers/net/wan/pc300_drv.c b/drivers/net/wan/pc300_drv.c
index 8d9b959bf15b..5823e3bca178 100644
--- a/drivers/net/wan/pc300_drv.c
+++ b/drivers/net/wan/pc300_drv.c
@@ -284,7 +284,7 @@ static void rx_dma_buf_pt_init(pc300_t *, int);
284static void rx_dma_buf_init(pc300_t *, int); 284static void rx_dma_buf_init(pc300_t *, int);
285static void tx_dma_buf_check(pc300_t *, int); 285static void tx_dma_buf_check(pc300_t *, int);
286static void rx_dma_buf_check(pc300_t *, int); 286static void rx_dma_buf_check(pc300_t *, int);
287static irqreturn_t cpc_intr(int, void *, struct pt_regs *); 287static irqreturn_t cpc_intr(int, void *);
288static struct net_device_stats *cpc_get_stats(struct net_device *); 288static struct net_device_stats *cpc_get_stats(struct net_device *);
289static int clock_rate_calc(uclong, uclong, int *); 289static int clock_rate_calc(uclong, uclong, int *);
290static uclong detect_ram(pc300_t *); 290static uclong detect_ram(pc300_t *);
@@ -2363,7 +2363,7 @@ static void falc_intr(pc300_t * card)
2363 } 2363 }
2364} 2364}
2365 2365
2366static irqreturn_t cpc_intr(int irq, void *dev_id, struct pt_regs *regs) 2366static irqreturn_t cpc_intr(int irq, void *dev_id)
2367{ 2367{
2368 pc300_t *card; 2368 pc300_t *card;
2369 volatile ucchar plx_status; 2369 volatile ucchar plx_status;
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index fc75bec19029..fc5c0c611ffd 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -119,7 +119,7 @@ static int sbni_ioctl( struct net_device *, struct ifreq *, int );
119static struct net_device_stats *sbni_get_stats( struct net_device * ); 119static struct net_device_stats *sbni_get_stats( struct net_device * );
120static void set_multicast_list( struct net_device * ); 120static void set_multicast_list( struct net_device * );
121 121
122static irqreturn_t sbni_interrupt( int, void *, struct pt_regs * ); 122static irqreturn_t sbni_interrupt( int, void * );
123static void handle_channel( struct net_device * ); 123static void handle_channel( struct net_device * );
124static int recv_frame( struct net_device * ); 124static int recv_frame( struct net_device * );
125static void send_frame( struct net_device * ); 125static void send_frame( struct net_device * );
@@ -501,7 +501,7 @@ sbni_start_xmit( struct sk_buff *skb, struct net_device *dev )
501 */ 501 */
502 502
503static irqreturn_t 503static irqreturn_t
504sbni_interrupt( int irq, void *dev_id, struct pt_regs *regs ) 504sbni_interrupt( int irq, void *dev_id )
505{ 505{
506 struct net_device *dev = (struct net_device *) dev_id; 506 struct net_device *dev = (struct net_device *) dev_id;
507 struct net_local *nl = (struct net_local *) dev->priv; 507 struct net_local *nl = (struct net_local *) dev->priv;
diff --git a/drivers/net/wan/sdla.c b/drivers/net/wan/sdla.c
index 0ba018f8382b..6a485f0556f4 100644
--- a/drivers/net/wan/sdla.c
+++ b/drivers/net/wan/sdla.c
@@ -867,7 +867,7 @@ static void sdla_receive(struct net_device *dev)
867 spin_unlock_irqrestore(&sdla_lock, flags); 867 spin_unlock_irqrestore(&sdla_lock, flags);
868} 868}
869 869
870static irqreturn_t sdla_isr(int irq, void *dev_id, struct pt_regs * regs) 870static irqreturn_t sdla_isr(int irq, void *dev_id)
871{ 871{
872 struct net_device *dev; 872 struct net_device *dev;
873 struct frad_local *flp; 873 struct frad_local *flp;
@@ -875,13 +875,7 @@ static irqreturn_t sdla_isr(int irq, void *dev_id, struct pt_regs * regs)
875 875
876 dev = dev_id; 876 dev = dev_id;
877 877
878 if (dev == NULL) 878 flp = netdev_priv(dev);
879 {
880 printk(KERN_WARNING "sdla_isr(): irq %d for unknown device.\n", irq);
881 return IRQ_NONE;
882 }
883
884 flp = dev->priv;
885 879
886 if (!flp->initialized) 880 if (!flp->initialized)
887 { 881 {
diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c
index ec68f7dfd93f..c73601574334 100644
--- a/drivers/net/wan/wanxl.c
+++ b/drivers/net/wan/wanxl.c
@@ -244,7 +244,7 @@ static inline void wanxl_rx_intr(card_t *card)
244 244
245 245
246 246
247static irqreturn_t wanxl_intr(int irq, void* dev_id, struct pt_regs *regs) 247static irqreturn_t wanxl_intr(int irq, void* dev_id)
248{ 248{
249 card_t *card = dev_id; 249 card_t *card = dev_id;
250 int i; 250 int i;
diff --git a/drivers/net/wan/z85230.c b/drivers/net/wan/z85230.c
index caa48f12fd0f..59ddd21c3958 100644
--- a/drivers/net/wan/z85230.c
+++ b/drivers/net/wan/z85230.c
@@ -728,7 +728,7 @@ EXPORT_SYMBOL(z8530_nop);
728 * channel). c->lock for both channels points to dev->lock 728 * channel). c->lock for both channels points to dev->lock
729 */ 729 */
730 730
731irqreturn_t z8530_interrupt(int irq, void *dev_id, struct pt_regs *regs) 731irqreturn_t z8530_interrupt(int irq, void *dev_id)
732{ 732{
733 struct z8530_dev *dev=dev_id; 733 struct z8530_dev *dev=dev_id;
734 u8 intr; 734 u8 intr;
diff --git a/drivers/net/wan/z85230.h b/drivers/net/wan/z85230.h
index 77e53208045f..158aea7b8eac 100644
--- a/drivers/net/wan/z85230.h
+++ b/drivers/net/wan/z85230.h
@@ -396,7 +396,7 @@ struct z8530_dev
396extern u8 z8530_dead_port[]; 396extern u8 z8530_dead_port[];
397extern u8 z8530_hdlc_kilostream_85230[]; 397extern u8 z8530_hdlc_kilostream_85230[];
398extern u8 z8530_hdlc_kilostream[]; 398extern u8 z8530_hdlc_kilostream[];
399extern irqreturn_t z8530_interrupt(int, void *, struct pt_regs *); 399extern irqreturn_t z8530_interrupt(int, void *);
400extern void z8530_describe(struct z8530_dev *, char *mapping, unsigned long io); 400extern void z8530_describe(struct z8530_dev *, char *mapping, unsigned long io);
401extern int z8530_init(struct z8530_dev *); 401extern int z8530_init(struct z8530_dev *);
402extern int z8530_shutdown(struct z8530_dev *); 402extern int z8530_shutdown(struct z8530_dev *);
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index 39d09345027c..0a33c8a56e13 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -1120,8 +1120,7 @@ static void mpi_receive_802_3(struct airo_info *ai);
1120static void mpi_receive_802_11(struct airo_info *ai); 1120static void mpi_receive_802_11(struct airo_info *ai);
1121static int waitbusy (struct airo_info *ai); 1121static int waitbusy (struct airo_info *ai);
1122 1122
1123static irqreturn_t airo_interrupt( int irq, void* dev_id, struct pt_regs 1123static irqreturn_t airo_interrupt( int irq, void* dev_id);
1124 *regs);
1125static int airo_thread(void *data); 1124static int airo_thread(void *data);
1126static void timer_func( struct net_device *dev ); 1125static void timer_func( struct net_device *dev );
1127static int airo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 1126static int airo_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -3151,7 +3150,7 @@ static int airo_thread(void *data) {
3151 return 0; 3150 return 0;
3152} 3151}
3153 3152
3154static irqreturn_t airo_interrupt ( int irq, void* dev_id, struct pt_regs *regs) { 3153static irqreturn_t airo_interrupt ( int irq, void* dev_id) {
3155 struct net_device *dev = (struct net_device *)dev_id; 3154 struct net_device *dev = (struct net_device *)dev_id;
3156 u16 status; 3155 u16 status;
3157 u16 fid; 3156 u16 fid;
diff --git a/drivers/net/wireless/arlan-main.c b/drivers/net/wireless/arlan-main.c
index bb6bea4f3233..4688e56b69c7 100644
--- a/drivers/net/wireless/arlan-main.c
+++ b/drivers/net/wireless/arlan-main.c
@@ -78,7 +78,7 @@ static int arlans_found;
78 78
79static int arlan_open(struct net_device *dev); 79static int arlan_open(struct net_device *dev);
80static int arlan_tx(struct sk_buff *skb, struct net_device *dev); 80static int arlan_tx(struct sk_buff *skb, struct net_device *dev);
81static irqreturn_t arlan_interrupt(int irq, void *dev_id, struct pt_regs *regs); 81static irqreturn_t arlan_interrupt(int irq, void *dev_id);
82static int arlan_close(struct net_device *dev); 82static int arlan_close(struct net_device *dev);
83static struct net_device_stats * 83static struct net_device_stats *
84 arlan_statistics (struct net_device *dev); 84 arlan_statistics (struct net_device *dev);
@@ -1651,7 +1651,7 @@ end_int_process:
1651 return; 1651 return;
1652} 1652}
1653 1653
1654static irqreturn_t arlan_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1654static irqreturn_t arlan_interrupt(int irq, void *dev_id)
1655{ 1655{
1656 struct net_device *dev = dev_id; 1656 struct net_device *dev = dev_id;
1657 struct arlan_private *priv = netdev_priv(dev); 1657 struct arlan_private *priv = netdev_priv(dev);
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index 0fc267d626dc..31eed85de60f 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -1145,7 +1145,7 @@ next:
1145 } 1145 }
1146} 1146}
1147 1147
1148static irqreturn_t service_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1148static irqreturn_t service_interrupt(int irq, void *dev_id)
1149{ 1149{
1150 struct net_device *dev = (struct net_device *) dev_id; 1150 struct net_device *dev = (struct net_device *) dev_id;
1151 struct atmel_private *priv = netdev_priv(dev); 1151 struct atmel_private *priv = netdev_priv(dev);
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
index eb65db7393ba..bad3452ea893 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
@@ -1834,7 +1834,7 @@ static void bcm43xx_interrupt_ack(struct bcm43xx_private *bcm, u32 reason)
1834} 1834}
1835 1835
1836/* Interrupt handler top-half */ 1836/* Interrupt handler top-half */
1837static irqreturn_t bcm43xx_interrupt_handler(int irq, void *dev_id, struct pt_regs *regs) 1837static irqreturn_t bcm43xx_interrupt_handler(int irq, void *dev_id)
1838{ 1838{
1839 irqreturn_t ret = IRQ_HANDLED; 1839 irqreturn_t ret = IRQ_HANDLED;
1840 struct bcm43xx_private *bcm = dev_id; 1840 struct bcm43xx_private *bcm = dev_id;
@@ -3963,7 +3963,7 @@ static void bcm43xx_net_poll_controller(struct net_device *net_dev)
3963 3963
3964 local_irq_save(flags); 3964 local_irq_save(flags);
3965 if (bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED) 3965 if (bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED)
3966 bcm43xx_interrupt_handler(bcm->irq, bcm, NULL); 3966 bcm43xx_interrupt_handler(bcm->irq, bcm);
3967 local_irq_restore(flags); 3967 local_irq_restore(flags);
3968} 3968}
3969#endif /* CONFIG_NET_POLL_CONTROLLER */ 3969#endif /* CONFIG_NET_POLL_CONTROLLER */
diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
index d500012fdc7a..ed00ebb6e7f4 100644
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
@@ -2622,7 +2622,7 @@ static void prism2_check_magic(local_info_t *local)
2622 2622
2623 2623
2624/* Called only from hardware IRQ */ 2624/* Called only from hardware IRQ */
2625static irqreturn_t prism2_interrupt(int irq, void *dev_id, struct pt_regs *regs) 2625static irqreturn_t prism2_interrupt(int irq, void *dev_id)
2626{ 2626{
2627 struct net_device *dev = (struct net_device *) dev_id; 2627 struct net_device *dev = (struct net_device *) dev_id;
2628 struct hostap_interface *iface; 2628 struct hostap_interface *iface;
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index 599e2fe76188..4e4eaa2a99ca 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -3255,7 +3255,7 @@ static void ipw2100_irq_tasklet(struct ipw2100_priv *priv)
3255 IPW_DEBUG_ISR("exit\n"); 3255 IPW_DEBUG_ISR("exit\n");
3256} 3256}
3257 3257
3258static irqreturn_t ipw2100_interrupt(int irq, void *data, struct pt_regs *regs) 3258static irqreturn_t ipw2100_interrupt(int irq, void *data)
3259{ 3259{
3260 struct ipw2100_priv *priv = data; 3260 struct ipw2100_priv *priv = data;
3261 u32 inta, inta_mask; 3261 u32 inta, inta_mask;
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index 5685d7ba55bb..1f742814a01c 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -10467,7 +10467,7 @@ static const struct ethtool_ops ipw_ethtool_ops = {
10467 .set_eeprom = ipw_ethtool_set_eeprom, 10467 .set_eeprom = ipw_ethtool_set_eeprom,
10468}; 10468};
10469 10469
10470static irqreturn_t ipw_isr(int irq, void *data, struct pt_regs *regs) 10470static irqreturn_t ipw_isr(int irq, void *data)
10471{ 10471{
10472 struct ipw_priv *priv = data; 10472 struct ipw_priv *priv = data;
10473 u32 inta, inta_mask; 10473 u32 inta, inta_mask;
diff --git a/drivers/net/wireless/netwave_cs.c b/drivers/net/wireless/netwave_cs.c
index 36b5e004305e..6714e0dfa8d6 100644
--- a/drivers/net/wireless/netwave_cs.c
+++ b/drivers/net/wireless/netwave_cs.c
@@ -207,7 +207,7 @@ static int netwave_start_xmit( struct sk_buff *skb, struct net_device *dev);
207static int netwave_rx( struct net_device *dev); 207static int netwave_rx( struct net_device *dev);
208 208
209/* Interrupt routines */ 209/* Interrupt routines */
210static irqreturn_t netwave_interrupt(int irq, void *dev_id, struct pt_regs *regs); 210static irqreturn_t netwave_interrupt(int irq, void *dev_id);
211static void netwave_watchdog(struct net_device *); 211static void netwave_watchdog(struct net_device *);
212 212
213/* Statistics */ 213/* Statistics */
@@ -1072,7 +1072,7 @@ static int netwave_start_xmit(struct sk_buff *skb, struct net_device *dev) {
1072} /* netwave_start_xmit */ 1072} /* netwave_start_xmit */
1073 1073
1074/* 1074/*
1075 * Function netwave_interrupt (irq, dev_id, regs) 1075 * Function netwave_interrupt (irq, dev_id)
1076 * 1076 *
1077 * This function is the interrupt handler for the Netwave card. This 1077 * This function is the interrupt handler for the Netwave card. This
1078 * routine will be called whenever: 1078 * routine will be called whenever:
@@ -1081,7 +1081,7 @@ static int netwave_start_xmit(struct sk_buff *skb, struct net_device *dev) {
1081 * ready to transmit another packet. 1081 * ready to transmit another packet.
1082 * 3. A command has completed execution. 1082 * 3. A command has completed execution.
1083 */ 1083 */
1084static irqreturn_t netwave_interrupt(int irq, void* dev_id, struct pt_regs *regs) 1084static irqreturn_t netwave_interrupt(int irq, void* dev_id)
1085{ 1085{
1086 kio_addr_t iobase; 1086 kio_addr_t iobase;
1087 u_char __iomem *ramBase; 1087 u_char __iomem *ramBase;
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 9e19a963febc..b779c7dcc1a8 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -1952,9 +1952,9 @@ static void __orinoco_ev_wterr(struct net_device *dev, hermes_t *hw)
1952 dev->name); 1952 dev->name);
1953} 1953}
1954 1954
1955irqreturn_t orinoco_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1955irqreturn_t orinoco_interrupt(int irq, void *dev_id)
1956{ 1956{
1957 struct net_device *dev = (struct net_device *)dev_id; 1957 struct net_device *dev = dev_id;
1958 struct orinoco_private *priv = netdev_priv(dev); 1958 struct orinoco_private *priv = netdev_priv(dev);
1959 hermes_t *hw = &priv->hw; 1959 hermes_t *hw = &priv->hw;
1960 int count = MAX_IRQLOOPS_PER_IRQ; 1960 int count = MAX_IRQLOOPS_PER_IRQ;
diff --git a/drivers/net/wireless/orinoco.h b/drivers/net/wireless/orinoco.h
index fb5700d6c454..4720fb20d66d 100644
--- a/drivers/net/wireless/orinoco.h
+++ b/drivers/net/wireless/orinoco.h
@@ -128,7 +128,7 @@ extern void free_orinocodev(struct net_device *dev);
128extern int __orinoco_up(struct net_device *dev); 128extern int __orinoco_up(struct net_device *dev);
129extern int __orinoco_down(struct net_device *dev); 129extern int __orinoco_down(struct net_device *dev);
130extern int orinoco_reinit_firmware(struct net_device *dev); 130extern int orinoco_reinit_firmware(struct net_device *dev);
131extern irqreturn_t orinoco_interrupt(int irq, void * dev_id, struct pt_regs *regs); 131extern irqreturn_t orinoco_interrupt(int irq, void * dev_id);
132 132
133/********************************************************************/ 133/********************************************************************/
134/* Locking and synchronization functions */ 134/* Locking and synchronization functions */
diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c
index ab3c5a27efd9..ec1c00f19eb3 100644
--- a/drivers/net/wireless/prism54/islpci_dev.c
+++ b/drivers/net/wireless/prism54/islpci_dev.c
@@ -182,7 +182,7 @@ isl_upload_firmware(islpci_private *priv)
182******************************************************************************/ 182******************************************************************************/
183 183
184irqreturn_t 184irqreturn_t
185islpci_interrupt(int irq, void *config, struct pt_regs *regs) 185islpci_interrupt(int irq, void *config)
186{ 186{
187 u32 reg; 187 u32 reg;
188 islpci_private *priv = config; 188 islpci_private *priv = config;
diff --git a/drivers/net/wireless/prism54/islpci_dev.h b/drivers/net/wireless/prism54/islpci_dev.h
index 5049f37455b1..2f7e525d0cf6 100644
--- a/drivers/net/wireless/prism54/islpci_dev.h
+++ b/drivers/net/wireless/prism54/islpci_dev.h
@@ -198,7 +198,7 @@ islpci_state_t islpci_set_state(islpci_private *priv, islpci_state_t new_state);
198 198
199#define ISLPCI_TX_TIMEOUT (2*HZ) 199#define ISLPCI_TX_TIMEOUT (2*HZ)
200 200
201irqreturn_t islpci_interrupt(int, void *, struct pt_regs *); 201irqreturn_t islpci_interrupt(int, void *);
202 202
203int prism54_post_setup(islpci_private *, int); 203int prism54_post_setup(islpci_private *, int);
204int islpci_reset(islpci_private *, int); 204int islpci_reset(islpci_private *, int);
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index e82548ea609a..0b381d77015c 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -130,7 +130,7 @@ static void ray_update_parm(struct net_device *dev, UCHAR objid, UCHAR *value, i
130static void verify_dl_startup(u_long); 130static void verify_dl_startup(u_long);
131 131
132/* Prototypes for interrpt time functions **********************************/ 132/* Prototypes for interrpt time functions **********************************/
133static irqreturn_t ray_interrupt (int reg, void *dev_id, struct pt_regs *regs); 133static irqreturn_t ray_interrupt (int reg, void *dev_id);
134static void clear_interrupt(ray_dev_t *local); 134static void clear_interrupt(ray_dev_t *local);
135static void rx_deauthenticate(ray_dev_t *local, struct rcs __iomem *prcs, 135static void rx_deauthenticate(ray_dev_t *local, struct rcs __iomem *prcs,
136 unsigned int pkt_addr, int rx_len); 136 unsigned int pkt_addr, int rx_len);
@@ -1940,7 +1940,7 @@ static void set_multicast_list(struct net_device *dev)
1940/*============================================================================= 1940/*=============================================================================
1941 * All routines below here are run at interrupt time. 1941 * All routines below here are run at interrupt time.
1942=============================================================================*/ 1942=============================================================================*/
1943static irqreturn_t ray_interrupt(int irq, void *dev_id, struct pt_regs * regs) 1943static irqreturn_t ray_interrupt(int irq, void *dev_id)
1944{ 1944{
1945 struct net_device *dev = (struct net_device *)dev_id; 1945 struct net_device *dev = (struct net_device *)dev_id;
1946 struct pcmcia_device *link; 1946 struct pcmcia_device *link;
diff --git a/drivers/net/wireless/wavelan.c b/drivers/net/wireless/wavelan.c
index 5b69befdab74..24221e476cd3 100644
--- a/drivers/net/wireless/wavelan.c
+++ b/drivers/net/wireless/wavelan.c
@@ -3768,7 +3768,7 @@ static int wv_check_ioaddr(unsigned long ioaddr, u8 * mac)
3768 * This function is the interrupt handler for the WaveLAN card. This 3768 * This function is the interrupt handler for the WaveLAN card. This
3769 * routine will be called whenever: 3769 * routine will be called whenever:
3770 */ 3770 */
3771static irqreturn_t wavelan_interrupt(int irq, void *dev_id, struct pt_regs *regs) 3771static irqreturn_t wavelan_interrupt(int irq, void *dev_id)
3772{ 3772{
3773 struct net_device *dev; 3773 struct net_device *dev;
3774 unsigned long ioaddr; 3774 unsigned long ioaddr;
diff --git a/drivers/net/wireless/wavelan.p.h b/drivers/net/wireless/wavelan.p.h
index 5cb0bc8bb128..72b646c77d5a 100644
--- a/drivers/net/wireless/wavelan.p.h
+++ b/drivers/net/wireless/wavelan.p.h
@@ -642,8 +642,7 @@ static int
642/* ---------------------- INTERRUPT HANDLING ---------------------- */ 642/* ---------------------- INTERRUPT HANDLING ---------------------- */
643static irqreturn_t 643static irqreturn_t
644 wavelan_interrupt(int, /* interrupt handler */ 644 wavelan_interrupt(int, /* interrupt handler */
645 void *, 645 void *);
646 struct pt_regs *);
647static void 646static void
648 wavelan_watchdog(struct net_device *); /* transmission watchdog */ 647 wavelan_watchdog(struct net_device *); /* transmission watchdog */
649/* ------------------- CONFIGURATION CALLBACKS ------------------- */ 648/* ------------------- CONFIGURATION CALLBACKS ------------------- */
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c
index 0065f057bb1c..aafb301041b1 100644
--- a/drivers/net/wireless/wavelan_cs.c
+++ b/drivers/net/wireless/wavelan_cs.c
@@ -4117,24 +4117,14 @@ wv_pcmcia_release(struct pcmcia_device *link)
4117 */ 4117 */
4118static irqreturn_t 4118static irqreturn_t
4119wavelan_interrupt(int irq, 4119wavelan_interrupt(int irq,
4120 void * dev_id, 4120 void * dev_id)
4121 struct pt_regs * regs)
4122{ 4121{
4123 struct net_device * dev; 4122 struct net_device * dev = dev_id;
4124 net_local * lp; 4123 net_local * lp;
4125 kio_addr_t base; 4124 kio_addr_t base;
4126 int status0; 4125 int status0;
4127 u_int tx_status; 4126 u_int tx_status;
4128 4127
4129 if ((dev = dev_id) == NULL)
4130 {
4131#ifdef DEBUG_INTERRUPT_ERROR
4132 printk(KERN_WARNING "wavelan_interrupt(): irq %d for unknown device.\n",
4133 irq);
4134#endif
4135 return IRQ_NONE;
4136 }
4137
4138#ifdef DEBUG_INTERRUPT_TRACE 4128#ifdef DEBUG_INTERRUPT_TRACE
4139 printk(KERN_DEBUG "%s: ->wavelan_interrupt()\n", dev->name); 4129 printk(KERN_DEBUG "%s: ->wavelan_interrupt()\n", dev->name);
4140#endif 4130#endif
diff --git a/drivers/net/wireless/wavelan_cs.p.h b/drivers/net/wireless/wavelan_cs.p.h
index f34a36b0c7b0..4d1c4905c749 100644
--- a/drivers/net/wireless/wavelan_cs.p.h
+++ b/drivers/net/wireless/wavelan_cs.p.h
@@ -738,8 +738,7 @@ static void
738/* ---------------------- INTERRUPT HANDLING ---------------------- */ 738/* ---------------------- INTERRUPT HANDLING ---------------------- */
739static irqreturn_t 739static irqreturn_t
740 wavelan_interrupt(int, /* Interrupt handler */ 740 wavelan_interrupt(int, /* Interrupt handler */
741 void *, 741 void *);
742 struct pt_regs *);
743static void 742static void
744 wavelan_watchdog(struct net_device *); /* Transmission watchdog */ 743 wavelan_watchdog(struct net_device *); /* Transmission watchdog */
745/* ------------------- CONFIGURATION CALLBACKS ------------------- */ 744/* ------------------- CONFIGURATION CALLBACKS ------------------- */
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index e3ae5f60d5be..5b98a7876982 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -1145,7 +1145,6 @@ static inline void wl3501_ack_interrupt(struct wl3501_card *this)
1145 * wl3501_interrupt - Hardware interrupt from card. 1145 * wl3501_interrupt - Hardware interrupt from card.
1146 * @irq - Interrupt number 1146 * @irq - Interrupt number
1147 * @dev_id - net_device 1147 * @dev_id - net_device
1148 * @regs - registers
1149 * 1148 *
1150 * We must acknowledge the interrupt as soon as possible, and block the 1149 * We must acknowledge the interrupt as soon as possible, and block the
1151 * interrupt from the same card immediately to prevent re-entry. 1150 * interrupt from the same card immediately to prevent re-entry.
@@ -1154,27 +1153,20 @@ static inline void wl3501_ack_interrupt(struct wl3501_card *this)
1154 * On the other hand, to prevent SUTRO from malfunctioning, we must 1153 * On the other hand, to prevent SUTRO from malfunctioning, we must
1155 * unlock the SUTRO as soon as possible. 1154 * unlock the SUTRO as soon as possible.
1156 */ 1155 */
1157static irqreturn_t wl3501_interrupt(int irq, void *dev_id, struct pt_regs *regs) 1156static irqreturn_t wl3501_interrupt(int irq, void *dev_id)
1158{ 1157{
1159 struct net_device *dev = (struct net_device *)dev_id; 1158 struct net_device *dev = dev_id;
1160 struct wl3501_card *this; 1159 struct wl3501_card *this;
1161 int handled = 1;
1162 1160
1163 if (!dev) 1161 this = netdev_priv(dev);
1164 goto unknown;
1165 this = dev->priv;
1166 spin_lock(&this->lock); 1162 spin_lock(&this->lock);
1167 wl3501_ack_interrupt(this); 1163 wl3501_ack_interrupt(this);
1168 wl3501_block_interrupt(this); 1164 wl3501_block_interrupt(this);
1169 wl3501_rx_interrupt(dev); 1165 wl3501_rx_interrupt(dev);
1170 wl3501_unblock_interrupt(this); 1166 wl3501_unblock_interrupt(this);
1171 spin_unlock(&this->lock); 1167 spin_unlock(&this->lock);
1172out: 1168
1173 return IRQ_RETVAL(handled); 1169 return IRQ_HANDLED;
1174unknown:
1175 handled = 0;
1176 printk(KERN_ERR "%s: irq %d for unknown device.\n", __FUNCTION__, irq);
1177 goto out;
1178} 1170}
1179 1171
1180static int wl3501_reset_board(struct wl3501_card *this) 1172static int wl3501_reset_board(struct wl3501_card *this)
diff --git a/drivers/net/wireless/zd1201.c b/drivers/net/wireless/zd1201.c
index 80af9a9fcbb3..30057a335a7b 100644
--- a/drivers/net/wireless/zd1201.c
+++ b/drivers/net/wireless/zd1201.c
@@ -112,7 +112,7 @@ exit:
112 return err; 112 return err;
113} 113}
114 114
115static void zd1201_usbfree(struct urb *urb, struct pt_regs *regs) 115static void zd1201_usbfree(struct urb *urb)
116{ 116{
117 struct zd1201 *zd = urb->context; 117 struct zd1201 *zd = urb->context;
118 118
@@ -177,7 +177,7 @@ static int zd1201_docmd(struct zd1201 *zd, int cmd, int parm0,
177} 177}
178 178
179/* Callback after sending out a packet */ 179/* Callback after sending out a packet */
180static void zd1201_usbtx(struct urb *urb, struct pt_regs *regs) 180static void zd1201_usbtx(struct urb *urb)
181{ 181{
182 struct zd1201 *zd = urb->context; 182 struct zd1201 *zd = urb->context;
183 netif_wake_queue(zd->dev); 183 netif_wake_queue(zd->dev);
@@ -185,7 +185,7 @@ static void zd1201_usbtx(struct urb *urb, struct pt_regs *regs)
185} 185}
186 186
187/* Incoming data */ 187/* Incoming data */
188static void zd1201_usbrx(struct urb *urb, struct pt_regs *regs) 188static void zd1201_usbrx(struct urb *urb)
189{ 189{
190 struct zd1201 *zd = urb->context; 190 struct zd1201 *zd = urb->context;
191 int free = 0; 191 int free = 0;
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
index 5c265ad0485a..3faaeb2b7c89 100644
--- a/drivers/net/wireless/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/zd1211rw/zd_usb.c
@@ -408,7 +408,7 @@ static inline void handle_retry_failed_int(struct urb *urb)
408} 408}
409 409
410 410
411static void int_urb_complete(struct urb *urb, struct pt_regs *pt_regs) 411static void int_urb_complete(struct urb *urb)
412{ 412{
413 int r; 413 int r;
414 struct usb_int_header *hdr; 414 struct usb_int_header *hdr;
@@ -609,7 +609,7 @@ static void handle_rx_packet(struct zd_usb *usb, const u8 *buffer,
609 } 609 }
610} 610}
611 611
612static void rx_urb_complete(struct urb *urb, struct pt_regs *pt_regs) 612static void rx_urb_complete(struct urb *urb)
613{ 613{
614 struct zd_usb *usb; 614 struct zd_usb *usb;
615 struct zd_usb_rx *rx; 615 struct zd_usb_rx *rx;
@@ -779,7 +779,7 @@ void zd_usb_disable_rx(struct zd_usb *usb)
779 spin_unlock_irqrestore(&rx->lock, flags); 779 spin_unlock_irqrestore(&rx->lock, flags);
780} 780}
781 781
782static void tx_urb_complete(struct urb *urb, struct pt_regs *pt_regs) 782static void tx_urb_complete(struct urb *urb)
783{ 783{
784 int r; 784 int r;
785 785
diff --git a/drivers/net/yellowfin.c b/drivers/net/yellowfin.c
index a4c4953f1365..2412ce4917f2 100644
--- a/drivers/net/yellowfin.c
+++ b/drivers/net/yellowfin.c
@@ -350,7 +350,7 @@ static void yellowfin_timer(unsigned long data);
350static void yellowfin_tx_timeout(struct net_device *dev); 350static void yellowfin_tx_timeout(struct net_device *dev);
351static void yellowfin_init_ring(struct net_device *dev); 351static void yellowfin_init_ring(struct net_device *dev);
352static int yellowfin_start_xmit(struct sk_buff *skb, struct net_device *dev); 352static int yellowfin_start_xmit(struct sk_buff *skb, struct net_device *dev);
353static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance, struct pt_regs *regs); 353static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance);
354static int yellowfin_rx(struct net_device *dev); 354static int yellowfin_rx(struct net_device *dev);
355static void yellowfin_error(struct net_device *dev, int intr_status); 355static void yellowfin_error(struct net_device *dev, int intr_status);
356static int yellowfin_close(struct net_device *dev); 356static int yellowfin_close(struct net_device *dev);
@@ -888,7 +888,7 @@ static int yellowfin_start_xmit(struct sk_buff *skb, struct net_device *dev)
888 888
889/* The interrupt handler does all of the Rx thread work and cleans up 889/* The interrupt handler does all of the Rx thread work and cleans up
890 after the Tx thread. */ 890 after the Tx thread. */
891static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance, struct pt_regs *regs) 891static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance)
892{ 892{
893 struct net_device *dev = dev_instance; 893 struct net_device *dev = dev_instance;
894 struct yellowfin_private *yp; 894 struct yellowfin_private *yp;
@@ -896,13 +896,6 @@ static irqreturn_t yellowfin_interrupt(int irq, void *dev_instance, struct pt_re
896 int boguscnt = max_interrupt_work; 896 int boguscnt = max_interrupt_work;
897 unsigned int handled = 0; 897 unsigned int handled = 0;
898 898
899#ifndef final_version /* Can never occur. */
900 if (dev == NULL) {
901 printk (KERN_ERR "yellowfin_interrupt(): irq %d for unknown device.\n", irq);
902 return IRQ_NONE;
903 }
904#endif
905
906 yp = netdev_priv(dev); 899 yp = netdev_priv(dev);
907 ioaddr = yp->base; 900 ioaddr = yp->base;
908 901
diff --git a/drivers/net/znet.c b/drivers/net/znet.c
index 656d5a02908b..b24b0727108c 100644
--- a/drivers/net/znet.c
+++ b/drivers/net/znet.c
@@ -158,7 +158,7 @@ struct netidblk {
158 158
159static int znet_open(struct net_device *dev); 159static int znet_open(struct net_device *dev);
160static int znet_send_packet(struct sk_buff *skb, struct net_device *dev); 160static int znet_send_packet(struct sk_buff *skb, struct net_device *dev);
161static irqreturn_t znet_interrupt(int irq, void *dev_id, struct pt_regs *regs); 161static irqreturn_t znet_interrupt(int irq, void *dev_id);
162static void znet_rx(struct net_device *dev); 162static void znet_rx(struct net_device *dev);
163static int znet_close(struct net_device *dev); 163static int znet_close(struct net_device *dev);
164static struct net_device_stats *net_get_stats(struct net_device *dev); 164static struct net_device_stats *net_get_stats(struct net_device *dev);
@@ -602,7 +602,7 @@ static int znet_send_packet(struct sk_buff *skb, struct net_device *dev)
602} 602}
603 603
604/* The ZNET interrupt handler. */ 604/* The ZNET interrupt handler. */
605static irqreturn_t znet_interrupt(int irq, void *dev_id, struct pt_regs * regs) 605static irqreturn_t znet_interrupt(int irq, void *dev_id)
606{ 606{
607 struct net_device *dev = dev_id; 607 struct net_device *dev = dev_id;
608 struct znet_private *znet = dev->priv; 608 struct znet_private *znet = dev->priv;
@@ -610,11 +610,6 @@ static irqreturn_t znet_interrupt(int irq, void *dev_id, struct pt_regs * regs)
610 int boguscnt = 20; 610 int boguscnt = 20;
611 int handled = 0; 611 int handled = 0;
612 612
613 if (dev == NULL) {
614 printk(KERN_WARNING "znet_interrupt(): IRQ %d for unknown device.\n", irq);
615 return IRQ_NONE;
616 }
617
618 spin_lock (&znet->lock); 613 spin_lock (&znet->lock);
619 614
620 ioaddr = dev->base_addr; 615 ioaddr = dev->base_addr;
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
index 0d96c50ffe9c..03c763c2d0e0 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;
@@ -390,7 +389,7 @@ ilr_again:
390 int irq = dino_dev->global_irq[local_irq]; 389 int irq = dino_dev->global_irq[local_irq];
391 DBG(KERN_DEBUG "%s(%d, %p) mask 0x%x\n", 390 DBG(KERN_DEBUG "%s(%d, %p) mask 0x%x\n",
392 __FUNCTION__, irq, intr_dev, mask); 391 __FUNCTION__, irq, intr_dev, mask);
393 __do_IRQ(irq, regs); 392 __do_IRQ(irq);
394 mask &= ~(1 << local_irq); 393 mask &= ~(1 << local_irq);
395 } while (mask); 394 } while (mask);
396 395
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c
index 884965cedec9..e97cecbc4d18 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;
@@ -234,7 +234,7 @@ static irqreturn_t eisa_irq(int wax_irq, void *intr_dev, struct pt_regs *regs)
234 } 234 }
235 spin_unlock_irqrestore(&eisa_irq_lock, flags); 235 spin_unlock_irqrestore(&eisa_irq_lock, flags);
236 236
237 __do_IRQ(irq, regs); 237 __do_IRQ(irq);
238 238
239 spin_lock_irqsave(&eisa_irq_lock, flags); 239 spin_lock_irqsave(&eisa_irq_lock, flags);
240 /* unmask */ 240 /* unmask */
@@ -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..e5b0a544de40 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
@@ -219,7 +219,7 @@ static irqreturn_t mfc3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
219 if (this_port[i] != NULL) 219 if (this_port[i] != NULL)
220 if (pia(this_port[i])->crb & 128) { /* Board caused interrupt */ 220 if (pia(this_port[i])->crb & 128) { /* Board caused interrupt */
221 dummy = pia(this_port[i])->pprb; /* clear irq bit */ 221 dummy = pia(this_port[i])->pprb; /* clear irq bit */
222 parport_generic_irq(irq, this_port[i], regs); 222 parport_generic_irq(irq, this_port[i]);
223 } 223 }
224 return IRQ_HANDLED; 224 return IRQ_HANDLED;
225} 225}
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..9793533276ec 100644
--- a/drivers/parport/parport_sunbpp.c
+++ b/drivers/parport/parport_sunbpp.c
@@ -46,9 +46,9 @@
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);
52 return IRQ_HANDLED; 52 return IRQ_HANDLED;
53} 53}
54 54
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..7f5df9a9f393 100644
--- a/drivers/pcmcia/at91_cf.c
+++ b/drivers/pcmcia/at91_cf.c
@@ -64,9 +64,9 @@ 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 = _cf;
70 70
71 if (irq == cf->board->det_pin) { 71 if (irq == cf->board->det_pin) {
72 unsigned present = at91_cf_present(cf); 72 unsigned present = at91_cf_present(cf);
diff --git a/drivers/pcmcia/hd64465_ss.c b/drivers/pcmcia/hd64465_ss.c
index ad02629c8be2..caca0dc9d30f 100644
--- a/drivers/pcmcia/hd64465_ss.c
+++ b/drivers/pcmcia/hd64465_ss.c
@@ -650,7 +650,7 @@ static int hs_set_mem_map(struct pcmcia_socket *s, struct pccard_mem_map *mem)
650 */ 650 */
651static int hs_irq_demux(int irq, void *dev) 651static int hs_irq_demux(int irq, void *dev)
652{ 652{
653 hs_socket_t *sp = (hs_socket_t *)dev; 653 hs_socket_t *sp = dev;
654 u_int cscr; 654 u_int cscr;
655 655
656 DPRINTK("hs_irq_demux(irq=%d)\n", irq); 656 DPRINTK("hs_irq_demux(irq=%d)\n", irq);
@@ -671,13 +671,12 @@ 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 = dev;
677 u_int events = 0; 677 u_int events = 0;
678 u_int cscr; 678 u_int cscr;
679 679
680
681 cscr = hs_in(sp, CSCR); 680 cscr = hs_in(sp, CSCR);
682 681
683 DPRINTK("hs_interrupt, cscr=%04x\n", cscr); 682 DPRINTK("hs_interrupt, cscr=%04x\n", cscr);
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..bbf025874d0c 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;
@@ -395,7 +395,7 @@ static irqreturn_t pcc_interrupt(int irq, void *dev, struct pt_regs *regs)
395 395
396static void pcc_interrupt_wrapper(u_long data) 396static void pcc_interrupt_wrapper(u_long data)
397{ 397{
398 pcc_interrupt(0, NULL, NULL); 398 pcc_interrupt(0, NULL);
399 init_timer(&poll_timer); 399 init_timer(&poll_timer);
400 poll_timer.expires = jiffies + poll_interval; 400 poll_timer.expires = jiffies + poll_interval;
401 add_timer(&poll_timer); 401 add_timer(&poll_timer);
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/s390/block/dasd_diag.c b/drivers/s390/block/dasd_diag.c
index 222a8a71a5e8..53db58a68617 100644
--- a/drivers/s390/block/dasd_diag.c
+++ b/drivers/s390/block/dasd_diag.c
@@ -218,7 +218,7 @@ dasd_diag_term_IO(struct dasd_ccw_req * cqr)
218 218
219/* Handle external interruption. */ 219/* Handle external interruption. */
220static void 220static void
221dasd_ext_handler(struct pt_regs *regs, __u16 code) 221dasd_ext_handler(__u16 code)
222{ 222{
223 struct dasd_ccw_req *cqr, *next; 223 struct dasd_ccw_req *cqr, *next;
224 struct dasd_device *device; 224 struct dasd_device *device;
diff --git a/drivers/s390/char/ctrlchar.c b/drivers/s390/char/ctrlchar.c
index d83eb6358bac..49e9628d9297 100644
--- a/drivers/s390/char/ctrlchar.c
+++ b/drivers/s390/char/ctrlchar.c
@@ -20,7 +20,7 @@ static int ctrlchar_sysrq_key;
20static void 20static void
21ctrlchar_handle_sysrq(void *tty) 21ctrlchar_handle_sysrq(void *tty)
22{ 22{
23 handle_sysrq(ctrlchar_sysrq_key, NULL, (struct tty_struct *) tty); 23 handle_sysrq(ctrlchar_sysrq_key, (struct tty_struct *) tty);
24} 24}
25 25
26static DECLARE_WORK(ctrlchar_work, ctrlchar_handle_sysrq, NULL); 26static DECLARE_WORK(ctrlchar_work, ctrlchar_handle_sysrq, NULL);
diff --git a/drivers/s390/char/keyboard.c b/drivers/s390/char/keyboard.c
index 3be06569180d..e3491a5f5219 100644
--- a/drivers/s390/char/keyboard.c
+++ b/drivers/s390/char/keyboard.c
@@ -304,7 +304,7 @@ kbd_keycode(struct kbd_data *kbd, unsigned int keycode)
304 if (kbd->sysrq) { 304 if (kbd->sysrq) {
305 if (kbd->sysrq == K(KT_LATIN, '-')) { 305 if (kbd->sysrq == K(KT_LATIN, '-')) {
306 kbd->sysrq = 0; 306 kbd->sysrq = 0;
307 handle_sysrq(value, NULL, kbd->tty); 307 handle_sysrq(value, kbd->tty);
308 return; 308 return;
309 } 309 }
310 if (value == '-') { 310 if (value == '-') {
diff --git a/drivers/s390/char/monwriter.c b/drivers/s390/char/monwriter.c
index 1e3939aeb8ab..4362ff260244 100644
--- a/drivers/s390/char/monwriter.c
+++ b/drivers/s390/char/monwriter.c
@@ -26,6 +26,7 @@
26#define MONWRITE_MAX_DATALEN 4024 26#define MONWRITE_MAX_DATALEN 4024
27 27
28static int mon_max_bufs = 255; 28static int mon_max_bufs = 255;
29static int mon_buf_count;
29 30
30struct mon_buf { 31struct mon_buf {
31 struct list_head list; 32 struct list_head list;
@@ -40,7 +41,6 @@ struct mon_private {
40 size_t hdr_to_read; 41 size_t hdr_to_read;
41 size_t data_to_read; 42 size_t data_to_read;
42 struct mon_buf *current_buf; 43 struct mon_buf *current_buf;
43 int mon_buf_count;
44}; 44};
45 45
46/* 46/*
@@ -99,13 +99,13 @@ static int monwrite_new_hdr(struct mon_private *monpriv)
99 rc = monwrite_diag(monhdr, monbuf->data, 99 rc = monwrite_diag(monhdr, monbuf->data,
100 APPLDATA_STOP_REC); 100 APPLDATA_STOP_REC);
101 list_del(&monbuf->list); 101 list_del(&monbuf->list);
102 monpriv->mon_buf_count--; 102 mon_buf_count--;
103 kfree(monbuf->data); 103 kfree(monbuf->data);
104 kfree(monbuf); 104 kfree(monbuf);
105 monbuf = NULL; 105 monbuf = NULL;
106 } 106 }
107 } else { 107 } else {
108 if (monpriv->mon_buf_count >= mon_max_bufs) 108 if (mon_buf_count >= mon_max_bufs)
109 return -ENOSPC; 109 return -ENOSPC;
110 monbuf = kzalloc(sizeof(struct mon_buf), GFP_KERNEL); 110 monbuf = kzalloc(sizeof(struct mon_buf), GFP_KERNEL);
111 if (!monbuf) 111 if (!monbuf)
@@ -118,7 +118,7 @@ static int monwrite_new_hdr(struct mon_private *monpriv)
118 } 118 }
119 monbuf->hdr = *monhdr; 119 monbuf->hdr = *monhdr;
120 list_add_tail(&monbuf->list, &monpriv->list); 120 list_add_tail(&monbuf->list, &monpriv->list);
121 monpriv->mon_buf_count++; 121 mon_buf_count++;
122 } 122 }
123 monpriv->current_buf = monbuf; 123 monpriv->current_buf = monbuf;
124 return 0; 124 return 0;
@@ -186,7 +186,7 @@ static int monwrite_close(struct inode *inode, struct file *filp)
186 if (entry->hdr.mon_function != MONWRITE_GEN_EVENT) 186 if (entry->hdr.mon_function != MONWRITE_GEN_EVENT)
187 monwrite_diag(&entry->hdr, entry->data, 187 monwrite_diag(&entry->hdr, entry->data,
188 APPLDATA_STOP_REC); 188 APPLDATA_STOP_REC);
189 monpriv->mon_buf_count--; 189 mon_buf_count--;
190 list_del(&entry->list); 190 list_del(&entry->list);
191 kfree(entry->data); 191 kfree(entry->data);
192 kfree(entry); 192 kfree(entry);
diff --git a/drivers/s390/char/sclp.c b/drivers/s390/char/sclp.c
index 31e335751d6d..8a056df09d6b 100644
--- a/drivers/s390/char/sclp.c
+++ b/drivers/s390/char/sclp.c
@@ -324,7 +324,7 @@ __sclp_find_req(u32 sccb)
324 * Prepare read event data request if necessary. Start processing of next 324 * Prepare read event data request if necessary. Start processing of next
325 * request on queue. */ 325 * request on queue. */
326static void 326static void
327sclp_interrupt_handler(struct pt_regs *regs, __u16 code) 327sclp_interrupt_handler(__u16 code)
328{ 328{
329 struct sclp_req *req; 329 struct sclp_req *req;
330 u32 finished_sccb; 330 u32 finished_sccb;
@@ -743,7 +743,7 @@ EXPORT_SYMBOL(sclp_reactivate);
743/* Handler for external interruption used during initialization. Modify 743/* Handler for external interruption used during initialization. Modify
744 * request state to done. */ 744 * request state to done. */
745static void 745static void
746sclp_check_handler(struct pt_regs *regs, __u16 code) 746sclp_check_handler(__u16 code)
747{ 747{
748 u32 finished_sccb; 748 u32 finished_sccb;
749 749
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c
index 3bb4e472d73d..07c7f19339d2 100644
--- a/drivers/s390/cio/chsc.c
+++ b/drivers/s390/cio/chsc.c
@@ -200,11 +200,13 @@ css_get_ssd_info(struct subchannel *sch)
200 spin_unlock_irq(&sch->lock); 200 spin_unlock_irq(&sch->lock);
201 free_page((unsigned long)page); 201 free_page((unsigned long)page);
202 if (!ret) { 202 if (!ret) {
203 int j, chpid; 203 int j, chpid, mask;
204 /* Allocate channel path structures, if needed. */ 204 /* Allocate channel path structures, if needed. */
205 for (j = 0; j < 8; j++) { 205 for (j = 0; j < 8; j++) {
206 mask = 0x80 >> j;
206 chpid = sch->ssd_info.chpid[j]; 207 chpid = sch->ssd_info.chpid[j];
207 if (chpid && (get_chp_status(chpid) < 0)) 208 if ((sch->schib.pmcw.pim & mask) &&
209 (get_chp_status(chpid) < 0))
208 new_channel_path(chpid); 210 new_channel_path(chpid);
209 } 211 }
210 } 212 }
@@ -222,13 +224,15 @@ s390_subchannel_remove_chpid(struct device *dev, void *data)
222 224
223 sch = to_subchannel(dev); 225 sch = to_subchannel(dev);
224 chpid = data; 226 chpid = data;
225 for (j = 0; j < 8; j++) 227 for (j = 0; j < 8; j++) {
226 if (sch->schib.pmcw.chpid[j] == chpid->id) 228 mask = 0x80 >> j;
229 if ((sch->schib.pmcw.pim & mask) &&
230 (sch->schib.pmcw.chpid[j] == chpid->id))
227 break; 231 break;
232 }
228 if (j >= 8) 233 if (j >= 8)
229 return 0; 234 return 0;
230 235
231 mask = 0x80 >> j;
232 spin_lock_irq(&sch->lock); 236 spin_lock_irq(&sch->lock);
233 237
234 stsch(sch->schid, &schib); 238 stsch(sch->schid, &schib);
@@ -620,7 +624,7 @@ __chp_add_new_sch(struct subchannel_id schid)
620static int 624static int
621__chp_add(struct subchannel_id schid, void *data) 625__chp_add(struct subchannel_id schid, void *data)
622{ 626{
623 int i; 627 int i, mask;
624 struct channel_path *chp; 628 struct channel_path *chp;
625 struct subchannel *sch; 629 struct subchannel *sch;
626 630
@@ -630,8 +634,10 @@ __chp_add(struct subchannel_id schid, void *data)
630 /* Check if the subchannel is now available. */ 634 /* Check if the subchannel is now available. */
631 return __chp_add_new_sch(schid); 635 return __chp_add_new_sch(schid);
632 spin_lock_irq(&sch->lock); 636 spin_lock_irq(&sch->lock);
633 for (i=0; i<8; i++) 637 for (i=0; i<8; i++) {
634 if (sch->schib.pmcw.chpid[i] == chp->id) { 638 mask = 0x80 >> i;
639 if ((sch->schib.pmcw.pim & mask) &&
640 (sch->schib.pmcw.chpid[i] == chp->id)) {
635 if (stsch(sch->schid, &sch->schib) != 0) { 641 if (stsch(sch->schid, &sch->schib) != 0) {
636 /* Endgame. */ 642 /* Endgame. */
637 spin_unlock_irq(&sch->lock); 643 spin_unlock_irq(&sch->lock);
@@ -639,6 +645,7 @@ __chp_add(struct subchannel_id schid, void *data)
639 } 645 }
640 break; 646 break;
641 } 647 }
648 }
642 if (i==8) { 649 if (i==8) {
643 spin_unlock_irq(&sch->lock); 650 spin_unlock_irq(&sch->lock);
644 return 0; 651 return 0;
@@ -646,7 +653,7 @@ __chp_add(struct subchannel_id schid, void *data)
646 sch->lpm = ((sch->schib.pmcw.pim & 653 sch->lpm = ((sch->schib.pmcw.pim &
647 sch->schib.pmcw.pam & 654 sch->schib.pmcw.pam &
648 sch->schib.pmcw.pom) 655 sch->schib.pmcw.pom)
649 | 0x80 >> i) & sch->opm; 656 | mask) & sch->opm;
650 657
651 if (sch->driver && sch->driver->verify) 658 if (sch->driver && sch->driver->verify)
652 sch->driver->verify(&sch->dev); 659 sch->driver->verify(&sch->dev);
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index 2e2882daefbb..f18b1623cad7 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -19,6 +19,7 @@
19#include <asm/cio.h> 19#include <asm/cio.h>
20#include <asm/delay.h> 20#include <asm/delay.h>
21#include <asm/irq.h> 21#include <asm/irq.h>
22#include <asm/irq_regs.h>
22#include <asm/setup.h> 23#include <asm/setup.h>
23#include "airq.h" 24#include "airq.h"
24#include "cio.h" 25#include "cio.h"
@@ -606,15 +607,17 @@ do_IRQ (struct pt_regs *regs)
606 struct tpi_info *tpi_info; 607 struct tpi_info *tpi_info;
607 struct subchannel *sch; 608 struct subchannel *sch;
608 struct irb *irb; 609 struct irb *irb;
610 struct pt_regs *old_regs;
609 611
610 irq_enter (); 612 irq_enter ();
613 old_regs = set_irq_regs(regs);
611 asm volatile ("mc 0,0"); 614 asm volatile ("mc 0,0");
612 if (S390_lowcore.int_clock >= S390_lowcore.jiffy_timer) 615 if (S390_lowcore.int_clock >= S390_lowcore.jiffy_timer)
613 /** 616 /**
614 * Make sure that the i/o interrupt did not "overtake" 617 * Make sure that the i/o interrupt did not "overtake"
615 * the last HZ timer interrupt. 618 * the last HZ timer interrupt.
616 */ 619 */
617 account_ticks(regs); 620 account_ticks();
618 /* 621 /*
619 * Get interrupt information from lowcore 622 * Get interrupt information from lowcore
620 */ 623 */
@@ -652,6 +655,7 @@ do_IRQ (struct pt_regs *regs)
652 * out of the sie which costs more cycles than it saves. 655 * out of the sie which costs more cycles than it saves.
653 */ 656 */
654 } while (!MACHINE_IS_VM && tpi (NULL) != 0); 657 } while (!MACHINE_IS_VM && tpi (NULL) != 0);
658 set_irq_regs(old_regs);
655 irq_exit (); 659 irq_exit ();
656} 660}
657 661
diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c
index cd30f37fceae..c5ccd20b110c 100644
--- a/drivers/s390/crypto/ap_bus.c
+++ b/drivers/s390/crypto/ap_bus.c
@@ -1062,7 +1062,7 @@ static int ap_poll_thread(void *data)
1062 unsigned long flags; 1062 unsigned long flags;
1063 int requests; 1063 int requests;
1064 1064
1065 set_user_nice(current, -20); 1065 set_user_nice(current, 19);
1066 while (1) { 1066 while (1) {
1067 if (need_resched()) { 1067 if (need_resched()) {
1068 schedule(); 1068 schedule();
diff --git a/drivers/s390/net/iucv.c b/drivers/s390/net/iucv.c
index 809dd8d7f47a..1476ce2b437c 100644
--- a/drivers/s390/net/iucv.c
+++ b/drivers/s390/net/iucv.c
@@ -116,7 +116,7 @@ static DEFINE_SPINLOCK(iucv_irq_queue_lock);
116 *Internal function prototypes 116 *Internal function prototypes
117 */ 117 */
118static void iucv_tasklet_handler(unsigned long); 118static void iucv_tasklet_handler(unsigned long);
119static void iucv_irq_handler(struct pt_regs *, __u16); 119static void iucv_irq_handler(__u16);
120 120
121static DECLARE_TASKLET(iucv_tasklet,iucv_tasklet_handler,0); 121static DECLARE_TASKLET(iucv_tasklet,iucv_tasklet_handler,0);
122 122
@@ -2251,7 +2251,7 @@ iucv_sever(__u16 pathid, __u8 user_data[16])
2251 * Places the interrupt buffer on a queue and schedules iucv_tasklet_handler(). 2251 * Places the interrupt buffer on a queue and schedules iucv_tasklet_handler().
2252 */ 2252 */
2253static void 2253static void
2254iucv_irq_handler(struct pt_regs *regs, __u16 code) 2254iucv_irq_handler(__u16 code)
2255{ 2255{
2256 iucv_irqdata *irqdata; 2256 iucv_irqdata *irqdata;
2257 2257
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c
index 862a411a4aa0..c88babce9bca 100644
--- a/drivers/s390/scsi/zfcp_erp.c
+++ b/drivers/s390/scsi/zfcp_erp.c
@@ -1987,7 +1987,7 @@ zfcp_erp_adapter_strategy_open_qdio(struct zfcp_erp_action *erp_action)
1987 sbale = &(adapter->response_queue.buffer[i]->element[0]); 1987 sbale = &(adapter->response_queue.buffer[i]->element[0]);
1988 sbale->length = 0; 1988 sbale->length = 0;
1989 sbale->flags = SBAL_FLAGS_LAST_ENTRY; 1989 sbale->flags = SBAL_FLAGS_LAST_ENTRY;
1990 sbale->addr = 0; 1990 sbale->addr = NULL;
1991 } 1991 }
1992 1992
1993 ZFCP_LOG_TRACE("calling do_QDIO on adapter %s (flags=0x%x, " 1993 ZFCP_LOG_TRACE("calling do_QDIO on adapter %s (flags=0x%x, "
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/openprom.c b/drivers/sbus/char/openprom.c
index 2f698763ba5d..81ba2d71cee2 100644
--- a/drivers/sbus/char/openprom.c
+++ b/drivers/sbus/char/openprom.c
@@ -630,7 +630,7 @@ static int openprom_ioctl(struct inode * inode, struct file * file,
630 case OPROMPATH2NODE: 630 case OPROMPATH2NODE:
631 if ((file->f_mode & FMODE_READ) == 0) 631 if ((file->f_mode & FMODE_READ) == 0)
632 return -EPERM; 632 return -EPERM;
633 return openprom_sunos_ioctl(inode, file, cmd, arg, 0); 633 return openprom_sunos_ioctl(inode, file, cmd, arg, NULL);
634 634
635 case OPIOCGET: 635 case OPIOCGET:
636 case OPIOCNEXTPROP: 636 case OPIOCNEXTPROP:
diff --git a/drivers/sbus/char/uctrl.c b/drivers/sbus/char/uctrl.c
index 575b1f7ed410..b30372f17f1c 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");
@@ -400,7 +400,7 @@ static int __init ts102_uctrl_init(void)
400 } 400 }
401 401
402 driver->regs->uctrl_intr = UCTRL_INTR_RXNE_REQ|UCTRL_INTR_RXNE_MSK; 402 driver->regs->uctrl_intr = UCTRL_INTR_RXNE_REQ|UCTRL_INTR_RXNE_MSK;
403 printk("uctrl: 0x%x (irq %d)\n", driver->regs, driver->irq); 403 printk("uctrl: 0x%p (irq %d)\n", driver->regs, driver->irq);
404 uctrl_get_event_status(); 404 uctrl_get_event_status();
405 uctrl_get_external_status(); 405 uctrl_get_external_status();
406 return 0; 406 return 0;
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..d4613815f685 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(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
@@ -685,7 +685,7 @@ static void wait_intr(void)
685 return; 685 return;
686 } 686 }
687 687
688 NCR53c406a_intr(0, NULL, NULL); 688 NCR53c406a_intr(NULL);
689} 689}
690#endif 690#endif
691 691
@@ -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(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(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..2b344356a29e 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -3881,7 +3881,7 @@ typedef struct asc_board {
3881 /* 3881 /*
3882 * The following fields are used only for Wide Boards. 3882 * The following fields are used only for Wide Boards.
3883 */ 3883 */
3884 void *ioremap_addr; /* I/O Memory remap address. */ 3884 void __iomem *ioremap_addr; /* I/O Memory remap address. */
3885 ushort ioport; /* I/O Port address. */ 3885 ushort ioport; /* I/O Port address. */
3886 ADV_CARR_T *orig_carrp; /* ADV_CARR_T memory block. */ 3886 ADV_CARR_T *orig_carrp; /* ADV_CARR_T memory block. */
3887 adv_req_t *orig_reqp; /* adv_req_t memory block. */ 3887 adv_req_t *orig_reqp; /* adv_req_t memory block. */
@@ -3951,7 +3951,7 @@ typedef struct _PCI_CONFIG_SPACE_
3951 3951
3952/* Number of boards detected in system. */ 3952/* Number of boards detected in system. */
3953STATIC int asc_board_count = 0; 3953STATIC int asc_board_count = 0;
3954STATIC struct Scsi_Host *asc_host[ASC_NUM_BOARD_SUPPORTED] = { 0 }; 3954STATIC struct Scsi_Host *asc_host[ASC_NUM_BOARD_SUPPORTED] = { NULL };
3955 3955
3956/* Overrun buffer used by all narrow boards. */ 3956/* Overrun buffer used by all narrow boards. */
3957STATIC uchar overrun_buf[ASC_OVERRUN_BSIZE] = { 0 }; 3957STATIC uchar overrun_buf[ASC_OVERRUN_BSIZE] = { 0 };
@@ -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;
@@ -6621,7 +6621,7 @@ adv_build_req(asc_board_t *boardp, struct scsi_cmnd *scp,
6621 dma_map_single(dev, scp->request_buffer, 6621 dma_map_single(dev, scp->request_buffer,
6622 scp->request_bufflen, scp->sc_data_direction); 6622 scp->request_bufflen, scp->sc_data_direction);
6623 } else { 6623 } else {
6624 scsiqp->vdata_addr = 0; 6624 scsiqp->vdata_addr = NULL;
6625 scp->SCp.dma_handle = 0; 6625 scp->SCp.dma_handle = 0;
6626 } 6626 }
6627 scsiqp->data_addr = cpu_to_le32(scp->SCp.dma_handle); 6627 scsiqp->data_addr = cpu_to_le32(scp->SCp.dma_handle);
diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index fb6a476eb873..a0d1cee0be77 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,14 +757,9 @@ 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 = dev_id;
763
764 if (!shpnt) {
765 printk(KERN_ERR "aha152x: catched software interrupt %d for unknown controller.\n", irqno);
766 return IRQ_NONE;
767 }
768 763
769 HOSTDATA(shpnt)->swint++; 764 HOSTDATA(shpnt)->swint++;
770 765
@@ -1463,7 +1458,7 @@ static void run(void)
1463 * Interrupt handler 1458 * Interrupt handler
1464 * 1459 *
1465 */ 1460 */
1466static irqreturn_t intr(int irqno, void *dev_id, struct pt_regs *regs) 1461static irqreturn_t intr(int irqno, void *dev_id)
1467{ 1462{
1468 struct Scsi_Host *shpnt = (struct Scsi_Host *)dev_id; 1463 struct Scsi_Host *shpnt = (struct Scsi_Host *)dev_id;
1469 unsigned long flags; 1464 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..bcd7fffab907 100644
--- a/drivers/scsi/aic7xxx_old.c
+++ b/drivers/scsi/aic7xxx_old.c
@@ -6345,12 +6345,12 @@ 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(void *dev_id)
6349{ 6349{
6350 struct aic7xxx_host *p; 6350 struct aic7xxx_host *p;
6351 unsigned char intstat; 6351 unsigned char intstat;
6352 6352
6353 p = (struct aic7xxx_host *)dev_id; 6353 p = dev_id;
6354 6354
6355 /* 6355 /*
6356 * Just a few sanity checks. Make sure that we have an int pending. 6356 * Just a few sanity checks. Make sure that we have an int pending.
@@ -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(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);
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);
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);
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..e95b367d09ed 100644
--- a/drivers/scsi/dc395x.c
+++ b/drivers/scsi/dc395x.c
@@ -1219,7 +1219,7 @@ static void dump_register_info(struct AdapterCtlBlk *acb,
1219 srb, srb->cmd, srb->cmd->pid, 1219 srb, srb->cmd, srb->cmd->pid,
1220 srb->cmd->cmnd[0], srb->cmd->device->id, 1220 srb->cmd->cmnd[0], srb->cmd->device->id,
1221 srb->cmd->device->lun); 1221 srb->cmd->device->lun);
1222 printk(" sglist=%p cnt=%i idx=%i len=%Zd\n", 1222 printk(" sglist=%p cnt=%i idx=%i len=%zu\n",
1223 srb->segment_x, srb->sg_count, srb->sg_index, 1223 srb->segment_x, srb->sg_count, srb->sg_index,
1224 srb->total_xfer_length); 1224 srb->total_xfer_length);
1225 printk(" state=0x%04x status=0x%02x phase=0x%02x (%sconn.)\n", 1225 printk(" state=0x%04x status=0x%02x phase=0x%02x (%sconn.)\n",
@@ -1813,10 +1813,9 @@ 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 = dev_id;
1820 u16 scsi_status; 1819 u16 scsi_status;
1821 u8 dma_status; 1820 u8 dma_status;
1822 irqreturn_t handled = IRQ_NONE; 1821 irqreturn_t handled = IRQ_NONE;
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..1fd3c7590d31 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);
@@ -466,7 +466,7 @@ static void mesh_start_cmd(struct mesh_state *ms, struct scsi_cmnd *cmd)
466 dlog(ms, "intr b4 arb, intr/exc/err/fc=%.8x", 466 dlog(ms, "intr b4 arb, intr/exc/err/fc=%.8x",
467 MKWORD(mr->interrupt, mr->exception, 467 MKWORD(mr->interrupt, mr->exception,
468 mr->error, mr->fifo_count)); 468 mr->error, mr->fifo_count));
469 mesh_interrupt(0, (void *)ms, NULL); 469 mesh_interrupt(0, (void *)ms);
470 if (ms->phase != arbitrating) 470 if (ms->phase != arbitrating)
471 return; 471 return;
472 } 472 }
@@ -504,7 +504,7 @@ static void mesh_start_cmd(struct mesh_state *ms, struct scsi_cmnd *cmd)
504 dlog(ms, "intr after disresel, intr/exc/err/fc=%.8x", 504 dlog(ms, "intr after disresel, intr/exc/err/fc=%.8x",
505 MKWORD(mr->interrupt, mr->exception, 505 MKWORD(mr->interrupt, mr->exception,
506 mr->error, mr->fifo_count)); 506 mr->error, mr->fifo_count));
507 mesh_interrupt(0, (void *)ms, NULL); 507 mesh_interrupt(0, (void *)ms);
508 if (ms->phase != arbitrating) 508 if (ms->phase != arbitrating)
509 return; 509 return;
510 dlog(ms, "after intr after disresel, intr/exc/err/fc=%.8x", 510 dlog(ms, "after intr after disresel, intr/exc/err/fc=%.8x",
@@ -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..e0725353c99c 100644
--- a/drivers/scsi/qlogicfas408.c
+++ b/drivers/scsi/qlogicfas408.c
@@ -405,10 +405,10 @@ 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(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 = dev_id;
412 struct qlogicfas408_priv *priv = get_priv_by_host(host); 412 struct qlogicfas408_priv *priv = get_priv_by_host(host);
413 int qbase = priv->qbase; 413 int qbase = priv->qbase;
414 REG0; 414 REG0;
@@ -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(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/scsi_error.c b/drivers/scsi/scsi_error.c
index 3d355d054612..aff1b0cfd4b2 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -495,7 +495,7 @@ static int scsi_send_eh_cmnd(struct scsi_cmnd *scmd, unsigned char *cmnd,
495 memcpy(scmd->cmnd, cmnd, cmnd_size); 495 memcpy(scmd->cmnd, cmnd, cmnd_size);
496 496
497 if (copy_sense) { 497 if (copy_sense) {
498 int gfp_mask = GFP_ATOMIC; 498 gfp_t gfp_mask = GFP_ATOMIC;
499 499
500 if (shost->hostt->unchecked_isa_dma) 500 if (shost->hostt->unchecked_isa_dma)
501 gfp_mask |= __GFP_DMA; 501 gfp_mask |= __GFP_DMA;
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..d03aa6ce8fe8 100644
--- a/drivers/scsi/tmscsim.c
+++ b/drivers/scsi/tmscsim.c
@@ -700,9 +700,9 @@ 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(void *dev_id)
704{ 704{
705 struct dc390_acb *pACB = (struct dc390_acb*)dev_id; 705 struct dc390_acb *pACB = dev_id;
706 struct dc390_dcb *pDCB; 706 struct dc390_dcb *pDCB;
707 struct dc390_srb *pSRB; 707 struct dc390_srb *pSRB;
708 u8 sstatus=0; 708 u8 sstatus=0;
@@ -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(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..56906aba5ee3 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(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(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(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(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..634ecca36a77 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;
@@ -620,7 +620,7 @@ static void rs_360_interrupt(int vec, void *dev_id, struct pt_regs *fp)
620 volatile struct smc_regs *smcp; 620 volatile struct smc_regs *smcp;
621 volatile struct scc_regs *sccp; 621 volatile struct scc_regs *sccp;
622 622
623 info = (ser_info_t *)dev_id; 623 info = dev_id;
624 624
625 idx = PORT_NUM(info->state->smc_scc_num); 625 idx = PORT_NUM(info->state->smc_scc_num);
626 if (info->state->smc_scc_num & NUM_IS_SCC) { 626 if (info->state->smc_scc_num & NUM_IS_SCC) {
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..8be8da37f629 100644
--- a/drivers/serial/jsm/jsm_neo.c
+++ b/drivers/serial/jsm/jsm_neo.c
@@ -1114,9 +1114,9 @@ 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 = voidbrd;
1120 struct jsm_channel *ch; 1120 struct jsm_channel *ch;
1121 int port = 0; 1121 int port = 0;
1122 int type = 0; 1122 int type = 0;
diff --git a/drivers/serial/m32r_sio.c b/drivers/serial/m32r_sio.c
index 28c9ce6f0bdc..7656a35f5e2f 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;
@@ -592,7 +590,7 @@ static void m32r_sio_timeout(unsigned long data)
592 sts = sio_in(up, SIOSTS); 590 sts = sio_in(up, SIOSTS);
593 if (sts & 0x5) { 591 if (sts & 0x5) {
594 spin_lock(&up->port.lock); 592 spin_lock(&up->port.lock);
595 m32r_sio_handle_port(up, sts, NULL); 593 m32r_sio_handle_port(up, sts);
596 spin_unlock(&up->port.lock); 594 spin_unlock(&up->port.lock);
597 } 595 }
598 596
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..4f80c5b4a753 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,21 +510,13 @@ 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 = dev_id;
516 unsigned long pass = ISR_PASS_LIMIT; 516 unsigned long pass = ISR_PASS_LIMIT;
517 unsigned int keepgoing; 517 unsigned int keepgoing;
518 unsigned short status; 518 unsigned short status;
519 519
520 if ( irq != port->irq ) {
521 printk( KERN_WARNING
522 "mpc52xx_uart_int : " \
523 "Received wrong int %d. Waiting for %d\n",
524 irq, port->irq);
525 return IRQ_NONE;
526 }
527
528 spin_lock(&port->lock); 520 spin_lock(&port->lock);
529 521
530 /* While we have stuff to do, we continue */ 522 /* While we have stuff to do, we continue */
@@ -539,7 +531,7 @@ mpc52xx_uart_int(int irq, void *dev_id, struct pt_regs *regs)
539 /* Do we need to receive chars ? */ 531 /* Do we need to receive chars ? */
540 /* For this RX interrupts must be on and some chars waiting */ 532 /* For this RX interrupts must be on and some chars waiting */
541 if ( status & MPC52xx_PSC_IMR_RXRDY ) 533 if ( status & MPC52xx_PSC_IMR_RXRDY )
542 keepgoing |= mpc52xx_uart_int_rx_chars(port, regs); 534 keepgoing |= mpc52xx_uart_int_rx_chars(port);
543 535
544 /* Do we need to send chars ? */ 536 /* Do we need to send chars ? */
545 /* For this, TX must be ready and TX interrupt enabled */ 537 /* 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/mux.c b/drivers/serial/mux.c
index aa819d3f8ee5..8ad1b8c5ec5d 100644
--- a/drivers/serial/mux.c
+++ b/drivers/serial/mux.c
@@ -230,7 +230,7 @@ static void mux_read(struct uart_port *port)
230 continue; 230 continue;
231 } 231 }
232 232
233 if (uart_handle_sysrq_char(port, data & 0xffu, NULL)) 233 if (uart_handle_sysrq_char(port, data & 0xffu))
234 continue; 234 continue;
235 235
236 tty_insert_flip_char(tty, data & 0xFF, TTY_NORMAL); 236 tty_insert_flip_char(tty, data & 0xFF, TTY_NORMAL);
diff --git a/drivers/serial/netx-serial.c b/drivers/serial/netx-serial.c
index 7502109d37f0..062bad457b1a 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,9 +245,9 @@ 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 = dev_id;
251 unsigned long flags; 251 unsigned long flags;
252 unsigned char status; 252 unsigned char status;
253 253
@@ -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..415fe9633a9b 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,10 +230,9 @@ 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 = dev_id;
238 unsigned int iir, lsr; 236 unsigned int iir, lsr;
239 237
240 iir = serial_in(up, UART_IIR); 238 iir = serial_in(up, UART_IIR);
@@ -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..956b2cf08e1e 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);
@@ -677,7 +674,7 @@ static void sn_sal_timer_poll(unsigned long data)
677 if (!port->sc_port.irq) { 674 if (!port->sc_port.irq) {
678 spin_lock_irqsave(&port->sc_port.lock, flags); 675 spin_lock_irqsave(&port->sc_port.lock, flags);
679 if (sn_process_input) 676 if (sn_process_input)
680 sn_receive_chars(port, NULL, flags); 677 sn_receive_chars(port, flags);
681 sn_transmit_chars(port, TRANSMIT_RAW); 678 sn_transmit_chars(port, TRANSMIT_RAW);
682 spin_unlock_irqrestore(&port->sc_port.lock, flags); 679 spin_unlock_irqrestore(&port->sc_port.lock, flags);
683 mod_timer(&port->sc_timer, 680 mod_timer(&port->sc_timer,
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..73dd2eedaaad 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 }
@@ -1060,7 +1057,7 @@ static void sunzilog_free_tables(void)
1060 1057
1061static void sunzilog_putchar(struct uart_port *port, int ch) 1058static void sunzilog_putchar(struct uart_port *port, int ch)
1062{ 1059{
1063 struct zilog_channel *channel = ZILOG_CHANNEL_FROM_PORT(port); 1060 struct zilog_channel __iomem *channel = ZILOG_CHANNEL_FROM_PORT(port);
1064 int loops = ZS_PUT_CHAR_MAX_DELAY; 1061 int loops = ZS_PUT_CHAR_MAX_DELAY;
1065 1062
1066 /* This is a timed polling loop so do not switch the explicit 1063 /* This is a timed polling loop so do not switch the explicit
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..cd6b65333b71 100644
--- a/drivers/sn/ioc3.c
+++ b/drivers/sn/ioc3.c
@@ -398,10 +398,10 @@ 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 = arg;
405 int handled = 1, id; 405 int handled = 1, id;
406 unsigned int pending; 406 unsigned int pending;
407 407
@@ -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..72025df5561d 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,9 +667,9 @@ 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 = dev_id;
673 void *reg = drv_data->ioaddr; 673 void *reg = drv_data->ioaddr;
674 674
675 if (!drv_data->cur_msg) { 675 if (!drv_data->cur_msg) {
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..792becdfe6f8 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;
@@ -389,7 +389,7 @@ static void receive_chars(struct dec_serial *info, struct pt_regs *regs)
389 if (ch == 0) 389 if (ch == 0)
390 continue; 390 continue;
391 if (time_before(jiffies, break_pressed + HZ * 5)) { 391 if (time_before(jiffies, break_pressed + HZ * 5)) {
392 handle_sysrq(ch, regs, NULL); 392 handle_sysrq(ch, NULL);
393 break_pressed = 0; 393 break_pressed = 0;
394 continue; 394 continue;
395 } 395 }
@@ -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..724822cac2b1 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;
@@ -1216,7 +1216,7 @@ static int proc_submiturb_compat(struct dev_state *ps, void __user *arg)
1216{ 1216{
1217 struct usbdevfs_urb uurb; 1217 struct usbdevfs_urb uurb;
1218 1218
1219 if (get_urb32(&uurb,(struct usbdevfs_urb32 *)arg)) 1219 if (get_urb32(&uurb,(struct usbdevfs_urb32 __user *)arg))
1220 return -EFAULT; 1220 return -EFAULT;
1221 1221
1222 return proc_do_submiturb(ps, &uurb, ((struct usbdevfs_urb32 __user *)arg)->iso_frame_desc, arg); 1222 return proc_do_submiturb(ps, &uurb, ((struct usbdevfs_urb32 __user *)arg)->iso_frame_desc, arg);
@@ -1251,7 +1251,7 @@ static int processcompl_compat(struct async *as, void __user * __user *arg)
1251 } 1251 }
1252 1252
1253 free_async(as); 1253 free_async(as);
1254 if (put_user((u32)(u64)addr, (u32 __user *)arg)) 1254 if (put_user(ptr_to_compat(addr), (u32 __user *)arg))
1255 return -EFAULT; 1255 return -EFAULT;
1256 return 0; 1256 return 0;
1257} 1257}
@@ -1520,7 +1520,7 @@ static int usbdev_ioctl(struct inode *inode, struct file *file, unsigned int cmd
1520 1520
1521 case USBDEVFS_IOCTL32: 1521 case USBDEVFS_IOCTL32:
1522 snoop(&dev->dev, "%s: IOCTL\n", __FUNCTION__); 1522 snoop(&dev->dev, "%s: IOCTL\n", __FUNCTION__);
1523 ret = proc_ioctl_compat(ps, (compat_uptr_t)(long)p); 1523 ret = proc_ioctl_compat(ps, ptr_to_compat(p));
1524 break; 1524 break;
1525#endif 1525#endif
1526 1526
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/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index 4d2946e540cf..f1f32d7be5f9 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -1551,7 +1551,7 @@ return_urb:
1551 ep->already_seen = ep->setup_stage = 0; 1551 ep->already_seen = ep->setup_stage = 0;
1552 1552
1553 spin_unlock (&dum->lock); 1553 spin_unlock (&dum->lock);
1554 usb_hcd_giveback_urb (dummy_to_hcd(dum), urb, NULL); 1554 usb_hcd_giveback_urb (dummy_to_hcd(dum), urb);
1555 spin_lock (&dum->lock); 1555 spin_lock (&dum->lock);
1556 1556
1557 goto restart; 1557 goto restart;
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..fe1fe2f97cb5 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 (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..021be39fe16e 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;
@@ -1088,7 +1087,7 @@ static int mos7840_open(struct usb_serial_port *port, struct file *filp)
1088 mos7840_port->icount.tx = 0; 1087 mos7840_port->icount.tx = 0;
1089 mos7840_port->icount.rx = 0; 1088 mos7840_port->icount.rx = 0;
1090 1089
1091 dbg("\n\nusb_serial serial:%x mos7840_port:%x\n usb_serial_port port:%x\n\n", (unsigned int)serial, (unsigned int)mos7840_port, (unsigned int)port); 1090 dbg("\n\nusb_serial serial:%p mos7840_port:%p\n usb_serial_port port:%p\n\n", serial, mos7840_port, port);
1092 1091
1093 return 0; 1092 return 0;
1094 1093
@@ -1421,7 +1420,6 @@ static int mos7840_write(struct usb_serial_port *port,
1421 int i; 1420 int i;
1422 int bytes_sent = 0; 1421 int bytes_sent = 0;
1423 int transfer_size; 1422 int transfer_size;
1424 int from_user = 0;
1425 1423
1426 struct moschip_port *mos7840_port; 1424 struct moschip_port *mos7840_port;
1427 struct usb_serial *serial; 1425 struct usb_serial *serial;
@@ -1512,15 +1510,7 @@ static int mos7840_write(struct usb_serial_port *port,
1512 } 1510 }
1513 transfer_size = min(count, URB_TRANSFER_BUFFER_SIZE); 1511 transfer_size = min(count, URB_TRANSFER_BUFFER_SIZE);
1514 1512
1515 if (from_user) { 1513 memcpy(urb->transfer_buffer, current_position, transfer_size);
1516 if (copy_from_user
1517 (urb->transfer_buffer, current_position, transfer_size)) {
1518 bytes_sent = -EFAULT;
1519 goto exit;
1520 }
1521 } else {
1522 memcpy(urb->transfer_buffer, current_position, transfer_size);
1523 }
1524 1514
1525 /* fill urb with data and submit */ 1515 /* fill urb with data and submit */
1526 usb_fill_bulk_urb(urb, 1516 usb_fill_bulk_urb(urb,
@@ -2226,7 +2216,7 @@ static void mos7840_set_termios(struct usb_serial_port *port,
2226 *****************************************************************************/ 2216 *****************************************************************************/
2227 2217
2228static int mos7840_get_lsr_info(struct moschip_port *mos7840_port, 2218static int mos7840_get_lsr_info(struct moschip_port *mos7840_port,
2229 unsigned int *value) 2219 unsigned int __user *value)
2230{ 2220{
2231 int count; 2221 int count;
2232 unsigned int result = 0; 2222 unsigned int result = 0;
@@ -2249,7 +2239,7 @@ static int mos7840_get_lsr_info(struct moschip_port *mos7840_port,
2249 *****************************************************************************/ 2239 *****************************************************************************/
2250 2240
2251static int mos7840_get_bytes_avail(struct moschip_port *mos7840_port, 2241static int mos7840_get_bytes_avail(struct moschip_port *mos7840_port,
2252 unsigned int *value) 2242 unsigned int __user *value)
2253{ 2243{
2254 unsigned int result = 0; 2244 unsigned int result = 0;
2255 struct tty_struct *tty = mos7840_port->port->tty; 2245 struct tty_struct *tty = mos7840_port->port->tty;
@@ -2272,7 +2262,7 @@ static int mos7840_get_bytes_avail(struct moschip_port *mos7840_port,
2272 *****************************************************************************/ 2262 *****************************************************************************/
2273 2263
2274static int mos7840_set_modem_info(struct moschip_port *mos7840_port, 2264static int mos7840_set_modem_info(struct moschip_port *mos7840_port,
2275 unsigned int cmd, unsigned int *value) 2265 unsigned int cmd, unsigned int __user *value)
2276{ 2266{
2277 unsigned int mcr; 2267 unsigned int mcr;
2278 unsigned int arg; 2268 unsigned int arg;
@@ -2342,7 +2332,7 @@ static int mos7840_set_modem_info(struct moschip_port *mos7840_port,
2342 *****************************************************************************/ 2332 *****************************************************************************/
2343 2333
2344static int mos7840_get_modem_info(struct moschip_port *mos7840_port, 2334static int mos7840_get_modem_info(struct moschip_port *mos7840_port,
2345 unsigned int *value) 2335 unsigned int __user *value)
2346{ 2336{
2347 unsigned int result = 0; 2337 unsigned int result = 0;
2348 __u16 msr; 2338 __u16 msr;
@@ -2371,7 +2361,7 @@ static int mos7840_get_modem_info(struct moschip_port *mos7840_port,
2371 *****************************************************************************/ 2361 *****************************************************************************/
2372 2362
2373static int mos7840_get_serial_info(struct moschip_port *mos7840_port, 2363static int mos7840_get_serial_info(struct moschip_port *mos7840_port,
2374 struct serial_struct *retinfo) 2364 struct serial_struct __user *retinfo)
2375{ 2365{
2376 struct serial_struct tmp; 2366 struct serial_struct tmp;
2377 2367
@@ -2406,6 +2396,7 @@ static int mos7840_get_serial_info(struct moschip_port *mos7840_port,
2406static int mos7840_ioctl(struct usb_serial_port *port, struct file *file, 2396static int mos7840_ioctl(struct usb_serial_port *port, struct file *file,
2407 unsigned int cmd, unsigned long arg) 2397 unsigned int cmd, unsigned long arg)
2408{ 2398{
2399 void __user *argp = (void __user *)arg;
2409 struct moschip_port *mos7840_port; 2400 struct moschip_port *mos7840_port;
2410 struct tty_struct *tty; 2401 struct tty_struct *tty;
2411 2402
@@ -2434,16 +2425,13 @@ static int mos7840_ioctl(struct usb_serial_port *port, struct file *file,
2434 2425
2435 case TIOCINQ: 2426 case TIOCINQ:
2436 dbg("%s (%d) TIOCINQ", __FUNCTION__, port->number); 2427 dbg("%s (%d) TIOCINQ", __FUNCTION__, port->number);
2437 return mos7840_get_bytes_avail(mos7840_port, 2428 return mos7840_get_bytes_avail(mos7840_port, argp);
2438 (unsigned int *)arg);
2439 break;
2440 2429
2441 case TIOCOUTQ: 2430 case TIOCOUTQ:
2442 dbg("%s (%d) TIOCOUTQ", __FUNCTION__, port->number); 2431 dbg("%s (%d) TIOCOUTQ", __FUNCTION__, port->number);
2443 return put_user(tty->driver->chars_in_buffer ? 2432 return put_user(tty->driver->chars_in_buffer ?
2444 tty->driver->chars_in_buffer(tty) : 0, 2433 tty->driver->chars_in_buffer(tty) : 0,
2445 (int __user *)arg); 2434 (int __user *)arg);
2446 break;
2447 2435
2448 case TCFLSH: 2436 case TCFLSH:
2449 retval = tty_check_change(tty); 2437 retval = tty_check_change(tty);
@@ -2473,13 +2461,13 @@ static int mos7840_ioctl(struct usb_serial_port *port, struct file *file,
2473 2461
2474 case TCGETS: 2462 case TCGETS:
2475 if (kernel_termios_to_user_termios 2463 if (kernel_termios_to_user_termios
2476 ((struct termios __user *)arg, tty->termios)) 2464 ((struct termios __user *)argp, tty->termios))
2477 return -EFAULT; 2465 return -EFAULT;
2478 return 0; 2466 return 0;
2479 2467
2480 case TIOCSERGETLSR: 2468 case TIOCSERGETLSR:
2481 dbg("%s (%d) TIOCSERGETLSR", __FUNCTION__, port->number); 2469 dbg("%s (%d) TIOCSERGETLSR", __FUNCTION__, port->number);
2482 return mos7840_get_lsr_info(mos7840_port, (unsigned int *)arg); 2470 return mos7840_get_lsr_info(mos7840_port, argp);
2483 return 0; 2471 return 0;
2484 2472
2485 case TIOCMBIS: 2473 case TIOCMBIS:
@@ -2488,19 +2476,16 @@ static int mos7840_ioctl(struct usb_serial_port *port, struct file *file,
2488 dbg("%s (%d) TIOCMSET/TIOCMBIC/TIOCMSET", __FUNCTION__, 2476 dbg("%s (%d) TIOCMSET/TIOCMBIC/TIOCMSET", __FUNCTION__,
2489 port->number); 2477 port->number);
2490 mosret = 2478 mosret =
2491 mos7840_set_modem_info(mos7840_port, cmd, 2479 mos7840_set_modem_info(mos7840_port, cmd, argp);
2492 (unsigned int *)arg);
2493 return mosret; 2480 return mosret;
2494 2481
2495 case TIOCMGET: 2482 case TIOCMGET:
2496 dbg("%s (%d) TIOCMGET", __FUNCTION__, port->number); 2483 dbg("%s (%d) TIOCMGET", __FUNCTION__, port->number);
2497 return mos7840_get_modem_info(mos7840_port, 2484 return mos7840_get_modem_info(mos7840_port, argp);
2498 (unsigned int *)arg);
2499 2485
2500 case TIOCGSERIAL: 2486 case TIOCGSERIAL:
2501 dbg("%s (%d) TIOCGSERIAL", __FUNCTION__, port->number); 2487 dbg("%s (%d) TIOCGSERIAL", __FUNCTION__, port->number);
2502 return mos7840_get_serial_info(mos7840_port, 2488 return mos7840_get_serial_info(mos7840_port, argp);
2503 (struct serial_struct *)arg);
2504 2489
2505 case TIOCSSERIAL: 2490 case TIOCSSERIAL:
2506 dbg("%s (%d) TIOCSSERIAL", __FUNCTION__, port->number); 2491 dbg("%s (%d) TIOCSSERIAL", __FUNCTION__, port->number);
@@ -2550,7 +2535,7 @@ static int mos7840_ioctl(struct usb_serial_port *port, struct file *file,
2550 2535
2551 dbg("%s (%d) TIOCGICOUNT RX=%d, TX=%d", __FUNCTION__, 2536 dbg("%s (%d) TIOCGICOUNT RX=%d, TX=%d", __FUNCTION__,
2552 port->number, icount.rx, icount.tx); 2537 port->number, icount.rx, icount.tx);
2553 if (copy_to_user((void *)arg, &icount, sizeof(icount))) 2538 if (copy_to_user(argp, &icount, sizeof(icount)))
2554 return -EFAULT; 2539 return -EFAULT;
2555 return 0; 2540 return 0;
2556 2541
@@ -2818,7 +2803,7 @@ static int mos7840_startup(struct usb_serial *serial)
2818 2803
2819 /* setting configuration feature to one */ 2804 /* setting configuration feature to one */
2820 usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0), 2805 usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0),
2821 (__u8) 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 5 * HZ); 2806 (__u8) 0x03, 0x00, 0x01, 0x00, NULL, 0x00, 5 * HZ);
2822 return 0; 2807 return 0;
2823} 2808}
2824 2809
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;