From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (146.0.238.70:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 24 Feb 2019 15:12:38 -0000 Received: from mga02.intel.com ([134.134.136.20]) by Galois.linutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1gxvO6-0001Qu-Qo for speck@linutronix.de; Sun, 24 Feb 2019 16:08:21 +0100 From: Andi Kleen Subject: [MODERATED] [PATCH v6 41/43] MDSv6 Date: Sun, 24 Feb 2019 07:07:47 -0800 Message-Id: <7a86b7bce4934b2200f609c8192ae5ccbba77026.1551019522.git.ak@linux.intel.com> In-Reply-To: References: In-Reply-To: References: To: speck@linutronix.de Cc: Andi Kleen List-ID: From: Andi Kleen Subject: mds sweep: Mark interrupts that touch user data Mark interrupt handlers that touch user data or might touch it with IRQF_USER_DATA to schedule cpu clears. This has been generated with a tree wide audit and the following coccinelle script. In general it erred on the conservative. Either interrupt handlers directly touched user data (e.g. with PIO), or were too complicated to audit and for slow devices anyways. A lot of interrupt handlers are also handled by the strategic clear cpus added to functions that touch user data directly. This patch only marks handlers that don't call any such functions. Some auditing from Mark Gross. // request_irq(irq, handler, flags, name, arg) -> // request_irq(irq, handler, flags | IRQF_USER_DATA, name, arg) @@ expression irq, handler, name, arg; @@ - request_irq(irq, handler, 0, name, arg) + request_irq(irq, handler, IRQF_USER_DATA, name, arg) @@ expression irq, handler, flags, name, arg; @@ - request_irq(irq, handler, flags, name, arg) + request_irq(irq, handler, flags | IRQF_USER_DATA, name, arg) // clean up after previous rules combined // XXX better way to do this? @@ expression irq, handler, name, arg; @@ - request_irq(irq, handler, IRQF_USER_DATA | IRQF_CLEAR_CPU, name, arg) + request_irq(irq, handler, IRQF_USER_DATA, name, arg) // devm_request_irq(dev, irq, handler, flags, name, arg) -> // devm_request_irq(dev, irq, handler, flags | IRQF_USER_DATA, name, arg) @@ expression irq, handler, name, arg, dev; @@ - devm_request_irq(dev, irq, handler, 0, name, arg) + devm_request_irq(dev, irq, handler, IRQF_USER_DATA, name, arg) @@ expression irq, handler, flags, name, arg, dev; @@ - devm_request_irq(dev, irq, handler, flags, name, arg) + devm_request_irq(dev, irq, handler, flags | IRQF_USER_DATA, name, arg) // clean up after previous rules combined // XXX better way to do this? @@ expression irq, handler, name, arg, dev; @@ - devm_request_irq(dev, irq, handler, IRQF_USER_DATA | IRQF_CLEAR_CPU, name, arg) + devm_request_irq(dev, irq, handler, IRQF_USER_DATA, name, arg) // request_any_context_irq(irq, handler, flags, name, arg) -> // request_any_context_irq(irq, handler, flags | IRQF_USER_DATA, name, arg) @@ expression irq, handler, name, arg; @@ - request_any_context_irq(irq, handler, 0, name, arg) + request_any_context_irq(irq, handler, IRQF_USER_DATA, name, arg) @@ expression irq, handler, flags, name, arg; @@ - request_any_context_irq(irq, handler, flags, name, arg) + request_any_context_irq(irq, handler, flags | IRQF_USER_DATA, name, arg) // clean up after previous rules combined // XXX better way to do this? @@ expression irq, handler, name, arg; @@ - request_any_context_irq(irq, handler, IRQF_USER_DATA | IRQF_CLEAR_CPU, name, arg) + request_any_context_irq(irq, handler, IRQF_USER_DATA, name, arg) // devm_request_any_context_irq(dev, irq, handler, flags, name, arg) -> // devm_request_any_context_irq(dev, irq, handler, flags | IRQF_USER_DATA, name, arg) @@ expression irq, handler, name, arg, dev; @@ - devm_request_any_context_irq(dev, irq, handler, 0, name, arg) + devm_request_any_context_irq(dev, irq, handler, IRQF_USER_DATA, name, arg) @@ expression irq, handler, flags, name, arg, dev; @@ - devm_request_any_context_irq(dev, irq, handler, flags, name, arg) + devm_request_any_context_irq(dev, irq, handler, flags | IRQF_USER_DATA, name, arg) // clean up after previous rules combined // XXX better way to do this? @@ expression irq, handler, name, arg, dev; @@ - devm_request_any_context_irq(dev, irq, handler, IRQF_USER_DATA | IRQF_CLEAR_CPU, name, arg) + devm_request_any_context_irq(dev, irq, handler, IRQF_USER_DATA, name, arg) Signed-off-by: Andi Kleen --- arch/x86/include/asm/floppy.h | 6 ++-- drivers/atm/lanai.c | 4 +-- drivers/atm/nicstar.c | 4 +-- drivers/char/ipmi/ipmi_si_intf.c | 6 ++-- drivers/char/sonypi.c | 3 +- drivers/firewire/nosy.c | 3 +- drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c | 3 +- .../gpu/drm/nouveau/nvkm/subdev/pci/base.c | 3 +- drivers/i2c/busses/i2c-emev2.c | 5 +-- drivers/i2c/busses/i2c-i801.c | 2 +- drivers/i2c/busses/i2c-pxa.c | 4 +-- drivers/i2c/busses/i2c-rk3x.c | 3 +- drivers/ide/ide-probe.c | 2 +- drivers/infiniband/hw/mthca/mthca_eq.c | 14 ++++---- drivers/input/serio/i8042.c | 13 +++---- drivers/ipack/carriers/tpci200.c | 6 ++-- drivers/isdn/hardware/avm/b1isa.c | 4 ++- drivers/isdn/hardware/avm/b1pci.c | 6 ++-- drivers/isdn/hardware/avm/b1pcmcia.c | 3 +- drivers/isdn/hardware/avm/c4.c | 3 +- drivers/isdn/hardware/avm/t1isa.c | 4 ++- drivers/isdn/hardware/avm/t1pci.c | 3 +- drivers/isdn/hardware/mISDN/avmfritz.c | 4 +-- drivers/isdn/hardware/mISDN/hfcmulti.c | 3 +- drivers/isdn/hardware/mISDN/hfcpci.c | 2 +- drivers/isdn/hardware/mISDN/mISDNinfineon.c | 3 +- drivers/isdn/hardware/mISDN/netjet.c | 2 +- drivers/isdn/hardware/mISDN/speedfax.c | 3 +- drivers/isdn/hardware/mISDN/w6692.c | 2 +- drivers/isdn/hisax/config.c | 2 +- drivers/isdn/hisax/hfc4s8s_l1.c | 3 +- drivers/isdn/hisax/hisax_fcpcipnp.c | 13 ++++--- drivers/media/common/saa7146/saa7146_core.c | 4 +-- drivers/media/pci/b2c2/flexcop-pci.c | 3 +- drivers/media/pci/cobalt/cobalt-driver.c | 3 +- drivers/media/pci/cx18/cx18-driver.c | 3 +- drivers/media/pci/cx25821/cx25821-core.c | 2 +- drivers/media/pci/cx88/cx88-alsa.c | 3 +- drivers/media/pci/cx88/cx88-mpeg.c | 2 +- drivers/media/pci/cx88/cx88-video.c | 2 +- drivers/media/pci/dt3155/dt3155.c | 2 +- drivers/media/pci/intel/ipu3/ipu3-cio2.c | 2 +- drivers/media/pci/ivtv/ivtv-driver.c | 3 +- drivers/media/pci/meye/meye.c | 3 +- drivers/media/pci/ngene/ngene-core.c | 5 ++- drivers/media/pci/pluto2/pluto2.c | 3 +- drivers/media/pci/saa7134/saa7134-alsa.c | 4 +-- drivers/media/pci/saa7134/saa7134-core.c | 2 +- drivers/media/pci/saa7164/saa7164-core.c | 7 ++-- drivers/media/pci/solo6x10/solo6x10-core.c | 4 +-- drivers/media/pci/sta2x11/sta2x11_vip.c | 5 ++- drivers/media/pci/tw68/tw68-core.c | 2 +- drivers/media/pci/tw686x/tw686x-core.c | 4 +-- drivers/media/platform/aspeed-video.c | 5 +-- .../media/platform/marvell-ccic/cafe-driver.c | 3 +- drivers/media/rc/fintek-cir.c | 3 +- drivers/media/rc/gpio-ir-recv.c | 2 +- drivers/media/rc/ir-hix5hd2.c | 3 +- drivers/media/rc/ite-cir.c | 3 +- drivers/media/rc/nuvoton-cir.c | 3 +- drivers/media/rc/serial_ir.c | 2 +- drivers/media/rc/sir_ir.c | 3 +- drivers/media/rc/winbond-cir.c | 2 +- drivers/memstick/host/jmb38x_ms.c | 3 +- drivers/message/fusion/mptbase.c | 3 +- drivers/mfd/ezx-pcap.c | 4 +-- drivers/misc/ibmasm/module.c | 4 ++- drivers/misc/sgi-gru/grufile.c | 7 ++-- drivers/misc/sgi-xp/xpc_uv.c | 3 +- drivers/mmc/host/mtk-sd.c | 3 +- drivers/net/arcnet/arc-rimi.c | 2 +- drivers/net/arcnet/com20020.c | 3 +- drivers/net/arcnet/com90io.c | 3 +- drivers/net/arcnet/com90xx.c | 2 +- drivers/net/can/cc770/cc770.c | 4 +-- drivers/net/can/peak_canfd/peak_pciefd_main.c | 8 ++--- drivers/net/can/sja1000/ems_pcmcia.c | 4 +-- drivers/net/can/sja1000/peak_pcmcia.c | 3 +- drivers/net/can/sja1000/sja1000.c | 5 +-- drivers/net/ethernet/3com/3c509.c | 3 +- drivers/net/ethernet/3com/3c515.c | 6 ++-- drivers/net/ethernet/8390/axnet_cs.c | 3 +- drivers/net/ethernet/8390/ne.c | 3 +- drivers/net/ethernet/8390/ne2k-pci.c | 3 +- drivers/net/ethernet/8390/pcnet_cs.c | 3 +- drivers/net/ethernet/8390/smc-ultra.c | 3 +- drivers/net/ethernet/8390/wd.c | 3 +- drivers/net/ethernet/agere/et131x.c | 4 +-- drivers/net/ethernet/amd/lance.c | 2 +- drivers/net/ethernet/amd/ni65.c | 5 +-- drivers/net/ethernet/atheros/atlx/atl1.c | 4 +-- drivers/net/ethernet/atheros/atlx/atl2.c | 4 +-- .../net/ethernet/chelsio/cxgb3/cxgb3_main.c | 16 +++------ drivers/net/ethernet/micrel/ks8851_mll.c | 3 +- drivers/net/ethernet/microchip/lan743x_main.c | 7 ++-- drivers/net/ethernet/realtek/atp.c | 3 +- drivers/net/fddi/skfp/skfddi.c | 4 +-- drivers/net/hamradio/baycom_ser_fdx.c | 3 +- drivers/net/hamradio/baycom_ser_hdx.c | 3 +- drivers/net/hamradio/scc.c | 4 +-- drivers/net/hamradio/yam.c | 2 +- drivers/net/ieee802154/at86rf230.c | 3 +- drivers/net/ieee802154/ca8210.c | 10 ++---- drivers/net/ieee802154/mcr20a.c | 3 +- drivers/net/ieee802154/mrf24j40.c | 3 +- drivers/net/wan/cosa.c | 2 +- drivers/net/wan/farsync.c | 2 +- drivers/net/wan/hostess_sv11.c | 3 +- drivers/net/wan/sbni.c | 2 +- drivers/net/wan/sdla.c | 2 +- drivers/net/wan/sealevel.c | 3 +- .../net/wireless/broadcom/b43legacy/main.c | 2 +- .../broadcom/brcm80211/brcmfmac/bcmsdh.c | 7 ++-- .../broadcom/brcm80211/brcmsmac/mac80211_if.c | 3 +- drivers/net/wireless/cisco/airo.c | 4 +-- drivers/net/wireless/intel/ipw2x00/ipw2100.c | 4 +-- drivers/net/wireless/intel/ipw2x00/ipw2200.c | 3 +- .../net/wireless/intel/iwlegacy/3945-mac.c | 3 +- .../net/wireless/intel/iwlegacy/4965-mac.c | 3 +- .../net/wireless/intersil/hostap/hostap_pci.c | 3 +- .../net/wireless/intersil/hostap/hostap_plx.c | 3 +- .../intersil/orinoco/orinoco_nortel.c | 4 +-- .../wireless/intersil/orinoco/orinoco_pci.c | 4 +-- .../wireless/intersil/orinoco/orinoco_plx.c | 4 +-- .../wireless/intersil/orinoco/orinoco_tmd.c | 4 +-- drivers/net/wireless/intersil/p54/p54pci.c | 2 +- drivers/net/wireless/intersil/p54/p54spi.c | 4 +-- .../intersil/prism54/islpci_hotplug.c | 2 +- drivers/net/wireless/marvell/libertas/if_cs.c | 2 +- .../net/wireless/marvell/libertas/if_spi.c | 3 +- drivers/net/wireless/marvell/mwifiex/main.c | 5 +-- drivers/net/wireless/marvell/mwifiex/pcie.c | 8 +++-- drivers/net/wireless/marvell/mwl8k.c | 4 +-- .../net/wireless/mediatek/mt76/mt76x0/pci.c | 3 +- .../net/wireless/mediatek/mt76/mt76x2/pci.c | 3 +- .../quantenna/qtnfmac/pcie/pearl_pcie.c | 3 +- .../quantenna/qtnfmac/pcie/topaz_pcie.c | 3 +- .../net/wireless/ralink/rt2x00/rt2x00mmio.c | 6 ++-- .../wireless/realtek/rtl818x/rtl8180/dev.c | 6 ++-- drivers/net/wireless/realtek/rtlwifi/pci.c | 4 +-- drivers/net/wireless/ti/wl1251/sdio.c | 4 ++- drivers/net/wireless/ti/wl1251/spi.c | 5 +-- drivers/ntb/hw/amd/ntb_hw_amd.c | 12 ++++--- drivers/ntb/hw/intel/ntb_hw_gen1.c | 12 ++++--- drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 8 ++--- drivers/parport/parport_ax88796.c | 3 +- drivers/parport/parport_pc.c | 3 +- drivers/pci/controller/pcie-xilinx.c | 2 +- drivers/pci/controller/vmd.c | 11 +++--- drivers/pci/hotplug/cpci_hotplug_core.c | 6 +--- drivers/pci/hotplug/cpqphp_core.c | 3 +- drivers/pci/hotplug/shpchp_hpc.c | 5 +-- drivers/pci/pcie/pme.c | 3 +- drivers/pci/switch/switchtec.c | 10 +++--- drivers/pcmcia/i82092.c | 2 +- drivers/pcmcia/i82365.c | 9 ++--- drivers/pcmcia/pcmcia_resource.c | 9 ++--- drivers/pcmcia/pd6729.c | 8 +++-- drivers/pcmcia/tcic.c | 7 ++-- drivers/pcmcia/yenta_socket.c | 4 +-- drivers/pinctrl/intel/pinctrl-intel.c | 2 +- drivers/pinctrl/pinctrl-amd.c | 3 +- drivers/pinctrl/pinctrl-single.c | 3 +- drivers/platform/goldfish/goldfish_pipe.c | 6 ++-- drivers/platform/mellanox/mlxreg-hotplug.c | 5 +-- drivers/platform/x86/fujitsu-tablet.c | 3 +- drivers/platform/x86/intel_int0002_vgpio.c | 2 +- drivers/platform/x86/intel_ips.c | 3 +- drivers/platform/x86/intel_pmc_ipc.c | 8 ++--- drivers/platform/x86/intel_punit_ipc.c | 4 +-- drivers/platform/x86/intel_scu_ipc.c | 5 +-- drivers/platform/x86/sony-laptop.c | 3 +- drivers/pnp/resource.c | 3 +- drivers/power/reset/ltc2952-poweroff.c | 6 +--- drivers/power/supply/act8945a_charger.c | 6 ++-- drivers/power/supply/goldfish_battery.c | 5 +-- .../power/supply/max14656_charger_detector.c | 2 +- drivers/power/supply/pda_power.c | 6 ++-- drivers/power/supply/wm97xx_battery.c | 5 +-- drivers/pps/clients/pps-gpio.c | 3 +- drivers/ptp/ptp_pch.c | 3 +- drivers/rapidio/devices/tsi721.c | 25 +++++++------ drivers/rapidio/devices/tsi721_dma.c | 8 +++-- drivers/regulator/qcom_spmi-regulator.c | 5 +-- drivers/rpmsg/qcom_glink_native.c | 5 ++- drivers/rtc/rtc-cmos.c | 5 +-- drivers/rtc/rtc-ds1305.c | 3 +- drivers/rtc/rtc-ds1374.c | 5 +-- drivers/rtc/rtc-ds1511.c | 3 +- drivers/rtc/rtc-ds1553.c | 4 +-- drivers/rtc/rtc-ds1685.c | 3 +- drivers/rtc/rtc-ftrtc010.c | 2 +- drivers/rtc/rtc-m48t59.c | 5 +-- drivers/rtc/rtc-mrst.c | 3 +- drivers/rtc/rtc-pcap.c | 10 +++--- drivers/rtc/rtc-r7301.c | 3 +- drivers/rtc/rtc-snvs.c | 3 +- drivers/rtc/rtc-stk17ta8.c | 5 +-- drivers/rtc/rtc-zynqmp.c | 6 ++-- drivers/scsi/3w-9xxx.c | 6 ++-- drivers/scsi/3w-sas.c | 6 ++-- drivers/scsi/3w-xxxx.c | 3 +- drivers/scsi/BusLogic.c | 3 +- drivers/scsi/a100u2w.c | 4 +-- drivers/scsi/aacraid/commsup.c | 8 ++--- drivers/scsi/aacraid/rx.c | 3 +- drivers/scsi/aacraid/sa.c | 3 +- drivers/scsi/aacraid/src.c | 3 +- drivers/scsi/advansys.c | 4 +-- drivers/scsi/aha152x.c | 4 +-- drivers/scsi/aha1542.c | 2 +- drivers/scsi/aha1740.c | 3 +- drivers/scsi/aic7xxx/aic7770_osm.c | 3 +- drivers/scsi/aic7xxx/aic79xx_osm_pci.c | 2 +- drivers/scsi/aic7xxx/aic7xxx_osm_pci.c | 2 +- drivers/scsi/aic94xx/aic94xx_init.c | 5 +-- drivers/scsi/am53c974.c | 4 +-- drivers/scsi/arcmsr/arcmsr_hba.c | 3 +- drivers/scsi/atp870u.c | 3 +- drivers/scsi/be2iscsi/be_main.c | 12 ++++--- drivers/scsi/bfa/bfad.c | 9 +++-- drivers/scsi/csiostor/csio_isr.c | 16 +++++---- drivers/scsi/dpt_i2o.c | 2 +- drivers/scsi/esas2r/esas2r_init.c | 8 +---- drivers/scsi/fnic/fnic_isr.c | 13 ++++--- drivers/scsi/g_NCR5380.c | 7 ++-- drivers/scsi/gdth.c | 8 +++-- drivers/scsi/hpsa.c | 19 +++++----- drivers/scsi/hptiop.c | 3 +- drivers/scsi/initio.c | 3 +- drivers/scsi/ipr.c | 23 ++++++------ drivers/scsi/ips.c | 4 +-- drivers/scsi/isci/init.c | 8 +++-- drivers/scsi/lpfc/lpfc_init.c | 35 ++++++++++++------- drivers/scsi/megaraid.c | 4 +-- drivers/scsi/megaraid/megaraid_mbox.c | 3 +- drivers/scsi/megaraid/megaraid_sas_base.c | 8 ++--- drivers/scsi/mpt3sas/mpt3sas_base.c | 2 +- drivers/scsi/mvsas/mv_init.c | 4 +-- drivers/scsi/mvumi.c | 8 ++--- drivers/scsi/myrb.c | 2 +- drivers/scsi/myrs.c | 2 +- drivers/scsi/nsp32.c | 3 +- drivers/scsi/pcmcia/qlogic_stub.c | 2 +- drivers/scsi/pcmcia/sym53c500_cs.c | 2 +- drivers/scsi/pm8001/pm8001_init.c | 10 +++--- drivers/scsi/pmcraid.c | 5 +-- drivers/scsi/qedf/qedf_main.c | 4 ++- drivers/scsi/qedi/qedi_main.c | 3 +- drivers/scsi/qla1280.c | 3 +- drivers/scsi/qla2xxx/qla_isr.c | 22 +++++++----- drivers/scsi/qla4xxx/ql4_isr.c | 5 +-- drivers/scsi/qla4xxx/ql4_nx.c | 10 +++--- drivers/scsi/qlogicfas.c | 2 +- drivers/scsi/sim710.c | 2 +- drivers/scsi/smartpqi/smartpqi_init.c | 11 +++--- drivers/scsi/snic/snic_isr.c | 5 ++- drivers/scsi/stex.c | 4 +-- drivers/scsi/sym53c8xx_2/sym_glue.c | 3 +- drivers/scsi/ufs/ufshcd.c | 7 ++-- drivers/scsi/vmw_pvscsi.c | 9 +++-- drivers/scsi/wd719x.c | 4 +-- drivers/slimbus/qcom-ctrl.c | 3 +- drivers/spi/spi-altera.c | 3 +- drivers/spi/spi-axi-spi-engine.c | 3 +- drivers/spi/spi-cadence.c | 3 +- drivers/spi/spi-dw.c | 4 +-- drivers/spi/spi-fsl-spi.c | 3 +- drivers/spi/spi-oc-tiny.c | 3 +- drivers/spi/spi-pxa2xx.c | 4 +-- drivers/spi/spi-topcliff-pch.c | 5 +-- drivers/spi/spi-xilinx.c | 5 +-- drivers/spi/spi-zynqmp-gqspi.c | 3 +- drivers/staging/android/vsoc.c | 3 +- drivers/staging/axis-fifo/axis-fifo.c | 3 +- .../staging/comedi/drivers/addi_apci_1032.c | 3 +- .../staging/comedi/drivers/addi_apci_1500.c | 3 +- .../staging/comedi/drivers/addi_apci_1564.c | 3 +- .../staging/comedi/drivers/addi_apci_2032.c | 3 +- .../staging/comedi/drivers/addi_apci_3120.c | 3 +- .../staging/comedi/drivers/addi_apci_3xxx.c | 3 +- drivers/staging/comedi/drivers/adl_pci9111.c | 3 +- drivers/staging/comedi/drivers/adl_pci9118.c | 3 +- drivers/staging/comedi/drivers/adv_pci1710.c | 3 +- drivers/staging/comedi/drivers/aio_iiro_16.c | 3 +- .../comedi/drivers/amplc_dio200_common.c | 3 +- .../comedi/drivers/amplc_pc236_common.c | 3 +- drivers/staging/comedi/drivers/amplc_pci224.c | 3 +- drivers/staging/comedi/drivers/amplc_pci230.c | 3 +- drivers/staging/comedi/drivers/cb_pcidas.c | 4 +-- drivers/staging/comedi/drivers/cb_pcidas64.c | 5 +-- .../staging/comedi/drivers/comedi_parport.c | 3 +- drivers/staging/comedi/drivers/das16m1.c | 3 +- drivers/staging/comedi/drivers/das1800.c | 3 +- drivers/staging/comedi/drivers/das6402.c | 3 +- drivers/staging/comedi/drivers/das800.c | 5 +-- drivers/staging/comedi/drivers/dmm32at.c | 3 +- drivers/staging/comedi/drivers/dt2811.c | 3 +- drivers/staging/comedi/drivers/dt2814.c | 3 +- drivers/staging/comedi/drivers/dt282x.c | 2 +- drivers/staging/comedi/drivers/dt3000.c | 3 +- drivers/staging/comedi/drivers/gsc_hpdi.c | 3 +- drivers/staging/comedi/drivers/me4000.c | 3 +- drivers/staging/comedi/drivers/ni_6527.c | 4 +-- drivers/staging/comedi/drivers/ni_65xx.c | 3 +- drivers/staging/comedi/drivers/ni_660x.c | 4 +-- drivers/staging/comedi/drivers/ni_at_a2150.c | 2 +- drivers/staging/comedi/drivers/ni_atmio.c | 3 +- drivers/staging/comedi/drivers/ni_atmio16d.c | 3 +- .../staging/comedi/drivers/ni_labpc_common.c | 5 +-- drivers/staging/comedi/drivers/ni_pcidio.c | 3 +- drivers/staging/comedi/drivers/ni_pcimio.c | 3 +- drivers/staging/comedi/drivers/pcl711.c | 3 +- drivers/staging/comedi/drivers/pcl726.c | 3 +- drivers/staging/comedi/drivers/pcl812.c | 3 +- drivers/staging/comedi/drivers/pcl816.c | 2 +- drivers/staging/comedi/drivers/pcl818.c | 3 +- drivers/staging/comedi/drivers/pcmmio.c | 3 +- drivers/staging/comedi/drivers/pcmuio.c | 6 ++-- drivers/staging/comedi/drivers/rtd520.c | 3 +- drivers/staging/comedi/drivers/s626.c | 3 +- drivers/staging/gasket/gasket_interrupt.c | 3 +- drivers/staging/goldfish/goldfish_audio.c | 5 +-- drivers/staging/iio/adc/ad7606.c | 3 +- drivers/staging/media/bcm2048/radio-bcm2048.c | 4 +-- drivers/staging/media/zoran/zoran_card.c | 2 +- drivers/staging/most/dim2/dim2.c | 6 ++-- drivers/staging/most/i2c/i2c.c | 3 +- drivers/staging/olpc_dcon/olpc_dcon_xo_1.c | 2 +- drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c | 2 +- drivers/staging/pi433/pi433_if.c | 6 ++-- drivers/staging/rtl8192e/rtl8192e/rtl_core.c | 2 +- drivers/staging/rtlwifi/pci.c | 4 +-- drivers/staging/rts5208/rtsx.c | 4 +-- drivers/staging/speakup/serialio.c | 5 +-- drivers/staging/vt6655/device_main.c | 2 +- drivers/thermal/ti-soc-thermal/ti-bandgap.c | 6 ++-- drivers/thunderbolt/nhi.c | 6 ++-- drivers/tty/cyclades.c | 9 ++--- drivers/tty/goldfish.c | 4 +-- drivers/tty/hvc/hvc_irq.c | 4 +-- drivers/tty/isicom.c | 2 +- drivers/tty/mxser.c | 4 +-- drivers/tty/serial/8250/8250_core.c | 3 +- drivers/tty/serial/8250/8250_exar.c | 2 +- drivers/tty/serial/altera_jtaguart.c | 4 +-- drivers/tty/serial/altera_uart.c | 5 +-- drivers/tty/serial/arc_uart.c | 2 +- drivers/tty/serial/digicolor-usart.c | 3 +- drivers/tty/serial/fsl_lpuart.c | 12 ++++--- drivers/tty/serial/ifx6x60.c | 7 ++-- drivers/tty/serial/jsm/jsm_driver.c | 3 +- drivers/tty/serial/max3100.c | 3 +- drivers/tty/serial/men_z135_uart.c | 4 +-- drivers/tty/serial/pch_uart.c | 4 +-- drivers/tty/serial/rp2.c | 2 +- drivers/tty/serial/sc16is7xx.c | 2 +- drivers/tty/serial/timbuart.c | 4 +-- drivers/tty/serial/uartlite.c | 3 +- drivers/tty/serial/xilinx_uartps.c | 4 ++- drivers/tty/synclink.c | 3 +- drivers/tty/synclink_gt.c | 6 +--- drivers/tty/synclinkmp.c | 7 ++-- drivers/uio/uio.c | 3 +- drivers/usb/c67x00/c67x00-drv.c | 3 +- drivers/usb/chipidea/core.c | 5 +-- drivers/usb/core/hcd.c | 5 +-- drivers/usb/dwc2/gadget.c | 3 +- drivers/usb/dwc2/platform.c | 3 +- drivers/usb/gadget/udc/amd5536udc_pci.c | 2 +- drivers/usb/gadget/udc/bdc/bdc_udc.c | 3 +- drivers/usb/gadget/udc/fotg210-udc.c | 4 +-- drivers/usb/gadget/udc/fusb300_udc.c | 6 ++-- drivers/usb/gadget/udc/goku_udc.c | 3 +- drivers/usb/gadget/udc/m66592-udc.c | 4 +-- drivers/usb/gadget/udc/mv_u3d_core.c | 3 +- drivers/usb/gadget/udc/mv_udc_core.c | 3 +- drivers/usb/gadget/udc/net2272.c | 3 +- drivers/usb/gadget/udc/net2280.c | 3 +- drivers/usb/gadget/udc/pch_udc.c | 8 +++-- drivers/usb/gadget/udc/pxa27x_udc.c | 3 +- drivers/usb/gadget/udc/r8a66597-udc.c | 5 +-- drivers/usb/gadget/udc/snps_udc_plat.c | 4 +-- drivers/usb/gadget/udc/udc-xilinx.c | 3 +- drivers/usb/host/max3421-hcd.c | 3 +- drivers/usb/host/xhci.c | 12 ++++--- drivers/usb/isp1760/isp1760-udc.c | 3 +- drivers/usb/musb/musb_core.c | 2 +- drivers/usb/phy/phy-gpio-vbus-usb.c | 4 +-- drivers/uwb/whc-rc.c | 5 +-- drivers/vfio/pci/vfio_pci_intrs.c | 5 +-- drivers/video/fbdev/arcfb.c | 3 +- drivers/video/fbdev/aty/atyfb_base.c | 2 +- drivers/video/fbdev/goldfishfb.c | 4 +-- drivers/video/fbdev/matrox/matroxfb_base.c | 3 +- drivers/video/fbdev/mb862xx/mb862xxfbdrv.c | 7 ++-- drivers/video/fbdev/via/via-core.c | 3 +- drivers/virt/vboxguest/vboxguest_linux.c | 5 +-- drivers/virtio/virtio_mmio.c | 4 +-- drivers/virtio/virtio_pci_common.c | 20 ++++++----- drivers/vme/bridges/vme_ca91cx42.c | 5 +-- drivers/vme/bridges/vme_tsi148.c | 7 ++-- drivers/w1/masters/ds1wm.c | 3 +- drivers/xen/events/events_base.c | 12 ++++--- drivers/xen/platform-pci.c | 4 +-- drivers/xen/xen-pciback/pciback_ops.c | 6 ++-- samples/v4l/v4l2-pci-skeleton.c | 5 +-- sound/drivers/mpu401/mpu401_uart.c | 3 +- sound/drivers/mtpav.c | 2 +- sound/drivers/serial-u16550.c | 3 +- sound/isa/ad1816a/ad1816a_lib.c | 2 +- sound/isa/es1688/es1688_lib.c | 4 ++- sound/isa/es18xx.c | 3 +- sound/isa/gus/gus_main.c | 2 +- sound/isa/gus/gusmax.c | 2 +- sound/isa/gus/interwave.c | 3 +- sound/isa/msnd/msnd_pinnacle.c | 3 +- sound/isa/opl3sa2.c | 4 +-- sound/isa/opti9xx/opti92x-ad1848.c | 3 +- sound/isa/sb/sb_common.c | 6 +--- sound/isa/wavefront/wavefront.c | 3 +- sound/isa/wss/wss_lib.c | 3 +- sound/pci/ad1889.c | 3 +- sound/pci/ali5451/ali5451.c | 3 +- sound/pci/als300.c | 3 +- sound/pci/asihpi/hpioctl.c | 3 +- sound/pci/atiixp.c | 3 +- sound/pci/atiixp_modem.c | 3 +- sound/pci/aw2/aw2-alsa.c | 3 +- sound/pci/azt3328.c | 3 +- sound/pci/bt87x.c | 4 +-- sound/pci/ca0106/ca0106_main.c | 3 +- sound/pci/cmipci.c | 3 +- sound/pci/cs4281.c | 3 +- sound/pci/cs46xx/cs46xx_lib.c | 3 +- sound/pci/cs5535audio/cs5535audio.c | 3 +- sound/pci/ctxfi/cthw20k1.c | 3 +- sound/pci/ctxfi/cthw20k2.c | 3 +- sound/pci/emu10k1/emu10k1_main.c | 3 +- sound/pci/emu10k1/emu10k1x.c | 3 +- sound/pci/ens1370.c | 3 +- sound/pci/es1938.c | 6 ++-- sound/pci/es1968.c | 3 +- sound/pci/fm801.c | 3 +- sound/pci/hda/hda_intel.c | 4 +-- sound/pci/ice1712/ice1712.c | 3 +- sound/pci/ice1712/ice1724.c | 3 +- sound/pci/intel8x0.c | 6 ++-- sound/pci/intel8x0m.c | 6 ++-- sound/pci/korg1212/korg1212.c | 4 +-- sound/pci/lola/lola.c | 3 +- sound/pci/maestro3.c | 3 +- sound/pci/nm256/nm256.c | 3 +- sound/pci/oxygen/oxygen_lib.c | 4 +-- sound/pci/riptide/riptide.c | 3 +- sound/pci/rme32.c | 3 +- sound/pci/rme96.c | 3 +- sound/pci/rme9652/hdsp.c | 3 +- sound/pci/rme9652/hdspm.c | 3 +- sound/pci/rme9652/rme9652.c | 3 +- sound/pci/sis7019.c | 7 ++-- sound/pci/sonicvibes.c | 3 +- sound/pci/trident/trident_main.c | 3 +- sound/pci/via82xx.c | 6 +--- sound/pci/via82xx_modem.c | 3 +- sound/pci/ymfpci/ymfpci_main.c | 3 +- sound/soc/amd/acp-pcm-dma.c | 3 +- sound/soc/amd/raven/acp3x-pcm-dma.c | 3 +- sound/soc/codecs/rt5640.c | 4 +-- sound/soc/codecs/rt5651.c | 4 +-- sound/soc/codecs/rt5663.c | 4 +-- sound/soc/dwc/dwc-i2s.c | 5 +-- sound/soc/fsl/fsl_asrc.c | 3 +- sound/soc/fsl/fsl_esai.c | 3 +- sound/soc/fsl/fsl_sai.c | 3 +- sound/soc/fsl/fsl_spdif.c | 3 +- sound/soc/fsl/fsl_ssi.c | 3 +- sound/x86/intel_hdmi_audio.c | 5 +-- 478 files changed, 1084 insertions(+), 966 deletions(-) diff --git a/arch/x86/include/asm/floppy.h b/arch/x86/include/asm/floppy.h index 7ec59edde154..4bcdde7e5fb8 100644 --- a/arch/x86/include/asm/floppy.h +++ b/arch/x86/include/asm/floppy.h @@ -145,10 +145,12 @@ static int fd_request_irq(void) { if (can_use_virtual_dma) return request_irq(FLOPPY_IRQ, floppy_hardint, - 0, "floppy", NULL); + IRQF_USER_DATA, "floppy", + NULL); else return request_irq(FLOPPY_IRQ, floppy_interrupt, - 0, "floppy", NULL); + IRQF_USER_DATA, "floppy", + NULL); } static unsigned long dma_mem_alloc(unsigned long size) diff --git a/drivers/atm/lanai.c b/drivers/atm/lanai.c index 5f8e009b2da1..880dc6af0a36 100644 --- a/drivers/atm/lanai.c +++ b/drivers/atm/lanai.c @@ -2198,8 +2198,8 @@ static int lanai_dev_open(struct atm_dev *atmdev) conf2_write(lanai); reg_write(lanai, TX_FIFO_DEPTH, TxDepth_Reg); reg_write(lanai, 0, CBR_ICG_Reg); /* CBR defaults to no limit */ - if ((result = request_irq(lanai->pci->irq, lanai_int, IRQF_SHARED, - DEV_LABEL, lanai)) != 0) { + if ((result = request_irq(lanai->pci->irq, lanai_int, + IRQF_SHARED | IRQF_USER_DATA, DEV_LABEL, lanai)) != 0) { printk(KERN_ERR DEV_LABEL ": can't allocate interrupt\n"); goto error_vcctable; } diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c index ae4aa02e4dc6..0d96c52cd217 100644 --- a/drivers/atm/nicstar.c +++ b/drivers/atm/nicstar.c @@ -751,8 +751,8 @@ static int ns_init_card(int i, struct pci_dev *pcidev) card->efbie = 1; card->intcnt = 0; - if (request_irq - (pcidev->irq, &ns_irq_handler, IRQF_SHARED, "nicstar", card) != 0) { + if (request_irq(pcidev->irq, &ns_irq_handler, + IRQF_SHARED | IRQF_USER_DATA, "nicstar", card) != 0) { printk("nicstar%d: can't allocate IRQ %d.\n", i, pcidev->irq); error = 9; ns_init_card_error(card, error); diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index dc8603d34320..0b4f02a446a7 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c @@ -1266,10 +1266,8 @@ int ipmi_std_irq_setup(struct si_sm_io *io) if (!io->irq) return 0; - rv = request_irq(io->irq, - ipmi_si_irq_handler, - IRQF_SHARED, - DEVICE_NAME, + rv = request_irq(io->irq, ipmi_si_irq_handler, + IRQF_SHARED | IRQF_USER_DATA, DEVICE_NAME, io->irq_handler_data); if (rv) { dev_warn(io->dev, "%s unable to claim interrupt %d," diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c index 186689833231..b923ce92039c 100644 --- a/drivers/char/sonypi.c +++ b/drivers/char/sonypi.c @@ -1265,8 +1265,7 @@ static int sonypi_setup_irq(struct sonypi_device *dev, { while (irq_list->irq) { - if (!request_irq(irq_list->irq, sonypi_irq, - IRQF_SHARED, "sonypi", sonypi_irq)) { + if (!request_irq(irq_list->irq, sonypi_irq, IRQF_SHARED | IRQF_USER_DATA, "sonypi", sonypi_irq)) { dev->irq = irq_list->irq; dev->bits = irq_list->bits; return 0; diff --git a/drivers/firewire/nosy.c b/drivers/firewire/nosy.c index a128dd1126ae..25c500fb01a2 100644 --- a/drivers/firewire/nosy.c +++ b/drivers/firewire/nosy.c @@ -641,8 +641,7 @@ add_card(struct pci_dev *dev, const struct pci_device_id *unused) run_pcl(lynx, lynx->rcv_start_pcl_bus, 0); - if (request_irq(dev->irq, irq_handler, IRQF_SHARED, - driver_name, lynx)) { + if (request_irq(dev->irq, irq_handler, IRQF_SHARED | IRQF_USER_DATA, driver_name, lynx)) { dev_err(&dev->dev, "Failed to allocate shared interrupt %d\n", dev->irq); ret = -EIO; diff --git a/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c b/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c index e28107061148..e274a60a5887 100644 --- a/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c +++ b/drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c @@ -296,7 +296,8 @@ int oaktrail_hdmi_i2c_init(struct pci_dev *dev) oaktrail_hdmi_i2c_gpio_fix(); /* request irq */ - ret = request_irq(dev->irq, oaktrail_hdmi_i2c_handler, IRQF_SHARED, + ret = request_irq(dev->irq, oaktrail_hdmi_i2c_handler, + IRQF_SHARED | IRQF_USER_DATA, oaktrail_hdmi_i2c_adapter.name, hdmi_dev); if (ret) { DRM_ERROR("Failed to request IRQ for I2C controller\n"); diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c index ee2431a7804e..656fcae19f2b 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c @@ -116,7 +116,8 @@ nvkm_pci_oneinit(struct nvkm_subdev *subdev) return ret; } - ret = request_irq(pdev->irq, nvkm_pci_intr, IRQF_SHARED, "nvkm", pci); + ret = request_irq(pdev->irq, nvkm_pci_intr, + IRQF_SHARED | IRQF_USER_DATA, "nvkm", pci); if (ret) return ret; diff --git a/drivers/i2c/busses/i2c-emev2.c b/drivers/i2c/busses/i2c-emev2.c index 35b302d983e0..f69979d0b7b7 100644 --- a/drivers/i2c/busses/i2c-emev2.c +++ b/drivers/i2c/busses/i2c-emev2.c @@ -391,8 +391,9 @@ static int em_i2c_probe(struct platform_device *pdev) em_i2c_reset(&priv->adap); irq = platform_get_irq(pdev, 0); - ret = devm_request_irq(&pdev->dev, irq, em_i2c_irq_handler, 0, - "em_i2c", priv); + ret = devm_request_irq(&pdev->dev, irq, em_i2c_irq_handler, + IRQF_USER_DATA, "em_i2c", + priv); if (ret) goto err_clk; diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index c91e145ef5a5..2aa88243db79 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c @@ -1659,7 +1659,7 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id) init_waitqueue_head(&priv->waitq); err = devm_request_irq(&dev->dev, dev->irq, i801_isr, - IRQF_SHARED, + IRQF_SHARED | IRQF_USER_DATA, dev_driver_string(&dev->dev), priv); if (err) { dev_err(&dev->dev, "Failed to allocate irq %d: %d\n", diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c index fbf91d383b40..45c4415d67e4 100644 --- a/drivers/i2c/busses/i2c-pxa.c +++ b/drivers/i2c/busses/i2c-pxa.c @@ -1297,8 +1297,8 @@ static int i2c_pxa_probe(struct platform_device *dev) } else { i2c->adap.algo = &i2c_pxa_algorithm; ret = devm_request_irq(&dev->dev, irq, i2c_pxa_handler, - IRQF_SHARED | IRQF_NO_SUSPEND, - dev_name(&dev->dev), i2c); + IRQF_SHARED | IRQF_NO_SUSPEND | IRQF_USER_DATA, + dev_name(&dev->dev), i2c); if (ret) { dev_err(&dev->dev, "failed to request irq: %d\n", ret); goto ereqirq; diff --git a/drivers/i2c/busses/i2c-rk3x.c b/drivers/i2c/busses/i2c-rk3x.c index b8a2728dd4b6..9846859a9b57 100644 --- a/drivers/i2c/busses/i2c-rk3x.c +++ b/drivers/i2c/busses/i2c-rk3x.c @@ -1271,7 +1271,8 @@ static int rk3x_i2c_probe(struct platform_device *pdev) } ret = devm_request_irq(&pdev->dev, irq, rk3x_i2c_irq, - 0, dev_name(&pdev->dev), i2c); + IRQF_USER_DATA, + dev_name(&pdev->dev), i2c); if (ret < 0) { dev_err(&pdev->dev, "cannot request IRQ\n"); return ret; diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index 17e9f447472c..958bf916d096 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c @@ -882,7 +882,7 @@ static int init_irq (ide_hwif_t *hwif) if (!host->get_lock) if (request_irq(hwif->irq, irq_handler, sa | IRQF_USER_DATA, - hwif->name, hwif)) + hwif->name, hwif)) goto out_up; #if !defined(__mc68000__) diff --git a/drivers/infiniband/hw/mthca/mthca_eq.c b/drivers/infiniband/hw/mthca/mthca_eq.c index 30400ea4808b..e259c148411b 100644 --- a/drivers/infiniband/hw/mthca/mthca_eq.c +++ b/drivers/infiniband/hw/mthca/mthca_eq.c @@ -825,10 +825,9 @@ int mthca_init_eq_table(struct mthca_dev *dev) "%s@pci:%s", eq_name[i], pci_name(dev->pdev)); err = request_irq(dev->eq_table.eq[i].msi_x_vector, - mthca_is_memfree(dev) ? - mthca_arbel_msi_x_interrupt : - mthca_tavor_msi_x_interrupt, - 0, dev->eq_table.eq[i].irq_name, + mthca_is_memfree(dev) ? mthca_arbel_msi_x_interrupt : mthca_tavor_msi_x_interrupt, + IRQF_USER_DATA, + dev->eq_table.eq[i].irq_name, dev->eq_table.eq + i); if (err) goto err_out_cmd; @@ -838,10 +837,9 @@ int mthca_init_eq_table(struct mthca_dev *dev) snprintf(dev->eq_table.eq[0].irq_name, IB_DEVICE_NAME_MAX, DRV_NAME "@pci:%s", pci_name(dev->pdev)); err = request_irq(dev->pdev->irq, - mthca_is_memfree(dev) ? - mthca_arbel_interrupt : - mthca_tavor_interrupt, - IRQF_SHARED, dev->eq_table.eq[0].irq_name, dev); + mthca_is_memfree(dev) ? mthca_arbel_interrupt : mthca_tavor_interrupt, + IRQF_SHARED | IRQF_USER_DATA, + dev->eq_table.eq[0].irq_name, dev); if (err) goto err_out_cmd; dev->eq_table.have_irq = 1; diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 95a78ccbd847..6aadc878def2 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c @@ -865,8 +865,7 @@ static int __init i8042_check_aux(void) goto out; } - if (request_irq(I8042_AUX_IRQ, i8042_aux_test_irq, IRQF_SHARED, - "i8042", i8042_platform_device)) + if (request_irq(I8042_AUX_IRQ, i8042_aux_test_irq, IRQF_SHARED | IRQF_USER_DATA, "i8042", i8042_platform_device)) goto out; irq_registered = true; @@ -1463,8 +1462,9 @@ static int __init i8042_setup_aux(void) aux_enable = i8042_enable_mux_ports; } - error = request_irq(I8042_AUX_IRQ, i8042_interrupt, IRQF_SHARED, - "i8042", i8042_platform_device); + error = request_irq(I8042_AUX_IRQ, i8042_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "i8042", + i8042_platform_device); if (error) goto err_free_ports; @@ -1489,8 +1489,9 @@ static int __init i8042_setup_kbd(void) if (error) return error; - error = request_irq(I8042_KBD_IRQ, i8042_interrupt, IRQF_SHARED, - "i8042", i8042_platform_device); + error = request_irq(I8042_KBD_IRQ, i8042_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "i8042", + i8042_platform_device); if (error) goto err_free_port; diff --git a/drivers/ipack/carriers/tpci200.c b/drivers/ipack/carriers/tpci200.c index 8a9c169b6f99..fa0fd1c5a19c 100644 --- a/drivers/ipack/carriers/tpci200.c +++ b/drivers/ipack/carriers/tpci200.c @@ -340,9 +340,9 @@ static int tpci200_register(struct tpci200_board *tpci200) for (i = 0; i < TPCI200_NB_SLOT; i++) writew(slot_ctrl, &tpci200->info->interface_regs->control[i]); - res = request_irq(tpci200->info->pdev->irq, - tpci200_interrupt, IRQF_SHARED, - KBUILD_MODNAME, (void *) tpci200); + res = request_irq(tpci200->info->pdev->irq, tpci200_interrupt, + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, + (void *)tpci200); if (res) { dev_err(&tpci200->info->pdev->dev, "(bn 0x%X, sn 0x%X) unable to register IRQ !", diff --git a/drivers/isdn/hardware/avm/b1isa.c b/drivers/isdn/hardware/avm/b1isa.c index cdfea72e0ef6..63a724d5fc02 100644 --- a/drivers/isdn/hardware/avm/b1isa.c +++ b/drivers/isdn/hardware/avm/b1isa.c @@ -97,7 +97,9 @@ static int b1isa_probe(struct pci_dev *pdev) retval = -EBUSY; goto err_free; } - retval = request_irq(card->irq, b1_interrupt, 0, card->name, card); + retval = request_irq(card->irq, b1_interrupt, + IRQF_USER_DATA, card->name, + card); if (retval) { printk(KERN_ERR "b1isa: unable to get IRQ %d.\n", card->irq); goto err_release_region; diff --git a/drivers/isdn/hardware/avm/b1pci.c b/drivers/isdn/hardware/avm/b1pci.c index b76b57a82c02..0bcc2f8fe1f1 100644 --- a/drivers/isdn/hardware/avm/b1pci.c +++ b/drivers/isdn/hardware/avm/b1pci.c @@ -97,7 +97,8 @@ static int b1pci_probe(struct capicardparams *p, struct pci_dev *pdev) b1_reset(card->port); b1_getrevision(card); - retval = request_irq(card->irq, b1_interrupt, IRQF_SHARED, card->name, card); + retval = request_irq(card->irq, b1_interrupt, + IRQF_SHARED | IRQF_USER_DATA, card->name, card); if (retval) { printk(KERN_ERR "b1pci: unable to get IRQ %d.\n", card->irq); retval = -EBUSY; @@ -234,7 +235,8 @@ static int b1pciv4_probe(struct capicardparams *p, struct pci_dev *pdev) b1dma_reset(card); b1_getrevision(card); - retval = request_irq(card->irq, b1dma_interrupt, IRQF_SHARED, card->name, card); + retval = request_irq(card->irq, b1dma_interrupt, + IRQF_SHARED | IRQF_USER_DATA, card->name, card); if (retval) { printk(KERN_ERR "b1pci: unable to get IRQ %d.\n", card->irq); diff --git a/drivers/isdn/hardware/avm/b1pcmcia.c b/drivers/isdn/hardware/avm/b1pcmcia.c index 3aca16e62902..4421a6a215ec 100644 --- a/drivers/isdn/hardware/avm/b1pcmcia.c +++ b/drivers/isdn/hardware/avm/b1pcmcia.c @@ -82,7 +82,8 @@ static int b1pcmcia_add_card(unsigned int port, unsigned irq, card->irq = irq; card->cardtype = cardtype; - retval = request_irq(card->irq, b1_interrupt, IRQF_SHARED, card->name, card); + retval = request_irq(card->irq, b1_interrupt, + IRQF_SHARED | IRQF_USER_DATA, card->name, card); if (retval) { printk(KERN_ERR "b1pcmcia: unable to get IRQ %d.\n", card->irq); diff --git a/drivers/isdn/hardware/avm/c4.c b/drivers/isdn/hardware/avm/c4.c index ac72cd204c4d..a0ddcf7ae95b 100644 --- a/drivers/isdn/hardware/avm/c4.c +++ b/drivers/isdn/hardware/avm/c4.c @@ -1180,7 +1180,8 @@ static int c4_add_card(struct capicardparams *p, struct pci_dev *dev, } c4_reset(card); - retval = request_irq(card->irq, c4_interrupt, IRQF_SHARED, card->name, card); + retval = request_irq(card->irq, c4_interrupt, + IRQF_SHARED | IRQF_USER_DATA, card->name, card); if (retval) { printk(KERN_ERR "c4: unable to get IRQ %d.\n", card->irq); retval = -EBUSY; diff --git a/drivers/isdn/hardware/avm/t1isa.c b/drivers/isdn/hardware/avm/t1isa.c index 2153619c5b31..a00ff6646c9d 100644 --- a/drivers/isdn/hardware/avm/t1isa.c +++ b/drivers/isdn/hardware/avm/t1isa.c @@ -405,7 +405,9 @@ static int t1isa_probe(struct pci_dev *pdev, int cardnr) retval = -EBUSY; goto err_free; } - retval = request_irq(card->irq, t1isa_interrupt, 0, card->name, card); + retval = request_irq(card->irq, t1isa_interrupt, + IRQF_USER_DATA, card->name, + card); if (retval) { printk(KERN_INFO "t1isa: unable to get IRQ %d.\n", card->irq); retval = -EBUSY; diff --git a/drivers/isdn/hardware/avm/t1pci.c b/drivers/isdn/hardware/avm/t1pci.c index f5ed1d5004c9..c43a57b95524 100644 --- a/drivers/isdn/hardware/avm/t1pci.c +++ b/drivers/isdn/hardware/avm/t1pci.c @@ -103,7 +103,8 @@ static int t1pci_add_card(struct capicardparams *p, struct pci_dev *pdev) } b1dma_reset(card); - retval = request_irq(card->irq, b1dma_interrupt, IRQF_SHARED, card->name, card); + retval = request_irq(card->irq, b1dma_interrupt, + IRQF_SHARED | IRQF_USER_DATA, card->name, card); if (retval) { printk(KERN_ERR "t1pci: unable to get IRQ %d.\n", card->irq); retval = -EBUSY; diff --git a/drivers/isdn/hardware/mISDN/avmfritz.c b/drivers/isdn/hardware/mISDN/avmfritz.c index 8eb28a83832e..12496f0038e5 100644 --- a/drivers/isdn/hardware/mISDN/avmfritz.c +++ b/drivers/isdn/hardware/mISDN/avmfritz.c @@ -794,10 +794,10 @@ init_card(struct fritzcard *fc) reset_avm(fc); /* disable IRQ */ if (fc->type == AVM_FRITZ_PCIV2) ret = request_irq(fc->irq, avm_fritzv2_interrupt, - IRQF_SHARED, fc->name, fc); + IRQF_SHARED | IRQF_USER_DATA, fc->name, fc); else ret = request_irq(fc->irq, avm_fritz_interrupt, - IRQF_SHARED, fc->name, fc); + IRQF_SHARED | IRQF_USER_DATA, fc->name, fc); if (ret) { pr_info("%s: couldn't get interrupt %d\n", fc->name, fc->irq); diff --git a/drivers/isdn/hardware/mISDN/hfcmulti.c b/drivers/isdn/hardware/mISDN/hfcmulti.c index 4d85645c87f7..c6bdad91ff4e 100644 --- a/drivers/isdn/hardware/mISDN/hfcmulti.c +++ b/drivers/isdn/hardware/mISDN/hfcmulti.c @@ -4271,8 +4271,7 @@ init_card(struct hfc_multi *hc) disable_hwirq(hc); spin_unlock_irqrestore(&hc->lock, flags); - if (request_irq(hc->irq, hfcmulti_interrupt, IRQF_SHARED, - "HFC-multi", hc)) { + if (request_irq(hc->irq, hfcmulti_interrupt, IRQF_SHARED | IRQF_USER_DATA, "HFC-multi", hc)) { printk(KERN_WARNING "mISDN: Could not get interrupt %d.\n", hc->irq); hc->irq = 0; diff --git a/drivers/isdn/hardware/mISDN/hfcpci.c b/drivers/isdn/hardware/mISDN/hfcpci.c index ebb3fa2e1d00..3da919c1c29e 100644 --- a/drivers/isdn/hardware/mISDN/hfcpci.c +++ b/drivers/isdn/hardware/mISDN/hfcpci.c @@ -1738,7 +1738,7 @@ init_card(struct hfc_pci *hc) spin_lock_irqsave(&hc->lock, flags); disable_hwirq(hc); spin_unlock_irqrestore(&hc->lock, flags); - if (request_irq(hc->irq, hfcpci_int, IRQF_SHARED, "HFC PCI", hc)) { + if (request_irq(hc->irq, hfcpci_int, IRQF_SHARED | IRQF_USER_DATA, "HFC PCI", hc)) { printk(KERN_WARNING "mISDN: couldn't get interrupt %d\n", hc->irq); return -EIO; diff --git a/drivers/isdn/hardware/mISDN/mISDNinfineon.c b/drivers/isdn/hardware/mISDN/mISDNinfineon.c index 3e01012be4ab..631543dfb025 100644 --- a/drivers/isdn/hardware/mISDN/mISDNinfineon.c +++ b/drivers/isdn/hardware/mISDN/mISDNinfineon.c @@ -611,7 +611,8 @@ init_irq(struct inf_hw *hw) if (!hw->ci->irqfunc) return -EINVAL; - ret = request_irq(hw->irq, hw->ci->irqfunc, IRQF_SHARED, hw->name, hw); + ret = request_irq(hw->irq, hw->ci->irqfunc, + IRQF_SHARED | IRQF_USER_DATA, hw->name, hw); if (ret) { pr_info("%s: couldn't get interrupt %d\n", hw->name, hw->irq); return ret; diff --git a/drivers/isdn/hardware/mISDN/netjet.c b/drivers/isdn/hardware/mISDN/netjet.c index 2b317cb63d06..3aafe328e919 100644 --- a/drivers/isdn/hardware/mISDN/netjet.c +++ b/drivers/isdn/hardware/mISDN/netjet.c @@ -929,7 +929,7 @@ nj_init_card(struct tiger_hw *card) spin_unlock_irqrestore(&card->lock, flags); card->irq = card->pdev->irq; - if (request_irq(card->irq, nj_irq, IRQF_SHARED, card->name, card)) { + if (request_irq(card->irq, nj_irq, IRQF_SHARED | IRQF_USER_DATA, card->name, card)) { pr_info("%s: couldn't get interrupt %d\n", card->name, card->irq); card->irq = -1; diff --git a/drivers/isdn/hardware/mISDN/speedfax.c b/drivers/isdn/hardware/mISDN/speedfax.c index 1f1446ed8d5f..378b9ff9711f 100644 --- a/drivers/isdn/hardware/mISDN/speedfax.c +++ b/drivers/isdn/hardware/mISDN/speedfax.c @@ -288,7 +288,8 @@ init_card(struct sfax_hw *sf) int ret, cnt = 3; u_long flags; - ret = request_irq(sf->irq, speedfax_irq, IRQF_SHARED, sf->name, sf); + ret = request_irq(sf->irq, speedfax_irq, IRQF_SHARED | IRQF_USER_DATA, + sf->name, sf); if (ret) { pr_info("%s: couldn't get interrupt %d\n", sf->name, sf->irq); return ret; diff --git a/drivers/isdn/hardware/mISDN/w6692.c b/drivers/isdn/hardware/mISDN/w6692.c index 6f60aced11c5..5628e9a764b8 100644 --- a/drivers/isdn/hardware/mISDN/w6692.c +++ b/drivers/isdn/hardware/mISDN/w6692.c @@ -917,7 +917,7 @@ init_card(struct w6692_hw *card) spin_lock_irqsave(&card->lock, flags); disable_hwirq(card); spin_unlock_irqrestore(&card->lock, flags); - if (request_irq(card->irq, w6692_irq, IRQF_SHARED, card->name, card)) { + if (request_irq(card->irq, w6692_irq, IRQF_SHARED | IRQF_USER_DATA, card->name, card)) { pr_info("%s: couldn't get interrupt %d\n", card->name, card->irq); return -EIO; diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c index b12e6cae26c2..03feb71c82f0 100644 --- a/drivers/isdn/hisax/config.c +++ b/drivers/isdn/hisax/config.c @@ -822,7 +822,7 @@ static int init_card(struct IsdnCardState *cs) irq_cnt = cs->irq_cnt = 0; printk(KERN_INFO "%s: IRQ %d count %d\n", CardType[cs->typ], cs->irq, irq_cnt); - if (request_irq(cs->irq, card_irq, cs->irq_flags, "HiSax", cs)) { + if (request_irq(cs->irq, card_irq, cs->irq_flags | IRQF_USER_DATA, "HiSax", cs)) { printk(KERN_WARNING "HiSax: couldn't get interrupt %d\n", cs->irq); return 1; diff --git a/drivers/isdn/hisax/hfc4s8s_l1.c b/drivers/isdn/hisax/hfc4s8s_l1.c index e9bb8fb67ad0..be383944e1cb 100644 --- a/drivers/isdn/hisax/hfc4s8s_l1.c +++ b/drivers/isdn/hisax/hfc4s8s_l1.c @@ -1440,8 +1440,7 @@ setup_instance(hfc4s8s_hw *hw) INIT_WORK(&hw->tqueue, hfc4s8s_bh); - if (request_irq - (hw->irq, hfc4s8s_interrupt, IRQF_SHARED, hw->card_name, hw)) { + if (request_irq(hw->irq, hfc4s8s_interrupt, IRQF_SHARED | IRQF_USER_DATA, hw->card_name, hw)) { printk(KERN_INFO "HFC-4S/8S: unable to alloc irq %d, card ignored\n", hw->irq); diff --git a/drivers/isdn/hisax/hisax_fcpcipnp.c b/drivers/isdn/hisax/hisax_fcpcipnp.c index 7a7137d8664b..28f734bb18e4 100644 --- a/drivers/isdn/hisax/hisax_fcpcipnp.c +++ b/drivers/isdn/hisax/hisax_fcpcipnp.c @@ -780,15 +780,18 @@ static int fcpcipnp_setup(struct fritz_adapter *adapter) switch (adapter->type) { case AVM_FRITZ_PCIV2: - retval = request_irq(adapter->irq, fcpci2_irq, IRQF_SHARED, - "fcpcipnp", adapter); + retval = request_irq(adapter->irq, fcpci2_irq, + IRQF_SHARED | IRQF_USER_DATA, "fcpcipnp", + adapter); break; case AVM_FRITZ_PCI: - retval = request_irq(adapter->irq, fcpci_irq, IRQF_SHARED, - "fcpcipnp", adapter); + retval = request_irq(adapter->irq, fcpci_irq, + IRQF_SHARED | IRQF_USER_DATA, "fcpcipnp", + adapter); break; case AVM_FRITZ_PNP: - retval = request_irq(adapter->irq, fcpci_irq, 0, + retval = request_irq(adapter->irq, fcpci_irq, + IRQF_USER_DATA, "fcpcipnp", adapter); break; } diff --git a/drivers/media/common/saa7146/saa7146_core.c b/drivers/media/common/saa7146/saa7146_core.c index 9f7c5b0a6b45..67c358d839e0 100644 --- a/drivers/media/common/saa7146/saa7146_core.c +++ b/drivers/media/common/saa7146/saa7146_core.c @@ -414,8 +414,8 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent saa7146_write(dev, MC2, 0xf8000000); /* request an interrupt for the saa7146 */ - err = request_irq(pci->irq, interrupt_hw, IRQF_SHARED, - dev->name, dev); + err = request_irq(pci->irq, interrupt_hw, + IRQF_SHARED | IRQF_USER_DATA, dev->name, dev); if (err < 0) { ERR("request_irq() failed\n"); goto err_unmap; diff --git a/drivers/media/pci/b2c2/flexcop-pci.c b/drivers/media/pci/b2c2/flexcop-pci.c index cc6527e35537..723e9d1266ef 100644 --- a/drivers/media/pci/b2c2/flexcop-pci.c +++ b/drivers/media/pci/b2c2/flexcop-pci.c @@ -309,8 +309,7 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci) pci_set_drvdata(fc_pci->pdev, fc_pci); spin_lock_init(&fc_pci->irq_lock); - if ((ret = request_irq(fc_pci->pdev->irq, flexcop_pci_isr, - IRQF_SHARED, DRIVER_NAME, fc_pci)) != 0) + if ((ret = request_irq(fc_pci->pdev->irq, flexcop_pci_isr, IRQF_SHARED | IRQF_USER_DATA, DRIVER_NAME, fc_pci)) != 0) goto err_pci_iounmap; fc_pci->init_state |= FC_PCI_INIT; diff --git a/drivers/media/pci/cobalt/cobalt-driver.c b/drivers/media/pci/cobalt/cobalt-driver.c index 4885e833c052..77b6b1ec77b9 100644 --- a/drivers/media/pci/cobalt/cobalt-driver.c +++ b/drivers/media/pci/cobalt/cobalt-driver.c @@ -383,8 +383,7 @@ static int cobalt_setup_pci(struct cobalt *cobalt, struct pci_dev *pci_dev, msi_config_show(cobalt, pci_dev); /* Register IRQ */ - if (request_irq(pci_dev->irq, cobalt_irq_handler, IRQF_SHARED, - cobalt->v4l2_dev.name, (void *)cobalt)) { + if (request_irq(pci_dev->irq, cobalt_irq_handler, IRQF_SHARED | IRQF_USER_DATA, cobalt->v4l2_dev.name, (void *)cobalt)) { cobalt_err("Failed to register irq %d\n", pci_dev->irq); ret = -EIO; goto err_msi; diff --git a/drivers/media/pci/cx18/cx18-driver.c b/drivers/media/pci/cx18/cx18-driver.c index a6ba4ca5aa91..fce1d506c9d9 100644 --- a/drivers/media/pci/cx18/cx18-driver.c +++ b/drivers/media/pci/cx18/cx18-driver.c @@ -1026,7 +1026,8 @@ static int cx18_probe(struct pci_dev *pci_dev, /* Register IRQ */ retval = request_irq(cx->pci_dev->irq, cx18_irq_handler, - IRQF_SHARED, cx->v4l2_dev.name, (void *)cx); + IRQF_SHARED | IRQF_USER_DATA, cx->v4l2_dev.name, + (void *)cx); if (retval) { CX18_ERR("Failed to register irq %d\n", retval); goto free_i2c; diff --git a/drivers/media/pci/cx25821/cx25821-core.c b/drivers/media/pci/cx25821/cx25821-core.c index 2f0171134f7e..e0f847d634a0 100644 --- a/drivers/media/pci/cx25821/cx25821-core.c +++ b/drivers/media/pci/cx25821/cx25821-core.c @@ -1319,7 +1319,7 @@ static int cx25821_initdev(struct pci_dev *pci_dev, } err = request_irq(pci_dev->irq, cx25821_irq, - IRQF_SHARED, dev->name, dev); + IRQF_SHARED | IRQF_USER_DATA, dev->name, dev); if (err < 0) { pr_err("%s: can't get IRQ %d\n", dev->name, pci_dev->irq); diff --git a/drivers/media/pci/cx88/cx88-alsa.c b/drivers/media/pci/cx88/cx88-alsa.c index b683cbe13dee..00950fcc3468 100644 --- a/drivers/media/pci/cx88/cx88-alsa.c +++ b/drivers/media/pci/cx88/cx88-alsa.c @@ -895,7 +895,8 @@ static int snd_cx88_create(struct snd_card *card, struct pci_dev *pci, /* get irq */ err = request_irq(chip->pci->irq, cx8801_irq, - IRQF_SHARED, chip->core->name, chip); + IRQF_SHARED | IRQF_USER_DATA, chip->core->name, + chip); if (err < 0) { dprintk(0, "%s: can't get IRQ %d\n", chip->core->name, chip->pci->irq); diff --git a/drivers/media/pci/cx88/cx88-mpeg.c b/drivers/media/pci/cx88/cx88-mpeg.c index 52ff00ebd4bd..34613db7cedb 100644 --- a/drivers/media/pci/cx88/cx88-mpeg.c +++ b/drivers/media/pci/cx88/cx88-mpeg.c @@ -416,7 +416,7 @@ static int cx8802_init_common(struct cx8802_dev *dev) /* get irq */ err = request_irq(dev->pci->irq, cx8802_irq, - IRQF_SHARED, dev->core->name, dev); + IRQF_SHARED | IRQF_USER_DATA, dev->core->name, dev); if (err < 0) { pr_err("can't get IRQ %d\n", dev->pci->irq); return err; diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c index e1549d352f70..bd2214ce59c5 100644 --- a/drivers/media/pci/cx88/cx88-video.c +++ b/drivers/media/pci/cx88/cx88-video.c @@ -1342,7 +1342,7 @@ static int cx8800_initdev(struct pci_dev *pci_dev, /* get irq */ err = request_irq(pci_dev->irq, cx8800_irq, - IRQF_SHARED, core->name, dev); + IRQF_SHARED | IRQF_USER_DATA, core->name, dev); if (err < 0) { pr_err("can't get IRQ %d\n", pci_dev->irq); goto fail_core; diff --git a/drivers/media/pci/dt3155/dt3155.c b/drivers/media/pci/dt3155/dt3155.c index 17d69bd5d7f1..dffc0b43fb64 100644 --- a/drivers/media/pci/dt3155/dt3155.c +++ b/drivers/media/pci/dt3155/dt3155.c @@ -565,7 +565,7 @@ static int dt3155_probe(struct pci_dev *pdev, const struct pci_device_id *id) if (err) goto err_iounmap; err = request_irq(pd->pdev->irq, dt3155_irq_handler_even, - IRQF_SHARED, DT3155_NAME, pd); + IRQF_SHARED | IRQF_USER_DATA, DT3155_NAME, pd); if (err) goto err_iounmap; err = video_register_device(&pd->vdev, VFL_TYPE_GRABBER, -1); diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2.c b/drivers/media/pci/intel/ipu3/ipu3-cio2.c index cdb79ae2d8dc..d5e80865c2d6 100644 --- a/drivers/media/pci/intel/ipu3/ipu3-cio2.c +++ b/drivers/media/pci/intel/ipu3/ipu3-cio2.c @@ -1814,7 +1814,7 @@ static int cio2_pci_probe(struct pci_dev *pci_dev, goto fail_cio2_queue_exit; r = devm_request_irq(&pci_dev->dev, pci_dev->irq, cio2_irq, - IRQF_SHARED, CIO2_NAME, cio2); + IRQF_SHARED | IRQF_USER_DATA, CIO2_NAME, cio2); if (r) { dev_err(&pci_dev->dev, "failed to request IRQ (%d)\n", r); goto fail; diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/ivtv-driver.c index dd727098daf4..155ac84fa563 100644 --- a/drivers/media/pci/ivtv/ivtv-driver.c +++ b/drivers/media/pci/ivtv/ivtv-driver.c @@ -1249,7 +1249,8 @@ static int ivtv_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id) /* Register IRQ */ retval = request_irq(itv->pdev->irq, ivtv_irq_handler, - IRQF_SHARED, itv->v4l2_dev.name, (void *)itv); + IRQF_SHARED | IRQF_USER_DATA, itv->v4l2_dev.name, + (void *)itv); if (retval) { IVTV_ERR("Failed to register irq %d\n", retval); goto free_i2c; diff --git a/drivers/media/pci/meye/meye.c b/drivers/media/pci/meye/meye.c index bd870e60c32b..7c600673607b 100644 --- a/drivers/media/pci/meye/meye.c +++ b/drivers/media/pci/meye/meye.c @@ -1674,8 +1674,7 @@ static int meye_probe(struct pci_dev *pcidev, const struct pci_device_id *ent) } meye.mchip_irq = pcidev->irq; - if (request_irq(meye.mchip_irq, meye_irq, - IRQF_SHARED, "meye", meye_irq)) { + if (request_irq(meye.mchip_irq, meye_irq, IRQF_SHARED | IRQF_USER_DATA, "meye", meye_irq)) { v4l2_err(v4l2_dev, "request_irq failed\n"); goto outreqirq; } diff --git a/drivers/media/pci/ngene/ngene-core.c b/drivers/media/pci/ngene/ngene-core.c index 25f16833a475..515f6fb6ab18 100644 --- a/drivers/media/pci/ngene/ngene-core.c +++ b/drivers/media/pci/ngene/ngene-core.c @@ -1332,8 +1332,7 @@ static int ngene_start(struct ngene *dev) ngene_init(dev); stat = request_irq(dev->pci_dev->irq, irq_handler, - IRQF_SHARED, "nGene", - (void *)dev); + IRQF_SHARED | IRQF_USER_DATA, "nGene", (void *)dev); if (stat < 0) return stat; @@ -1372,7 +1371,7 @@ static int ngene_start(struct ngene *dev) dev->msi_enabled = true; } stat = request_irq(dev->pci_dev->irq, irq_handler, - flags, "nGene", dev); + flags | IRQF_USER_DATA, "nGene", dev); if (stat < 0) goto fail2; ngwritel(1, NGENE_INT_ENABLE); diff --git a/drivers/media/pci/pluto2/pluto2.c b/drivers/media/pci/pluto2/pluto2.c index 872c796621d2..e056ffee8ea6 100644 --- a/drivers/media/pci/pluto2/pluto2.c +++ b/drivers/media/pci/pluto2/pluto2.c @@ -623,7 +623,8 @@ static int pluto2_probe(struct pci_dev *pdev, const struct pci_device_id *ent) pci_set_drvdata(pdev, pluto); - ret = request_irq(pdev->irq, pluto_irq, IRQF_SHARED, DRIVER_NAME, pluto); + ret = request_irq(pdev->irq, pluto_irq, IRQF_SHARED | IRQF_USER_DATA, + DRIVER_NAME, pluto); if (ret < 0) goto err_pci_iounmap; diff --git a/drivers/media/pci/saa7134/saa7134-alsa.c b/drivers/media/pci/saa7134/saa7134-alsa.c index dc9cdaaee1fb..80adb620e9b4 100644 --- a/drivers/media/pci/saa7134/saa7134-alsa.c +++ b/drivers/media/pci/saa7134/saa7134-alsa.c @@ -1157,8 +1157,8 @@ static int alsa_card_saa7134_create(struct saa7134_dev *dev, int devnum) err = request_irq(dev->pci->irq, saa7134_alsa_irq, - IRQF_SHARED, dev->name, - (void*) &dev->dmasound); + IRQF_SHARED | IRQF_USER_DATA, dev->name, + (void *)&dev->dmasound); if (err < 0) { pr_err("%s: can't get IRQ %d for ALSA\n", diff --git a/drivers/media/pci/saa7134/saa7134-core.c b/drivers/media/pci/saa7134/saa7134-core.c index aa98ea49558c..b582fdd67c2c 100644 --- a/drivers/media/pci/saa7134/saa7134-core.c +++ b/drivers/media/pci/saa7134/saa7134-core.c @@ -1158,7 +1158,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev, /* get irq */ err = request_irq(pci_dev->irq, saa7134_irq, - IRQF_SHARED, dev->name, dev); + IRQF_SHARED | IRQF_USER_DATA, dev->name, dev); if (err < 0) { pr_err("%s: can't get IRQ %d\n", dev->name,pci_dev->irq); diff --git a/drivers/media/pci/saa7164/saa7164-core.c b/drivers/media/pci/saa7164/saa7164-core.c index f33349e16359..d8bcef88c3b2 100644 --- a/drivers/media/pci/saa7164/saa7164-core.c +++ b/drivers/media/pci/saa7164/saa7164-core.c @@ -1188,8 +1188,8 @@ static bool saa7164_enable_msi(struct pci_dev *pci_dev, struct saa7164_dev *dev) } /* no error - so request an msi interrupt */ - err = request_irq(pci_dev->irq, saa7164_irq, 0, - dev->name, dev); + err = request_irq(pci_dev->irq, saa7164_irq, + IRQF_USER_DATA, dev->name, dev); if (err) { /* fall back to legacy interrupt */ @@ -1256,7 +1256,8 @@ static int saa7164_initdev(struct pci_dev *pci_dev, or msi is not enabled - fallback to shared interrupt */ err = request_irq(pci_dev->irq, saa7164_irq, - IRQF_SHARED, dev->name, dev); + IRQF_SHARED | IRQF_USER_DATA, dev->name, + dev); if (err < 0) { printk(KERN_ERR "%s: can't get IRQ %d\n", dev->name, diff --git a/drivers/media/pci/solo6x10/solo6x10-core.c b/drivers/media/pci/solo6x10/solo6x10-core.c index 19ffd2ed3cc7..0c46cde4644d 100644 --- a/drivers/media/pci/solo6x10/solo6x10-core.c +++ b/drivers/media/pci/solo6x10/solo6x10-core.c @@ -559,8 +559,8 @@ static int solo_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) /* PLL locking time of 1ms */ mdelay(1); - ret = request_irq(pdev->irq, solo_isr, IRQF_SHARED, SOLO6X10_NAME, - solo_dev); + ret = request_irq(pdev->irq, solo_isr, IRQF_SHARED | IRQF_USER_DATA, + SOLO6X10_NAME, solo_dev); if (ret) goto fail_probe; diff --git a/drivers/media/pci/sta2x11/sta2x11_vip.c b/drivers/media/pci/sta2x11/sta2x11_vip.c index 411177ec4d72..1f869047e940 100644 --- a/drivers/media/pci/sta2x11/sta2x11_vip.c +++ b/drivers/media/pci/sta2x11/sta2x11_vip.c @@ -1073,9 +1073,8 @@ static int sta2x11_vip_init_one(struct pci_dev *pdev, spin_lock_init(&vip->slock); - ret = request_irq(pdev->irq, - (irq_handler_t) vip_irq, - IRQF_SHARED, KBUILD_MODNAME, vip); + ret = request_irq(pdev->irq, (irq_handler_t)vip_irq, + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, vip); if (ret) { dev_err(&pdev->dev, "request_irq failed\n"); ret = -ENODEV; diff --git a/drivers/media/pci/tw68/tw68-core.c b/drivers/media/pci/tw68/tw68-core.c index 8474528be91e..034fa832d925 100644 --- a/drivers/media/pci/tw68/tw68-core.c +++ b/drivers/media/pci/tw68/tw68-core.c @@ -307,7 +307,7 @@ static int tw68_initdev(struct pci_dev *pci_dev, /* get irq */ err = devm_request_irq(&pci_dev->dev, pci_dev->irq, tw68_irq, - IRQF_SHARED, dev->name, dev); + IRQF_SHARED | IRQF_USER_DATA, dev->name, dev); if (err < 0) { pr_err("%s: can't get IRQ %d\n", dev->name, pci_dev->irq); diff --git a/drivers/media/pci/tw686x/tw686x-core.c b/drivers/media/pci/tw686x/tw686x-core.c index 7fb3f07bf022..9d4fb3bfd947 100644 --- a/drivers/media/pci/tw686x/tw686x-core.c +++ b/drivers/media/pci/tw686x/tw686x-core.c @@ -318,8 +318,8 @@ static int tw686x_probe(struct pci_dev *pci_dev, spin_lock_init(&dev->lock); - err = request_irq(pci_dev->irq, tw686x_irq, IRQF_SHARED, - dev->name, dev); + err = request_irq(pci_dev->irq, tw686x_irq, + IRQF_SHARED | IRQF_USER_DATA, dev->name, dev); if (err < 0) { dev_err(&pci_dev->dev, "unable to request interrupt\n"); goto iounmap; diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c index dfec813f50a9..e1fe3bee82ab 100644 --- a/drivers/media/platform/aspeed-video.c +++ b/drivers/media/platform/aspeed-video.c @@ -1600,8 +1600,9 @@ static int aspeed_video_init(struct aspeed_video *video) return -ENODEV; } - rc = devm_request_irq(dev, irq, aspeed_video_irq, IRQF_SHARED, - DEVICE_NAME, video); + rc = devm_request_irq(dev, irq, aspeed_video_irq, + IRQF_SHARED | IRQF_USER_DATA, DEVICE_NAME, + video); if (rc < 0) { dev_err(dev, "Unable to request IRQ %d\n", irq); return rc; diff --git a/drivers/media/platform/marvell-ccic/cafe-driver.c b/drivers/media/platform/marvell-ccic/cafe-driver.c index 8d00d9d8adff..689a0f1a95ee 100644 --- a/drivers/media/platform/marvell-ccic/cafe-driver.c +++ b/drivers/media/platform/marvell-ccic/cafe-driver.c @@ -508,7 +508,8 @@ static int cafe_pci_probe(struct pci_dev *pdev, goto out_disable; } mcam->regs_size = pci_resource_len(pdev, 0); - ret = request_irq(pdev->irq, cafe_irq, IRQF_SHARED, "cafe-ccic", cam); + ret = request_irq(pdev->irq, cafe_irq, IRQF_SHARED | IRQF_USER_DATA, + "cafe-ccic", cam); if (ret) goto out_iounmap; diff --git a/drivers/media/rc/fintek-cir.c b/drivers/media/rc/fintek-cir.c index 601944666b71..07cd3c28b892 100644 --- a/drivers/media/rc/fintek-cir.c +++ b/drivers/media/rc/fintek-cir.c @@ -552,8 +552,7 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id fintek->cir_port_len, FINTEK_DRIVER_NAME)) goto exit_free_dev_rdev; - if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED, - FINTEK_DRIVER_NAME, (void *)fintek)) + if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED | IRQF_USER_DATA, FINTEK_DRIVER_NAME, (void *)fintek)) goto exit_free_cir_addr; ret = rc_register_device(rdev); diff --git a/drivers/media/rc/gpio-ir-recv.c b/drivers/media/rc/gpio-ir-recv.c index 3d99b51384ac..487157b7a679 100644 --- a/drivers/media/rc/gpio-ir-recv.c +++ b/drivers/media/rc/gpio-ir-recv.c @@ -101,7 +101,7 @@ static int gpio_ir_recv_probe(struct platform_device *pdev) platform_set_drvdata(pdev, gpio_dev); return devm_request_irq(dev, gpio_dev->irq, gpio_ir_recv_irq, - IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, + IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING | IRQF_USER_DATA, "gpio-ir-recv-irq", gpio_dev); } diff --git a/drivers/media/rc/ir-hix5hd2.c b/drivers/media/rc/ir-hix5hd2.c index abc4d6c1b323..5fad158e9a39 100644 --- a/drivers/media/rc/ir-hix5hd2.c +++ b/drivers/media/rc/ir-hix5hd2.c @@ -275,8 +275,7 @@ static int hix5hd2_ir_probe(struct platform_device *pdev) if (ret < 0) goto clkerr; - if (devm_request_irq(dev, priv->irq, hix5hd2_ir_rx_interrupt, - 0, pdev->name, priv) < 0) { + if (devm_request_irq(dev, priv->irq, hix5hd2_ir_rx_interrupt, IRQF_USER_DATA, pdev->name, priv) < 0) { dev_err(dev, "IRQ %d register failed\n", priv->irq); ret = -EINVAL; goto regerr; diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c index cd3c60ba8519..52d82983521a 100644 --- a/drivers/media/rc/ite-cir.c +++ b/drivers/media/rc/ite-cir.c @@ -1593,8 +1593,7 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id dev_desc->io_region_size, ITE_DRIVER_NAME)) goto exit_unregister_device; - if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED, - ITE_DRIVER_NAME, (void *)itdev)) + if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED | IRQF_USER_DATA, ITE_DRIVER_NAME, (void *)itdev)) goto exit_release_cir_addr; ite_pr(KERN_NOTICE, "driver has been successfully loaded\n"); diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c index 5c2cd8d2d155..98d392188b2b 100644 --- a/drivers/media/rc/nuvoton-cir.c +++ b/drivers/media/rc/nuvoton-cir.c @@ -1049,7 +1049,8 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id) return -EBUSY; ret = devm_request_irq(&pdev->dev, nvt->cir_irq, nvt_cir_isr, - IRQF_SHARED, NVT_DRIVER_NAME, nvt); + IRQF_SHARED | IRQF_USER_DATA, NVT_DRIVER_NAME, + nvt); if (ret) return ret; diff --git a/drivers/media/rc/serial_ir.c b/drivers/media/rc/serial_ir.c index ffe2c672d105..ffdd1f5cd194 100644 --- a/drivers/media/rc/serial_ir.c +++ b/drivers/media/rc/serial_ir.c @@ -543,7 +543,7 @@ static int serial_ir_probe(struct platform_device *dev) timer_setup(&serial_ir.timeout_timer, serial_ir_timeout, 0); result = devm_request_irq(&dev->dev, irq, serial_ir_irq_handler, - share_irq ? IRQF_SHARED : 0, + (share_irq ? IRQF_SHARED : 0) | IRQF_USER_DATA, KBUILD_MODNAME, &hardware); if (result < 0) { if (result == -EBUSY) diff --git a/drivers/media/rc/sir_ir.c b/drivers/media/rc/sir_ir.c index c8951650a368..952b1d93960e 100644 --- a/drivers/media/rc/sir_ir.c +++ b/drivers/media/rc/sir_ir.c @@ -355,7 +355,8 @@ static int sir_ir_probe(struct platform_device *dev) pr_err("i/o port 0x%.4x already in use.\n", io); return -EBUSY; } - retval = devm_request_irq(&sir_ir_dev->dev, irq, sir_interrupt, 0, + retval = devm_request_irq(&sir_ir_dev->dev, irq, sir_interrupt, + IRQF_USER_DATA, KBUILD_MODNAME, NULL); if (retval < 0) { pr_err("IRQ %d already in use.\n", irq); diff --git a/drivers/media/rc/winbond-cir.c b/drivers/media/rc/winbond-cir.c index 0f07a2c384fa..d9876f3d5133 100644 --- a/drivers/media/rc/winbond-cir.c +++ b/drivers/media/rc/winbond-cir.c @@ -1123,7 +1123,7 @@ wbcir_probe(struct pnp_dev *device, const struct pnp_device_id *dev_id) } err = request_irq(data->irq, wbcir_irq_handler, - 0, DRVNAME, device); + IRQF_USER_DATA, DRVNAME, device); if (err) { dev_err(dev, "Failed to claim IRQ %u\n", data->irq); err = -EBUSY; diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c index bcdca9fbef51..13b969c106ff 100644 --- a/drivers/memstick/host/jmb38x_ms.c +++ b/drivers/memstick/host/jmb38x_ms.c @@ -901,8 +901,7 @@ static struct memstick_host *jmb38x_ms_alloc_host(struct jmb38x_ms *jm, int cnt) timer_setup(&host->timer, jmb38x_ms_abort, 0); - if (!request_irq(host->irq, jmb38x_ms_isr, IRQF_SHARED, host->host_id, - msh)) + if (!request_irq(host->irq, jmb38x_ms_isr, IRQF_SHARED | IRQF_USER_DATA, host->host_id, msh)) return msh; iounmap(host->addr); diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index ba551d8dfba4..73c43c5e06b4 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c @@ -2425,7 +2425,8 @@ mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag) else ioc->msi_enable = 0; rc = request_irq(ioc->pcidev->irq, mpt_interrupt, - IRQF_SHARED, ioc->name, ioc); + IRQF_SHARED | IRQF_USER_DATA, + ioc->name, ioc); if (rc < 0) { printk(MYIOC_s_ERR_FMT "Unable to allocate " "interrupt %d!\n", diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c index 542b47c6bcd2..61c36d063792 100644 --- a/drivers/mfd/ezx-pcap.c +++ b/drivers/mfd/ezx-pcap.c @@ -479,8 +479,8 @@ static int ezx_pcap_probe(struct spi_device *spi) adc_irq = pcap_to_irq(pcap, (pdata->config & PCAP_SECOND_PORT) ? PCAP_IRQ_ADCDONE2 : PCAP_IRQ_ADCDONE); - ret = devm_request_irq(&spi->dev, adc_irq, pcap_adc_irq, 0, "ADC", - pcap); + ret = devm_request_irq(&spi->dev, adc_irq, pcap_adc_irq, + IRQF_USER_DATA, "ADC", pcap); if (ret) goto free_irqchip; diff --git a/drivers/misc/ibmasm/module.c b/drivers/misc/ibmasm/module.c index e914b8c80943..737bc3f9047b 100644 --- a/drivers/misc/ibmasm/module.c +++ b/drivers/misc/ibmasm/module.c @@ -114,7 +114,9 @@ static int ibmasm_init_one(struct pci_dev *pdev, const struct pci_device_id *id) goto error_ioremap; } - result = request_irq(sp->irq, ibmasm_interrupt_handler, IRQF_SHARED, sp->devname, (void*)sp); + result = request_irq(sp->irq, ibmasm_interrupt_handler, + IRQF_SHARED | IRQF_USER_DATA, sp->devname, + (void *)sp); if (result) { dev_err(sp->dev, "Failed to register interrupt handler\n"); goto error_request_irq; diff --git a/drivers/misc/sgi-gru/grufile.c b/drivers/misc/sgi-gru/grufile.c index 104a05f6b738..e728978286dd 100644 --- a/drivers/misc/sgi-gru/grufile.c +++ b/drivers/misc/sgi-gru/grufile.c @@ -385,7 +385,9 @@ static int gru_chiplet_setup_tlb_irq(int chiplet, char *irq_name, return ret; } - ret = request_irq(irq, irq_handler, 0, irq_name, NULL); + ret = request_irq(irq, irq_handler, + IRQF_USER_DATA, irq_name, + NULL); if (ret) { printk(KERN_ERR "%s: request_irq failed, errno=%d\n", GRU_DRIVER_ID_STR, -ret); @@ -433,7 +435,8 @@ static int gru_chiplet_setup_tlb_irq(int chiplet, char *irq_name, return irq; } - ret = request_irq(irq, irq_handler, 0, irq_name, NULL); + ret = request_irq(irq, irq_handler, IRQF_USER_DATA, + irq_name, NULL); if (ret) { uv_teardown_irq(irq); printk(KERN_ERR "%s: request_irq failed, errno=%d\n", diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c index 0441abe87880..1563fbac9d5b 100644 --- a/drivers/misc/sgi-xp/xpc_uv.c +++ b/drivers/misc/sgi-xp/xpc_uv.c @@ -259,7 +259,8 @@ xpc_create_gru_mq_uv(unsigned int mq_size, int cpu, char *irq_name, if (ret != 0) goto out_4; - ret = request_irq(mq->irq, irq_handler, 0, irq_name, NULL); + ret = request_irq(mq->irq, irq_handler, + IRQF_USER_DATA, irq_name, NULL); if (ret != 0) { dev_err(xpc_part, "request_irq(irq=%d) returned error=%d\n", mq->irq, -ret); diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c index 833ef0590af8..1e95f419fb92 100644 --- a/drivers/mmc/host/mtk-sd.c +++ b/drivers/mmc/host/mtk-sd.c @@ -2227,7 +2227,8 @@ static int msdc_drv_probe(struct platform_device *pdev) msdc_init_hw(host); ret = devm_request_irq(&pdev->dev, host->irq, msdc_irq, - IRQF_TRIGGER_LOW | IRQF_ONESHOT, pdev->name, host); + IRQF_TRIGGER_LOW | IRQF_ONESHOT | IRQF_USER_DATA, + pdev->name, host); if (ret) goto release; diff --git a/drivers/net/arcnet/arc-rimi.c b/drivers/net/arcnet/arc-rimi.c index 11c5bad95226..fc5b690b12af 100644 --- a/drivers/net/arcnet/arc-rimi.c +++ b/drivers/net/arcnet/arc-rimi.c @@ -136,7 +136,7 @@ static int __init arcrimi_found(struct net_device *dev) } /* reserve the irq */ - if (request_irq(dev->irq, arcnet_interrupt, 0, "arcnet (RIM I)", dev)) { + if (request_irq(dev->irq, arcnet_interrupt, IRQF_USER_DATA, "arcnet (RIM I)", dev)) { iounmap(p); release_mem_region(dev->mem_start, MIRROR_SIZE); arc_printk(D_NORMAL, dev, "Can't get IRQ %d!\n", dev->irq); diff --git a/drivers/net/arcnet/com20020.c b/drivers/net/arcnet/com20020.c index 78043a9c5981..c9fa16d5d079 100644 --- a/drivers/net/arcnet/com20020.c +++ b/drivers/net/arcnet/com20020.c @@ -240,8 +240,7 @@ int com20020_found(struct net_device *dev, int shared) arcnet_outb(dev->dev_addr[0], ioaddr, COM20020_REG_W_XREG); /* reserve the irq */ - if (request_irq(dev->irq, arcnet_interrupt, shared, - "arcnet (COM20020)", dev)) { + if (request_irq(dev->irq, arcnet_interrupt, shared | IRQF_USER_DATA, "arcnet (COM20020)", dev)) { arc_printk(D_NORMAL, dev, "Can't get IRQ %d!\n", dev->irq); return -ENODEV; } diff --git a/drivers/net/arcnet/com90io.c b/drivers/net/arcnet/com90io.c index 2c546013a980..d7ed122e9e47 100644 --- a/drivers/net/arcnet/com90io.c +++ b/drivers/net/arcnet/com90io.c @@ -225,8 +225,7 @@ static int __init com90io_found(struct net_device *dev) int err; /* Reserve the irq */ - if (request_irq(dev->irq, arcnet_interrupt, 0, - "arcnet (COM90xx-IO)", dev)) { + if (request_irq(dev->irq, arcnet_interrupt, IRQF_USER_DATA, "arcnet (COM90xx-IO)", dev)) { arc_printk(D_NORMAL, dev, "Can't get IRQ %d!\n", dev->irq); return -ENODEV; } diff --git a/drivers/net/arcnet/com90xx.c b/drivers/net/arcnet/com90xx.c index ca4a57c30bf8..7d564078022b 100644 --- a/drivers/net/arcnet/com90xx.c +++ b/drivers/net/arcnet/com90xx.c @@ -508,7 +508,7 @@ static int __init com90xx_found(int ioaddr, int airq, u_long shmem, goto err_free_dev; /* reserve the irq */ - if (request_irq(airq, arcnet_interrupt, 0, "arcnet (90xx)", dev)) { + if (request_irq(airq, arcnet_interrupt, IRQF_USER_DATA, "arcnet (90xx)", dev)) { arc_printk(D_NORMAL, dev, "Can't get IRQ %d!\n", airq); goto err_release_mem; } diff --git a/drivers/net/can/cc770/cc770.c b/drivers/net/can/cc770/cc770.c index da636a22c542..ffdfc65d0bf0 100644 --- a/drivers/net/can/cc770/cc770.c +++ b/drivers/net/can/cc770/cc770.c @@ -782,8 +782,8 @@ static int cc770_open(struct net_device *dev) if (err) return err; - err = request_irq(dev->irq, &cc770_interrupt, priv->irq_flags, - dev->name, dev); + err = request_irq(dev->irq, &cc770_interrupt, + priv->irq_flags | IRQF_USER_DATA, dev->name, dev); if (err) { close_candev(dev); return -EAGAIN; diff --git a/drivers/net/can/peak_canfd/peak_pciefd_main.c b/drivers/net/can/peak_canfd/peak_pciefd_main.c index c458d5fdc8d3..844b9c17b40a 100644 --- a/drivers/net/can/peak_canfd/peak_pciefd_main.c +++ b/drivers/net/can/peak_canfd/peak_pciefd_main.c @@ -415,11 +415,9 @@ static int pciefd_pre_cmd(struct peak_canfd_priv *ucan) break; /* going into operational mode: setup IRQ handler */ - err = request_irq(priv->ucan.ndev->irq, - pciefd_irq_handler, - IRQF_SHARED, - PCIEFD_DRV_NAME, - priv); + err = request_irq(priv->ucan.ndev->irq, pciefd_irq_handler, + IRQF_SHARED | IRQF_USER_DATA, + PCIEFD_DRV_NAME, priv); if (err) return err; diff --git a/drivers/net/can/sja1000/ems_pcmcia.c b/drivers/net/can/sja1000/ems_pcmcia.c index 381de998d2f1..831b4e962296 100644 --- a/drivers/net/can/sja1000/ems_pcmcia.c +++ b/drivers/net/can/sja1000/ems_pcmcia.c @@ -243,8 +243,8 @@ static int ems_pcmcia_add_card(struct pcmcia_device *pdev, unsigned long base) free_sja1000dev(dev); } - err = request_irq(dev->irq, &ems_pcmcia_interrupt, IRQF_SHARED, - DRV_NAME, card); + err = request_irq(dev->irq, &ems_pcmcia_interrupt, + IRQF_SHARED | IRQF_USER_DATA, DRV_NAME, card); if (!err) return 0; diff --git a/drivers/net/can/sja1000/peak_pcmcia.c b/drivers/net/can/sja1000/peak_pcmcia.c index b8c39ede7cd5..ace929c99393 100644 --- a/drivers/net/can/sja1000/peak_pcmcia.c +++ b/drivers/net/can/sja1000/peak_pcmcia.c @@ -695,7 +695,8 @@ static int pcan_probe(struct pcmcia_device *pdev) timer_setup(&card->led_timer, pcan_led_timer, 0); /* request the given irq */ - err = request_irq(pdev->irq, &pcan_isr, IRQF_SHARED, PCC_NAME, card); + err = request_irq(pdev->irq, &pcan_isr, IRQF_SHARED | IRQF_USER_DATA, + PCC_NAME, card); if (err) { dev_err(&pdev->dev, "couldn't request irq%d\n", pdev->irq); goto probe_err_5; diff --git a/drivers/net/can/sja1000/sja1000.c b/drivers/net/can/sja1000/sja1000.c index 9f107798f904..82fc8b74c5b9 100644 --- a/drivers/net/can/sja1000/sja1000.c +++ b/drivers/net/can/sja1000/sja1000.c @@ -581,8 +581,9 @@ static int sja1000_open(struct net_device *dev) /* register interrupt handler, if not done by the device driver */ if (!(priv->flags & SJA1000_CUSTOM_IRQ_HANDLER)) { - err = request_irq(dev->irq, sja1000_interrupt, priv->irq_flags, - dev->name, (void *)dev); + err = request_irq(dev->irq, sja1000_interrupt, + priv->irq_flags | IRQF_USER_DATA, dev->name, + (void *)dev); if (err) { close_candev(dev); return -EAGAIN; diff --git a/drivers/net/ethernet/3com/3c509.c b/drivers/net/ethernet/3com/3c509.c index b223769d6a5e..0230d2605b0f 100644 --- a/drivers/net/ethernet/3com/3c509.c +++ b/drivers/net/ethernet/3com/3c509.c @@ -670,7 +670,8 @@ el3_open(struct net_device *dev) outw(RxReset, ioaddr + EL3_CMD); outw(SetStatusEnb | 0x00, ioaddr + EL3_CMD); - i = request_irq(dev->irq, el3_interrupt, 0, dev->name, dev); + i = request_irq(dev->irq, el3_interrupt, + IRQF_USER_DATA, dev->name, dev); if (i) return i; diff --git a/drivers/net/ethernet/3com/3c515.c b/drivers/net/ethernet/3com/3c515.c index b648e3f95c01..1ff6190b9ae4 100644 --- a/drivers/net/ethernet/3com/3c515.c +++ b/drivers/net/ethernet/3com/3c515.c @@ -764,13 +764,11 @@ static int corkscrew_open(struct net_device *dev) /* Corkscrew: Cannot share ISA resources. */ if (dev->irq == 0 || dev->dma == 0 || - request_irq(dev->irq, corkscrew_interrupt, 0, - vp->product_name, dev)) + request_irq(dev->irq, corkscrew_interrupt, IRQF_USER_DATA, vp->product_name, dev)) return -EAGAIN; enable_dma(dev->dma); set_dma_mode(dev->dma, DMA_MODE_CASCADE); - } else if (request_irq(dev->irq, corkscrew_interrupt, IRQF_SHARED, - vp->product_name, dev)) { + } else if (request_irq(dev->irq, corkscrew_interrupt, IRQF_SHARED | IRQF_USER_DATA, vp->product_name, dev)) { return -EAGAIN; } diff --git a/drivers/net/ethernet/8390/axnet_cs.c b/drivers/net/ethernet/8390/axnet_cs.c index 0b6bbf63f7ca..01e1756458ea 100644 --- a/drivers/net/ethernet/8390/axnet_cs.c +++ b/drivers/net/ethernet/8390/axnet_cs.c @@ -474,7 +474,8 @@ static int axnet_open(struct net_device *dev) return -ENODEV; outb_p(0xFF, nic_base + EN0_ISR); /* Clear bogus intr. */ - ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, "axnet_cs", dev); + ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED | IRQF_USER_DATA, + "axnet_cs", dev); if (ret) return ret; diff --git a/drivers/net/ethernet/8390/ne.c b/drivers/net/ethernet/8390/ne.c index 1c97e39b478e..a1b236fec72e 100644 --- a/drivers/net/ethernet/8390/ne.c +++ b/drivers/net/ethernet/8390/ne.c @@ -492,7 +492,8 @@ static int __init ne_probe1(struct net_device *dev, unsigned long ioaddr) /* Snarf the interrupt now. There's no point in waiting since we cannot share and the board will usually be enabled. */ - ret = request_irq(dev->irq, eip_interrupt, 0, name, dev); + ret = request_irq(dev->irq, eip_interrupt, + IRQF_USER_DATA, name, dev); if (ret) { pr_cont(" unable to get IRQ %d (errno=%d).\n", dev->irq, ret); goto err_out; diff --git a/drivers/net/ethernet/8390/ne2k-pci.c b/drivers/net/ethernet/8390/ne2k-pci.c index 42985a82321a..67607c6cea12 100644 --- a/drivers/net/ethernet/8390/ne2k-pci.c +++ b/drivers/net/ethernet/8390/ne2k-pci.c @@ -431,7 +431,8 @@ static int ne2k_pci_set_fdx(struct net_device *dev) static int ne2k_pci_open(struct net_device *dev) { - int ret = request_irq(dev->irq, ei_interrupt, IRQF_SHARED, dev->name, dev); + int ret = request_irq(dev->irq, ei_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->name, dev); if (ret) return ret; diff --git a/drivers/net/ethernet/8390/pcnet_cs.c b/drivers/net/ethernet/8390/pcnet_cs.c index 61e43802b9a5..cb7ccae4e84d 100644 --- a/drivers/net/ethernet/8390/pcnet_cs.c +++ b/drivers/net/ethernet/8390/pcnet_cs.c @@ -905,7 +905,8 @@ static int pcnet_open(struct net_device *dev) set_misc_reg(dev); outb_p(0xFF, nic_base + EN0_ISR); /* Clear bogus intr. */ - ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, dev->name, dev); + ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED | IRQF_USER_DATA, + dev->name, dev); if (ret) return ret; diff --git a/drivers/net/ethernet/8390/smc-ultra.c b/drivers/net/ethernet/8390/smc-ultra.c index 3fe3b4dfa7c5..0ab0505a10d9 100644 --- a/drivers/net/ethernet/8390/smc-ultra.c +++ b/drivers/net/ethernet/8390/smc-ultra.c @@ -390,7 +390,8 @@ ultra_open(struct net_device *dev) unsigned char irq2reg[] = {0, 0, 0x04, 0x08, 0, 0x0C, 0, 0x40, 0, 0x04, 0x44, 0x48, 0, 0, 0, 0x4C, }; - retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev); + retval = request_irq(dev->irq, ei_interrupt, + IRQF_USER_DATA, dev->name, dev); if (retval) return retval; diff --git a/drivers/net/ethernet/8390/wd.c b/drivers/net/ethernet/8390/wd.c index c834123560f1..bcfa77e1ed5c 100644 --- a/drivers/net/ethernet/8390/wd.c +++ b/drivers/net/ethernet/8390/wd.c @@ -310,7 +310,8 @@ static int __init wd_probe1(struct net_device *dev, int ioaddr) /* Snarf the interrupt now. There's no point in waiting since we cannot share and the board will usually be enabled. */ - i = request_irq(dev->irq, ei_interrupt, 0, DRV_NAME, dev); + i = request_irq(dev->irq, ei_interrupt, + IRQF_USER_DATA, DRV_NAME, dev); if (i) { pr_cont(" unable to get IRQ %d.\n", dev->irq); return i; diff --git a/drivers/net/ethernet/agere/et131x.c b/drivers/net/ethernet/agere/et131x.c index ea34bcb868b5..b143f7b734f8 100644 --- a/drivers/net/ethernet/agere/et131x.c +++ b/drivers/net/ethernet/agere/et131x.c @@ -3621,8 +3621,8 @@ static int et131x_open(struct net_device *netdev) msecs_to_jiffies(TX_ERROR_PERIOD); add_timer(&adapter->error_timer); - result = request_irq(irq, et131x_isr, - IRQF_SHARED, netdev->name, netdev); + result = request_irq(irq, et131x_isr, IRQF_SHARED | IRQF_USER_DATA, + netdev->name, netdev); if (result) { dev_err(&pdev->dev, "could not register IRQ %d\n", irq); return result; diff --git a/drivers/net/ethernet/amd/lance.c b/drivers/net/ethernet/amd/lance.c index b56d84c7df46..2761fb2fc6ff 100644 --- a/drivers/net/ethernet/amd/lance.c +++ b/drivers/net/ethernet/amd/lance.c @@ -753,7 +753,7 @@ lance_open(struct net_device *dev) int i; if (dev->irq == 0 || - request_irq(dev->irq, lance_interrupt, 0, dev->name, dev)) { + request_irq(dev->irq, lance_interrupt, IRQF_USER_DATA, dev->name, dev)) { return -EAGAIN; } diff --git a/drivers/net/ethernet/amd/ni65.c b/drivers/net/ethernet/amd/ni65.c index 8931ce6bab7b..6285977cce73 100644 --- a/drivers/net/ethernet/amd/ni65.c +++ b/drivers/net/ethernet/amd/ni65.c @@ -294,8 +294,9 @@ static void ni65_set_performance(struct priv *p) static int ni65_open(struct net_device *dev) { struct priv *p = dev->ml_priv; - int irqval = request_irq(dev->irq, ni65_interrupt,0, - cards[p->cardno].cardname,dev); + int irqval = request_irq(dev->irq, ni65_interrupt, + IRQF_USER_DATA, + cards[p->cardno].cardname, dev); if (irqval) { printk(KERN_ERR "%s: unable to get IRQ %d (irqval=%d).\n", dev->name,dev->irq, irqval); diff --git a/drivers/net/ethernet/atheros/atlx/atl1.c b/drivers/net/ethernet/atheros/atlx/atl1.c index 63edc5706c09..d7fe078569df 100644 --- a/drivers/net/ethernet/atheros/atlx/atl1.c +++ b/drivers/net/ethernet/atheros/atlx/atl1.c @@ -2637,8 +2637,8 @@ static s32 atl1_up(struct atl1_adapter *adapter) irq_flags |= IRQF_SHARED; } - err = request_irq(adapter->pdev->irq, atl1_intr, irq_flags, - netdev->name, netdev); + err = request_irq(adapter->pdev->irq, atl1_intr, + irq_flags | IRQF_USER_DATA, netdev->name, netdev); if (unlikely(err)) goto err_up; diff --git a/drivers/net/ethernet/atheros/atlx/atl2.c b/drivers/net/ethernet/atheros/atlx/atl2.c index bb41becb6609..65b29d484bf1 100644 --- a/drivers/net/ethernet/atheros/atlx/atl2.c +++ b/drivers/net/ethernet/atheros/atlx/atl2.c @@ -670,8 +670,8 @@ static int atl2_request_irq(struct atl2_adapter *adapter) if (adapter->have_msi) flags &= ~IRQF_SHARED; - return request_irq(adapter->pdev->irq, atl2_intr, flags, netdev->name, - netdev); + return request_irq(adapter->pdev->irq, atl2_intr, + flags | IRQF_USER_DATA, netdev->name, netdev); } /** diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c index 1e82b9efe447..b54e170ca81c 100644 --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c @@ -407,9 +407,8 @@ static int request_msix_data_irqs(struct adapter *adap) for (j = 0; j < nqsets; ++j) { err = request_irq(adap->msix_info[qidx + 1].vec, - t3_intr_handler(adap, - adap->sge.qs[qidx]. - rspq.polling), 0, + t3_intr_handler(adap, adap->sge.qs[qidx].rspq.polling), + IRQF_USER_DATA, adap->msix_info[qidx + 1].desc, &adap->sge.qs[qidx]); if (err) { @@ -1264,7 +1263,8 @@ static int cxgb_up(struct adapter *adap) if (adap->flags & USING_MSIX) { name_msix_vecs(adap); err = request_irq(adap->msix_info[0].vec, - t3_async_intr_handler, 0, + t3_async_intr_handler, + IRQF_USER_DATA, adap->msix_info[0].desc, adap); if (err) goto irq_err; @@ -1274,13 +1274,7 @@ static int cxgb_up(struct adapter *adap) free_irq(adap->msix_info[0].vec, adap); goto irq_err; } - } else if ((err = request_irq(adap->pdev->irq, - t3_intr_handler(adap, - adap->sge.qs[0].rspq. - polling), - (adap->flags & USING_MSI) ? - 0 : IRQF_SHARED, - adap->name, adap))) + } else if ((err = request_irq(adap->pdev->irq, t3_intr_handler(adap, adap->sge.qs[0].rspq.polling), ((adap->flags & USING_MSI) ? 0 : IRQF_SHARED) | IRQF_USER_DATA, adap->name, adap))) goto irq_err; enable_all_napi(adap); diff --git a/drivers/net/ethernet/micrel/ks8851_mll.c b/drivers/net/ethernet/micrel/ks8851_mll.c index 35f8c9ef204d..2343c911276f 100644 --- a/drivers/net/ethernet/micrel/ks8851_mll.c +++ b/drivers/net/ethernet/micrel/ks8851_mll.c @@ -924,7 +924,8 @@ static int ks_net_open(struct net_device *netdev) netif_dbg(ks, ifup, ks->netdev, "%s - entry\n", __func__); /* reset the HW */ - err = request_irq(netdev->irq, ks_irq, KS_INT_FLAGS, DRV_NAME, netdev); + err = request_irq(netdev->irq, ks_irq, KS_INT_FLAGS | IRQF_USER_DATA, + DRV_NAME, netdev); if (err) { pr_err("Failed to request IRQ: %d: %d\n", netdev->irq, err); diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c index 310807ef328b..4fd1123173e8 100644 --- a/drivers/net/ethernet/microchip/lan743x_main.c +++ b/drivers/net/ethernet/microchip/lan743x_main.c @@ -385,10 +385,9 @@ static int lan743x_intr_register_isr(struct lan743x_adapter *adapter, vector->handler = handler; vector->context = context; - ret = request_irq(vector->irq, - lan743x_intr_entry_isr, - (flags & LAN743X_VECTOR_FLAG_IRQ_SHARED) ? - IRQF_SHARED : 0, DRIVER_NAME, vector); + ret = request_irq(vector->irq, lan743x_intr_entry_isr, + ((flags & LAN743X_VECTOR_FLAG_IRQ_SHARED) ? IRQF_SHARED : 0) | IRQF_USER_DATA, + DRIVER_NAME, vector); if (ret) { vector->handler = NULL; vector->context = NULL; diff --git a/drivers/net/ethernet/realtek/atp.c b/drivers/net/ethernet/realtek/atp.c index 7e011c1c1e6e..03ab879536b7 100644 --- a/drivers/net/ethernet/realtek/atp.c +++ b/drivers/net/ethernet/realtek/atp.c @@ -433,7 +433,8 @@ static int net_open(struct net_device *dev) /* The interrupt line is turned off (tri-stated) when the device isn't in use. That's especially important for "attached" interfaces where the port or interrupt may be shared. */ - ret = request_irq(dev->irq, atp_interrupt, 0, dev->name, dev); + ret = request_irq(dev->irq, atp_interrupt, + IRQF_USER_DATA, dev->name, dev); if (ret) return ret; diff --git a/drivers/net/fddi/skfp/skfddi.c b/drivers/net/fddi/skfp/skfddi.c index 5d661f60b101..077c3113418c 100644 --- a/drivers/net/fddi/skfp/skfddi.c +++ b/drivers/net/fddi/skfp/skfddi.c @@ -486,8 +486,8 @@ static int skfp_open(struct net_device *dev) pr_debug("entering skfp_open\n"); /* Register IRQ - support shared interrupts by passing device ptr */ - err = request_irq(dev->irq, skfp_interrupt, IRQF_SHARED, - dev->name, dev); + err = request_irq(dev->irq, skfp_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->name, dev); if (err) return err; diff --git a/drivers/net/hamradio/baycom_ser_fdx.c b/drivers/net/hamradio/baycom_ser_fdx.c index 190f66c88479..31a59326c141 100644 --- a/drivers/net/hamradio/baycom_ser_fdx.c +++ b/drivers/net/hamradio/baycom_ser_fdx.c @@ -447,8 +447,7 @@ static int ser12_open(struct net_device *dev) outb(0, FCR(dev->base_addr)); /* disable FIFOs */ outb(0x0d, MCR(dev->base_addr)); outb(0, IER(dev->base_addr)); - if (request_irq(dev->irq, ser12_interrupt, IRQF_SHARED, - "baycom_ser_fdx", dev)) { + if (request_irq(dev->irq, ser12_interrupt, IRQF_SHARED | IRQF_USER_DATA, "baycom_ser_fdx", dev)) { release_region(dev->base_addr, SER12_EXTENT); return -EBUSY; } diff --git a/drivers/net/hamradio/baycom_ser_hdx.c b/drivers/net/hamradio/baycom_ser_hdx.c index 3c823c648cf5..2b98365f27da 100644 --- a/drivers/net/hamradio/baycom_ser_hdx.c +++ b/drivers/net/hamradio/baycom_ser_hdx.c @@ -490,8 +490,7 @@ static int ser12_open(struct net_device *dev) outb(0, FCR(dev->base_addr)); /* disable FIFOs */ outb(0x0d, MCR(dev->base_addr)); outb(0, IER(dev->base_addr)); - if (request_irq(dev->irq, ser12_interrupt, IRQF_SHARED, - "baycom_ser12", dev)) { + if (request_irq(dev->irq, ser12_interrupt, IRQF_SHARED | IRQF_USER_DATA, "baycom_ser12", dev)) { release_region(dev->base_addr, SER12_EXTENT); return -EBUSY; } diff --git a/drivers/net/hamradio/scc.c b/drivers/net/hamradio/scc.c index 6c03932d8a6b..1e7ee07887e1 100644 --- a/drivers/net/hamradio/scc.c +++ b/drivers/net/hamradio/scc.c @@ -1737,9 +1737,7 @@ static int scc_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) if (!Ivec[hwcfg.irq].used && hwcfg.irq) { - if (request_irq(hwcfg.irq, scc_isr, - 0, "AX.25 SCC", - (void *)(long) hwcfg.irq)) + if (request_irq(hwcfg.irq, scc_isr, IRQF_USER_DATA, "AX.25 SCC", (void *)(long)hwcfg.irq)) printk(KERN_WARNING "z8530drv: warning, cannot get IRQ %d\n", hwcfg.irq); else Ivec[hwcfg.irq].used = 1; diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index ba9df430fca6..433695ae5e5c 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c @@ -877,7 +877,7 @@ static int yam_open(struct net_device *dev) goto out_release_base; } outb(0, IER(dev->base_addr)); - if (request_irq(dev->irq, yam_interrupt, IRQF_SHARED, dev->name, dev)) { + if (request_irq(dev->irq, yam_interrupt, IRQF_SHARED | IRQF_USER_DATA, dev->name, dev)) { printk(KERN_ERR "%s: irq %d busy\n", dev->name, dev->irq); ret = -EBUSY; goto out_release_base; diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c index 0253eb502153..50af3e288503 100644 --- a/drivers/net/ieee802154/at86rf230.c +++ b/drivers/net/ieee802154/at86rf230.c @@ -1749,7 +1749,8 @@ static int at86rf230_probe(struct spi_device *spi) irq_type = IRQF_TRIGGER_HIGH; rc = devm_request_irq(&spi->dev, spi->irq, at86rf230_isr, - IRQF_SHARED | irq_type, dev_name(&spi->dev), lp); + IRQF_SHARED | irq_type | IRQF_USER_DATA, + dev_name(&spi->dev), lp); if (rc) goto free_dev; diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c index b2ff903a9cb6..e4915a6810a3 100644 --- a/drivers/net/ieee802154/ca8210.c +++ b/drivers/net/ieee802154/ca8210.c @@ -2884,13 +2884,9 @@ static int ca8210_interrupt_init(struct spi_device *spi) return pdata->irq_id; } - ret = request_irq( - pdata->irq_id, - ca8210_interrupt_handler, - IRQF_TRIGGER_FALLING, - "ca8210-irq", - spi_get_drvdata(spi) - ); + ret = request_irq(pdata->irq_id, ca8210_interrupt_handler, + IRQF_TRIGGER_FALLING | IRQF_USER_DATA, "ca8210-irq", + spi_get_drvdata(spi)); if (ret) { dev_crit(&spi->dev, "request_irq %d failed\n", pdata->irq_id); gpio_unexport(pdata->gpio_irq); diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c index c589f5ae75bb..2a7e90769ed2 100644 --- a/drivers/net/ieee802154/mcr20a.c +++ b/drivers/net/ieee802154/mcr20a.c @@ -1314,7 +1314,8 @@ mcr20a_probe(struct spi_device *spi) irq_type = IRQF_TRIGGER_FALLING; ret = devm_request_irq(&spi->dev, spi->irq, mcr20a_irq_isr, - irq_type, dev_name(&spi->dev), lp); + irq_type | IRQF_USER_DATA, dev_name(&spi->dev), + lp); if (ret) { dev_err(&spi->dev, "could not request_irq for mcr20a\n"); ret = -ENODEV; diff --git a/drivers/net/ieee802154/mrf24j40.c b/drivers/net/ieee802154/mrf24j40.c index cf4788d840bf..31b7d8d544bb 100644 --- a/drivers/net/ieee802154/mrf24j40.c +++ b/drivers/net/ieee802154/mrf24j40.c @@ -1346,7 +1346,8 @@ static int mrf24j40_probe(struct spi_device *spi) irq_type = IRQF_TRIGGER_LOW; ret = devm_request_irq(&spi->dev, spi->irq, mrf24j40_isr, - irq_type, dev_name(&spi->dev), devrec); + irq_type | IRQF_USER_DATA, dev_name(&spi->dev), + devrec); if (ret) { dev_err(printdev(devrec), "Unable to get IRQ"); goto err_register_device; diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c index f6b000ddcd15..d466bb81f2ab 100644 --- a/drivers/net/wan/cosa.c +++ b/drivers/net/wan/cosa.c @@ -541,7 +541,7 @@ static int cosa_probe(int base, int irq, int dma) cosa->usage = 0; cosa->nchannels = 2; /* FIXME: how to determine this? */ - if (request_irq(cosa->irq, cosa_interrupt, 0, cosa->type, cosa)) { + if (request_irq(cosa->irq, cosa_interrupt, IRQF_USER_DATA, cosa->type, cosa)) { err = -1; goto err_out; } diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c index 2a3f0f1a2b0a..070dee4a1ac6 100644 --- a/drivers/net/wan/farsync.c +++ b/drivers/net/wan/farsync.c @@ -2466,7 +2466,7 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent) dbg(DBG_PCI, "kernel mem %p, ctlmem %p\n", card->mem, card->ctlmem); /* Register the interrupt handler */ - if (request_irq(pdev->irq, fst_intr, IRQF_SHARED, FST_DEV_NAME, card)) { + if (request_irq(pdev->irq, fst_intr, IRQF_SHARED | IRQF_USER_DATA, FST_DEV_NAME, card)) { pr_err("Unable to register interrupt %d\n", card->irq); err = -ENODEV; goto irq_fail; diff --git a/drivers/net/wan/hostess_sv11.c b/drivers/net/wan/hostess_sv11.c index 4de0737fbf8a..e4f5e247072f 100644 --- a/drivers/net/wan/hostess_sv11.c +++ b/drivers/net/wan/hostess_sv11.c @@ -219,8 +219,7 @@ static struct z8530_dev *sv11_init(int iobase, int irq) /* We want a fast IRQ for this device. Actually we'd like an even faster IRQ ;) - This is one driver RtLinux is made for */ - if (request_irq(irq, z8530_interrupt, 0, - "Hostess SV11", sv) < 0) { + if (request_irq(irq, z8530_interrupt, IRQF_USER_DATA, "Hostess SV11", sv) < 0) { pr_warn("IRQ %d already in use\n", irq); goto err_irq; } diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c index 8e8c4c0e1b64..4f541c8c3615 100644 --- a/drivers/net/wan/sbni.c +++ b/drivers/net/wan/sbni.c @@ -1175,7 +1175,7 @@ sbni_open( struct net_device *dev ) } } - if( request_irq(dev->irq, sbni_interrupt, IRQF_SHARED, dev->name, dev) ) { + if(request_irq(dev->irq, sbni_interrupt, IRQF_SHARED | IRQF_USER_DATA, dev->name, dev)) { netdev_err(dev, "unable to get IRQ %d\n", dev->irq); return -EAGAIN; } diff --git a/drivers/net/wan/sdla.c b/drivers/net/wan/sdla.c index 57ed259c8208..0a0cff9228e8 100644 --- a/drivers/net/wan/sdla.c +++ b/drivers/net/wan/sdla.c @@ -1452,7 +1452,7 @@ static int sdla_set_config(struct net_device *dev, struct ifmap *map) } err = -EAGAIN; - if (request_irq(dev->irq, sdla_isr, 0, dev->name, dev)) + if (request_irq(dev->irq, sdla_isr, IRQF_USER_DATA, dev->name, dev)) goto fail; if (flp->type == SDLA_S507) { diff --git a/drivers/net/wan/sealevel.c b/drivers/net/wan/sealevel.c index c56f2c252113..53687a3b703f 100644 --- a/drivers/net/wan/sealevel.c +++ b/drivers/net/wan/sealevel.c @@ -265,8 +265,7 @@ static __init struct slvl_board *slvl_init(int iobase, int irq, /* We want a fast IRQ for this device. Actually we'd like an even faster IRQ ;) - This is one driver RtLinux is made for */ - if (request_irq(irq, z8530_interrupt, 0, - "SeaLevel", dev) < 0) { + if (request_irq(irq, z8530_interrupt, IRQF_USER_DATA, "SeaLevel", dev) < 0) { pr_warn("IRQ %d already in use\n", irq); goto err_request_irq; } diff --git a/drivers/net/wireless/broadcom/b43legacy/main.c b/drivers/net/wireless/broadcom/b43legacy/main.c index 55f411925960..e61752e584dd 100644 --- a/drivers/net/wireless/broadcom/b43legacy/main.c +++ b/drivers/net/wireless/broadcom/b43legacy/main.c @@ -2989,7 +2989,7 @@ static int b43legacy_wireless_core_start(struct b43legacy_wldev *dev) drain_txstatus_queue(dev); err = request_irq(dev->dev->irq, b43legacy_interrupt_handler, - IRQF_SHARED, KBUILD_MODNAME, dev); + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, dev); if (err) { b43legacyerr(dev->wl, "Cannot request IRQ-%d\n", dev->dev->irq); diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c index d64bf233b12c..a38d39a52133 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c @@ -116,9 +116,10 @@ int brcmf_sdiod_intr_register(struct brcmf_sdio_dev *sdiodev) spin_lock_init(&sdiodev->irq_en_lock); sdiodev->irq_en = true; - ret = request_irq(pdata->oob_irq_nr, brcmf_sdiod_oob_irqhandler, - pdata->oob_irq_flags, "brcmf_oob_intr", - &sdiodev->func1->dev); + ret = request_irq(pdata->oob_irq_nr, + brcmf_sdiod_oob_irqhandler, + pdata->oob_irq_flags | IRQF_USER_DATA, + "brcmf_oob_intr", &sdiodev->func1->dev); if (ret != 0) { brcmf_err("request_irq failed %d\n", ret); return ret; diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c index 6188275b17e5..f81ec32145c3 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/mac80211_if.c @@ -1167,8 +1167,7 @@ static struct brcms_info *brcms_attach(struct bcma_device *pdev) wl->pub->ieee_hw = hw; /* register our interrupt handler */ - if (request_irq(pdev->irq, brcms_isr, - IRQF_SHARED, KBUILD_MODNAME, wl)) { + if (request_irq(pdev->irq, brcms_isr, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, wl)) { wiphy_err(wl->wiphy, "wl%d: request_irq() failed\n", unit); goto fail; } diff --git a/drivers/net/wireless/cisco/airo.c b/drivers/net/wireless/cisco/airo.c index 3f5a14112c6b..5e85377e1565 100644 --- a/drivers/net/wireless/cisco/airo.c +++ b/drivers/net/wireless/cisco/airo.c @@ -1894,8 +1894,8 @@ static int airo_open(struct net_device *dev) { if (IS_ERR(ai->airo_thread_task)) return (int)PTR_ERR(ai->airo_thread_task); - rc = request_irq(dev->irq, airo_interrupt, IRQF_SHARED, - dev->name, dev); + rc = request_irq(dev->irq, airo_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->name, dev); if (rc) { airo_print_err(dev->name, "register interrupt %d failed, rc %d", diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2100.c b/drivers/net/wireless/intel/ipw2x00/ipw2100.c index 52e5ed2d3bc2..0b8c2275ec55 100644 --- a/drivers/net/wireless/intel/ipw2x00/ipw2100.c +++ b/drivers/net/wireless/intel/ipw2x00/ipw2100.c @@ -6253,8 +6253,8 @@ static int ipw2100_pci_init_one(struct pci_dev *pci_dev, } ipw2100_queues_initialize(priv); - err = request_irq(pci_dev->irq, - ipw2100_interrupt, IRQF_SHARED, dev->name, priv); + err = request_irq(pci_dev->irq, ipw2100_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->name, priv); if (err) { printk(KERN_WARNING DRV_NAME "Error calling request_irq: %d.\n", pci_dev->irq); diff --git a/drivers/net/wireless/intel/ipw2x00/ipw2200.c b/drivers/net/wireless/intel/ipw2x00/ipw2200.c index fa400f92d7e2..33931a4435e3 100644 --- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c +++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c @@ -11686,7 +11686,8 @@ static int ipw_pci_probe(struct pci_dev *pdev, ipw_sw_reset(priv, 1); - err = request_irq(pdev->irq, ipw_isr, IRQF_SHARED, DRV_NAME, priv); + err = request_irq(pdev->irq, ipw_isr, IRQF_SHARED | IRQF_USER_DATA, + DRV_NAME, priv); if (err) { IPW_ERROR("Error allocating IRQ %d\n", pdev->irq); goto out_iounmap; diff --git a/drivers/net/wireless/intel/iwlegacy/3945-mac.c b/drivers/net/wireless/intel/iwlegacy/3945-mac.c index 57e3b6cca234..48cdce4a6ca0 100644 --- a/drivers/net/wireless/intel/iwlegacy/3945-mac.c +++ b/drivers/net/wireless/intel/iwlegacy/3945-mac.c @@ -3729,7 +3729,8 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) pci_enable_msi(il->pci_dev); - err = request_irq(il->pci_dev->irq, il_isr, IRQF_SHARED, DRV_NAME, il); + err = request_irq(il->pci_dev->irq, il_isr, + IRQF_SHARED | IRQF_USER_DATA, DRV_NAME, il); if (err) { IL_ERR("Error allocating IRQ %d\n", il->pci_dev->irq); goto out_disable_msi; diff --git a/drivers/net/wireless/intel/iwlegacy/4965-mac.c b/drivers/net/wireless/intel/iwlegacy/4965-mac.c index 6b4488a178a7..8132d6964923 100644 --- a/drivers/net/wireless/intel/iwlegacy/4965-mac.c +++ b/drivers/net/wireless/intel/iwlegacy/4965-mac.c @@ -6642,7 +6642,8 @@ il4965_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) pci_enable_msi(il->pci_dev); - err = request_irq(il->pci_dev->irq, il_isr, IRQF_SHARED, DRV_NAME, il); + err = request_irq(il->pci_dev->irq, il_isr, + IRQF_SHARED | IRQF_USER_DATA, DRV_NAME, il); if (err) { IL_ERR("Error allocating IRQ %d\n", il->pci_dev->irq); goto out_disable_msi; diff --git a/drivers/net/wireless/intersil/hostap/hostap_pci.c b/drivers/net/wireless/intersil/hostap/hostap_pci.c index c864ef4b0015..9886b9007da3 100644 --- a/drivers/net/wireless/intersil/hostap/hostap_pci.c +++ b/drivers/net/wireless/intersil/hostap/hostap_pci.c @@ -335,8 +335,7 @@ static int prism2_pci_probe(struct pci_dev *pdev, pci_set_drvdata(pdev, dev); - if (request_irq(dev->irq, prism2_interrupt, IRQF_SHARED, dev->name, - dev)) { + if (request_irq(dev->irq, prism2_interrupt, IRQF_SHARED | IRQF_USER_DATA, dev->name, dev)) { printk(KERN_WARNING "%s: request_irq failed\n", dev->name); goto fail; } else diff --git a/drivers/net/wireless/intersil/hostap/hostap_plx.c b/drivers/net/wireless/intersil/hostap/hostap_plx.c index 4901a99c6c59..f6ba83e95bf3 100644 --- a/drivers/net/wireless/intersil/hostap/hostap_plx.c +++ b/drivers/net/wireless/intersil/hostap/hostap_plx.c @@ -549,8 +549,7 @@ static int prism2_plx_probe(struct pci_dev *pdev, pci_set_drvdata(pdev, dev); - if (request_irq(dev->irq, prism2_interrupt, IRQF_SHARED, dev->name, - dev)) { + if (request_irq(dev->irq, prism2_interrupt, IRQF_SHARED | IRQF_USER_DATA, dev->name, dev)) { printk(KERN_WARNING "%s: request_irq failed\n", dev->name); goto fail; } else diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_nortel.c b/drivers/net/wireless/intersil/orinoco/orinoco_nortel.c index 048693b6c6c2..d5a5fbd013e7 100644 --- a/drivers/net/wireless/intersil/orinoco/orinoco_nortel.c +++ b/drivers/net/wireless/intersil/orinoco/orinoco_nortel.c @@ -194,8 +194,8 @@ static int orinoco_nortel_init_one(struct pci_dev *pdev, hermes_struct_init(&priv->hw, hermes_io, HERMES_16BIT_REGSPACING); - err = request_irq(pdev->irq, orinoco_interrupt, IRQF_SHARED, - DRIVER_NAME, priv); + err = request_irq(pdev->irq, orinoco_interrupt, + IRQF_SHARED | IRQF_USER_DATA, DRIVER_NAME, priv); if (err) { printk(KERN_ERR PFX "Cannot allocate IRQ %d\n", pdev->irq); err = -EBUSY; diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_pci.c b/drivers/net/wireless/intersil/orinoco/orinoco_pci.c index 4938a2208a37..30a5865822eb 100644 --- a/drivers/net/wireless/intersil/orinoco/orinoco_pci.c +++ b/drivers/net/wireless/intersil/orinoco/orinoco_pci.c @@ -150,8 +150,8 @@ static int orinoco_pci_init_one(struct pci_dev *pdev, hermes_struct_init(&priv->hw, hermes_io, HERMES_32BIT_REGSPACING); - err = request_irq(pdev->irq, orinoco_interrupt, IRQF_SHARED, - DRIVER_NAME, priv); + err = request_irq(pdev->irq, orinoco_interrupt, + IRQF_SHARED | IRQF_USER_DATA, DRIVER_NAME, priv); if (err) { printk(KERN_ERR PFX "Cannot allocate IRQ %d\n", pdev->irq); err = -EBUSY; diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_plx.c b/drivers/net/wireless/intersil/orinoco/orinoco_plx.c index 221352027779..72379f60f7db 100644 --- a/drivers/net/wireless/intersil/orinoco/orinoco_plx.c +++ b/drivers/net/wireless/intersil/orinoco/orinoco_plx.c @@ -233,8 +233,8 @@ static int orinoco_plx_init_one(struct pci_dev *pdev, hermes_struct_init(&priv->hw, hermes_io, HERMES_16BIT_REGSPACING); - err = request_irq(pdev->irq, orinoco_interrupt, IRQF_SHARED, - DRIVER_NAME, priv); + err = request_irq(pdev->irq, orinoco_interrupt, + IRQF_SHARED | IRQF_USER_DATA, DRIVER_NAME, priv); if (err) { printk(KERN_ERR PFX "Cannot allocate IRQ %d\n", pdev->irq); err = -EBUSY; diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_tmd.c b/drivers/net/wireless/intersil/orinoco/orinoco_tmd.c index 20ce569b8a43..0ab170de926a 100644 --- a/drivers/net/wireless/intersil/orinoco/orinoco_tmd.c +++ b/drivers/net/wireless/intersil/orinoco/orinoco_tmd.c @@ -136,8 +136,8 @@ static int orinoco_tmd_init_one(struct pci_dev *pdev, hermes_struct_init(&priv->hw, hermes_io, HERMES_16BIT_REGSPACING); - err = request_irq(pdev->irq, orinoco_interrupt, IRQF_SHARED, - DRIVER_NAME, priv); + err = request_irq(pdev->irq, orinoco_interrupt, + IRQF_SHARED | IRQF_USER_DATA, DRIVER_NAME, priv); if (err) { printk(KERN_ERR PFX "Cannot allocate IRQ %d\n", pdev->irq); err = -EBUSY; diff --git a/drivers/net/wireless/intersil/p54/p54pci.c b/drivers/net/wireless/intersil/p54/p54pci.c index 27a49068d32d..5b4af691fb2a 100644 --- a/drivers/net/wireless/intersil/p54/p54pci.c +++ b/drivers/net/wireless/intersil/p54/p54pci.c @@ -435,7 +435,7 @@ static int p54p_open(struct ieee80211_hw *dev) init_completion(&priv->boot_comp); err = request_irq(priv->pdev->irq, p54p_interrupt, - IRQF_SHARED, "p54pci", dev); + IRQF_SHARED | IRQF_USER_DATA, "p54pci", dev); if (err) { dev_err(&priv->pdev->dev, "failed to register IRQ handler\n"); return err; diff --git a/drivers/net/wireless/intersil/p54/p54spi.c b/drivers/net/wireless/intersil/p54/p54spi.c index e41bf042352e..83202723109d 100644 --- a/drivers/net/wireless/intersil/p54/p54spi.c +++ b/drivers/net/wireless/intersil/p54/p54spi.c @@ -635,8 +635,8 @@ static int p54spi_probe(struct spi_device *spi) gpio_direction_output(p54spi_gpio_power, 0); gpio_direction_input(p54spi_gpio_irq); - ret = request_irq(gpio_to_irq(p54spi_gpio_irq), - p54spi_interrupt, 0, "p54spi", + ret = request_irq(gpio_to_irq(p54spi_gpio_irq), p54spi_interrupt, + IRQF_USER_DATA, "p54spi", priv->spi); if (ret < 0) { dev_err(&priv->spi->dev, "request_irq() failed"); diff --git a/drivers/net/wireless/intersil/prism54/islpci_hotplug.c b/drivers/net/wireless/intersil/prism54/islpci_hotplug.c index 300c846ea087..50ac965c0092 100644 --- a/drivers/net/wireless/intersil/prism54/islpci_hotplug.c +++ b/drivers/net/wireless/intersil/prism54/islpci_hotplug.c @@ -182,7 +182,7 @@ prism54_probe(struct pci_dev *pdev, const struct pci_device_id *id) /* request for the interrupt before uploading the firmware */ rvalue = request_irq(pdev->irq, islpci_interrupt, - IRQF_SHARED, ndev->name, priv); + IRQF_SHARED | IRQF_USER_DATA, ndev->name, priv); if (rvalue) { /* error, could not hook the handler to the irq */ diff --git a/drivers/net/wireless/marvell/libertas/if_cs.c b/drivers/net/wireless/marvell/libertas/if_cs.c index cebf03c6a622..aed7ad507a2b 100644 --- a/drivers/net/wireless/marvell/libertas/if_cs.c +++ b/drivers/net/wireless/marvell/libertas/if_cs.c @@ -736,7 +736,7 @@ static void if_cs_prog_firmware(struct lbs_private *priv, int ret, /* Now actually get the IRQ */ ret = request_irq(card->p_dev->irq, if_cs_interrupt, - IRQF_SHARED, DRV_NAME, card); + IRQF_SHARED | IRQF_USER_DATA, DRV_NAME, card); if (ret) { pr_err("error in request_irq\n"); return; diff --git a/drivers/net/wireless/marvell/libertas/if_spi.c b/drivers/net/wireless/marvell/libertas/if_spi.c index 7c3224b83ef7..3b8c174448c8 100644 --- a/drivers/net/wireless/marvell/libertas/if_spi.c +++ b/drivers/net/wireless/marvell/libertas/if_spi.c @@ -1167,7 +1167,8 @@ static int if_spi_probe(struct spi_device *spi) INIT_WORK(&card->resume_work, if_spi_resume_worker); err = request_irq(spi->irq, if_spi_host_interrupt, - IRQF_TRIGGER_FALLING, "libertas_spi", card); + IRQF_TRIGGER_FALLING | IRQF_USER_DATA, + "libertas_spi", card); if (err) { pr_err("can't get host irq line-- request_irq failed\n"); goto terminate_workqueue; diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c index 20cee5c397fb..730acbe06c99 100644 --- a/drivers/net/wireless/marvell/mwifiex/main.c +++ b/drivers/net/wireless/marvell/mwifiex/main.c @@ -1602,8 +1602,9 @@ static void mwifiex_probe_of(struct mwifiex_adapter *adapter) } ret = devm_request_irq(dev, adapter->irq_wakeup, - mwifiex_irq_wakeup_handler, IRQF_TRIGGER_LOW, - "wifi_wake", adapter); + mwifiex_irq_wakeup_handler, + IRQF_TRIGGER_LOW | IRQF_USER_DATA, "wifi_wake", + adapter); if (ret) { dev_err(dev, "Failed to request irq_wakeup %d (%d)\n", adapter->irq_wakeup, ret); diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c index 3fe81b2a929a..f8ee89d5fa81 100644 --- a/drivers/net/wireless/marvell/mwifiex/pcie.c +++ b/drivers/net/wireless/marvell/mwifiex/pcie.c @@ -3033,7 +3033,8 @@ static int mwifiex_pcie_request_irq(struct mwifiex_adapter *adapter) card->msix_ctx[i].msg_id = i; ret = request_irq(card->msix_entries[i].vector, - mwifiex_pcie_interrupt, 0, + mwifiex_pcie_interrupt, + IRQF_USER_DATA, "MWIFIEX_PCIE_MSIX", &card->msix_ctx[i]); if (ret) @@ -3064,8 +3065,9 @@ static int mwifiex_pcie_request_irq(struct mwifiex_adapter *adapter) card->share_irq_ctx.dev = pdev; card->share_irq_ctx.msg_id = -1; - ret = request_irq(pdev->irq, mwifiex_pcie_interrupt, IRQF_SHARED, - "MRVL_PCIE", &card->share_irq_ctx); + ret = request_irq(pdev->irq, mwifiex_pcie_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "MRVL_PCIE", + &card->share_irq_ctx); if (ret) { pr_err("request_irq failed: ret=%d\n", ret); return -1; diff --git a/drivers/net/wireless/marvell/mwl8k.c b/drivers/net/wireless/marvell/mwl8k.c index 8e4e9b6919e0..9a55fe1a2f0d 100644 --- a/drivers/net/wireless/marvell/mwl8k.c +++ b/drivers/net/wireless/marvell/mwl8k.c @@ -4696,7 +4696,7 @@ static int mwl8k_start(struct ieee80211_hw *hw) int rc; rc = request_irq(priv->pdev->irq, mwl8k_interrupt, - IRQF_SHARED, MWL8K_NAME, hw); + IRQF_SHARED | IRQF_USER_DATA, MWL8K_NAME, hw); if (rc) { priv->irq = -1; wiphy_err(hw->wiphy, "failed to register IRQ handler\n"); @@ -5902,7 +5902,7 @@ static int mwl8k_probe_hw(struct ieee80211_hw *hw) priv->regs + MWL8K_HIU_A2H_INTERRUPT_STATUS_MASK); rc = request_irq(priv->pdev->irq, mwl8k_interrupt, - IRQF_SHARED, MWL8K_NAME, hw); + IRQF_SHARED | IRQF_USER_DATA, MWL8K_NAME, hw); if (rc) { wiphy_err(hw->wiphy, "failed to register IRQ handler\n"); goto err_free_queues; diff --git a/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c b/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c index d895b6f3dc44..e6f717724f81 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x0/pci.c @@ -191,7 +191,8 @@ mt76x0e_probe(struct pci_dev *pdev, const struct pci_device_id *id) dev_info(dev->mt76.dev, "ASIC revision: %08x\n", dev->mt76.rev); ret = devm_request_irq(dev->mt76.dev, pdev->irq, mt76x02_irq_handler, - IRQF_SHARED, KBUILD_MODNAME, dev); + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, + dev); if (ret) goto error; diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2/pci.c b/drivers/net/wireless/mediatek/mt76/mt76x2/pci.c index 92432fe97312..3c21e173786a 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x2/pci.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x2/pci.c @@ -58,7 +58,8 @@ mt76pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) dev_info(dev->mt76.dev, "ASIC revision: %08x\n", dev->mt76.rev); ret = devm_request_irq(dev->mt76.dev, pdev->irq, mt76x02_irq_handler, - IRQF_SHARED, KBUILD_MODNAME, dev); + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, + dev); if (ret) goto error; diff --git a/drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c index 1f5facbb8905..7fd8ee3c14b7 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c +++ b/drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie.c @@ -1095,7 +1095,8 @@ static int qtnf_pcie_pearl_probe(struct qtnf_bus *bus, unsigned int tx_bd_size) qtnf_disable_hdp_irqs(ps); ret = devm_request_irq(&pdev->dev, pdev->irq, - &qtnf_pcie_pearl_interrupt, 0, + &qtnf_pcie_pearl_interrupt, + IRQF_USER_DATA, "qtnf_pearl_irq", (void *)bus); if (ret) { pr_err("failed to request pcie irq %d\n", pdev->irq); diff --git a/drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c index 598edb814421..2905fa3d7261 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c +++ b/drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c @@ -1120,7 +1120,8 @@ static int qtnf_pcie_topaz_probe(struct qtnf_bus *bus, unsigned int tx_bd_num) ret = devm_request_irq(&pdev->dev, pdev->irq, &qtnf_pcie_topaz_interrupt, - irqflags, "qtnf_topaz_irq", (void *)bus); + irqflags | IRQF_USER_DATA, "qtnf_topaz_irq", + (void *)bus); if (ret) { pr_err("failed to request pcie irq %d\n", pdev->irq); return ret; diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.c b/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.c index 4956a54151cb..bd31eb811f19 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mmio.c @@ -167,9 +167,9 @@ int rt2x00mmio_initialize(struct rt2x00_dev *rt2x00dev) /* * Register interrupt handler. */ - status = request_irq(rt2x00dev->irq, - rt2x00dev->ops->lib->irq_handler, - IRQF_SHARED, rt2x00dev->name, rt2x00dev); + status = request_irq(rt2x00dev->irq, rt2x00dev->ops->lib->irq_handler, + IRQF_SHARED | IRQF_USER_DATA, rt2x00dev->name, + rt2x00dev); if (status) { rt2x00_err(rt2x00dev, "IRQ %d allocation failed (error %d)\n", rt2x00dev->irq, status); diff --git a/drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c b/drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c index 225c1c8851cc..4ae6d1d7bdec 100644 --- a/drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c +++ b/drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c @@ -1134,10 +1134,12 @@ static int rtl8180_start(struct ieee80211_hw *dev) if (priv->chip_family == RTL818X_CHIP_FAMILY_RTL8187SE) { ret = request_irq(priv->pdev->irq, rtl8187se_interrupt, - IRQF_SHARED, KBUILD_MODNAME, dev); + IRQF_SHARED | IRQF_USER_DATA, + KBUILD_MODNAME, dev); } else { ret = request_irq(priv->pdev->irq, rtl8180_interrupt, - IRQF_SHARED, KBUILD_MODNAME, dev); + IRQF_SHARED | IRQF_USER_DATA, + KBUILD_MODNAME, dev); } if (ret) { diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c index 5d1fda16fc8c..58b64849172a 100644 --- a/drivers/net/wireless/realtek/rtlwifi/pci.c +++ b/drivers/net/wireless/realtek/rtlwifi/pci.c @@ -2108,7 +2108,7 @@ static int rtl_pci_intr_mode_msi(struct ieee80211_hw *hw) return ret; ret = request_irq(rtlpci->pdev->irq, &_rtl_pci_interrupt, - IRQF_SHARED, KBUILD_MODNAME, hw); + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, hw); if (ret < 0) { pci_disable_msi(rtlpci->pdev); return ret; @@ -2129,7 +2129,7 @@ static int rtl_pci_intr_mode_legacy(struct ieee80211_hw *hw) int ret; ret = request_irq(rtlpci->pdev->irq, &_rtl_pci_interrupt, - IRQF_SHARED, KBUILD_MODNAME, hw); + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, hw); if (ret < 0) return ret; diff --git a/drivers/net/wireless/ti/wl1251/sdio.c b/drivers/net/wireless/ti/wl1251/sdio.c index b661f896e9fe..f5c3450cf15f 100644 --- a/drivers/net/wireless/ti/wl1251/sdio.c +++ b/drivers/net/wireless/ti/wl1251/sdio.c @@ -274,7 +274,9 @@ static int wl1251_sdio_probe(struct sdio_func *func, if (wl->irq) { irq_set_status_flags(wl->irq, IRQ_NOAUTOEN); - ret = request_irq(wl->irq, wl1251_line_irq, 0, "wl1251", wl); + ret = request_irq(wl->irq, wl1251_line_irq, + IRQF_USER_DATA, "wl1251", + wl); if (ret < 0) { wl1251_error("request_irq() failed: %d", ret); goto disable; diff --git a/drivers/net/wireless/ti/wl1251/spi.c b/drivers/net/wireless/ti/wl1251/spi.c index 8de9d4444a6a..1fc0a75d4281 100644 --- a/drivers/net/wireless/ti/wl1251/spi.c +++ b/drivers/net/wireless/ti/wl1251/spi.c @@ -307,8 +307,9 @@ static int wl1251_spi_probe(struct spi_device *spi) } irq_set_status_flags(wl->irq, IRQ_NOAUTOEN); - ret = devm_request_irq(&spi->dev, wl->irq, wl1251_irq, 0, - DRIVER_NAME, wl); + ret = devm_request_irq(&spi->dev, wl->irq, wl1251_irq, + IRQF_USER_DATA, DRIVER_NAME, + wl); if (ret < 0) { wl1251_error("request_irq() failed: %d", ret); goto out_free; diff --git a/drivers/ntb/hw/amd/ntb_hw_amd.c b/drivers/ntb/hw/amd/ntb_hw_amd.c index efb214fc545a..8de5bd055b66 100644 --- a/drivers/ntb/hw/amd/ntb_hw_amd.c +++ b/drivers/ntb/hw/amd/ntb_hw_amd.c @@ -621,7 +621,8 @@ static int ndev_init_isr(struct amd_ntb_dev *ndev, for (i = 0; i < msix_count; ++i) { ndev->vec[i].ndev = ndev; ndev->vec[i].num = i; - rc = request_irq(ndev->msix[i].vector, ndev_vec_isr, 0, + rc = request_irq(ndev->msix[i].vector, ndev_vec_isr, + IRQF_USER_DATA, "ndev_vec_isr", &ndev->vec[i]); if (rc) goto err_msix_request; @@ -649,8 +650,9 @@ static int ndev_init_isr(struct amd_ntb_dev *ndev, if (rc) goto err_msi_enable; - rc = request_irq(pdev->irq, ndev_irq_isr, 0, - "ndev_irq_isr", ndev); + rc = request_irq(pdev->irq, ndev_irq_isr, + IRQF_USER_DATA, "ndev_irq_isr", + ndev); if (rc) goto err_msi_request; @@ -666,8 +668,8 @@ static int ndev_init_isr(struct amd_ntb_dev *ndev, /* Try to set up intx irq */ pci_intx(pdev, 1); - rc = request_irq(pdev->irq, ndev_irq_isr, IRQF_SHARED, - "ndev_irq_isr", ndev); + rc = request_irq(pdev->irq, ndev_irq_isr, + IRQF_SHARED | IRQF_USER_DATA, "ndev_irq_isr", ndev); if (rc) goto err_intx_request; diff --git a/drivers/ntb/hw/intel/ntb_hw_gen1.c b/drivers/ntb/hw/intel/ntb_hw_gen1.c index 2ad263f708da..106f1800c35b 100644 --- a/drivers/ntb/hw/intel/ntb_hw_gen1.c +++ b/drivers/ntb/hw/intel/ntb_hw_gen1.c @@ -401,7 +401,8 @@ int ndev_init_isr(struct intel_ntb_dev *ndev, for (i = 0; i < msix_count; ++i) { ndev->vec[i].ndev = ndev; ndev->vec[i].num = i; - rc = request_irq(ndev->msix[i].vector, ndev_vec_isr, 0, + rc = request_irq(ndev->msix[i].vector, ndev_vec_isr, + IRQF_USER_DATA, "ndev_vec_isr", &ndev->vec[i]); if (rc) goto err_msix_request; @@ -430,8 +431,9 @@ int ndev_init_isr(struct intel_ntb_dev *ndev, if (rc) goto err_msi_enable; - rc = request_irq(pdev->irq, ndev_irq_isr, 0, - "ndev_irq_isr", ndev); + rc = request_irq(pdev->irq, ndev_irq_isr, + IRQF_USER_DATA, "ndev_irq_isr", + ndev); if (rc) goto err_msi_request; @@ -448,8 +450,8 @@ int ndev_init_isr(struct intel_ntb_dev *ndev, pci_intx(pdev, 1); - rc = request_irq(pdev->irq, ndev_irq_isr, IRQF_SHARED, - "ndev_irq_isr", ndev); + rc = request_irq(pdev->irq, ndev_irq_isr, + IRQF_SHARED | IRQF_USER_DATA, "ndev_irq_isr", ndev); if (rc) goto err_intx_request; diff --git a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c index f1eaa3c4d46a..e038a6847ae4 100644 --- a/drivers/ntb/hw/mscc/ntb_hw_switchtec.c +++ b/drivers/ntb/hw/mscc/ntb_hw_switchtec.c @@ -1448,14 +1448,14 @@ static int switchtec_ntb_init_db_msg_irq(struct switchtec_ntb *sndev) sndev->doorbell_irq = pci_irq_vector(sndev->stdev->pdev, doorbell_irq); sndev->message_irq = pci_irq_vector(sndev->stdev->pdev, message_irq); - rc = request_irq(sndev->doorbell_irq, - switchtec_ntb_doorbell_isr, 0, + rc = request_irq(sndev->doorbell_irq, switchtec_ntb_doorbell_isr, + IRQF_USER_DATA, "switchtec_ntb_doorbell", sndev); if (rc) return rc; - rc = request_irq(sndev->message_irq, - switchtec_ntb_message_isr, 0, + rc = request_irq(sndev->message_irq, switchtec_ntb_message_isr, + IRQF_USER_DATA, "switchtec_ntb_message", sndev); if (rc) { free_irq(sndev->doorbell_irq, sndev); diff --git a/drivers/parport/parport_ax88796.c b/drivers/parport/parport_ax88796.c index bfe97c2a8d4c..5a4a87e73d57 100644 --- a/drivers/parport/parport_ax88796.c +++ b/drivers/parport/parport_ax88796.c @@ -336,7 +336,8 @@ static int parport_ax88796_probe(struct platform_device *pdev) if (irq >= 0) { /* request irq */ ret = request_irq(irq, parport_irq_handler, - IRQF_TRIGGER_FALLING, pdev->name, pp); + IRQF_TRIGGER_FALLING | IRQF_USER_DATA, + pdev->name, pp); if (ret < 0) goto exit_port; diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c index 9c8249f74479..512f98234bdd 100644 --- a/drivers/parport/parport_pc.c +++ b/drivers/parport/parport_pc.c @@ -2190,8 +2190,7 @@ struct parport *parport_pc_probe_port(unsigned long int base, EPP_res = NULL; } if (p->irq != PARPORT_IRQ_NONE) { - if (request_irq(p->irq, parport_irq_handler, - irqflags, p->name, p)) { + if (request_irq(p->irq, parport_irq_handler, irqflags | IRQF_USER_DATA, p->name, p)) { printk(KERN_WARNING "%s: irq %d in use, " "resorting to polled operation\n", p->name, p->irq); diff --git a/drivers/pci/controller/pcie-xilinx.c b/drivers/pci/controller/pcie-xilinx.c index 9bd1a35cd5d8..57294e32ab68 100644 --- a/drivers/pci/controller/pcie-xilinx.c +++ b/drivers/pci/controller/pcie-xilinx.c @@ -588,7 +588,7 @@ static int xilinx_pcie_parse_dt(struct xilinx_pcie_port *port) port->irq = irq_of_parse_and_map(node, 0); err = devm_request_irq(dev, port->irq, xilinx_pcie_intr_handler, - IRQF_SHARED | IRQF_NO_THREAD, + IRQF_SHARED | IRQF_NO_THREAD | IRQF_USER_DATA, "xilinx-pcie", port); if (err) { dev_err(dev, "unable to request irq %d\n", port->irq); diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c index 3890812cdf87..acf4d9942120 100644 --- a/drivers/pci/controller/vmd.c +++ b/drivers/pci/controller/vmd.c @@ -766,8 +766,9 @@ static int vmd_probe(struct pci_dev *dev, const struct pci_device_id *id) INIT_LIST_HEAD(&vmd->irqs[i].irq_list); err = devm_request_irq(&dev->dev, pci_irq_vector(dev, i), - vmd_irq, IRQF_NO_THREAD, - "vmd", &vmd->irqs[i]); + vmd_irq, + IRQF_NO_THREAD | IRQF_USER_DATA, "vmd", + &vmd->irqs[i]); if (err) return err; } @@ -825,9 +826,9 @@ static int vmd_resume(struct device *dev) int err, i; for (i = 0; i < vmd->msix_count; i++) { - err = devm_request_irq(dev, pci_irq_vector(pdev, i), - vmd_irq, IRQF_NO_THREAD, - "vmd", &vmd->irqs[i]); + err = devm_request_irq(dev, pci_irq_vector(pdev, i), vmd_irq, + IRQF_NO_THREAD | IRQF_USER_DATA, "vmd", + &vmd->irqs[i]); if (err) return err; } diff --git a/drivers/pci/hotplug/cpci_hotplug_core.c b/drivers/pci/hotplug/cpci_hotplug_core.c index 603eadf3d965..4d45dcc7de58 100644 --- a/drivers/pci/hotplug/cpci_hotplug_core.c +++ b/drivers/pci/hotplug/cpci_hotplug_core.c @@ -525,11 +525,7 @@ cpci_hp_register_controller(struct cpci_hp_controller *new_controller) if (!(new_controller->ops->enable_irq && new_controller->ops->disable_irq)) status = -EINVAL; - if (request_irq(new_controller->irq, - cpci_hp_intr, - new_controller->irq_flags, - MY_NAME, - new_controller->dev_id)) { + if (request_irq(new_controller->irq, cpci_hp_intr, new_controller->irq_flags | IRQF_USER_DATA, MY_NAME, new_controller->dev_id)) { err("Can't get irq %d for the hotplug cPCI controller", new_controller->irq); status = -ENODEV; diff --git a/drivers/pci/hotplug/cpqphp_core.c b/drivers/pci/hotplug/cpqphp_core.c index 16bbb183695a..4fa05ac1a086 100644 --- a/drivers/pci/hotplug/cpqphp_core.c +++ b/drivers/pci/hotplug/cpqphp_core.c @@ -1139,8 +1139,7 @@ static int cpqhpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent) /* set up the interrupt */ dbg("HPC interrupt = %d\n", ctrl->interrupt); - if (request_irq(ctrl->interrupt, cpqhp_ctrl_intr, - IRQF_SHARED, MY_NAME, ctrl)) { + if (request_irq(ctrl->interrupt, cpqhp_ctrl_intr, IRQF_SHARED | IRQF_USER_DATA, MY_NAME, ctrl)) { err("Can't get irq %d for the hotplug pci controller\n", ctrl->interrupt); rc = -ENODEV; diff --git a/drivers/pci/hotplug/shpchp_hpc.c b/drivers/pci/hotplug/shpchp_hpc.c index db047284c291..7f183f687201 100644 --- a/drivers/pci/hotplug/shpchp_hpc.c +++ b/drivers/pci/hotplug/shpchp_hpc.c @@ -1049,8 +1049,9 @@ int shpc_init(struct controller *ctrl, struct pci_dev *pdev) pci_set_master(pdev); } - rc = request_irq(ctrl->pci_dev->irq, shpc_isr, IRQF_SHARED, - MY_NAME, (void *)ctrl); + rc = request_irq(ctrl->pci_dev->irq, shpc_isr, + IRQF_SHARED | IRQF_USER_DATA, MY_NAME, + (void *)ctrl); ctrl_dbg(ctrl, "request_irq %d (returns %d)\n", ctrl->pci_dev->irq, rc); if (rc) { diff --git a/drivers/pci/pcie/pme.c b/drivers/pci/pcie/pme.c index 0dbcf429089f..af231bd42113 100644 --- a/drivers/pci/pcie/pme.c +++ b/drivers/pci/pcie/pme.c @@ -335,7 +335,8 @@ static int pcie_pme_probe(struct pcie_device *srv) pcie_pme_interrupt_enable(port, false); pcie_clear_root_pme_status(port); - ret = request_irq(srv->irq, pcie_pme_irq, IRQF_SHARED, "PCIe PME", srv); + ret = request_irq(srv->irq, pcie_pme_irq, + IRQF_SHARED | IRQF_USER_DATA, "PCIe PME", srv); if (ret) { kfree(data); return ret; diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c index e22766c79fe9..55fbaa281a5d 100644 --- a/drivers/pci/switch/switchtec.c +++ b/drivers/pci/switch/switchtec.c @@ -1261,8 +1261,9 @@ static int switchtec_init_isr(struct switchtec_dev *stdev) return event_irq; rc = devm_request_irq(&stdev->pdev->dev, event_irq, - switchtec_event_isr, 0, - KBUILD_MODNAME, stdev); + switchtec_event_isr, + IRQF_USER_DATA, KBUILD_MODNAME, + stdev); if (rc) return rc; @@ -1279,8 +1280,9 @@ static int switchtec_init_isr(struct switchtec_dev *stdev) return dma_mrpc_irq; rc = devm_request_irq(&stdev->pdev->dev, dma_mrpc_irq, - switchtec_dma_mrpc_isr, 0, - KBUILD_MODNAME, stdev); + switchtec_dma_mrpc_isr, + IRQF_USER_DATA, KBUILD_MODNAME, + stdev); return rc; } diff --git a/drivers/pcmcia/i82092.c b/drivers/pcmcia/i82092.c index aae7e6df99cd..80f763adc42d 100644 --- a/drivers/pcmcia/i82092.c +++ b/drivers/pcmcia/i82092.c @@ -128,7 +128,7 @@ static int i82092aa_pci_probe(struct pci_dev *dev, const struct pci_device_id *i /* Register the interrupt handler */ dprintk(KERN_DEBUG "Requesting interrupt %i \n",dev->irq); - if ((ret = request_irq(dev->irq, i82092aa_interrupt, IRQF_SHARED, "i82092aa", i82092aa_interrupt))) { + if ((ret = request_irq(dev->irq, i82092aa_interrupt, IRQF_SHARED | IRQF_USER_DATA, "i82092aa", i82092aa_interrupt))) { printk(KERN_ERR "i82092aa: Failed to register IRQ %d, aborting\n", dev->irq); goto err_out_free_res; } diff --git a/drivers/pcmcia/i82365.c b/drivers/pcmcia/i82365.c index 891ccea2cccb..9002327b582a 100644 --- a/drivers/pcmcia/i82365.c +++ b/drivers/pcmcia/i82365.c @@ -63,7 +63,7 @@ static irqreturn_t i365_count_irq(int, void *); static inline int _check_irq(int irq, int flags) { - if (request_irq(irq, i365_count_irq, flags, "x", i365_count_irq) != 0) + if (request_irq(irq, i365_count_irq, flags | IRQF_USER_DATA, "x", i365_count_irq) != 0) return -1; free_irq(irq, i365_count_irq); return 0; @@ -489,8 +489,7 @@ static irqreturn_t i365_count_irq(int irq, void *dev) static u_int __init test_irq(u_short sock, int irq) { pr_debug("i82365: testing ISA irq %d\n", irq); - if (request_irq(irq, i365_count_irq, IRQF_PROBE_SHARED, "scan", - i365_count_irq) != 0) + if (request_irq(irq, i365_count_irq, IRQF_PROBE_SHARED | IRQF_USER_DATA, "scan", i365_count_irq) != 0) return 1; irq_hits = 0; irq_sock = sock; msleep(10); @@ -1270,7 +1269,9 @@ static int __init init_i82365(void) /* Set up interrupt handler(s) */ if (grab_irq != 0) - ret = request_irq(cs_irq, pcic_interrupt, 0, "i82365", pcic_interrupt); + ret = request_irq(cs_irq, pcic_interrupt, + IRQF_USER_DATA, "i82365", + pcic_interrupt); if (ret) goto err_socket_release; diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c index 99a778b022e5..96c292b616fa 100644 --- a/drivers/pcmcia/pcmcia_resource.c +++ b/drivers/pcmcia/pcmcia_resource.c @@ -702,8 +702,9 @@ int __must_check pcmcia_request_irq(struct pcmcia_device *p_dev, if (!p_dev->irq) return -EINVAL; - ret = request_irq(p_dev->irq, handler, IRQF_SHARED | IRQF_USER_DATA, - p_dev->devname, p_dev->priv); + ret = request_irq(p_dev->irq, handler, + IRQF_SHARED | IRQF_USER_DATA, + p_dev->devname, p_dev->priv); if (!ret) p_dev->_irq = 1; @@ -752,8 +753,8 @@ static int pcmcia_setup_isa_irq(struct pcmcia_device *p_dev, int type) /* register the correct driver, if possible, to check whether * registering a dummy handle works, i.e. if the IRQ isn't * marked as used by the kernel resource management core */ - ret = request_irq(irq, test_action, type, p_dev->devname, - p_dev); + ret = request_irq(irq, test_action, type | IRQF_USER_DATA, + p_dev->devname, p_dev); if (!ret) { free_irq(irq, p_dev); p_dev->irq = s->pcmcia_irq = irq; diff --git a/drivers/pcmcia/pd6729.c b/drivers/pcmcia/pd6729.c index f0af9985ca09..5af3986c642f 100644 --- a/drivers/pcmcia/pd6729.c +++ b/drivers/pcmcia/pd6729.c @@ -580,7 +580,8 @@ static int pd6729_check_irq(int irq) { int ret; - ret = request_irq(irq, pd6729_test, IRQF_PROBE_SHARED, "x", + ret = request_irq(irq, pd6729_test, + IRQF_PROBE_SHARED | IRQF_USER_DATA, "x", pd6729_test); if (ret) return -1; @@ -698,8 +699,9 @@ static int pd6729_pci_probe(struct pci_dev *dev, pci_set_drvdata(dev, socket); if (irq_mode == 1) { /* Register the interrupt handler */ - ret = request_irq(dev->irq, pd6729_interrupt, IRQF_SHARED, - "pd6729", socket); + ret = request_irq(dev->irq, pd6729_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "pd6729", + socket); if (ret) { dev_err(&dev->dev, "Failed to register irq %d\n", dev->irq); diff --git a/drivers/pcmcia/tcic.c b/drivers/pcmcia/tcic.c index 1a0e3f098759..666fae3cdedc 100644 --- a/drivers/pcmcia/tcic.c +++ b/drivers/pcmcia/tcic.c @@ -210,7 +210,7 @@ static u_int __init try_irq(int irq) u_short cfg; irq_hits = 0; - if (request_irq(irq, tcic_irq_count, 0, "irq scan", tcic_irq_count) != 0) + if (request_irq(irq, tcic_irq_count, IRQF_USER_DATA, "irq scan", tcic_irq_count) != 0) return -1; mdelay(10); if (irq_hits) { @@ -266,7 +266,7 @@ static u_int __init irq_scan(u_int mask0) /* Fallback: just find interrupts that aren't in use */ for (i = 0; i < 16; i++) if ((mask0 & (1 << i)) && - (request_irq(i, tcic_irq_count, 0, "x", tcic_irq_count) == 0)) { + (request_irq(i, tcic_irq_count, IRQF_USER_DATA, "x", tcic_irq_count) == 0)) { mask1 |= (1 << i); free_irq(i, tcic_irq_count); } @@ -463,8 +463,7 @@ static int __init init_tcic(void) u_int cs_mask = mask & ((cs_irq) ? (1< 0; i--) if ((cs_mask & (1 << i)) && - (request_irq(i, tcic_interrupt, 0, "tcic", - tcic_interrupt) == 0)) + (request_irq(i, tcic_interrupt, IRQF_USER_DATA, "tcic", tcic_interrupt) == 0)) break; cs_irq = i; if (cs_irq == 0) poll_interval = HZ; diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c index ac6a3f46b1e6..c978a6961578 100644 --- a/drivers/pcmcia/yenta_socket.c +++ b/drivers/pcmcia/yenta_socket.c @@ -978,7 +978,7 @@ static int yenta_probe_cb_irq(struct yenta_socket *socket) socket->probe_status = 0; - if (request_irq(socket->cb_irq, yenta_probe_handler, IRQF_SHARED, "yenta", socket)) { + if (request_irq(socket->cb_irq, yenta_probe_handler, IRQF_SHARED | IRQF_USER_DATA, "yenta", socket)) { dev_warn(&socket->dev->dev, "request_irq() in yenta_probe_cb_irq() failed!\n"); return -1; @@ -1231,7 +1231,7 @@ static int yenta_probe(struct pci_dev *dev, const struct pci_device_id *id) /* We must finish initialization here */ - if (!socket->cb_irq || request_irq(socket->cb_irq, yenta_interrupt, IRQF_SHARED, "yenta", socket)) { + if (!socket->cb_irq || request_irq(socket->cb_irq, yenta_interrupt, IRQF_SHARED | IRQF_USER_DATA, "yenta", socket)) { /* No IRQ or request_irq failed. Poll */ socket->cb_irq = 0; /* But zero is a valid IRQ number. */ timer_setup(&socket->poll_timer, yenta_interrupt_wrapper, 0); diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c index 3b1818184207..6e39197be8d8 100644 --- a/drivers/pinctrl/intel/pinctrl-intel.c +++ b/drivers/pinctrl/intel/pinctrl-intel.c @@ -1192,7 +1192,7 @@ static int intel_gpio_probe(struct intel_pinctrl *pctrl, int irq) * controllers share the same interrupt line. */ ret = devm_request_irq(pctrl->dev, irq, intel_gpio_irq, - IRQF_SHARED | IRQF_NO_THREAD, + IRQF_SHARED | IRQF_NO_THREAD | IRQF_USER_DATA, dev_name(pctrl->dev), pctrl); if (ret) { dev_err(pctrl->dev, "failed to request interrupt\n"); diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c index 2a7d638978d8..fbedf886439d 100644 --- a/drivers/pinctrl/pinctrl-amd.c +++ b/drivers/pinctrl/pinctrl-amd.c @@ -930,7 +930,8 @@ static int amd_gpio_probe(struct platform_device *pdev) goto out2; } - ret = devm_request_irq(&pdev->dev, irq_base, amd_gpio_irq_handler, 0, + ret = devm_request_irq(&pdev->dev, irq_base, amd_gpio_irq_handler, + IRQF_USER_DATA, KBUILD_MODNAME, gpio_dev); if (ret) goto out2; diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c index 1e0614daee9b..0d46b75b16b5 100644 --- a/drivers/pinctrl/pinctrl-single.c +++ b/drivers/pinctrl/pinctrl-single.c @@ -1567,8 +1567,7 @@ static int pcs_irq_init_chained_handler(struct pcs_device *pcs, int res; res = request_irq(pcs_soc->irq, pcs_irq_handler, - IRQF_SHARED | IRQF_NO_SUSPEND | - IRQF_NO_THREAD, + IRQF_SHARED | IRQF_NO_SUSPEND | IRQF_NO_THREAD | IRQF_USER_DATA, name, pcs_soc); if (res) { pcs_soc->irq = -1; diff --git a/drivers/platform/goldfish/goldfish_pipe.c b/drivers/platform/goldfish/goldfish_pipe.c index 321bc673c417..35c79464ca98 100644 --- a/drivers/platform/goldfish/goldfish_pipe.c +++ b/drivers/platform/goldfish/goldfish_pipe.c @@ -824,9 +824,9 @@ static int goldfish_pipe_device_init(struct platform_device *pdev, tasklet_init(&dev->irq_tasklet, &goldfish_interrupt_task, (unsigned long)dev); - err = devm_request_irq(&pdev->dev, dev->irq, - goldfish_pipe_interrupt, - IRQF_SHARED, "goldfish_pipe", dev); + err = devm_request_irq(&pdev->dev, dev->irq, goldfish_pipe_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "goldfish_pipe", + dev); if (err) { dev_err(&pdev->dev, "unable to allocate IRQ for v2\n"); return err; diff --git a/drivers/platform/mellanox/mlxreg-hotplug.c b/drivers/platform/mellanox/mlxreg-hotplug.c index b6d44550d98c..e31a659c6117 100644 --- a/drivers/platform/mellanox/mlxreg-hotplug.c +++ b/drivers/platform/mellanox/mlxreg-hotplug.c @@ -632,8 +632,9 @@ static int mlxreg_hotplug_probe(struct platform_device *pdev) priv->pdev = pdev; err = devm_request_irq(&pdev->dev, priv->irq, - mlxreg_hotplug_irq_handler, IRQF_TRIGGER_FALLING - | IRQF_SHARED, "mlxreg-hotplug", priv); + mlxreg_hotplug_irq_handler, + IRQF_TRIGGER_FALLING | IRQF_SHARED | IRQF_USER_DATA, + "mlxreg-hotplug", priv); if (err) { dev_err(&pdev->dev, "Failed to request irq: %d\n", err); return err; diff --git a/drivers/platform/x86/fujitsu-tablet.c b/drivers/platform/x86/fujitsu-tablet.c index baea077a02cc..9795095421a4 100644 --- a/drivers/platform/x86/fujitsu-tablet.c +++ b/drivers/platform/x86/fujitsu-tablet.c @@ -486,7 +486,8 @@ static int acpi_fujitsu_add(struct acpi_device *adev) fujitsu_reset(); error = request_irq(fujitsu.irq, fujitsu_interrupt, - IRQF_SHARED, MODULENAME, fujitsu_interrupt); + IRQF_SHARED | IRQF_USER_DATA, MODULENAME, + fujitsu_interrupt); if (error) { release_region(fujitsu.io_base, fujitsu.io_length); input_fujitsu_remove(); diff --git a/drivers/platform/x86/intel_int0002_vgpio.c b/drivers/platform/x86/intel_int0002_vgpio.c index 4b8f7305fc8a..903ccf5f8d59 100644 --- a/drivers/platform/x86/intel_int0002_vgpio.c +++ b/drivers/platform/x86/intel_int0002_vgpio.c @@ -189,7 +189,7 @@ static int int0002_probe(struct platform_device *pdev) * to gpiochip_set_chained_irqchip, because the irq is shared. */ ret = devm_request_irq(dev, irq, int0002_irq, - IRQF_SHARED, "INT0002", chip); + IRQF_SHARED | IRQF_USER_DATA, "INT0002", chip); if (ret) { dev_err(dev, "Error requesting IRQ %d: %d\n", irq, ret); return ret; diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c index bffe548187ee..3b3847484fa4 100644 --- a/drivers/platform/x86/intel_ips.c +++ b/drivers/platform/x86/intel_ips.c @@ -1528,7 +1528,8 @@ static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id) ips->irq = pci_irq_vector(dev, 0); - ret = request_irq(ips->irq, ips_irq_handler, IRQF_SHARED, "ips", ips); + ret = request_irq(ips->irq, ips_irq_handler, + IRQF_SHARED | IRQF_USER_DATA, "ips", ips); if (ret) { dev_err(&dev->dev, "request irq failed, aborting\n"); return ret; diff --git a/drivers/platform/x86/intel_pmc_ipc.c b/drivers/platform/x86/intel_pmc_ipc.c index 7964ba22ef8d..fc375bf0e49c 100644 --- a/drivers/platform/x86/intel_pmc_ipc.c +++ b/drivers/platform/x86/intel_pmc_ipc.c @@ -529,8 +529,9 @@ static int ipc_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) pmc->ipc_base = pcim_iomap_table(pdev)[0]; - ret = devm_request_irq(&pdev->dev, pdev->irq, ioc, 0, "intel_pmc_ipc", - pmc); + ret = devm_request_irq(&pdev->dev, pdev->irq, ioc, + IRQF_USER_DATA, + "intel_pmc_ipc", pmc); if (ret) { dev_err(&pdev->dev, "Failed to request irq\n"); return ret; @@ -951,8 +952,7 @@ static int ipc_plat_probe(struct platform_device *pdev) return ret; } - if (devm_request_irq(&pdev->dev, ipcdev.irq, ioc, IRQF_NO_SUSPEND, - "intel_pmc_ipc", &ipcdev)) { + if (devm_request_irq(&pdev->dev, ipcdev.irq, ioc, IRQF_NO_SUSPEND | IRQF_USER_DATA, "intel_pmc_ipc", &ipcdev)) { dev_err(&pdev->dev, "Failed to request irq\n"); ret = -EBUSY; goto err_irq; diff --git a/drivers/platform/x86/intel_punit_ipc.c b/drivers/platform/x86/intel_punit_ipc.c index 79671927f4ef..756eae04c544 100644 --- a/drivers/platform/x86/intel_punit_ipc.c +++ b/drivers/platform/x86/intel_punit_ipc.c @@ -299,8 +299,8 @@ static int intel_punit_ipc_probe(struct platform_device *pdev) dev_warn(&pdev->dev, "Invalid IRQ, using polling mode\n"); } else { ret = devm_request_irq(&pdev->dev, irq, intel_punit_ioc, - IRQF_NO_SUSPEND, "intel_punit_ipc", - &punit_ipcdev); + IRQF_NO_SUSPEND | IRQF_USER_DATA, + "intel_punit_ipc", &punit_ipcdev); if (ret) { dev_err(&pdev->dev, "Failed to request irq: %d\n", irq); return ret; diff --git a/drivers/platform/x86/intel_scu_ipc.c b/drivers/platform/x86/intel_scu_ipc.c index cdab916fbf92..a7dd4d9c89cb 100644 --- a/drivers/platform/x86/intel_scu_ipc.c +++ b/drivers/platform/x86/intel_scu_ipc.c @@ -656,8 +656,9 @@ static int ipc_probe(struct pci_dev *pdev, const struct pci_device_id *id) if (!scu->i2c_base) return -ENOMEM; - err = devm_request_irq(&pdev->dev, pdev->irq, ioc, 0, "intel_scu_ipc", - scu); + err = devm_request_irq(&pdev->dev, pdev->irq, ioc, + IRQF_USER_DATA, + "intel_scu_ipc", scu); if (err) return err; diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c index b205b037fd61..c83a8da216ce 100644 --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c @@ -4772,8 +4772,7 @@ static int sony_pic_add(struct acpi_device *device) /* request IRQ */ list_for_each_entry_reverse(irq, &spic_dev.interrupts, list) { - if (!request_irq(irq->irq.interrupts[0], sony_pic_irq, - 0, "sony-laptop", &spic_dev)) { + if (!request_irq(irq->irq.interrupts[0], sony_pic_irq, IRQF_USER_DATA, "sony-laptop", &spic_dev)) { dprintk("IRQ: %d - triggering: %d - " "polarity: %d - shr: %d\n", irq->irq.interrupts[0], diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c index 70d4ba95735a..6fec093aa4ca 100644 --- a/drivers/pnp/resource.c +++ b/drivers/pnp/resource.c @@ -387,8 +387,7 @@ int pnp_check_irq(struct pnp_dev *dev, struct resource *res) /* check if the resource is already in use, skip if the * device is active because it itself may be in use */ if (!dev->active) { - if (request_irq(*irq, pnp_test_handler, - IRQF_PROBE_SHARED, "pnp", NULL)) + if (request_irq(*irq, pnp_test_handler, IRQF_PROBE_SHARED | IRQF_USER_DATA, "pnp", NULL)) return 0; free_irq(*irq, NULL); } diff --git a/drivers/power/reset/ltc2952-poweroff.c b/drivers/power/reset/ltc2952-poweroff.c index c484584745bc..ec581ff897f5 100644 --- a/drivers/power/reset/ltc2952-poweroff.c +++ b/drivers/power/reset/ltc2952-poweroff.c @@ -214,11 +214,7 @@ static int ltc2952_poweroff_init(struct platform_device *pdev) data->gpio_trigger = NULL; } - if (devm_request_irq(&pdev->dev, gpiod_to_irq(data->gpio_trigger), - ltc2952_poweroff_handler, - (IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING), - "ltc2952-poweroff", - data)) { + if (devm_request_irq(&pdev->dev, gpiod_to_irq(data->gpio_trigger), ltc2952_poweroff_handler, (IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING) | IRQF_USER_DATA, "ltc2952-poweroff", data)) { /* * Some things may have happened: * - No trigger input was defined diff --git a/drivers/power/supply/act8945a_charger.c b/drivers/power/supply/act8945a_charger.c index 8e117b31ba79..b68b9d759667 100644 --- a/drivers/power/supply/act8945a_charger.c +++ b/drivers/power/supply/act8945a_charger.c @@ -496,7 +496,7 @@ static int act8945a_charger_config(struct device *dev, ret = devm_request_irq(dev, gpiod_to_irq(charger->lbo_gpio), act8945a_status_changed, - (IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING), + (IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING) | IRQF_USER_DATA, "act8945a_lbo_detect", charger); if (ret) dev_info(dev, "failed to request gpio \"lbo\" IRQ\n"); @@ -602,8 +602,8 @@ static int act8945a_charger_probe(struct platform_device *pdev) } ret = devm_request_irq(&pdev->dev, irq, act8945a_status_changed, - IRQF_TRIGGER_FALLING, "act8945a_interrupt", - charger); + IRQF_TRIGGER_FALLING | IRQF_USER_DATA, + "act8945a_interrupt", charger); if (ret) { dev_err(&pdev->dev, "failed to request nIRQ pin IRQ\n"); return ret; diff --git a/drivers/power/supply/goldfish_battery.c b/drivers/power/supply/goldfish_battery.c index f5c525e4482a..643bf6abcd30 100644 --- a/drivers/power/supply/goldfish_battery.c +++ b/drivers/power/supply/goldfish_battery.c @@ -193,8 +193,9 @@ static int goldfish_battery_probe(struct platform_device *pdev) return -ENODEV; } - ret = devm_request_irq(&pdev->dev, data->irq, goldfish_battery_interrupt, - IRQF_SHARED, pdev->name, data); + ret = devm_request_irq(&pdev->dev, data->irq, + goldfish_battery_interrupt, + IRQF_SHARED | IRQF_USER_DATA, pdev->name, data); if (ret) return ret; diff --git a/drivers/power/supply/max14656_charger_detector.c b/drivers/power/supply/max14656_charger_detector.c index b91b1d2999dc..e73ba28edb50 100644 --- a/drivers/power/supply/max14656_charger_detector.c +++ b/drivers/power/supply/max14656_charger_detector.c @@ -281,7 +281,7 @@ static int max14656_probe(struct i2c_client *client, INIT_DELAYED_WORK(&chip->irq_work, max14656_irq_worker); ret = devm_request_irq(dev, chip->irq, max14656_irq, - IRQF_TRIGGER_FALLING, + IRQF_TRIGGER_FALLING | IRQF_USER_DATA, MAX14656_NAME, chip); if (ret) { dev_err(dev, "request_irq %d failed\n", chip->irq); diff --git a/drivers/power/supply/pda_power.c b/drivers/power/supply/pda_power.c index 922a86787c5c..b7e8d8f5863f 100644 --- a/drivers/power/supply/pda_power.c +++ b/drivers/power/supply/pda_power.c @@ -340,8 +340,8 @@ static int pda_power_probe(struct platform_device *pdev) if (ac_irq) { ret = request_irq(ac_irq->start, power_changed_isr, - get_irq_flags(ac_irq), ac_irq->name, - pda_psy_ac); + get_irq_flags(ac_irq) | IRQF_USER_DATA, + ac_irq->name, pda_psy_ac); if (ret) { dev_err(dev, "request ac irq failed\n"); goto ac_irq_failed; @@ -364,7 +364,7 @@ static int pda_power_probe(struct platform_device *pdev) if (usb_irq) { ret = request_irq(usb_irq->start, power_changed_isr, - get_irq_flags(usb_irq), + get_irq_flags(usb_irq) | IRQF_USER_DATA, usb_irq->name, pda_psy_usb); if (ret) { dev_err(dev, "request usb irq failed\n"); diff --git a/drivers/power/supply/wm97xx_battery.c b/drivers/power/supply/wm97xx_battery.c index 6754e761778a..246830c06e3b 100644 --- a/drivers/power/supply/wm97xx_battery.c +++ b/drivers/power/supply/wm97xx_battery.c @@ -183,8 +183,9 @@ static int wm97xx_bat_probe(struct platform_device *dev) if (ret) goto err2; ret = request_irq(gpio_to_irq(pdata->charge_gpio), - wm97xx_chrg_irq, 0, - "AC Detect", dev); + wm97xx_chrg_irq, + IRQF_USER_DATA, + "AC Detect", dev); if (ret) goto err2; props++; /* POWER_SUPPLY_PROP_STATUS */ diff --git a/drivers/pps/clients/pps-gpio.c b/drivers/pps/clients/pps-gpio.c index dd5d1103e02b..a59a6e2545c3 100644 --- a/drivers/pps/clients/pps-gpio.c +++ b/drivers/pps/clients/pps-gpio.c @@ -166,7 +166,8 @@ static int pps_gpio_probe(struct platform_device *pdev) /* register IRQ interrupt handler */ ret = devm_request_irq(&pdev->dev, data->irq, pps_gpio_irq_handler, - get_irqf_trigger_flags(data), data->info.name, data); + get_irqf_trigger_flags(data) | IRQF_USER_DATA, + data->info.name, data); if (ret) { pps_unregister_source(data->pps); dev_err(&pdev->dev, "failed to acquire IRQ %d\n", data->irq); diff --git a/drivers/ptp/ptp_pch.c b/drivers/ptp/ptp_pch.c index 78ccf936d356..cf4832a54862 100644 --- a/drivers/ptp/ptp_pch.c +++ b/drivers/ptp/ptp_pch.c @@ -633,7 +633,8 @@ pch_probe(struct pci_dev *pdev, const struct pci_device_id *id) spin_lock_init(&chip->register_lock); - ret = request_irq(pdev->irq, &isr, IRQF_SHARED, KBUILD_MODNAME, chip); + ret = request_irq(pdev->irq, &isr, IRQF_SHARED | IRQF_USER_DATA, + KBUILD_MODNAME, chip); if (ret != 0) { dev_err(&pdev->dev, "failed to get irq %d\n", pdev->irq); goto err_req_irq; diff --git a/drivers/rapidio/devices/tsi721.c b/drivers/rapidio/devices/tsi721.c index b64c56c33c3b..d22a80107b24 100644 --- a/drivers/rapidio/devices/tsi721.c +++ b/drivers/rapidio/devices/tsi721.c @@ -708,14 +708,15 @@ static int tsi721_request_msix(struct tsi721_device *priv) int err = 0; err = request_irq(priv->msix[TSI721_VECT_IDB].vector, - tsi721_sr2pc_ch_msix, 0, - priv->msix[TSI721_VECT_IDB].irq_name, (void *)priv); + tsi721_sr2pc_ch_msix, + IRQF_USER_DATA, + priv->msix[TSI721_VECT_IDB].irq_name, (void *)priv); if (err) return err; err = request_irq(priv->msix[TSI721_VECT_PWRX].vector, - tsi721_srio_msix, 0, - priv->msix[TSI721_VECT_PWRX].irq_name, (void *)priv); + tsi721_srio_msix, IRQF_USER_DATA, + priv->msix[TSI721_VECT_PWRX].irq_name, (void *)priv); if (err) { free_irq(priv->msix[TSI721_VECT_IDB].vector, (void *)priv); return err; @@ -844,8 +845,8 @@ static int tsi721_request_irq(struct tsi721_device *priv) else #endif err = request_irq(priv->pdev->irq, tsi721_irqhandler, - (priv->flags & TSI721_USING_MSI) ? 0 : IRQF_SHARED, - DRV_NAME, (void *)priv); + ((priv->flags & TSI721_USING_MSI) ? 0 : IRQF_SHARED) | IRQF_USER_DATA, + DRV_NAME, (void *)priv); if (err) tsi_err(&priv->pdev->dev, @@ -1977,7 +1978,8 @@ static int tsi721_open_outb_mbox(struct rio_mport *mport, void *dev_id, int idx = TSI721_VECT_OMB0_DONE + mbox; /* Request interrupt service if we are in MSI-X mode */ - rc = request_irq(priv->msix[idx].vector, tsi721_omsg_msix, 0, + rc = request_irq(priv->msix[idx].vector, tsi721_omsg_msix, + IRQF_USER_DATA, priv->msix[idx].irq_name, (void *)priv); if (rc) { @@ -1988,7 +1990,8 @@ static int tsi721_open_outb_mbox(struct rio_mport *mport, void *dev_id, } idx = TSI721_VECT_OMB0_INT + mbox; - rc = request_irq(priv->msix[idx].vector, tsi721_omsg_msix, 0, + rc = request_irq(priv->msix[idx].vector, tsi721_omsg_msix, + IRQF_USER_DATA, priv->msix[idx].irq_name, (void *)priv); if (rc) { @@ -2292,7 +2295,8 @@ static int tsi721_open_inb_mbox(struct rio_mport *mport, void *dev_id, int idx = TSI721_VECT_IMB0_RCV + mbox; /* Request interrupt service if we are in MSI-X mode */ - rc = request_irq(priv->msix[idx].vector, tsi721_imsg_msix, 0, + rc = request_irq(priv->msix[idx].vector, tsi721_imsg_msix, + IRQF_USER_DATA, priv->msix[idx].irq_name, (void *)priv); if (rc) { @@ -2303,7 +2307,8 @@ static int tsi721_open_inb_mbox(struct rio_mport *mport, void *dev_id, } idx = TSI721_VECT_IMB0_INT + mbox; - rc = request_irq(priv->msix[idx].vector, tsi721_imsg_msix, 0, + rc = request_irq(priv->msix[idx].vector, tsi721_imsg_msix, + IRQF_USER_DATA, priv->msix[idx].irq_name, (void *)priv); if (rc) { diff --git a/drivers/rapidio/devices/tsi721_dma.c b/drivers/rapidio/devices/tsi721_dma.c index 7f5d4436f594..f932701225df 100644 --- a/drivers/rapidio/devices/tsi721_dma.c +++ b/drivers/rapidio/devices/tsi721_dma.c @@ -161,7 +161,8 @@ static int tsi721_bdma_ch_init(struct tsi721_bdma_chan *bdma_chan, int bd_num) idx = TSI721_VECT_DMA0_DONE + bdma_chan->id; - rc = request_irq(priv->msix[idx].vector, tsi721_bdma_msix, 0, + rc = request_irq(priv->msix[idx].vector, tsi721_bdma_msix, + IRQF_USER_DATA, priv->msix[idx].irq_name, (void *)bdma_chan); if (rc) { @@ -173,8 +174,9 @@ static int tsi721_bdma_ch_init(struct tsi721_bdma_chan *bdma_chan, int bd_num) idx = TSI721_VECT_DMA0_INT + bdma_chan->id; - rc = request_irq(priv->msix[idx].vector, tsi721_bdma_msix, 0, - priv->msix[idx].irq_name, (void *)bdma_chan); + rc = request_irq(priv->msix[idx].vector, tsi721_bdma_msix, + IRQF_USER_DATA, + priv->msix[idx].irq_name, (void *)bdma_chan); if (rc) { tsi_debug(DMA, &bdma_chan->dchan.dev->device, diff --git a/drivers/regulator/qcom_spmi-regulator.c b/drivers/regulator/qcom_spmi-regulator.c index 53a61fb65642..28c1b169330e 100644 --- a/drivers/regulator/qcom_spmi-regulator.c +++ b/drivers/regulator/qcom_spmi-regulator.c @@ -1584,8 +1584,9 @@ static int spmi_regulator_of_parse(struct device_node *node, if (vreg->ocp_irq) { ret = devm_request_irq(dev, vreg->ocp_irq, - spmi_regulator_vs_ocp_isr, IRQF_TRIGGER_RISING, "ocp", - vreg); + spmi_regulator_vs_ocp_isr, + IRQF_TRIGGER_RISING | IRQF_USER_DATA, + "ocp", vreg); if (ret < 0) { dev_err(dev, "failed to request irq %d, ret=%d\n", vreg->ocp_irq, ret); diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c index f46c787733e8..c72229a2fc80 100644 --- a/drivers/rpmsg/qcom_glink_native.c +++ b/drivers/rpmsg/qcom_glink_native.c @@ -1588,9 +1588,8 @@ struct qcom_glink *qcom_glink_native_probe(struct device *dev, } irq = of_irq_get(dev->of_node, 0); - ret = devm_request_irq(dev, irq, - qcom_glink_native_intr, - IRQF_NO_SUSPEND | IRQF_SHARED, + ret = devm_request_irq(dev, irq, qcom_glink_native_intr, + IRQF_NO_SUSPEND | IRQF_SHARED | IRQF_USER_DATA, "glink-native", glink); if (ret) { dev_err(dev, "failed to request IRQ\n"); diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c index a5a19ff10535..81380c3b3fa7 100644 --- a/drivers/rtc/rtc-cmos.c +++ b/drivers/rtc/rtc-cmos.c @@ -854,8 +854,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq) rtc_cmos_int_handler = cmos_interrupt; retval = request_irq(rtc_irq, rtc_cmos_int_handler, - IRQF_SHARED, dev_name(&cmos_rtc.rtc->dev), - cmos_rtc.rtc); + IRQF_SHARED | IRQF_USER_DATA, + dev_name(&cmos_rtc.rtc->dev), + cmos_rtc.rtc); if (retval < 0) { dev_dbg(dev, "IRQ %d is already in use\n", rtc_irq); goto cleanup1; diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c index 2d502fc85698..5ab3759914e8 100644 --- a/drivers/rtc/rtc-ds1305.c +++ b/drivers/rtc/rtc-ds1305.c @@ -719,7 +719,8 @@ static int ds1305_probe(struct spi_device *spi) if (spi->irq) { INIT_WORK(&ds1305->work, ds1305_work); status = devm_request_irq(&spi->dev, spi->irq, ds1305_irq, - 0, dev_name(&ds1305->rtc->dev), ds1305); + IRQF_USER_DATA, + dev_name(&ds1305->rtc->dev), ds1305); if (status < 0) { dev_err(&spi->dev, "request_irq %d --> %d\n", spi->irq, status); diff --git a/drivers/rtc/rtc-ds1374.c b/drivers/rtc/rtc-ds1374.c index 38a2e9e684df..9c5bd44571c2 100644 --- a/drivers/rtc/rtc-ds1374.c +++ b/drivers/rtc/rtc-ds1374.c @@ -631,8 +631,9 @@ static int ds1374_probe(struct i2c_client *client, return ret; if (client->irq > 0) { - ret = devm_request_irq(&client->dev, client->irq, ds1374_irq, 0, - "ds1374", client); + ret = devm_request_irq(&client->dev, client->irq, ds1374_irq, + IRQF_USER_DATA, + "ds1374", client); if (ret) { dev_err(&client->dev, "unable to request IRQ\n"); return ret; diff --git a/drivers/rtc/rtc-ds1511.c b/drivers/rtc/rtc-ds1511.c index b8b6e51c0461..c90343e4cc65 100644 --- a/drivers/rtc/rtc-ds1511.c +++ b/drivers/rtc/rtc-ds1511.c @@ -485,8 +485,7 @@ static int ds1511_rtc_probe(struct platform_device *pdev) */ if (pdata->irq > 0) { rtc_read(RTC_CMD1); - if (devm_request_irq(&pdev->dev, pdata->irq, ds1511_interrupt, - IRQF_SHARED, pdev->name, pdev) < 0) { + if (devm_request_irq(&pdev->dev, pdata->irq, ds1511_interrupt, IRQF_SHARED | IRQF_USER_DATA, pdev->name, pdev) < 0) { dev_warn(&pdev->dev, "interrupt not available.\n"); pdata->irq = 0; diff --git a/drivers/rtc/rtc-ds1553.c b/drivers/rtc/rtc-ds1553.c index 34af7a802f43..c69b0b48991e 100644 --- a/drivers/rtc/rtc-ds1553.c +++ b/drivers/rtc/rtc-ds1553.c @@ -307,9 +307,7 @@ static int ds1553_rtc_probe(struct platform_device *pdev) if (pdata->irq > 0) { writeb(0, ioaddr + RTC_INTERRUPTS); - if (devm_request_irq(&pdev->dev, pdata->irq, - ds1553_rtc_interrupt, - 0, pdev->name, pdev) < 0) { + if (devm_request_irq(&pdev->dev, pdata->irq, ds1553_rtc_interrupt, IRQF_USER_DATA, pdev->name, pdev) < 0) { dev_warn(&pdev->dev, "interrupt not available.\n"); pdata->irq = 0; } diff --git a/drivers/rtc/rtc-ds1685.c b/drivers/rtc/rtc-ds1685.c index 2710f2594c42..dc856f4fb7cb 100644 --- a/drivers/rtc/rtc-ds1685.c +++ b/drivers/rtc/rtc-ds1685.c @@ -1341,7 +1341,8 @@ ds1685_rtc_probe(struct platform_device *pdev) /* Request an IRQ. */ ret = devm_request_irq(&pdev->dev, rtc->irq_num, ds1685_rtc_irq_handler, - IRQF_SHARED, pdev->name, pdev); + IRQF_SHARED | IRQF_USER_DATA, + pdev->name, pdev); /* Check to see if something came back. */ if (unlikely(ret)) { diff --git a/drivers/rtc/rtc-ftrtc010.c b/drivers/rtc/rtc-ftrtc010.c index 8f1dd88fa827..a7536520d481 100644 --- a/drivers/rtc/rtc-ftrtc010.c +++ b/drivers/rtc/rtc-ftrtc010.c @@ -181,7 +181,7 @@ static int ftrtc010_rtc_probe(struct platform_device *pdev) rtc->rtc_dev->range_max = U32_MAX + rtc->rtc_dev->range_min; ret = devm_request_irq(dev, rtc->rtc_irq, ftrtc010_rtc_interrupt, - IRQF_SHARED, pdev->name, dev); + IRQF_SHARED | IRQF_USER_DATA, pdev->name, dev); if (unlikely(ret)) return ret; diff --git a/drivers/rtc/rtc-m48t59.c b/drivers/rtc/rtc-m48t59.c index 3c8ad1cdfd7c..5566f0a56d54 100644 --- a/drivers/rtc/rtc-m48t59.c +++ b/drivers/rtc/rtc-m48t59.c @@ -436,8 +436,9 @@ static int m48t59_rtc_probe(struct platform_device *pdev) if (m48t59->irq != NO_IRQ) { ret = devm_request_irq(&pdev->dev, m48t59->irq, - m48t59_rtc_interrupt, IRQF_SHARED, - "rtc-m48t59", &pdev->dev); + m48t59_rtc_interrupt, + IRQF_SHARED | IRQF_USER_DATA, + "rtc-m48t59", &pdev->dev); if (ret) return ret; } diff --git a/drivers/rtc/rtc-mrst.c b/drivers/rtc/rtc-mrst.c index daf354a6a853..01264ed17b08 100644 --- a/drivers/rtc/rtc-mrst.c +++ b/drivers/rtc/rtc-mrst.c @@ -356,7 +356,8 @@ static int vrtc_mrst_do_probe(struct device *dev, struct resource *iomem, if (rtc_irq) { retval = devm_request_irq(dev, rtc_irq, mrst_rtc_irq, - 0, dev_name(&mrst_rtc.rtc->dev), + IRQF_USER_DATA, + dev_name(&mrst_rtc.rtc->dev), mrst_rtc.rtc); if (retval < 0) { dev_dbg(dev, "IRQ %d is already in use, err %d\n", diff --git a/drivers/rtc/rtc-pcap.c b/drivers/rtc/rtc-pcap.c index f176cb9d0dbc..2dd631d5f5b1 100644 --- a/drivers/rtc/rtc-pcap.c +++ b/drivers/rtc/rtc-pcap.c @@ -157,13 +157,15 @@ static int __init pcap_rtc_probe(struct platform_device *pdev) timer_irq = pcap_to_irq(pcap_rtc->pcap, PCAP_IRQ_1HZ); alarm_irq = pcap_to_irq(pcap_rtc->pcap, PCAP_IRQ_TODA); - err = devm_request_irq(&pdev->dev, timer_irq, pcap_rtc_irq, 0, - "RTC Timer", pcap_rtc); + err = devm_request_irq(&pdev->dev, timer_irq, pcap_rtc_irq, + IRQF_USER_DATA, "RTC Timer", + pcap_rtc); if (err) return err; - err = devm_request_irq(&pdev->dev, alarm_irq, pcap_rtc_irq, 0, - "RTC Alarm", pcap_rtc); + err = devm_request_irq(&pdev->dev, alarm_irq, pcap_rtc_irq, + IRQF_USER_DATA, "RTC Alarm", + pcap_rtc); if (err) return err; diff --git a/drivers/rtc/rtc-r7301.c b/drivers/rtc/rtc-r7301.c index 1943c8151152..f4f87345ecc7 100644 --- a/drivers/rtc/rtc-r7301.c +++ b/drivers/rtc/rtc-r7301.c @@ -392,7 +392,8 @@ static int __init rtc7301_rtc_probe(struct platform_device *dev) if (priv->irq > 0) { ret = devm_request_irq(&dev->dev, priv->irq, - rtc7301_irq_handler, IRQF_SHARED, + rtc7301_irq_handler, + IRQF_SHARED | IRQF_USER_DATA, dev_name(&dev->dev), rtc); if (ret) { priv->irq = 0; diff --git a/drivers/rtc/rtc-snvs.c b/drivers/rtc/rtc-snvs.c index b2483a749ac4..4bc1edff3c85 100644 --- a/drivers/rtc/rtc-snvs.c +++ b/drivers/rtc/rtc-snvs.c @@ -328,7 +328,8 @@ static int snvs_rtc_probe(struct platform_device *pdev) device_init_wakeup(&pdev->dev, true); ret = devm_request_irq(&pdev->dev, data->irq, snvs_rtc_irq_handler, - IRQF_SHARED, "rtc alarm", &pdev->dev); + IRQF_SHARED | IRQF_USER_DATA, "rtc alarm", + &pdev->dev); if (ret) { dev_err(&pdev->dev, "failed to request irq %d: %d\n", data->irq, ret); diff --git a/drivers/rtc/rtc-stk17ta8.c b/drivers/rtc/rtc-stk17ta8.c index fccbecbb2c98..62deb2c871fa 100644 --- a/drivers/rtc/rtc-stk17ta8.c +++ b/drivers/rtc/rtc-stk17ta8.c @@ -302,10 +302,7 @@ static int stk17ta8_rtc_probe(struct platform_device *pdev) platform_set_drvdata(pdev, pdata); if (pdata->irq > 0) { writeb(0, ioaddr + RTC_INTERRUPTS); - if (devm_request_irq(&pdev->dev, pdata->irq, - stk17ta8_rtc_interrupt, - IRQF_SHARED, - pdev->name, pdev) < 0) { + if (devm_request_irq(&pdev->dev, pdata->irq, stk17ta8_rtc_interrupt, IRQF_SHARED | IRQF_USER_DATA, pdev->name, pdev) < 0) { dev_warn(&pdev->dev, "interrupt not available.\n"); pdata->irq = 0; } diff --git a/drivers/rtc/rtc-zynqmp.c b/drivers/rtc/rtc-zynqmp.c index c532bd13fbe5..e7687aa8ed3a 100644 --- a/drivers/rtc/rtc-zynqmp.c +++ b/drivers/rtc/rtc-zynqmp.c @@ -234,7 +234,8 @@ static int xlnx_rtc_probe(struct platform_device *pdev) return xrtcdev->alarm_irq; } ret = devm_request_irq(&pdev->dev, xrtcdev->alarm_irq, - xlnx_rtc_interrupt, 0, + xlnx_rtc_interrupt, + IRQF_USER_DATA, dev_name(&pdev->dev), xrtcdev); if (ret) { dev_err(&pdev->dev, "request irq failed\n"); @@ -247,7 +248,8 @@ static int xlnx_rtc_probe(struct platform_device *pdev) return xrtcdev->sec_irq; } ret = devm_request_irq(&pdev->dev, xrtcdev->sec_irq, - xlnx_rtc_interrupt, 0, + xlnx_rtc_interrupt, + IRQF_USER_DATA, dev_name(&pdev->dev), xrtcdev); if (ret) { dev_err(&pdev->dev, "request irq failed\n"); diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c index a3c20e3a8b7c..73d42056212c 100644 --- a/drivers/scsi/3w-9xxx.c +++ b/drivers/scsi/3w-9xxx.c @@ -2116,7 +2116,8 @@ static int twa_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id) set_bit(TW_USING_MSI, &tw_dev->flags); /* Now setup the interrupt handler */ - retval = request_irq(pdev->irq, twa_interrupt, IRQF_SHARED, "3w-9xxx", tw_dev); + retval = request_irq(pdev->irq, twa_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "3w-9xxx", tw_dev); if (retval) { TW_PRINTK(tw_dev->host, TW_DRIVER, 0x30, "Error requesting IRQ"); goto out_remove_host; @@ -2254,7 +2255,8 @@ static int twa_resume(struct pci_dev *pdev) } /* Now setup the interrupt handler */ - retval = request_irq(pdev->irq, twa_interrupt, IRQF_SHARED, "3w-9xxx", tw_dev); + retval = request_irq(pdev->irq, twa_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "3w-9xxx", tw_dev); if (retval) { TW_PRINTK(tw_dev->host, TW_DRIVER, 0x42, "Error requesting IRQ during resume"); retval = -ENODEV; diff --git a/drivers/scsi/3w-sas.c b/drivers/scsi/3w-sas.c index cd096104bcec..11306ca378b5 100644 --- a/drivers/scsi/3w-sas.c +++ b/drivers/scsi/3w-sas.c @@ -1662,7 +1662,8 @@ static int twl_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id) set_bit(TW_USING_MSI, &tw_dev->flags); /* Now setup the interrupt handler */ - retval = request_irq(pdev->irq, twl_interrupt, IRQF_SHARED, "3w-sas", tw_dev); + retval = request_irq(pdev->irq, twl_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "3w-sas", tw_dev); if (retval) { TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1f, "Error requesting IRQ"); goto out_remove_host; @@ -1819,7 +1820,8 @@ static int twl_resume(struct pci_dev *pdev) } /* Now setup the interrupt handler */ - retval = request_irq(pdev->irq, twl_interrupt, IRQF_SHARED, "3w-sas", tw_dev); + retval = request_irq(pdev->irq, twl_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "3w-sas", tw_dev); if (retval) { TW_PRINTK(tw_dev->host, TW_DRIVER, 0x26, "Error requesting IRQ during resume"); retval = -ENODEV; diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c index 2b1e0d503020..86eca9664b53 100644 --- a/drivers/scsi/3w-xxxx.c +++ b/drivers/scsi/3w-xxxx.c @@ -2333,7 +2333,8 @@ static int tw_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id) printk(KERN_WARNING "3w-xxxx: scsi%d: Found a 3ware Storage Controller at 0x%x, IRQ: %d.\n", host->host_no, tw_dev->base_addr, pdev->irq); /* Now setup the interrupt handler */ - retval = request_irq(pdev->irq, tw_interrupt, IRQF_SHARED, "3w-xxxx", tw_dev); + retval = request_irq(pdev->irq, tw_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "3w-xxxx", tw_dev); if (retval) { printk(KERN_WARNING "3w-xxxx: Error requesting IRQ."); goto out_remove_host; diff --git a/drivers/scsi/BusLogic.c b/drivers/scsi/BusLogic.c index e41e51f1da71..66e8231fb283 100644 --- a/drivers/scsi/BusLogic.c +++ b/drivers/scsi/BusLogic.c @@ -1994,8 +1994,7 @@ static bool __init blogic_getres(struct blogic_adapter *adapter) /* Acquire shared access to the IRQ Channel. */ - if (request_irq(adapter->irq_ch, blogic_inthandler, IRQF_SHARED, - adapter->full_model, adapter) < 0) { + if (request_irq(adapter->irq_ch, blogic_inthandler, IRQF_SHARED | IRQF_USER_DATA, adapter->full_model, adapter) < 0) { blogic_err("UNABLE TO ACQUIRE IRQ CHANNEL %d - DETACHING\n", adapter, adapter->irq_ch); return false; diff --git a/drivers/scsi/a100u2w.c b/drivers/scsi/a100u2w.c index 66c514310f3c..263408266f10 100644 --- a/drivers/scsi/a100u2w.c +++ b/drivers/scsi/a100u2w.c @@ -1158,8 +1158,8 @@ static int inia100_probe_one(struct pci_dev *pdev, shost->sg_tablesize = TOTAL_SG_ENTRY; /* Initial orc chip */ - error = request_irq(pdev->irq, inia100_intr, IRQF_SHARED, - "inia100", shost); + error = request_irq(pdev->irq, inia100_intr, + IRQF_SHARED | IRQF_USER_DATA, "inia100", shost); if (error < 0) { printk(KERN_WARNING "inia100: unable to get irq %d\n", pdev->irq); diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c index d5a6aa9676c8..eadd3bf6119a 100644 --- a/drivers/scsi/aacraid/commsup.c +++ b/drivers/scsi/aacraid/commsup.c @@ -2553,9 +2553,7 @@ int aac_acquire_irq(struct aac_dev *dev) for (i = 0; i < dev->max_msix; i++) { dev->aac_msix[i].vector_no = i; dev->aac_msix[i].dev = dev; - if (request_irq(pci_irq_vector(dev->pdev, i), - dev->a_ops.adapter_intr, - 0, "aacraid", &(dev->aac_msix[i]))) { + if (request_irq(pci_irq_vector(dev->pdev, i), dev->a_ops.adapter_intr, IRQF_USER_DATA, "aacraid", &(dev->aac_msix[i]))) { printk(KERN_ERR "%s%d: Failed to register IRQ for vector %d.\n", dev->name, dev->id, i); for (j = 0 ; j < i ; j++) @@ -2569,9 +2567,7 @@ int aac_acquire_irq(struct aac_dev *dev) dev->aac_msix[0].vector_no = 0; dev->aac_msix[0].dev = dev; - if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr, - IRQF_SHARED, "aacraid", - &(dev->aac_msix[0])) < 0) { + if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr, IRQF_SHARED | IRQF_USER_DATA, "aacraid", &(dev->aac_msix[0])) < 0) { if (dev->msi) pci_disable_msi(dev->pdev); printk(KERN_ERR "%s%d: Interrupt unavailable.\n", diff --git a/drivers/scsi/aacraid/rx.c b/drivers/scsi/aacraid/rx.c index 576cdf9cc120..6bb11613c7e4 100644 --- a/drivers/scsi/aacraid/rx.c +++ b/drivers/scsi/aacraid/rx.c @@ -649,8 +649,7 @@ int _aac_rx_init(struct aac_dev *dev) aac_adapter_comm(dev, dev->comm_interface); dev->sync_mode = 0; /* sync. mode not supported */ dev->msi = aac_msi && !pci_enable_msi(dev->pdev); - if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr, - IRQF_SHARED, "aacraid", dev) < 0) { + if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr, IRQF_SHARED | IRQF_USER_DATA, "aacraid", dev) < 0) { if (dev->msi) pci_disable_msi(dev->pdev); printk(KERN_ERR "%s%d: Interrupt unavailable.\n", diff --git a/drivers/scsi/aacraid/sa.c b/drivers/scsi/aacraid/sa.c index efa96c1c6aa3..1bc3c4c93852 100644 --- a/drivers/scsi/aacraid/sa.c +++ b/drivers/scsi/aacraid/sa.c @@ -388,8 +388,7 @@ int aac_sa_init(struct aac_dev *dev) if(aac_init_adapter(dev) == NULL) goto error_irq; dev->sync_mode = 0; /* sync. mode not supported */ - if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr, - IRQF_SHARED, "aacraid", (void *)dev) < 0) { + if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr, IRQF_SHARED | IRQF_USER_DATA, "aacraid", (void *)dev) < 0) { printk(KERN_WARNING "%s%d: Interrupt unavailable.\n", name, instance); goto error_iounmap; diff --git a/drivers/scsi/aacraid/src.c b/drivers/scsi/aacraid/src.c index 8377aec0649d..113e5e95c507 100644 --- a/drivers/scsi/aacraid/src.c +++ b/drivers/scsi/aacraid/src.c @@ -986,8 +986,7 @@ int aac_src_init(struct aac_dev *dev) dev->aac_msix[0].vector_no = 0; dev->aac_msix[0].dev = dev; - if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr, - IRQF_SHARED, "aacraid", &(dev->aac_msix[0])) < 0) { + if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr, IRQF_SHARED | IRQF_USER_DATA, "aacraid", &(dev->aac_msix[0])) < 0) { if (dev->msi) pci_disable_msi(dev->pdev); diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c index d37584403c33..1dc63c240c0d 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c @@ -11298,8 +11298,8 @@ static int advansys_board_found(struct Scsi_Host *shost, unsigned int iop, /* Register IRQ Number. */ ASC_DBG(2, "request_irq(%d, %p)\n", boardp->irq, shost); - ret = request_irq(boardp->irq, advansys_interrupt, share_irq, - DRV_NAME, shost); + ret = request_irq(boardp->irq, advansys_interrupt, + share_irq | IRQF_USER_DATA, DRV_NAME, shost); if (ret) { if (ret == -EBUSY) { diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c index 97872838b983..820af5a16dac 100644 --- a/drivers/scsi/aha152x.c +++ b/drivers/scsi/aha152x.c @@ -798,7 +798,7 @@ struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *setup) SETPORT(SIMODE0, 0); SETPORT(SIMODE1, 0); - if (request_irq(shpnt->irq, swintr, IRQF_SHARED, "aha152x", shpnt)) { + if (request_irq(shpnt->irq, swintr, IRQF_SHARED | IRQF_USER_DATA, "aha152x", shpnt)) { printk(KERN_ERR "aha152x%d: irq %d busy.\n", shpnt->host_no, shpnt->irq); goto out_host_put; } @@ -832,7 +832,7 @@ struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *setup) SETPORT(SSTAT0, 0x7f); SETPORT(SSTAT1, 0xef); - if (request_irq(shpnt->irq, intr, IRQF_SHARED, "aha152x", shpnt)) { + if (request_irq(shpnt->irq, intr, IRQF_SHARED | IRQF_USER_DATA, "aha152x", shpnt)) { printk(KERN_ERR "aha152x%d: failed to reassign irq %d.\n", shpnt->host_no, shpnt->irq); goto out_host_put; } diff --git a/drivers/scsi/aha1542.c b/drivers/scsi/aha1542.c index ba7a5725be04..4e2a66982248 100644 --- a/drivers/scsi/aha1542.c +++ b/drivers/scsi/aha1542.c @@ -782,7 +782,7 @@ static struct Scsi_Host *aha1542_hw_init(struct scsi_host_template *tpnt, struct setup_mailboxes(sh); - if (request_irq(sh->irq, aha1542_interrupt, 0, "aha1542", sh)) { + if (request_irq(sh->irq, aha1542_interrupt, IRQF_USER_DATA, "aha1542", sh)) { shost_printk(KERN_ERR, sh, "Unable to allocate IRQ.\n"); goto free_ccb; } diff --git a/drivers/scsi/aha1740.c b/drivers/scsi/aha1740.c index da4150c17781..06da04ed2b28 100644 --- a/drivers/scsi/aha1740.c +++ b/drivers/scsi/aha1740.c @@ -597,8 +597,7 @@ static int aha1740_probe (struct device *dev) } DEB(printk("aha1740_probe: enable interrupt channel %d\n",irq_level)); - if (request_irq(irq_level,aha1740_intr_handle,irq_type ? 0 : IRQF_SHARED, - "aha1740",shpnt)) { + if (request_irq(irq_level, aha1740_intr_handle, (irq_type ? 0 : IRQF_SHARED) | IRQF_USER_DATA, "aha1740", shpnt)) { printk(KERN_ERR "aha1740_probe: Unable to allocate IRQ %d.\n", irq_level); goto err_unmap; diff --git a/drivers/scsi/aic7xxx/aic7770_osm.c b/drivers/scsi/aic7xxx/aic7770_osm.c index 3d401d02c019..5a1190313f68 100644 --- a/drivers/scsi/aic7xxx/aic7770_osm.c +++ b/drivers/scsi/aic7xxx/aic7770_osm.c @@ -67,7 +67,8 @@ aic7770_map_int(struct ahc_softc *ahc, u_int irq) if ((ahc->flags & AHC_EDGE_INTERRUPT) == 0) shared = IRQF_SHARED; - error = request_irq(irq, ahc_linux_isr, shared, "aic7xxx", ahc); + error = request_irq(irq, ahc_linux_isr, shared | IRQF_USER_DATA, + "aic7xxx", ahc); if (error == 0) ahc->platform_data->irq = irq; diff --git a/drivers/scsi/aic7xxx/aic79xx_osm_pci.c b/drivers/scsi/aic7xxx/aic79xx_osm_pci.c index 8466aa784ec1..be821365298d 100644 --- a/drivers/scsi/aic7xxx/aic79xx_osm_pci.c +++ b/drivers/scsi/aic7xxx/aic79xx_osm_pci.c @@ -383,7 +383,7 @@ ahd_pci_map_int(struct ahd_softc *ahd) int error; error = request_irq(ahd->dev_softc->irq, ahd_linux_isr, - IRQF_SHARED, "aic79xx", ahd); + IRQF_SHARED | IRQF_USER_DATA, "aic79xx", ahd); if (!error) ahd->platform_data->irq = ahd->dev_softc->irq; diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c b/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c index 0fc14dac7070..867ada06c334 100644 --- a/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c +++ b/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c @@ -461,7 +461,7 @@ ahc_pci_map_int(struct ahc_softc *ahc) int error; error = request_irq(ahc->dev_softc->irq, ahc_linux_isr, - IRQF_SHARED, "aic7xxx", ahc); + IRQF_SHARED | IRQF_USER_DATA, "aic7xxx", ahc); if (error == 0) ahc->platform_data->irq = ahc->dev_softc->irq; diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c index 07efcb9b5b94..f1d5d9b14d2f 100644 --- a/drivers/scsi/aic94xx/aic94xx_init.c +++ b/drivers/scsi/aic94xx/aic94xx_init.c @@ -804,8 +804,9 @@ static int asd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) if (use_msi) pci_enable_msi(asd_ha->pcidev); - err = request_irq(asd_ha->pcidev->irq, asd_hw_isr, IRQF_SHARED, - ASD_DRIVER_NAME, asd_ha); + err = request_irq(asd_ha->pcidev->irq, asd_hw_isr, + IRQF_SHARED | IRQF_USER_DATA, ASD_DRIVER_NAME, + asd_ha); if (err) { asd_printk("couldn't get irq %d for %s\n", asd_ha->pcidev->irq, pci_name(asd_ha->pcidev)); diff --git a/drivers/scsi/am53c974.c b/drivers/scsi/am53c974.c index 27c0a4a937d9..b6778db02433 100644 --- a/drivers/scsi/am53c974.c +++ b/drivers/scsi/am53c974.c @@ -448,8 +448,8 @@ static int pci_esp_probe_one(struct pci_dev *pdev, pci_set_drvdata(pdev, pep); - err = request_irq(pdev->irq, scsi_esp_intr, IRQF_SHARED, - DRV_MODULE_NAME, esp); + err = request_irq(pdev->irq, scsi_esp_intr, + IRQF_SHARED | IRQF_USER_DATA, DRV_MODULE_NAME, esp); if (err < 0) { dev_printk(KERN_ERR, &pdev->dev, "failed to register IRQ\n"); goto fail_unmap_command_block; diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c index 57c6fa388bf6..eaf5b63c8023 100644 --- a/drivers/scsi/arcmsr/arcmsr_hba.c +++ b/drivers/scsi/arcmsr/arcmsr_hba.c @@ -860,8 +860,7 @@ arcmsr_request_irq(struct pci_dev *pdev, struct AdapterControlBlock *acb) acb->vector_count = nvec; for (i = 0; i < nvec; i++) { - if (request_irq(pci_irq_vector(pdev, i), arcmsr_do_interrupt, - flags, "arcmsr", acb)) { + if (request_irq(pci_irq_vector(pdev, i), arcmsr_do_interrupt, flags | IRQF_USER_DATA, "arcmsr", acb)) { pr_warn("arcmsr%d: request_irq =%d failed!\n", acb->host->host_no, pci_irq_vector(pdev, i)); goto out_free_irq; diff --git a/drivers/scsi/atp870u.c b/drivers/scsi/atp870u.c index 1267200380f8..9a31e1ad82b7 100644 --- a/drivers/scsi/atp870u.c +++ b/drivers/scsi/atp870u.c @@ -1551,7 +1551,8 @@ static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent) else atp870_init(shpnt); - err = request_irq(shpnt->irq, atp870u_intr_handle, IRQF_SHARED, "atp870u", shpnt); + err = request_irq(shpnt->irq, atp870u_intr_handle, + IRQF_SHARED | IRQF_USER_DATA, "atp870u", shpnt); if (err) { dev_err(&pdev->dev, "Unable to allocate IRQ %d.\n", shpnt->irq); goto free_tables; diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c index 74e260027c7d..b2a797b4aac1 100644 --- a/drivers/scsi/be2iscsi/be_main.c +++ b/drivers/scsi/be2iscsi/be_main.c @@ -821,7 +821,9 @@ static int beiscsi_init_irqs(struct beiscsi_hba *phba) } ret = request_irq(pci_irq_vector(pcidev, i), - be_isr_msix, 0, phba->msi_name[i], + be_isr_msix, + IRQF_USER_DATA, + phba->msi_name[i], &phwi_context->be_eq[i]); if (ret) { beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, @@ -838,7 +840,8 @@ static int beiscsi_init_irqs(struct beiscsi_hba *phba) ret = -ENOMEM; goto free_msix_irqs; } - ret = request_irq(pci_irq_vector(pcidev, i), be_isr_mcc, 0, + ret = request_irq(pci_irq_vector(pcidev, i), be_isr_mcc, + IRQF_USER_DATA, phba->msi_name[i], &phwi_context->be_eq[i]); if (ret) { beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT , @@ -849,8 +852,9 @@ static int beiscsi_init_irqs(struct beiscsi_hba *phba) } } else { - ret = request_irq(pcidev->irq, be_isr, IRQF_SHARED, - "beiscsi", phba); + ret = request_irq(pcidev->irq, be_isr, + IRQF_SHARED | IRQF_USER_DATA, "beiscsi", + phba); if (ret) { beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT, "BM_%d : beiscsi_init_irqs-" diff --git a/drivers/scsi/bfa/bfad.c b/drivers/scsi/bfa/bfad.c index 42a0caf6740d..26c1ac916d6c 100644 --- a/drivers/scsi/bfa/bfad.c +++ b/drivers/scsi/bfa/bfad.c @@ -1177,8 +1177,10 @@ bfad_install_msix_handler(struct bfad_s *bfad) msix_name_cb[i] : msix_name_ct[i])); error = request_irq(bfad->msix_tab[i].msix.vector, - (irq_handler_t) bfad_msix, 0, - bfad->msix_tab[i].name, &bfad->msix_tab[i]); + (irq_handler_t)bfad_msix, + IRQF_USER_DATA, + bfad->msix_tab[i].name, + &bfad->msix_tab[i]); bfa_trc(bfad, i); bfa_trc(bfad, bfad->msix_tab[i].msix.vector); if (error) { @@ -1261,7 +1263,8 @@ bfad_setup_intr(struct bfad_s *bfad) line_based: error = request_irq(bfad->pcidev->irq, (irq_handler_t)bfad_intx, - BFAD_IRQ_FLAGS, BFAD_DRIVER_NAME, bfad); + BFAD_IRQ_FLAGS | IRQF_USER_DATA, BFAD_DRIVER_NAME, + bfad); if (error) return error; diff --git a/drivers/scsi/csiostor/csio_isr.c b/drivers/scsi/csiostor/csio_isr.c index 7c8814715711..2897050f8ee1 100644 --- a/drivers/scsi/csiostor/csio_isr.c +++ b/drivers/scsi/csiostor/csio_isr.c @@ -387,8 +387,8 @@ csio_request_irqs(struct csio_hw *hw) if (hw->intr_mode != CSIO_IM_MSIX) { rv = request_irq(pci_irq_vector(pdev, 0), csio_fcoe_isr, - hw->intr_mode == CSIO_IM_MSI ? 0 : IRQF_SHARED, - KBUILD_MODNAME, hw); + (hw->intr_mode == CSIO_IM_MSI ? 0 : IRQF_SHARED) | IRQF_USER_DATA, + KBUILD_MODNAME, hw); if (rv) { csio_err(hw, "Failed to allocate interrupt line.\n"); goto out_free_irqs; @@ -400,8 +400,8 @@ csio_request_irqs(struct csio_hw *hw) /* Add the MSIX vector descriptions */ csio_add_msix_desc(hw); - rv = request_irq(pci_irq_vector(pdev, k), csio_nondata_isr, 0, - entryp[k].desc, hw); + rv = request_irq(pci_irq_vector(pdev, k), csio_nondata_isr, + IRQF_USER_DATA, entryp[k].desc, hw); if (rv) { csio_err(hw, "IRQ request failed for vec %d err:%d\n", pci_irq_vector(pdev, k), rv); @@ -410,8 +410,8 @@ csio_request_irqs(struct csio_hw *hw) entryp[k++].dev_id = hw; - rv = request_irq(pci_irq_vector(pdev, k), csio_fwevt_isr, 0, - entryp[k].desc, hw); + rv = request_irq(pci_irq_vector(pdev, k), csio_fwevt_isr, + IRQF_USER_DATA, entryp[k].desc, hw); if (rv) { csio_err(hw, "IRQ request failed for vec %d err:%d\n", pci_irq_vector(pdev, k), rv); @@ -427,7 +427,9 @@ csio_request_irqs(struct csio_hw *hw) struct csio_scsi_qset *sqset = &hw->sqset[i][j]; struct csio_q *q = hw->wrm.q_arr[sqset->iq_idx]; - rv = request_irq(pci_irq_vector(pdev, k), csio_scsi_isr, 0, + rv = request_irq(pci_irq_vector(pdev, k), + csio_scsi_isr, + IRQF_USER_DATA, entryp[k].desc, q); if (rv) { csio_err(hw, diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c index 70d1a18278af..31acc27f2b29 100644 --- a/drivers/scsi/dpt_i2o.c +++ b/drivers/scsi/dpt_i2o.c @@ -1065,7 +1065,7 @@ static int adpt_install_hba(struct scsi_host_template* sht, struct pci_dev* pDev printk(KERN_INFO" BAR1 %p - size= %x\n",msg_addr_virt,hba_map1_area_size); } - if (request_irq (pDev->irq, adpt_isr, IRQF_SHARED, pHba->name, pHba)) { + if (request_irq(pDev->irq, adpt_isr, IRQF_SHARED | IRQF_USER_DATA, pHba->name, pHba)) { printk(KERN_ERR"%s: Couldn't register IRQ %d\n", pHba->name, pDev->irq); adpt_i2o_delete_hba(pHba); return -EINVAL; diff --git a/drivers/scsi/esas2r/esas2r_init.c b/drivers/scsi/esas2r/esas2r_init.c index 46b2c83ba21f..43e61aaefe9d 100644 --- a/drivers/scsi/esas2r/esas2r_init.c +++ b/drivers/scsi/esas2r/esas2r_init.c @@ -240,13 +240,7 @@ static void esas2r_claim_interrupts(struct esas2r_adapter *a) "esas2r_claim_interrupts irq=%d (%p, %s, %lx)", a->pcid->irq, a, a->name, flags); - if (request_irq(a->pcid->irq, - (a->intr_mode == - INTR_MODE_LEGACY) ? esas2r_interrupt : - esas2r_msi_interrupt, - flags, - a->name, - a)) { + if (request_irq(a->pcid->irq, (a->intr_mode == INTR_MODE_LEGACY) ? esas2r_interrupt : esas2r_msi_interrupt, flags | IRQF_USER_DATA, a->name, a)) { esas2r_log(ESAS2R_LOG_CRIT, "unable to request IRQ %02X", a->pcid->irq); return; diff --git a/drivers/scsi/fnic/fnic_isr.c b/drivers/scsi/fnic/fnic_isr.c index 4e3a50202e8c..2f71590be836 100644 --- a/drivers/scsi/fnic/fnic_isr.c +++ b/drivers/scsi/fnic/fnic_isr.c @@ -178,12 +178,16 @@ int fnic_request_intr(struct fnic *fnic) case VNIC_DEV_INTR_MODE_INTX: err = request_irq(pci_irq_vector(fnic->pdev, 0), - &fnic_isr_legacy, IRQF_SHARED, DRV_NAME, fnic); + &fnic_isr_legacy, + IRQF_SHARED | IRQF_USER_DATA, DRV_NAME, + fnic); break; case VNIC_DEV_INTR_MODE_MSI: - err = request_irq(pci_irq_vector(fnic->pdev, 0), &fnic_isr_msi, - 0, fnic->name, fnic); + err = request_irq(pci_irq_vector(fnic->pdev, 0), + &fnic_isr_msi, + IRQF_USER_DATA, fnic->name, + fnic); break; case VNIC_DEV_INTR_MODE_MSIX: @@ -211,7 +215,8 @@ int fnic_request_intr(struct fnic *fnic) for (i = 0; i < ARRAY_SIZE(fnic->msix); i++) { err = request_irq(pci_irq_vector(fnic->pdev, i), - fnic->msix[i].isr, 0, + fnic->msix[i].isr, + IRQF_USER_DATA, fnic->msix[i].devname, fnic->msix[i].devid); if (err) { diff --git a/drivers/scsi/g_NCR5380.c b/drivers/scsi/g_NCR5380.c index 9cdca0625498..c95a9af1fd4f 100644 --- a/drivers/scsi/g_NCR5380.c +++ b/drivers/scsi/g_NCR5380.c @@ -191,9 +191,7 @@ static irqreturn_t legacy_empty_irq_handler(int irq, void *dev_id) static int legacy_find_free_irq(int *irq_table) { while (*irq_table != -1) { - if (!request_irq(*irq_table, legacy_empty_irq_handler, - IRQF_PROBE_SHARED, "Test IRQ", - (void *)irq_table)) { + if (!request_irq(*irq_table, legacy_empty_irq_handler, IRQF_PROBE_SHARED | IRQF_USER_DATA, "Test IRQ", (void *)irq_table)) { free_irq(*irq_table, (void *) irq_table); return *irq_table; } @@ -428,8 +426,7 @@ static int generic_NCR5380_init_one(struct scsi_host_template *tpnt, } if (instance->irq != NO_IRQ) { - if (request_irq(instance->irq, generic_NCR5380_intr, - 0, "NCR5380", instance)) { + if (request_irq(instance->irq, generic_NCR5380_intr, IRQF_USER_DATA, "NCR5380", instance)) { instance->irq = NO_IRQ; shost_printk(KERN_INFO, instance, "irq %d denied\n", instance->irq); diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c index 194c294f9b6c..361f8bd6b863 100644 --- a/drivers/scsi/gdth.c +++ b/drivers/scsi/gdth.c @@ -4707,7 +4707,8 @@ static int __init gdth_isa_probe_one(u32 isa_bios) printk("Configuring GDT-ISA HA at BIOS 0x%05X IRQ %u DRQ %u\n", isa_bios, ha->irq, ha->drq); - error = request_irq(ha->irq, gdth_interrupt, 0, "gdth", ha); + error = request_irq(ha->irq, gdth_interrupt, + IRQF_USER_DATA, "gdth", ha); if (error) { printk("GDT-ISA: Unable to allocate IRQ\n"); goto out_host_put; @@ -4839,7 +4840,8 @@ static int __init gdth_eisa_probe_one(u16 eisa_slot) printk("Configuring GDT-EISA HA at Slot %d IRQ %u\n", eisa_slot >> 12, ha->irq); - error = request_irq(ha->irq, gdth_interrupt, 0, "gdth", ha); + error = request_irq(ha->irq, gdth_interrupt, + IRQF_USER_DATA, "gdth", ha); if (error) { printk("GDT-EISA: Unable to allocate IRQ\n"); goto out_host_put; @@ -4975,7 +4977,7 @@ static int gdth_pci_probe_one(gdth_pci_str *pcistr, gdth_ha_str **ha_out) ha->irq); error = request_irq(ha->irq, gdth_interrupt, - IRQF_SHARED, "gdth", ha); + IRQF_SHARED | IRQF_USER_DATA, "gdth", ha); if (error) { printk("GDT-PCI: Unable to allocate IRQ\n"); goto out_host_put; diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index ff67ef5d5347..38f68b4b4160 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c @@ -7994,9 +7994,10 @@ static int hpsa_request_irqs(struct ctlr_info *h, /* If performant mode and MSI-X, use multiple reply queues */ for (i = 0; i < h->msix_vectors; i++) { sprintf(h->intrname[i], "%s-msix%d", h->devname, i); - rc = request_irq(pci_irq_vector(h->pdev, i), msixhandler, - 0, h->intrname[i], - &h->q[i]); + rc = request_irq(pci_irq_vector(h->pdev, i), + msixhandler, + IRQF_USER_DATA, + h->intrname[i], &h->q[i]); if (rc) { int j; @@ -8018,16 +8019,16 @@ static int hpsa_request_irqs(struct ctlr_info *h, sprintf(h->intrname[0], "%s-msi%s", h->devname, h->msix_vectors ? "x" : ""); rc = request_irq(pci_irq_vector(h->pdev, 0), - msixhandler, 0, - h->intrname[0], - &h->q[h->intr_mode]); + msixhandler, + IRQF_USER_DATA, + h->intrname[0], &h->q[h->intr_mode]); } else { sprintf(h->intrname[h->intr_mode], "%s-intx", h->devname); rc = request_irq(pci_irq_vector(h->pdev, 0), - intxhandler, IRQF_SHARED, - h->intrname[0], - &h->q[h->intr_mode]); + intxhandler, + IRQF_SHARED | IRQF_USER_DATA, + h->intrname[0], &h->q[h->intr_mode]); } } if (rc) { diff --git a/drivers/scsi/hptiop.c b/drivers/scsi/hptiop.c index 3eedfd4f8f57..b6cf8ed9f111 100644 --- a/drivers/scsi/hptiop.c +++ b/drivers/scsi/hptiop.c @@ -1421,8 +1421,7 @@ static int hptiop_probe(struct pci_dev *pcidev, const struct pci_device_id *id) pci_set_drvdata(pcidev, host); - if (request_irq(pcidev->irq, hptiop_intr, IRQF_SHARED, - driver_name, hba)) { + if (request_irq(pcidev->irq, hptiop_intr, IRQF_SHARED | IRQF_USER_DATA, driver_name, hba)) { printk(KERN_ERR "scsi%d: request irq %d failed\n", hba->host->host_no, pcidev->irq); goto unmap_pci_bar; diff --git a/drivers/scsi/initio.c b/drivers/scsi/initio.c index eb2778b5c81b..33293ed73424 100644 --- a/drivers/scsi/initio.c +++ b/drivers/scsi/initio.c @@ -2913,7 +2913,8 @@ static int initio_probe_one(struct pci_dev *pdev, shost->base = host->addr; shost->sg_tablesize = TOTAL_SG_ENTRY; - error = request_irq(pdev->irq, i91u_intr, IRQF_SHARED, "i91u", shost); + error = request_irq(pdev->irq, i91u_intr, + IRQF_SHARED | IRQF_USER_DATA, "i91u", shost); if (error < 0) { printk(KERN_WARNING "initio: Unable to request IRQ %d\n", pdev->irq); goto out_free_scbs; diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index d1b4025a4503..0a55dd02bc6c 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c @@ -10048,11 +10048,10 @@ static int ipr_request_other_msi_irqs(struct ipr_ioa_cfg *ioa_cfg, int i, rc; for (i = 1; i < ioa_cfg->nvectors; i++) { - rc = request_irq(pci_irq_vector(pdev, i), - ipr_isr_mhrrq, - 0, - ioa_cfg->vectors_info[i].desc, - &ioa_cfg->hrrq[i]); + rc = request_irq(pci_irq_vector(pdev, i), ipr_isr_mhrrq, + IRQF_USER_DATA, + ioa_cfg->vectors_info[i].desc, + &ioa_cfg->hrrq[i]); if (rc) { while (--i >= 0) free_irq(pci_irq_vector(pdev, i), @@ -10117,7 +10116,8 @@ static int ipr_test_msi(struct ipr_ioa_cfg *ioa_cfg, struct pci_dev *pdev) int_reg = readl(ioa_cfg->regs.sense_interrupt_mask_reg); spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); - rc = request_irq(irq, ipr_test_intr, 0, IPR_NAME, ioa_cfg); + rc = request_irq(irq, ipr_test_intr, IRQF_USER_DATA, + IPR_NAME, ioa_cfg); if (rc) { dev_err(&pdev->dev, "Can not assign irq %d\n", irq); return rc; @@ -10369,15 +10369,16 @@ static int ipr_probe_ioa(struct pci_dev *pdev, if (pdev->msi_enabled || pdev->msix_enabled) { name_msi_vectors(ioa_cfg); - rc = request_irq(pci_irq_vector(pdev, 0), ipr_isr, 0, - ioa_cfg->vectors_info[0].desc, - &ioa_cfg->hrrq[0]); + rc = request_irq(pci_irq_vector(pdev, 0), ipr_isr, + IRQF_USER_DATA, + ioa_cfg->vectors_info[0].desc, + &ioa_cfg->hrrq[0]); if (!rc) rc = ipr_request_other_msi_irqs(ioa_cfg, pdev); } else { rc = request_irq(pdev->irq, ipr_isr, - IRQF_SHARED, - IPR_NAME, &ioa_cfg->hrrq[0]); + IRQF_SHARED | IRQF_USER_DATA, IPR_NAME, + &ioa_cfg->hrrq[0]); } if (rc) { dev_err(&pdev->dev, "Couldn't register IRQ %d! rc=%d\n", diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c index e8bc8d328bab..5d878d646708 100644 --- a/drivers/scsi/ips.c +++ b/drivers/scsi/ips.c @@ -6664,7 +6664,7 @@ ips_register_scsi(int index) memcpy(ha, oldha, sizeof (ips_ha_t)); free_irq(oldha->pcidev->irq, oldha); /* Install the interrupt handler with the new ha */ - if (request_irq(ha->pcidev->irq, do_ipsintr, IRQF_SHARED, ips_name, ha)) { + if (request_irq(ha->pcidev->irq, do_ipsintr, IRQF_SHARED | IRQF_USER_DATA, ips_name, ha)) { IPS_PRINTK(KERN_WARNING, ha->pcidev, "Unable to install interrupt handler\n"); goto err_out_sh; @@ -7062,7 +7062,7 @@ ips_init_phase2(int index) } /* Install the interrupt handler */ - if (request_irq(ha->pcidev->irq, do_ipsintr, IRQF_SHARED, ips_name, ha)) { + if (request_irq(ha->pcidev->irq, do_ipsintr, IRQF_SHARED | IRQF_USER_DATA, ips_name, ha)) { IPS_PRINTK(KERN_WARNING, ha->pcidev, "Unable to install interrupt handler\n"); return ips_abort_init(ha, index); diff --git a/drivers/scsi/isci/init.c b/drivers/scsi/isci/init.c index 1727d0c71b12..a8245e9c367d 100644 --- a/drivers/scsi/isci/init.c +++ b/drivers/scsi/isci/init.c @@ -353,7 +353,8 @@ static int isci_setup_interrupts(struct pci_dev *pdev) isr = isci_msix_isr; err = devm_request_irq(&pdev->dev, pci_irq_vector(pdev, i), - isr, 0, DRV_NAME"-msix", ihost); + isr, IRQF_USER_DATA, + DRV_NAME "-msix", ihost); if (!err) continue; @@ -372,8 +373,9 @@ static int isci_setup_interrupts(struct pci_dev *pdev) intx: for_each_isci_host(i, ihost, pdev) { err = devm_request_irq(&pdev->dev, pci_irq_vector(pdev, 0), - isci_intx_isr, IRQF_SHARED, DRV_NAME"-intx", - ihost); + isci_intx_isr, + IRQF_SHARED | IRQF_USER_DATA, + DRV_NAME "-intx", ihost); if (err) break; } diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index bede11e16349..f1ded4ebd05c 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -10004,7 +10004,8 @@ lpfc_sli_enable_msix(struct lpfc_hba *phba) /* vector-0 is associated to slow-path handler */ rc = request_irq(pci_irq_vector(phba->pcidev, 0), - &lpfc_sli_sp_intr_handler, 0, + &lpfc_sli_sp_intr_handler, + IRQF_USER_DATA, LPFC_SP_DRIVER_HANDLER_NAME, phba); if (rc) { lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, @@ -10015,7 +10016,8 @@ lpfc_sli_enable_msix(struct lpfc_hba *phba) /* vector-1 is associated to fast-path handler */ rc = request_irq(pci_irq_vector(phba->pcidev, 1), - &lpfc_sli_fp_intr_handler, 0, + &lpfc_sli_fp_intr_handler, + IRQF_USER_DATA, LPFC_FP_DRIVER_HANDLER_NAME, phba); if (rc) { @@ -10103,7 +10105,8 @@ lpfc_sli_enable_msi(struct lpfc_hba *phba) } rc = request_irq(phba->pcidev->irq, lpfc_sli_intr_handler, - 0, LPFC_DRIVER_NAME, phba); + IRQF_USER_DATA, LPFC_DRIVER_NAME, + phba); if (rc) { pci_disable_msi(phba->pcidev); lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, @@ -10161,7 +10164,8 @@ lpfc_sli_enable_intr(struct lpfc_hba *phba, uint32_t cfg_mode) /* Fallback to INTx if both MSI-X/MSI initalization failed */ if (phba->intr_type == NONE) { retval = request_irq(phba->pcidev->irq, lpfc_sli_intr_handler, - IRQF_SHARED, LPFC_DRIVER_NAME, phba); + IRQF_SHARED | IRQF_USER_DATA, + LPFC_DRIVER_NAME, phba); if (!retval) { /* Indicate initialization to INTx mode */ phba->intr_type = INTx; @@ -10297,14 +10301,16 @@ lpfc_sli4_enable_msix(struct lpfc_hba *phba) atomic_set(&phba->sli4_hba.hba_eq_hdl[index].hba_eq_in_use, 1); if (phba->cfg_fof && (index == (vectors - 1))) rc = request_irq(pci_irq_vector(phba->pcidev, index), - &lpfc_sli4_fof_intr_handler, 0, - name, - &phba->sli4_hba.hba_eq_hdl[index]); + &lpfc_sli4_fof_intr_handler, + IRQF_USER_DATA, + name, + &phba->sli4_hba.hba_eq_hdl[index]); else rc = request_irq(pci_irq_vector(phba->pcidev, index), - &lpfc_sli4_hba_intr_handler, 0, - name, - &phba->sli4_hba.hba_eq_hdl[index]); + &lpfc_sli4_hba_intr_handler, + IRQF_USER_DATA, + name, + &phba->sli4_hba.hba_eq_hdl[index]); if (rc) { lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, "0486 MSI-X fast-path (%d) " @@ -10377,7 +10383,8 @@ lpfc_sli4_enable_msi(struct lpfc_hba *phba) } rc = request_irq(phba->pcidev->irq, lpfc_sli4_intr_handler, - 0, LPFC_DRIVER_NAME, phba); + IRQF_USER_DATA, LPFC_DRIVER_NAME, + phba); if (rc) { pci_disable_msi(phba->pcidev); lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, @@ -10445,8 +10452,10 @@ lpfc_sli4_enable_intr(struct lpfc_hba *phba, uint32_t cfg_mode) /* Fallback to INTx if both MSI-X/MSI initalization failed */ if (phba->intr_type == NONE) { - retval = request_irq(phba->pcidev->irq, lpfc_sli4_intr_handler, - IRQF_SHARED, LPFC_DRIVER_NAME, phba); + retval = request_irq(phba->pcidev->irq, + lpfc_sli4_intr_handler, + IRQF_SHARED | IRQF_USER_DATA, + LPFC_DRIVER_NAME, phba); if (!retval) { struct lpfc_hba_eq_hdl *eqhdl; diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index 4862f65ec3e8..12fb3c35cc08 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c @@ -4299,9 +4299,7 @@ megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) goto out_free_cmd_buffer; } - if (request_irq(irq, (adapter->flag & BOARD_MEMMAP) ? - megaraid_isr_memmapped : megaraid_isr_iomapped, - IRQF_SHARED, "megaraid", adapter)) { + if (request_irq(irq, (adapter->flag & BOARD_MEMMAP) ? megaraid_isr_memmapped : megaraid_isr_iomapped, IRQF_SHARED | IRQF_USER_DATA, "megaraid", adapter)) { dev_warn(&pdev->dev, "Couldn't register IRQ %d!\n", irq); goto out_free_scb_list; } diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c index f112458023ff..b94dcce82042 100644 --- a/drivers/scsi/megaraid/megaraid_mbox.c +++ b/drivers/scsi/megaraid/megaraid_mbox.c @@ -767,8 +767,7 @@ megaraid_init_mbox(adapter_t *adapter) */ /* request IRQ and register the interrupt service routine */ - if (request_irq(adapter->irq, megaraid_isr, IRQF_SHARED, "megaraid", - adapter)) { + if (request_irq(adapter->irq, megaraid_isr, IRQF_SHARED | IRQF_USER_DATA, "megaraid", adapter)) { con_log(CL_ANN, (KERN_WARNING "megaraid: Couldn't register IRQ %d!\n", adapter->irq)); diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c index fcbff83c0097..b1dccee2bdc1 100644 --- a/drivers/scsi/megaraid/megaraid_sas_base.c +++ b/drivers/scsi/megaraid/megaraid_sas_base.c @@ -5170,9 +5170,7 @@ megasas_setup_irqs_ioapic(struct megasas_instance *instance) pdev = instance->pdev; instance->irq_context[0].instance = instance; instance->irq_context[0].MSIxIndex = 0; - if (request_irq(pci_irq_vector(pdev, 0), - instance->instancet->service_isr, IRQF_SHARED, - "megasas", &instance->irq_context[0])) { + if (request_irq(pci_irq_vector(pdev, 0), instance->instancet->service_isr, IRQF_SHARED | IRQF_USER_DATA, "megasas", &instance->irq_context[0])) { dev_err(&instance->pdev->dev, "Failed to register IRQ from %s %d\n", __func__, __LINE__); @@ -5202,9 +5200,7 @@ megasas_setup_irqs_msix(struct megasas_instance *instance, u8 is_probe) for (i = 0; i < instance->msix_vectors; i++) { instance->irq_context[i].instance = instance; instance->irq_context[i].MSIxIndex = i; - if (request_irq(pci_irq_vector(pdev, i), - instance->instancet->service_isr, 0, "megasas", - &instance->irq_context[i])) { + if (request_irq(pci_irq_vector(pdev, i), instance->instancet->service_isr, IRQF_USER_DATA, "megasas", &instance->irq_context[i])) { dev_err(&instance->pdev->dev, "Failed to register IRQ for vector %d.\n", i); for (j = 0; j < i; j++) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c index 0a6cb8f0680c..7f9a4d44c605 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.c +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -2727,7 +2727,7 @@ _base_request_irq(struct MPT3SAS_ADAPTER *ioc, u8 index) snprintf(reply_q->name, MPT_NAME_LENGTH, "%s%d", ioc->driver_name, ioc->id); r = request_irq(pci_irq_vector(pdev, index), _base_interrupt, - IRQF_SHARED, reply_q->name, reply_q); + IRQF_SHARED | IRQF_USER_DATA, reply_q->name, reply_q); if (r) { pr_err("%s: unable to allocate interrupt %d!\n", reply_q->name, pci_irq_vector(pdev, index)); diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c index 030d911ee374..4fd2179f3d55 100644 --- a/drivers/scsi/mvsas/mv_init.c +++ b/drivers/scsi/mvsas/mv_init.c @@ -589,8 +589,8 @@ static int mvs_pci_init(struct pci_dev *pdev, const struct pci_device_id *ent) rc = sas_register_ha(SHOST_TO_SAS_HA(shost)); if (rc) goto err_out_shost; - rc = request_irq(pdev->irq, irq_handler, IRQF_SHARED, - DRV_NAME, SHOST_TO_SAS_HA(shost)); + rc = request_irq(pdev->irq, irq_handler, IRQF_SHARED | IRQF_USER_DATA, + DRV_NAME, SHOST_TO_SAS_HA(shost)); if (rc) goto err_not_sas; diff --git a/drivers/scsi/mvumi.c b/drivers/scsi/mvumi.c index 36f64205ecfa..7520c7740044 100644 --- a/drivers/scsi/mvumi.c +++ b/drivers/scsi/mvumi.c @@ -2516,8 +2516,8 @@ static int mvumi_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) if (ret) goto fail_init_fw; - ret = request_irq(mhba->pdev->irq, mvumi_isr_handler, IRQF_SHARED, - "mvumi", mhba); + ret = request_irq(mhba->pdev->irq, mvumi_isr_handler, + IRQF_SHARED | IRQF_USER_DATA, "mvumi", mhba); if (ret) { dev_err(&pdev->dev, "failed to register IRQ\n"); goto fail_init_irq; @@ -2645,8 +2645,8 @@ static int __maybe_unused mvumi_resume(struct pci_dev *pdev) goto unmap_pci_addr; } - ret = request_irq(mhba->pdev->irq, mvumi_isr_handler, IRQF_SHARED, - "mvumi", mhba); + ret = request_irq(mhba->pdev->irq, mvumi_isr_handler, + IRQF_SHARED | IRQF_USER_DATA, "mvumi", mhba); if (ret) { dev_err(&pdev->dev, "failed to register IRQ\n"); goto unmap_pci_addr; diff --git a/drivers/scsi/myrb.c b/drivers/scsi/myrb.c index 539ac8ce4fcd..8a47670a7700 100644 --- a/drivers/scsi/myrb.c +++ b/drivers/scsi/myrb.c @@ -3542,7 +3542,7 @@ static struct myrb_hba *myrb_detect(struct pci_dev *pdev, if (privdata->hw_init(pdev, cb, cb->io_base)) goto failure; - if (request_irq(pdev->irq, irq_handler, IRQF_SHARED, "myrb", cb) < 0) { + if (request_irq(pdev->irq, irq_handler, IRQF_SHARED | IRQF_USER_DATA, "myrb", cb) < 0) { dev_err(&pdev->dev, "Unable to acquire IRQ Channel %d\n", pdev->irq); goto failure; diff --git a/drivers/scsi/myrs.c b/drivers/scsi/myrs.c index b8d54ef8cf6d..4e8fd9480469 100644 --- a/drivers/scsi/myrs.c +++ b/drivers/scsi/myrs.c @@ -2323,7 +2323,7 @@ static struct myrs_hba *myrs_detect(struct pci_dev *pdev, goto Failure; /* Acquire shared access to the IRQ Channel. */ - if (request_irq(pdev->irq, irq_handler, IRQF_SHARED, "myrs", cs) < 0) { + if (request_irq(pdev->irq, irq_handler, IRQF_SHARED | IRQF_USER_DATA, "myrs", cs) < 0) { dev_err(&pdev->dev, "Unable to acquire IRQ Channel %d\n", pdev->irq); goto Failure; diff --git a/drivers/scsi/nsp32.c b/drivers/scsi/nsp32.c index 00e3cbee55b8..3477288bad79 100644 --- a/drivers/scsi/nsp32.c +++ b/drivers/scsi/nsp32.c @@ -2729,7 +2729,8 @@ static int nsp32_detect(struct pci_dev *pdev) */ nsp32_do_bus_reset(data); - ret = request_irq(host->irq, do_nsp32_isr, IRQF_SHARED, "nsp32", data); + ret = request_irq(host->irq, do_nsp32_isr, + IRQF_SHARED | IRQF_USER_DATA, "nsp32", data); if (ret < 0) { nsp32_msg(KERN_ERR, "Unable to allocate IRQ for NinjaSCSI32 " "SCSI PCI controller. Interrupt: %d", host->irq); diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c index 828d53faf09a..e321a9c57c5d 100644 --- a/drivers/scsi/pcmcia/qlogic_stub.c +++ b/drivers/scsi/pcmcia/qlogic_stub.c @@ -119,7 +119,7 @@ static struct Scsi_Host *qlogic_detect(struct scsi_host_template *host, priv->shost = shost; priv->int_type = INT_TYPE; - if (request_irq(qlirq, qlogicfas408_ihandl, 0, qlogic_name, shost)) + if (request_irq(qlirq, qlogicfas408_ihandl, IRQF_USER_DATA, qlogic_name, shost)) goto free_scsi_host; sprintf(priv->qinfo, diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c index d1e98a6ea28f..66c96648ecaf 100644 --- a/drivers/scsi/pcmcia/sym53c500_cs.c +++ b/drivers/scsi/pcmcia/sym53c500_cs.c @@ -761,7 +761,7 @@ SYM53C500_config(struct pcmcia_device *link) data = (struct sym53c500_data *)host->hostdata; if (irq_level > 0) { - if (request_irq(irq_level, SYM53C500_intr, IRQF_SHARED, "SYM53C500", host)) { + if (request_irq(irq_level, SYM53C500_intr, IRQF_SHARED | IRQF_USER_DATA, "SYM53C500", host)) { printk("SYM53C500: unable to allocate IRQ %d\n", irq_level); goto err_free_scsi; } diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c index a36060c23b37..bc9ce9eceaa2 100644 --- a/drivers/scsi/pm8001/pm8001_init.c +++ b/drivers/scsi/pm8001/pm8001_init.c @@ -900,8 +900,9 @@ static u32 pm8001_setup_msix(struct pm8001_hba_info *pm8001_ha) pm8001_ha->irq_vector[i].drv_inst = pm8001_ha; rc = request_irq(pci_irq_vector(pm8001_ha->pdev, i), - pm8001_interrupt_handler_msix, flag, - intr_drvname[i], &(pm8001_ha->irq_vector[i])); + pm8001_interrupt_handler_msix, + flag | IRQF_USER_DATA, intr_drvname[i], + &(pm8001_ha->irq_vector[i])); if (rc) { for (j = 0; j < i; j++) { free_irq(pci_irq_vector(pm8001_ha->pdev, i), @@ -941,8 +942,9 @@ static u32 pm8001_request_irq(struct pm8001_hba_info *pm8001_ha) /* initialize the INT-X interrupt */ pm8001_ha->irq_vector[0].irq_id = 0; pm8001_ha->irq_vector[0].drv_inst = pm8001_ha; - rc = request_irq(pdev->irq, pm8001_interrupt_handler_intx, IRQF_SHARED, - DRV_NAME, SHOST_TO_SAS_HA(pm8001_ha->shost)); + rc = request_irq(pdev->irq, pm8001_interrupt_handler_intx, + IRQF_SHARED | IRQF_USER_DATA, DRV_NAME, + SHOST_TO_SAS_HA(pm8001_ha->shost)); return rc; } diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c index e338d7a4f571..9f94b2b713dd 100644 --- a/drivers/scsi/pmcraid.c +++ b/drivers/scsi/pmcraid.c @@ -4530,8 +4530,9 @@ pmcraid_register_interrupt_handler(struct pmcraid_instance *pinstance) vec->hrrq_id = i; vec->drv_inst = pinstance; - rc = request_irq(pci_irq_vector(pdev, i), isr, flag, - PMCRAID_DRIVER_NAME, vec); + rc = request_irq(pci_irq_vector(pdev, i), isr, + flag | IRQF_USER_DATA, PMCRAID_DRIVER_NAME, + vec); if (rc) goto out_unwind; } diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c index 9bbc19fc190b..452e8e7db1d1 100644 --- a/drivers/scsi/qedf/qedf_main.c +++ b/drivers/scsi/qedf/qedf_main.c @@ -2112,7 +2112,9 @@ static int qedf_request_msix_irq(struct qedf_ctx *qedf) cpu = cpumask_first(cpu_online_mask); for (i = 0; i < qedf->num_queues; i++) { rc = request_irq(qedf->int_info.msix[i].vector, - qedf_msix_handler, 0, "qedf", &qedf->fp_array[i]); + qedf_msix_handler, + IRQF_USER_DATA, "qedf", + &qedf->fp_array[i]); if (rc) { QEDF_WARN(&(qedf->dbg_ctx), "request_irq failed.\n"); diff --git a/drivers/scsi/qedi/qedi_main.c b/drivers/scsi/qedi/qedi_main.c index e74a62448ba4..792ead7e468a 100644 --- a/drivers/scsi/qedi/qedi_main.c +++ b/drivers/scsi/qedi/qedi_main.c @@ -1338,7 +1338,8 @@ static int qedi_request_msix_irq(struct qedi_ctx *qedi) cpu = cpumask_first(cpu_online_mask); for (i = 0; i < qedi->int_info.msix_cnt; i++) { rc = request_irq(qedi->int_info.msix[i].vector, - qedi_msix_handler, 0, "qedi", + qedi_msix_handler, + IRQF_USER_DATA, "qedi", &qedi->fp_array[i]); if (rc) { diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c index 6856dfdfa473..fb0cebb1665f 100644 --- a/drivers/scsi/qla1280.c +++ b/drivers/scsi/qla1280.c @@ -4323,8 +4323,7 @@ qla1280_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) /* Disable ISP interrupts. */ qla1280_disable_intrs(ha); - if (request_irq(pdev->irq, qla1280_intr_handler, IRQF_SHARED, - "qla1280", ha)) { + if (request_irq(pdev->irq, qla1280_intr_handler, IRQF_SHARED | IRQF_USER_DATA, "qla1280", ha)) { printk("qla1280 : Failed to reserve interrupt %d already " "in use\n", pdev->irq); goto error_release_region; diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 8507c43b918c..43463db8a0d7 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -3476,12 +3476,14 @@ qla24xx_enable_msix(struct qla_hw_data *ha, struct rsp_que *rsp) "qla2xxx%lu_%s", vha->host_no, msix_entries[i].name); if (IS_P3P_TYPE(ha)) ret = request_irq(qentry->vector, - qla82xx_msix_entries[i].handler, - 0, qla82xx_msix_entries[i].name, rsp); + qla82xx_msix_entries[i].handler, + IRQF_USER_DATA, + qla82xx_msix_entries[i].name, rsp); else ret = request_irq(qentry->vector, - msix_entries[i].handler, - 0, qentry->name, rsp); + msix_entries[i].handler, + IRQF_USER_DATA, + qentry->name, rsp); if (ret) goto msix_register_fail; qentry->have_irq = 1; @@ -3502,8 +3504,9 @@ qla24xx_enable_msix(struct qla_hw_data *ha, struct rsp_que *rsp) msix_entries[QLA_ATIO_VECTOR].name); qentry->in_use = 1; ret = request_irq(qentry->vector, - msix_entries[QLA_ATIO_VECTOR].handler, - 0, qentry->name, rsp); + msix_entries[QLA_ATIO_VECTOR].handler, + IRQF_USER_DATA, + qentry->name, rsp); qentry->have_irq = 1; } @@ -3606,8 +3609,8 @@ qla2x00_request_irqs(struct qla_hw_data *ha, struct rsp_que *rsp) return QLA_FUNCTION_FAILED; ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler, - ha->flags.msi_enabled ? 0 : IRQF_SHARED, - QLA2XXX_DRIVER_NAME, rsp); + (ha->flags.msi_enabled ? 0 : IRQF_SHARED) | IRQF_USER_DATA, + QLA2XXX_DRIVER_NAME, rsp); if (ret) { ql_log(ql_log_warn, vha, 0x003a, "Failed to reserve interrupt %d already in use.\n", @@ -3677,7 +3680,8 @@ int qla25xx_request_irq(struct qla_hw_data *ha, struct qla_qpair *qpair, scnprintf(msix->name, sizeof(msix->name), "qla2xxx%lu_qpair%d", vha->host_no, qpair->id); - ret = request_irq(msix->vector, intr->handler, 0, msix->name, qpair); + ret = request_irq(msix->vector, intr->handler, + IRQF_USER_DATA, msix->name, qpair); if (ret) { ql_log(ql_log_fatal, vha, 0x00e6, "MSI-X: Unable to register handler -- %x/%d.\n", diff --git a/drivers/scsi/qla4xxx/ql4_isr.c b/drivers/scsi/qla4xxx/ql4_isr.c index d2cd33d8d67f..236166da1ac8 100644 --- a/drivers/scsi/qla4xxx/ql4_isr.c +++ b/drivers/scsi/qla4xxx/ql4_isr.c @@ -1567,7 +1567,8 @@ int qla4xxx_request_irqs(struct scsi_qla_host *ha) ret = pci_alloc_irq_vectors(ha->pdev, 1, 1, PCI_IRQ_MSI); if (ret > 0) { ret = request_irq(ha->pdev->irq, qla4_8xxx_msi_handler, - 0, DRIVER_NAME, ha); + IRQF_USER_DATA, + DRIVER_NAME, ha); if (!ret) { DEBUG2(ql4_printk(KERN_INFO, ha, "MSI: Enabled.\n")); goto irq_attached; @@ -1588,7 +1589,7 @@ int qla4xxx_request_irqs(struct scsi_qla_host *ha) /* Trying INTx */ ret = request_irq(ha->pdev->irq, ha->isp_ops->intr_handler, - IRQF_SHARED, DRIVER_NAME, ha); + IRQF_SHARED | IRQF_USER_DATA, DRIVER_NAME, ha); if (!ret) { DEBUG2(ql4_printk(KERN_INFO, ha, "INTx: Enabled.\n")); goto irq_attached; diff --git a/drivers/scsi/qla4xxx/ql4_nx.c b/drivers/scsi/qla4xxx/ql4_nx.c index 5a31877c9d04..4a3e1ce069f8 100644 --- a/drivers/scsi/qla4xxx/ql4_nx.c +++ b/drivers/scsi/qla4xxx/ql4_nx.c @@ -4190,13 +4190,15 @@ qla4_8xxx_enable_msix(struct scsi_qla_host *ha) } ret = request_irq(pci_irq_vector(ha->pdev, 0), - qla4_8xxx_default_intr_handler, 0, "qla4xxx (default)", - ha); + qla4_8xxx_default_intr_handler, + IRQF_USER_DATA, + "qla4xxx (default)", ha); if (ret) goto out_free_vectors; - ret = request_irq(pci_irq_vector(ha->pdev, 1), - qla4_8xxx_msix_rsp_q, 0, "qla4xxx (rsp_q)", ha); + ret = request_irq(pci_irq_vector(ha->pdev, 1), qla4_8xxx_msix_rsp_q, + IRQF_USER_DATA, "qla4xxx (rsp_q)", + ha); if (ret) goto out_free_default_irq; diff --git a/drivers/scsi/qlogicfas.c b/drivers/scsi/qlogicfas.c index 8f709002f746..c9bd84f4df25 100644 --- a/drivers/scsi/qlogicfas.c +++ b/drivers/scsi/qlogicfas.c @@ -111,7 +111,7 @@ static struct Scsi_Host *__qlogicfas_detect(struct scsi_host_template *host, qltyp, qbase, qlirq, QL_TURBO_PDMA); host->name = qlogicfas_name; - if (request_irq(qlirq, qlogicfas408_ihandl, 0, qlogicfas_name, hreg)) + if (request_irq(qlirq, qlogicfas408_ihandl, IRQF_USER_DATA, qlogicfas_name, hreg)) goto free_scsi_host; if (scsi_add_host(hreg, NULL)) diff --git a/drivers/scsi/sim710.c b/drivers/scsi/sim710.c index 82ed99848378..1838cc163fea 100644 --- a/drivers/scsi/sim710.c +++ b/drivers/scsi/sim710.c @@ -133,7 +133,7 @@ static int sim710_probe_common(struct device *dev, unsigned long base_addr, host->this_id = scsi_id; host->base = base_addr; host->irq = irq; - if (request_irq(irq, NCR_700_intr, IRQF_SHARED, "sim710", host)) { + if (request_irq(irq, NCR_700_intr, IRQF_SHARED | IRQF_USER_DATA, "sim710", host)) { printk(KERN_ERR "sim710: request_irq failed\n"); goto out_put_host; } diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index f564af8949e8..10cb10c47b87 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -3469,8 +3469,10 @@ static int pqi_request_irqs(struct pqi_ctrl_info *ctrl_info) ctrl_info->event_irq = pci_irq_vector(pci_dev, 0); for (i = 0; i < ctrl_info->num_msix_vectors_enabled; i++) { - rc = request_irq(pci_irq_vector(pci_dev, i), pqi_irq_handler, 0, - DRIVER_NAME_SHORT, &ctrl_info->queue_groups[i]); + rc = request_irq(pci_irq_vector(pci_dev, i), pqi_irq_handler, + IRQF_USER_DATA, + DRIVER_NAME_SHORT, + &ctrl_info->queue_groups[i]); if (rc) { dev_err(&pci_dev->dev, "irq %u init failed with error %d\n", @@ -7890,8 +7892,9 @@ static __maybe_unused int pqi_resume(struct pci_dev *pci_dev) pqi_free_interrupts(ctrl_info); pqi_change_irq_mode(ctrl_info, IRQ_MODE_INTX); rc = request_irq(pci_irq_vector(pci_dev, 0), pqi_irq_handler, - IRQF_SHARED, DRIVER_NAME_SHORT, - &ctrl_info->queue_groups[0]); + IRQF_SHARED | IRQF_USER_DATA, + DRIVER_NAME_SHORT, + &ctrl_info->queue_groups[0]); if (rc) { dev_err(&ctrl_info->pci_dev->dev, "irq %u init failed with error %d\n", diff --git a/drivers/scsi/snic/snic_isr.c b/drivers/scsi/snic/snic_isr.c index c4da3673f2ae..015ae0bc061b 100644 --- a/drivers/scsi/snic/snic_isr.c +++ b/drivers/scsi/snic/snic_isr.c @@ -136,9 +136,8 @@ snic_request_intr(struct snic *snic) for (i = 0; i < ARRAY_SIZE(snic->msix); i++) { ret = request_irq(pci_irq_vector(snic->pdev, i), snic->msix[i].isr, - 0, - snic->msix[i].devname, - snic->msix[i].devid); + IRQF_USER_DATA, + snic->msix[i].devname, snic->msix[i].devid); if (ret) { SNIC_HOST_ERR(snic->shost, "MSI-X: request_irq(%d) failed %d\n", diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c index f6bef7ad65e7..416a71d13169 100644 --- a/drivers/scsi/stex.c +++ b/drivers/scsi/stex.c @@ -1635,8 +1635,8 @@ static int stex_request_irq(struct st_hba *hba) hba->msi_enabled = 0; status = request_irq(pdev->irq, - (hba->cardtype == st_yel || hba->cardtype == st_P3) ? - stex_ss_intr : stex_intr, IRQF_SHARED, DRV_NAME, hba); + (hba->cardtype == st_yel || hba->cardtype == st_P3) ? stex_ss_intr : stex_intr, + IRQF_SHARED | IRQF_USER_DATA, DRV_NAME, hba); if (status != 0) { if (hba->msi_enabled) diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c index 57f6d63e4c40..9c38ffd7675f 100644 --- a/drivers/scsi/sym53c8xx_2/sym_glue.c +++ b/drivers/scsi/sym53c8xx_2/sym_glue.c @@ -1327,8 +1327,7 @@ static struct Scsi_Host *sym_attach(struct scsi_host_template *tpnt, int unit, * If we synchonize the C code with SCRIPTS on interrupt, * we do not want to share the INTR line at all. */ - if (request_irq(pdev->irq, sym53c8xx_intr, IRQF_SHARED, NAME53C8XX, - shost)) { + if (request_irq(pdev->irq, sym53c8xx_intr, IRQF_SHARED | IRQF_USER_DATA, NAME53C8XX, shost)) { printf_err("%s: request irq %u failure\n", sym_name(np), pdev->irq); goto attach_failed; diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 2ddf24466a62..807fbd94c31f 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -273,8 +273,8 @@ static inline int ufshcd_enable_irq(struct ufs_hba *hba) int ret = 0; if (!hba->is_irq_enabled) { - ret = request_irq(hba->irq, ufshcd_intr, IRQF_SHARED, UFSHCD, - hba); + ret = request_irq(hba->irq, ufshcd_intr, + IRQF_SHARED | IRQF_USER_DATA, UFSHCD, hba); if (ret) dev_err(hba->dev, "%s: request_irq failed, ret=%d\n", __func__, ret); @@ -8315,7 +8315,8 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *mmio_base, unsigned int irq) mb(); /* IRQ registration */ - err = devm_request_irq(dev, irq, ufshcd_intr, IRQF_SHARED, UFSHCD, hba); + err = devm_request_irq(dev, irq, ufshcd_intr, + IRQF_SHARED | IRQF_USER_DATA, UFSHCD, hba); if (err) { dev_err(hba->dev, "request irq failed\n"); goto exit_gating; diff --git a/drivers/scsi/vmw_pvscsi.c b/drivers/scsi/vmw_pvscsi.c index ecee4b3ff073..14885a807d2d 100644 --- a/drivers/scsi/vmw_pvscsi.c +++ b/drivers/scsi/vmw_pvscsi.c @@ -1499,11 +1499,14 @@ static int pvscsi_probe(struct pci_dev *pdev, const struct pci_device_id *id) printk(KERN_INFO "vmw_pvscsi: using MSI%s\n", adapter->dev->msix_enabled ? "-X" : ""); error = request_irq(pci_irq_vector(pdev, 0), pvscsi_isr, - 0, "vmw_pvscsi", adapter); + IRQF_USER_DATA, + "vmw_pvscsi", adapter); } else { printk(KERN_INFO "vmw_pvscsi: using INTx\n"); - error = request_irq(pci_irq_vector(pdev, 0), pvscsi_shared_isr, - IRQF_SHARED, "vmw_pvscsi", adapter); + error = request_irq(pci_irq_vector(pdev, 0), + pvscsi_shared_isr, + IRQF_SHARED | IRQF_USER_DATA, + "vmw_pvscsi", adapter); } if (error) { diff --git a/drivers/scsi/wd719x.c b/drivers/scsi/wd719x.c index e3310e9488d2..a27d1269736d 100644 --- a/drivers/scsi/wd719x.c +++ b/drivers/scsi/wd719x.c @@ -823,8 +823,8 @@ static int wd719x_board_found(struct Scsi_Host *sh) goto fail_free_params; } - ret = request_irq(wd->pdev->irq, wd719x_interrupt, IRQF_SHARED, - "wd719x", wd); + ret = request_irq(wd->pdev->irq, wd719x_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "wd719x", wd); if (ret) { dev_warn(&wd->pdev->dev, "unable to assign IRQ %d\n", wd->pdev->irq); diff --git a/drivers/slimbus/qcom-ctrl.c b/drivers/slimbus/qcom-ctrl.c index ad3e2e23f56e..8e7e50676162 100644 --- a/drivers/slimbus/qcom-ctrl.c +++ b/drivers/slimbus/qcom-ctrl.c @@ -563,7 +563,8 @@ static int qcom_slim_probe(struct platform_device *pdev) qcom_slim_prg_slew(pdev, ctrl); ret = devm_request_irq(&pdev->dev, ctrl->irq, qcom_slim_interrupt, - IRQF_TRIGGER_HIGH, "qcom_slim_irq", ctrl); + IRQF_TRIGGER_HIGH | IRQF_USER_DATA, + "qcom_slim_irq", ctrl); if (ret) { dev_err(&pdev->dev, "request IRQ failed\n"); goto err_request_irq_failed; diff --git a/drivers/spi/spi-altera.c b/drivers/spi/spi-altera.c index a5adf0d868fc..5ad3eb51e7bd 100644 --- a/drivers/spi/spi-altera.c +++ b/drivers/spi/spi-altera.c @@ -207,7 +207,8 @@ static int altera_spi_probe(struct platform_device *pdev) /* irq is optional */ hw->irq = platform_get_irq(pdev, 0); if (hw->irq >= 0) { - err = devm_request_irq(&pdev->dev, hw->irq, altera_spi_irq, 0, + err = devm_request_irq(&pdev->dev, hw->irq, altera_spi_irq, + IRQF_USER_DATA, pdev->name, master); if (err) goto exit; diff --git a/drivers/spi/spi-axi-spi-engine.c b/drivers/spi/spi-axi-spi-engine.c index 68cfc351b47f..189aa3723ef8 100644 --- a/drivers/spi/spi-axi-spi-engine.c +++ b/drivers/spi/spi-axi-spi-engine.c @@ -522,7 +522,8 @@ static int spi_engine_probe(struct platform_device *pdev) writel_relaxed(0xff, spi_engine->base + SPI_ENGINE_REG_INT_PENDING); writel_relaxed(0x00, spi_engine->base + SPI_ENGINE_REG_INT_ENABLE); - ret = request_irq(irq, spi_engine_irq, 0, pdev->name, master); + ret = request_irq(irq, spi_engine_irq, + IRQF_USER_DATA, pdev->name, master); if (ret) goto err_ref_clk_disable; diff --git a/drivers/spi/spi-cadence.c b/drivers/spi/spi-cadence.c index 7c88f74f7f47..792af77b42c9 100644 --- a/drivers/spi/spi-cadence.c +++ b/drivers/spi/spi-cadence.c @@ -614,7 +614,8 @@ static int cdns_spi_probe(struct platform_device *pdev) } ret = devm_request_irq(&pdev->dev, irq, cdns_spi_irq, - 0, pdev->name, master); + IRQF_USER_DATA, pdev->name, + master); if (ret != 0) { ret = -ENXIO; dev_err(&pdev->dev, "request_irq failed\n"); diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c index 2e822a56576a..2acec28544e3 100644 --- a/drivers/spi/spi-dw.c +++ b/drivers/spi/spi-dw.c @@ -489,8 +489,8 @@ int dw_spi_add_host(struct device *dev, struct dw_spi *dws) spi_controller_set_devdata(master, dws); - ret = request_irq(dws->irq, dw_spi_irq, IRQF_SHARED, dev_name(dev), - master); + ret = request_irq(dws->irq, dw_spi_irq, IRQF_SHARED | IRQF_USER_DATA, + dev_name(dev), master); if (ret < 0) { dev_err(dev, "can not get IRQ\n"); goto err_free_master; diff --git a/drivers/spi/spi-fsl-spi.c b/drivers/spi/spi-fsl-spi.c index 8f2e97857e8b..ae6a34fdc38f 100644 --- a/drivers/spi/spi-fsl-spi.c +++ b/drivers/spi/spi-fsl-spi.c @@ -654,7 +654,8 @@ static struct spi_master * fsl_spi_probe(struct device *dev, /* Register for SPI Interrupt */ ret = devm_request_irq(dev, mpc8xxx_spi->irq, fsl_spi_irq, - 0, "fsl_spi", mpc8xxx_spi); + IRQF_USER_DATA, "fsl_spi", + mpc8xxx_spi); if (ret != 0) goto err_probe; diff --git a/drivers/spi/spi-oc-tiny.c b/drivers/spi/spi-oc-tiny.c index 085f580be7ec..ee8dace61752 100644 --- a/drivers/spi/spi-oc-tiny.c +++ b/drivers/spi/spi-oc-tiny.c @@ -277,7 +277,8 @@ static int tiny_spi_probe(struct platform_device *pdev) hw->irq = platform_get_irq(pdev, 0); if (hw->irq >= 0) { init_completion(&hw->done); - err = devm_request_irq(&pdev->dev, hw->irq, tiny_spi_irq, 0, + err = devm_request_irq(&pdev->dev, hw->irq, tiny_spi_irq, + IRQF_USER_DATA, pdev->name, hw); if (err) goto exit; diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c index d84b893a64d7..072f49852e3e 100644 --- a/drivers/spi/spi-pxa2xx.c +++ b/drivers/spi/spi-pxa2xx.c @@ -1681,8 +1681,8 @@ static int pxa2xx_spi_probe(struct platform_device *pdev) | SSSR_ROR | SSSR_TUR; } - status = request_irq(ssp->irq, ssp_int, IRQF_SHARED, dev_name(dev), - drv_data); + status = request_irq(ssp->irq, ssp_int, IRQF_SHARED | IRQF_USER_DATA, + dev_name(dev), drv_data); if (status < 0) { dev_err(&pdev->dev, "cannot get IRQ %d\n", ssp->irq); goto out_error_master_alloc; diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c index 97d137591b18..0b4840f1049b 100644 --- a/drivers/spi/spi-topcliff-pch.c +++ b/drivers/spi/spi-topcliff-pch.c @@ -1370,7 +1370,7 @@ static int pch_spi_pd_probe(struct platform_device *plat_dev) } ret = request_irq(board_dat->pdev->irq, pch_spi_handler, - IRQF_SHARED, KBUILD_MODNAME, data); + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, data); if (ret) { dev_err(&plat_dev->dev, "%s request_irq failed\n", __func__); @@ -1503,7 +1503,8 @@ static int pch_spi_pd_resume(struct platform_device *pd_dev) if (!data->irq_reg_sts) { /* register IRQ */ retval = request_irq(board_dat->pdev->irq, pch_spi_handler, - IRQF_SHARED, KBUILD_MODNAME, data); + IRQF_SHARED | IRQF_USER_DATA, + KBUILD_MODNAME, data); if (retval < 0) { dev_err(&pd_dev->dev, "%s request_irq failed\n", __func__); diff --git a/drivers/spi/spi-xilinx.c b/drivers/spi/spi-xilinx.c index 63fedc49ae9c..0043addb8d4a 100644 --- a/drivers/spi/spi-xilinx.c +++ b/drivers/spi/spi-xilinx.c @@ -473,8 +473,9 @@ static int xilinx_spi_probe(struct platform_device *pdev) goto put_master; } else if (xspi->irq >= 0) { /* Register for SPI Interrupt */ - ret = devm_request_irq(&pdev->dev, xspi->irq, xilinx_spi_irq, 0, - dev_name(&pdev->dev), xspi); + ret = devm_request_irq(&pdev->dev, xspi->irq, xilinx_spi_irq, + IRQF_USER_DATA, + dev_name(&pdev->dev), xspi); if (ret) goto put_master; } diff --git a/drivers/spi/spi-zynqmp-gqspi.c b/drivers/spi/spi-zynqmp-gqspi.c index 9f83e1b17aa1..8ff24edd3720 100644 --- a/drivers/spi/spi-zynqmp-gqspi.c +++ b/drivers/spi/spi-zynqmp-gqspi.c @@ -1079,7 +1079,8 @@ static int zynqmp_qspi_probe(struct platform_device *pdev) goto clk_dis_all; } ret = devm_request_irq(&pdev->dev, xqspi->irq, zynqmp_qspi_irq, - 0, pdev->name, master); + IRQF_USER_DATA, pdev->name, + master); if (ret != 0) { ret = -ENXIO; dev_err(dev, "request_irq failed\n"); diff --git a/drivers/staging/android/vsoc.c b/drivers/staging/android/vsoc.c index 22571abcaa4e..43e40f31f9e5 100644 --- a/drivers/staging/android/vsoc.c +++ b/drivers/staging/android/vsoc.c @@ -922,7 +922,8 @@ static int vsoc_probe_device(struct pci_dev *pdev, shm_off_to_virtual_addr(region->region_begin_offset) + g_to_h_signal_table->interrupt_signalled_offset; result = request_irq(vsoc_dev.msix_entries[i].vector, - vsoc_interrupt, 0, + vsoc_interrupt, + IRQF_USER_DATA, vsoc_dev.regions_data[i].name, vsoc_dev.regions_data + i); if (result) { diff --git a/drivers/staging/axis-fifo/axis-fifo.c b/drivers/staging/axis-fifo/axis-fifo.c index 805437fa249a..af010e5dbfc6 100644 --- a/drivers/staging/axis-fifo/axis-fifo.c +++ b/drivers/staging/axis-fifo/axis-fifo.c @@ -983,7 +983,8 @@ static int axis_fifo_probe(struct platform_device *pdev) /* request IRQ */ fifo->irq = r_irq->start; - rc = request_irq(fifo->irq, &axis_fifo_irq, 0, DRIVER_NAME, fifo); + rc = request_irq(fifo->irq, &axis_fifo_irq, + IRQF_USER_DATA, DRIVER_NAME, fifo); if (rc) { dev_err(fifo->dt_device, "couldn't allocate interrupt %i\n", fifo->irq); diff --git a/drivers/staging/comedi/drivers/addi_apci_1032.c b/drivers/staging/comedi/drivers/addi_apci_1032.c index 560649be9d13..6503721d68c8 100644 --- a/drivers/staging/comedi/drivers/addi_apci_1032.c +++ b/drivers/staging/comedi/drivers/addi_apci_1032.c @@ -306,7 +306,8 @@ static int apci1032_auto_attach(struct comedi_device *dev, dev->iobase = pci_resource_start(pcidev, 1); apci1032_reset(dev); if (pcidev->irq > 0) { - ret = request_irq(pcidev->irq, apci1032_interrupt, IRQF_SHARED, + ret = request_irq(pcidev->irq, apci1032_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; diff --git a/drivers/staging/comedi/drivers/addi_apci_1500.c b/drivers/staging/comedi/drivers/addi_apci_1500.c index 45ad4ba92f94..d9e909f3b9bf 100644 --- a/drivers/staging/comedi/drivers/addi_apci_1500.c +++ b/drivers/staging/comedi/drivers/addi_apci_1500.c @@ -764,7 +764,8 @@ static int apci1500_auto_attach(struct comedi_device *dev, z8536_reset(dev); if (pcidev->irq > 0) { - ret = request_irq(pcidev->irq, apci1500_interrupt, IRQF_SHARED, + ret = request_irq(pcidev->irq, apci1500_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; diff --git a/drivers/staging/comedi/drivers/addi_apci_1564.c b/drivers/staging/comedi/drivers/addi_apci_1564.c index 10501fe6bb25..3ae718d28c74 100644 --- a/drivers/staging/comedi/drivers/addi_apci_1564.c +++ b/drivers/staging/comedi/drivers/addi_apci_1564.c @@ -682,7 +682,8 @@ static int apci1564_auto_attach(struct comedi_device *dev, apci1564_reset(dev); if (pcidev->irq > 0) { - ret = request_irq(pcidev->irq, apci1564_interrupt, IRQF_SHARED, + ret = request_irq(pcidev->irq, apci1564_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; diff --git a/drivers/staging/comedi/drivers/addi_apci_2032.c b/drivers/staging/comedi/drivers/addi_apci_2032.c index a122f3f3f5ec..f0f56908a809 100644 --- a/drivers/staging/comedi/drivers/addi_apci_2032.c +++ b/drivers/staging/comedi/drivers/addi_apci_2032.c @@ -238,7 +238,8 @@ static int apci2032_auto_attach(struct comedi_device *dev, if (pcidev->irq > 0) { ret = request_irq(pcidev->irq, apci2032_interrupt, - IRQF_SHARED, dev->board_name, dev); + IRQF_SHARED | IRQF_USER_DATA, + dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; } diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c index d2810fdd5e63..362863489892 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3120.c +++ b/drivers/staging/comedi/drivers/addi_apci_3120.c @@ -994,7 +994,8 @@ static int apci3120_auto_attach(struct comedi_device *dev, apci3120_reset(dev); if (pcidev->irq > 0) { - ret = request_irq(pcidev->irq, apci3120_interrupt, IRQF_SHARED, + ret = request_irq(pcidev->irq, apci3120_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) { dev->irq = pcidev->irq; diff --git a/drivers/staging/comedi/drivers/addi_apci_3xxx.c b/drivers/staging/comedi/drivers/addi_apci_3xxx.c index 55784f24e2a7..d64987dfdafa 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3xxx.c +++ b/drivers/staging/comedi/drivers/addi_apci_3xxx.c @@ -783,7 +783,8 @@ static int apci3xxx_auto_attach(struct comedi_device *dev, if (pcidev->irq > 0) { ret = request_irq(pcidev->irq, apci3xxx_irq_handler, - IRQF_SHARED, dev->board_name, dev); + IRQF_SHARED | IRQF_USER_DATA, + dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; } diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c index f4dba6271d0d..a6adf1caeb63 100644 --- a/drivers/staging/comedi/drivers/adl_pci9111.c +++ b/drivers/staging/comedi/drivers/adl_pci9111.c @@ -643,7 +643,8 @@ static int pci9111_auto_attach(struct comedi_device *dev, if (pcidev->irq) { ret = request_irq(pcidev->irq, pci9111_interrupt, - IRQF_SHARED, dev->board_name, dev); + IRQF_SHARED | IRQF_USER_DATA, + dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; } diff --git a/drivers/staging/comedi/drivers/adl_pci9118.c b/drivers/staging/comedi/drivers/adl_pci9118.c index 2528ca0ede6d..ca7ed001d7cb 100644 --- a/drivers/staging/comedi/drivers/adl_pci9118.c +++ b/drivers/staging/comedi/drivers/adl_pci9118.c @@ -1533,7 +1533,8 @@ static int pci9118_common_attach(struct comedi_device *dev, pci9118_reset(dev); if (pcidev->irq) { - ret = request_irq(pcidev->irq, pci9118_interrupt, IRQF_SHARED, + ret = request_irq(pcidev->irq, pci9118_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) { dev->irq = pcidev->irq; diff --git a/drivers/staging/comedi/drivers/adv_pci1710.c b/drivers/staging/comedi/drivers/adv_pci1710.c index 6a93b04f1fdf..50b74ae9404e 100644 --- a/drivers/staging/comedi/drivers/adv_pci1710.c +++ b/drivers/staging/comedi/drivers/adv_pci1710.c @@ -792,7 +792,8 @@ static int pci1710_auto_attach(struct comedi_device *dev, if (pcidev->irq) { ret = request_irq(pcidev->irq, pci1710_irq_handler, - IRQF_SHARED, dev->board_name, dev); + IRQF_SHARED | IRQF_USER_DATA, + dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; } diff --git a/drivers/staging/comedi/drivers/aio_iiro_16.c b/drivers/staging/comedi/drivers/aio_iiro_16.c index 41c9c56816ef..9ef45db38500 100644 --- a/drivers/staging/comedi/drivers/aio_iiro_16.c +++ b/drivers/staging/comedi/drivers/aio_iiro_16.c @@ -179,7 +179,8 @@ static int aio_iiro_16_attach(struct comedi_device *dev, * using IRQ 2-7, 10-12, 14, or 15. */ if ((1 << it->options[1]) & 0xdcfc) { - ret = request_irq(it->options[1], aio_iiro_16_cos, 0, + ret = request_irq(it->options[1], aio_iiro_16_cos, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/amplc_dio200_common.c b/drivers/staging/comedi/drivers/amplc_dio200_common.c index 8697dc02ffb4..d8a15e405087 100644 --- a/drivers/staging/comedi/drivers/amplc_dio200_common.c +++ b/drivers/staging/comedi/drivers/amplc_dio200_common.c @@ -841,8 +841,7 @@ int amplc_dio200_common_attach(struct comedi_device *dev, unsigned int irq, } if (irq && dev->read_subdev) { - if (request_irq(irq, dio200_interrupt, req_irq_flags, - dev->board_name, dev) >= 0) { + if (request_irq(irq, dio200_interrupt, req_irq_flags | IRQF_USER_DATA, dev->board_name, dev) >= 0) { dev->irq = irq; } else { dev_warn(dev->class_dev, diff --git a/drivers/staging/comedi/drivers/amplc_pc236_common.c b/drivers/staging/comedi/drivers/amplc_pc236_common.c index 01b90e4eca8a..b29133e1803d 100644 --- a/drivers/staging/comedi/drivers/amplc_pc236_common.c +++ b/drivers/staging/comedi/drivers/amplc_pc236_common.c @@ -155,8 +155,7 @@ int amplc_pc236_common_attach(struct comedi_device *dev, unsigned long iobase, s->type = COMEDI_SUBD_UNUSED; pc236_intr_update(dev, false); if (irq) { - if (request_irq(irq, pc236_interrupt, req_irq_flags, - dev->board_name, dev) >= 0) { + if (request_irq(irq, pc236_interrupt, req_irq_flags | IRQF_USER_DATA, dev->board_name, dev) >= 0) { dev->irq = irq; s->type = COMEDI_SUBD_DI; s->subdev_flags = SDF_READABLE | SDF_CMD_READ; diff --git a/drivers/staging/comedi/drivers/amplc_pci224.c b/drivers/staging/comedi/drivers/amplc_pci224.c index 657b736ef46d..d463432103c0 100644 --- a/drivers/staging/comedi/drivers/amplc_pci224.c +++ b/drivers/staging/comedi/drivers/amplc_pci224.c @@ -1082,7 +1082,8 @@ pci224_auto_attach(struct comedi_device *dev, unsigned long context_model) return ret; if (irq) { - ret = request_irq(irq, pci224_interrupt, IRQF_SHARED, + ret = request_irq(irq, pci224_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret < 0) { dev_err(dev->class_dev, diff --git a/drivers/staging/comedi/drivers/amplc_pci230.c b/drivers/staging/comedi/drivers/amplc_pci230.c index 08ffe26c5d43..3def00d21e70 100644 --- a/drivers/staging/comedi/drivers/amplc_pci230.c +++ b/drivers/staging/comedi/drivers/amplc_pci230.c @@ -2470,7 +2470,8 @@ static int pci230_auto_attach(struct comedi_device *dev, devpriv->daqio + PCI230_ADCCON); if (pci_dev->irq) { - rc = request_irq(pci_dev->irq, pci230_interrupt, IRQF_SHARED, + rc = request_irq(pci_dev->irq, pci230_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (rc == 0) dev->irq = pci_dev->irq; diff --git a/drivers/staging/comedi/drivers/cb_pcidas.c b/drivers/staging/comedi/drivers/cb_pcidas.c index 02ae00c95313..71860c4cd7e0 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas.c +++ b/drivers/staging/comedi/drivers/cb_pcidas.c @@ -1280,8 +1280,8 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, outl(INTCSR_INBOX_INTR_STATUS, devpriv->amcc + AMCC_OP_REG_INTCSR); - ret = request_irq(pcidev->irq, cb_pcidas_interrupt, IRQF_SHARED, - dev->board_name, dev); + ret = request_irq(pcidev->irq, cb_pcidas_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret) { dev_dbg(dev->class_dev, "unable to allocate irq %d\n", pcidev->irq); diff --git a/drivers/staging/comedi/drivers/cb_pcidas64.c b/drivers/staging/comedi/drivers/cb_pcidas64.c index e1774e09a320..669d5540f0a9 100644 --- a/drivers/staging/comedi/drivers/cb_pcidas64.c +++ b/drivers/staging/comedi/drivers/cb_pcidas64.c @@ -4034,8 +4034,9 @@ static int auto_attach(struct comedi_device *dev, init_plx9080(dev); init_stc_registers(dev); - retval = request_irq(pcidev->irq, handle_interrupt, IRQF_SHARED, - dev->board_name, dev); + retval = request_irq(pcidev->irq, handle_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, + dev); if (retval) { dev_dbg(dev->class_dev, "unable to allocate irq %u\n", pcidev->irq); diff --git a/drivers/staging/comedi/drivers/comedi_parport.c b/drivers/staging/comedi/drivers/comedi_parport.c index efaa57372aeb..41ef8b705546 100644 --- a/drivers/staging/comedi/drivers/comedi_parport.c +++ b/drivers/staging/comedi/drivers/comedi_parport.c @@ -232,7 +232,8 @@ static int parport_attach(struct comedi_device *dev, return ret; if (it->options[1]) { - ret = request_irq(it->options[1], parport_interrupt, 0, + ret = request_irq(it->options[1], parport_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/das16m1.c b/drivers/staging/comedi/drivers/das16m1.c index 4e36377b592a..b9cf4eb1dfab 100644 --- a/drivers/staging/comedi/drivers/das16m1.c +++ b/drivers/staging/comedi/drivers/das16m1.c @@ -524,7 +524,8 @@ static int das16m1_attach(struct comedi_device *dev, /* only irqs 2, 3, 4, 5, 6, 7, 10, 11, 12, 14, and 15 are valid */ if ((1 << it->options[1]) & 0xdcfc) { - ret = request_irq(it->options[1], das16m1_interrupt, 0, + ret = request_irq(it->options[1], das16m1_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/das1800.c b/drivers/staging/comedi/drivers/das1800.c index f16aa7e9f4f3..18684d080e1e 100644 --- a/drivers/staging/comedi/drivers/das1800.c +++ b/drivers/staging/comedi/drivers/das1800.c @@ -1197,7 +1197,8 @@ static int das1800_attach(struct comedi_device *dev, if (irq == 3 || irq == 5 || irq == 7 || irq == 10 || irq == 11 || irq == 15) { - ret = request_irq(irq, das1800_interrupt, 0, + ret = request_irq(irq, das1800_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) { dev->irq = irq; diff --git a/drivers/staging/comedi/drivers/das6402.c b/drivers/staging/comedi/drivers/das6402.c index f99211ec46de..a008aa26c9da 100644 --- a/drivers/staging/comedi/drivers/das6402.c +++ b/drivers/staging/comedi/drivers/das6402.c @@ -570,7 +570,8 @@ static int das6402_attach(struct comedi_device *dev, /* IRQs 2,3,5,6,7, 10,11,15 are valid for "enhanced" mode */ if ((1 << it->options[1]) & 0x8cec) { - ret = request_irq(it->options[1], das6402_interrupt, 0, + ret = request_irq(it->options[1], das6402_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) { dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/das800.c b/drivers/staging/comedi/drivers/das800.c index 8cf09ef3012f..b304b1beaa01 100644 --- a/drivers/staging/comedi/drivers/das800.c +++ b/drivers/staging/comedi/drivers/das800.c @@ -668,8 +668,9 @@ static int das800_attach(struct comedi_device *dev, struct comedi_devconfig *it) dev->board_name = board->name; if (irq > 1 && irq <= 7) { - ret = request_irq(irq, das800_interrupt, 0, dev->board_name, - dev); + ret = request_irq(irq, das800_interrupt, + IRQF_USER_DATA, + dev->board_name, dev); if (ret == 0) dev->irq = irq; } diff --git a/drivers/staging/comedi/drivers/dmm32at.c b/drivers/staging/comedi/drivers/dmm32at.c index 75693cdde313..021323879051 100644 --- a/drivers/staging/comedi/drivers/dmm32at.c +++ b/drivers/staging/comedi/drivers/dmm32at.c @@ -558,7 +558,8 @@ static int dmm32at_attach(struct comedi_device *dev, } if (it->options[1]) { - ret = request_irq(it->options[1], dmm32at_isr, 0, + ret = request_irq(it->options[1], dmm32at_isr, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/dt2811.c b/drivers/staging/comedi/drivers/dt2811.c index 05207a519755..fd85efad6201 100644 --- a/drivers/staging/comedi/drivers/dt2811.c +++ b/drivers/staging/comedi/drivers/dt2811.c @@ -565,7 +565,8 @@ static int dt2811_attach(struct comedi_device *dev, struct comedi_devconfig *it) /* IRQ's 2,3,5,7 are valid for async command support */ if (it->options[1] <= 7 && (BIT(it->options[1]) & 0xac)) { - ret = request_irq(it->options[1], dt2811_interrupt, 0, + ret = request_irq(it->options[1], dt2811_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/dt2814.c b/drivers/staging/comedi/drivers/dt2814.c index d2c715737361..b52d2003f2fc 100644 --- a/drivers/staging/comedi/drivers/dt2814.c +++ b/drivers/staging/comedi/drivers/dt2814.c @@ -245,7 +245,8 @@ static int dt2814_attach(struct comedi_device *dev, struct comedi_devconfig *it) i = inb(dev->iobase + DT2814_DATA); if (it->options[1]) { - ret = request_irq(it->options[1], dt2814_interrupt, 0, + ret = request_irq(it->options[1], dt2814_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/dt282x.c b/drivers/staging/comedi/drivers/dt282x.c index 3be927f1d3a9..9e7a8f774f3c 100644 --- a/drivers/staging/comedi/drivers/dt282x.c +++ b/drivers/staging/comedi/drivers/dt282x.c @@ -1045,7 +1045,7 @@ static void dt282x_alloc_dma(struct comedi_device *dev, dma_chan[1] < 5 || dma_chan[1] > 7) return; - if (request_irq(irq_num, dt282x_interrupt, 0, dev->board_name, dev)) + if (request_irq(irq_num, dt282x_interrupt, IRQF_USER_DATA, dev->board_name, dev)) return; /* DMA uses two 4K buffers with separate DMA channels */ diff --git a/drivers/staging/comedi/drivers/dt3000.c b/drivers/staging/comedi/drivers/dt3000.c index 2edf3ee91300..0d7d59217343 100644 --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -637,7 +637,8 @@ static int dt3000_auto_attach(struct comedi_device *dev, return -ENOMEM; if (pcidev->irq) { - ret = request_irq(pcidev->irq, dt3k_interrupt, IRQF_SHARED, + ret = request_irq(pcidev->irq, dt3k_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; diff --git a/drivers/staging/comedi/drivers/gsc_hpdi.c b/drivers/staging/comedi/drivers/gsc_hpdi.c index 4bdf44d82879..73295b0dd890 100644 --- a/drivers/staging/comedi/drivers/gsc_hpdi.c +++ b/drivers/staging/comedi/drivers/gsc_hpdi.c @@ -607,8 +607,7 @@ static int gsc_hpdi_auto_attach(struct comedi_device *dev, gsc_hpdi_init_plx9080(dev); /* get irq */ - if (request_irq(pcidev->irq, gsc_hpdi_interrupt, IRQF_SHARED, - dev->board_name, dev)) { + if (request_irq(pcidev->irq, gsc_hpdi_interrupt, IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev)) { dev_warn(dev->class_dev, "unable to allocate irq %u\n", pcidev->irq); return -EINVAL; diff --git a/drivers/staging/comedi/drivers/me4000.c b/drivers/staging/comedi/drivers/me4000.c index ee53571a8969..cb183b99cbad 100644 --- a/drivers/staging/comedi/drivers/me4000.c +++ b/drivers/staging/comedi/drivers/me4000.c @@ -1129,7 +1129,8 @@ static int me4000_auto_attach(struct comedi_device *dev, me4000_reset(dev); if (pcidev->irq > 0) { - result = request_irq(pcidev->irq, me4000_ai_isr, IRQF_SHARED, + result = request_irq(pcidev->irq, me4000_ai_isr, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (result == 0) { dev->irq = pcidev->irq; diff --git a/drivers/staging/comedi/drivers/ni_6527.c b/drivers/staging/comedi/drivers/ni_6527.c index 4d1eccb5041d..5611b3d34564 100644 --- a/drivers/staging/comedi/drivers/ni_6527.c +++ b/drivers/staging/comedi/drivers/ni_6527.c @@ -401,8 +401,8 @@ static int ni6527_auto_attach(struct comedi_device *dev, ni6527_reset(dev); - ret = request_irq(pcidev->irq, ni6527_interrupt, IRQF_SHARED, - dev->board_name, dev); + ret = request_irq(pcidev->irq, ni6527_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; diff --git a/drivers/staging/comedi/drivers/ni_65xx.c b/drivers/staging/comedi/drivers/ni_65xx.c index 996074e471d3..06aba4d9fb29 100644 --- a/drivers/staging/comedi/drivers/ni_65xx.c +++ b/drivers/staging/comedi/drivers/ni_65xx.c @@ -658,7 +658,8 @@ static int ni_65xx_auto_attach(struct comedi_device *dev, writeb(0x00, dev->mmio + NI_65XX_CTRL_REG); if (pcidev->irq) { - ret = request_irq(pcidev->irq, ni_65xx_interrupt, IRQF_SHARED, + ret = request_irq(pcidev->irq, ni_65xx_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; diff --git a/drivers/staging/comedi/drivers/ni_660x.c b/drivers/staging/comedi/drivers/ni_660x.c index e70a461e723f..c68a98309ea6 100644 --- a/drivers/staging/comedi/drivers/ni_660x.c +++ b/drivers/staging/comedi/drivers/ni_660x.c @@ -1184,8 +1184,8 @@ static int ni_660x_auto_attach(struct comedi_device *dev, for (i = 0; i < board->n_chips; ++i) set_tio_counterswap(dev, i); - ret = request_irq(pcidev->irq, ni_660x_interrupt, IRQF_SHARED, - dev->board_name, dev); + ret = request_irq(pcidev->irq, ni_660x_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret < 0) { dev_warn(dev->class_dev, " irq not available\n"); return ret; diff --git a/drivers/staging/comedi/drivers/ni_at_a2150.c b/drivers/staging/comedi/drivers/ni_at_a2150.c index 76e8d047f71e..98018c27ea26 100644 --- a/drivers/staging/comedi/drivers/ni_at_a2150.c +++ b/drivers/staging/comedi/drivers/ni_at_a2150.c @@ -649,7 +649,7 @@ static void a2150_alloc_irq_and_dma(struct comedi_device *dev, !((1 << irq_num) & 0xdef8) || !((1 << dma_chan) & 0xef)) return; - if (request_irq(irq_num, a2150_interrupt, 0, dev->board_name, dev)) + if (request_irq(irq_num, a2150_interrupt, IRQF_USER_DATA, dev->board_name, dev)) return; /* DMA uses 1 buffer */ diff --git a/drivers/staging/comedi/drivers/ni_atmio.c b/drivers/staging/comedi/drivers/ni_atmio.c index 2b7bfe0dd7f3..1b333b8b85a0 100644 --- a/drivers/staging/comedi/drivers/ni_atmio.c +++ b/drivers/staging/comedi/drivers/ni_atmio.c @@ -318,7 +318,8 @@ static int ni_atmio_attach(struct comedi_device *dev, if (irq != 0) { if (irq > 15 || ni_irqpin[irq] == -1) return -EINVAL; - ret = request_irq(irq, ni_E_interrupt, 0, + ret = request_irq(irq, ni_E_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret < 0) return -EINVAL; diff --git a/drivers/staging/comedi/drivers/ni_atmio16d.c b/drivers/staging/comedi/drivers/ni_atmio16d.c index 68ad9676f962..482516f2a7a3 100644 --- a/drivers/staging/comedi/drivers/ni_atmio16d.c +++ b/drivers/staging/comedi/drivers/ni_atmio16d.c @@ -601,7 +601,8 @@ static int atmio16d_attach(struct comedi_device *dev, reset_atmio16d(dev); if (it->options[1]) { - ret = request_irq(it->options[1], atmio16d_interrupt, 0, + ret = request_irq(it->options[1], atmio16d_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/ni_labpc_common.c b/drivers/staging/comedi/drivers/ni_labpc_common.c index 406952f5521d..c7043ef7a767 100644 --- a/drivers/staging/comedi/drivers/ni_labpc_common.c +++ b/drivers/staging/comedi/drivers/ni_labpc_common.c @@ -1217,8 +1217,9 @@ int labpc_common_attach(struct comedi_device *dev, } if (irq) { - ret = request_irq(irq, labpc_interrupt, isr_flags, - dev->board_name, dev); + ret = request_irq(irq, labpc_interrupt, + isr_flags | IRQF_USER_DATA, dev->board_name, + dev); if (ret == 0) dev->irq = irq; } diff --git a/drivers/staging/comedi/drivers/ni_pcidio.c b/drivers/staging/comedi/drivers/ni_pcidio.c index b9a0dc6eac44..ac7aff073f44 100644 --- a/drivers/staging/comedi/drivers/ni_pcidio.c +++ b/drivers/staging/comedi/drivers/ni_pcidio.c @@ -949,7 +949,8 @@ static int nidio_auto_attach(struct comedi_device *dev, irq = pcidev->irq; if (irq) { - ret = request_irq(irq, nidio_interrupt, IRQF_SHARED, + ret = request_irq(irq, nidio_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = irq; diff --git a/drivers/staging/comedi/drivers/ni_pcimio.c b/drivers/staging/comedi/drivers/ni_pcimio.c index 14b26fffe049..cdbac51a690c 100644 --- a/drivers/staging/comedi/drivers/ni_pcimio.c +++ b/drivers/staging/comedi/drivers/ni_pcimio.c @@ -1360,7 +1360,8 @@ static int pcimio_auto_attach(struct comedi_device *dev, irq = pcidev->irq; if (irq) { - ret = request_irq(irq, ni_E_interrupt, IRQF_SHARED, + ret = request_irq(irq, ni_E_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = irq; diff --git a/drivers/staging/comedi/drivers/pcl711.c b/drivers/staging/comedi/drivers/pcl711.c index a5937206bf1c..de61ca3abf33 100644 --- a/drivers/staging/comedi/drivers/pcl711.c +++ b/drivers/staging/comedi/drivers/pcl711.c @@ -425,7 +425,8 @@ static int pcl711_attach(struct comedi_device *dev, struct comedi_devconfig *it) return ret; if (it->options[1] && it->options[1] <= board->maxirq) { - ret = request_irq(it->options[1], pcl711_interrupt, 0, + ret = request_irq(it->options[1], pcl711_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/pcl726.c b/drivers/staging/comedi/drivers/pcl726.c index 0963d85873a9..669a13124343 100644 --- a/drivers/staging/comedi/drivers/pcl726.c +++ b/drivers/staging/comedi/drivers/pcl726.c @@ -328,7 +328,8 @@ static int pcl726_attach(struct comedi_device *dev, * user config option is valid and the board supports interrupts. */ if (it->options[1] && (board->irq_mask & (1 << it->options[1]))) { - ret = request_irq(it->options[1], pcl726_interrupt, 0, + ret = request_irq(it->options[1], pcl726_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) { /* External trigger source is from Pin-17 of CN3 */ diff --git a/drivers/staging/comedi/drivers/pcl812.c b/drivers/staging/comedi/drivers/pcl812.c index aefc1b849cf7..fe1af6ad4893 100644 --- a/drivers/staging/comedi/drivers/pcl812.c +++ b/drivers/staging/comedi/drivers/pcl812.c @@ -1152,7 +1152,8 @@ static int pcl812_attach(struct comedi_device *dev, struct comedi_devconfig *it) return -ENOMEM; if ((1 << it->options[1]) & board->irq_bits) { - ret = request_irq(it->options[1], pcl812_interrupt, 0, + ret = request_irq(it->options[1], pcl812_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/pcl816.c b/drivers/staging/comedi/drivers/pcl816.c index d87cf6d4a161..3976db1227af 100644 --- a/drivers/staging/comedi/drivers/pcl816.c +++ b/drivers/staging/comedi/drivers/pcl816.c @@ -579,7 +579,7 @@ static void pcl816_alloc_irq_and_dma(struct comedi_device *dev, !(dma_chan == 3 || dma_chan == 1)) return; - if (request_irq(irq_num, pcl816_interrupt, 0, dev->board_name, dev)) + if (request_irq(irq_num, pcl816_interrupt, IRQF_USER_DATA, dev->board_name, dev)) return; /* DMA uses two 16K buffers */ diff --git a/drivers/staging/comedi/drivers/pcl818.c b/drivers/staging/comedi/drivers/pcl818.c index 0af5315d4357..d207a9048a82 100644 --- a/drivers/staging/comedi/drivers/pcl818.c +++ b/drivers/staging/comedi/drivers/pcl818.c @@ -997,7 +997,8 @@ static int pcl818_attach(struct comedi_device *dev, struct comedi_devconfig *it) /* we can use IRQ 2-7 for async command support */ if (it->options[1] >= 2 && it->options[1] <= 7) { - ret = request_irq(it->options[1], pcl818_interrupt, 0, + ret = request_irq(it->options[1], pcl818_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/pcmmio.c b/drivers/staging/comedi/drivers/pcmmio.c index 72af1776f785..4e08b0c12cf3 100644 --- a/drivers/staging/comedi/drivers/pcmmio.c +++ b/drivers/staging/comedi/drivers/pcmmio.c @@ -682,7 +682,8 @@ static int pcmmio_attach(struct comedi_device *dev, struct comedi_devconfig *it) pcmmio_reset(dev); if (it->options[1]) { - ret = request_irq(it->options[1], interrupt_pcmmio, 0, + ret = request_irq(it->options[1], interrupt_pcmmio, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) { dev->irq = it->options[1]; diff --git a/drivers/staging/comedi/drivers/pcmuio.c b/drivers/staging/comedi/drivers/pcmuio.c index 743fb226e2e4..cdcc5fca7402 100644 --- a/drivers/staging/comedi/drivers/pcmuio.c +++ b/drivers/staging/comedi/drivers/pcmuio.c @@ -545,7 +545,8 @@ static int pcmuio_attach(struct comedi_device *dev, struct comedi_devconfig *it) if (it->options[1]) { /* request the irq for the 1st asic */ - ret = request_irq(it->options[1], pcmuio_interrupt, 0, + ret = request_irq(it->options[1], pcmuio_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = it->options[1]; @@ -557,7 +558,8 @@ static int pcmuio_attach(struct comedi_device *dev, struct comedi_devconfig *it) devpriv->irq2 = it->options[2]; } else if (it->options[2]) { /* request the irq for the 2nd asic */ - ret = request_irq(it->options[2], pcmuio_interrupt, 0, + ret = request_irq(it->options[2], pcmuio_interrupt, + IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) devpriv->irq2 = it->options[2]; diff --git a/drivers/staging/comedi/drivers/rtd520.c b/drivers/staging/comedi/drivers/rtd520.c index bb400e08f0bc..17460b0fb2e2 100644 --- a/drivers/staging/comedi/drivers/rtd520.c +++ b/drivers/staging/comedi/drivers/rtd520.c @@ -1238,7 +1238,8 @@ static int rtd_auto_attach(struct comedi_device *dev, rtd_pci_latency_quirk(dev, pcidev); if (pcidev->irq) { - ret = request_irq(pcidev->irq, rtd_interrupt, IRQF_SHARED, + ret = request_irq(pcidev->irq, rtd_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) dev->irq = pcidev->irq; diff --git a/drivers/staging/comedi/drivers/s626.c b/drivers/staging/comedi/drivers/s626.c index f5af6f4069dc..2c6e135b8838 100644 --- a/drivers/staging/comedi/drivers/s626.c +++ b/drivers/staging/comedi/drivers/s626.c @@ -2449,7 +2449,8 @@ static int s626_auto_attach(struct comedi_device *dev, return ret; if (pcidev->irq) { - ret = request_irq(pcidev->irq, s626_irq_handler, IRQF_SHARED, + ret = request_irq(pcidev->irq, s626_irq_handler, + IRQF_SHARED | IRQF_USER_DATA, dev->board_name, dev); if (ret == 0) diff --git a/drivers/staging/gasket/gasket_interrupt.c b/drivers/staging/gasket/gasket_interrupt.c index ad5657d213f0..c0c73b1bad90 100644 --- a/drivers/staging/gasket/gasket_interrupt.c +++ b/drivers/staging/gasket/gasket_interrupt.c @@ -206,7 +206,8 @@ gasket_interrupt_msix_init(struct gasket_interrupt_data *interrupt_data) for (i = 0; i < interrupt_data->num_interrupts; i++) { ret = request_irq(interrupt_data->msix_entries[i].vector, - gasket_msix_interrupt_handler, 0, + gasket_msix_interrupt_handler, + IRQF_USER_DATA, interrupt_data->name, interrupt_data); if (ret) { diff --git a/drivers/staging/goldfish/goldfish_audio.c b/drivers/staging/goldfish/goldfish_audio.c index d4520490cf6d..8796e7af3541 100644 --- a/drivers/staging/goldfish/goldfish_audio.c +++ b/drivers/staging/goldfish/goldfish_audio.c @@ -328,8 +328,9 @@ static int goldfish_audio_probe(struct platform_device *pdev) data->write_buffer2 = data->buffer_virt + WRITE_BUFFER_SIZE; data->read_buffer = data->buffer_virt + 2 * WRITE_BUFFER_SIZE; - ret = devm_request_irq(&pdev->dev, data->irq, goldfish_audio_interrupt, - IRQF_SHARED, pdev->name, data); + ret = devm_request_irq(&pdev->dev, data->irq, + goldfish_audio_interrupt, + IRQF_SHARED | IRQF_USER_DATA, pdev->name, data); if (ret) { dev_err(&pdev->dev, "request_irq failed\n"); return ret; diff --git a/drivers/staging/iio/adc/ad7606.c b/drivers/staging/iio/adc/ad7606.c index 7308fa8fbb4c..64140840b4c1 100644 --- a/drivers/staging/iio/adc/ad7606.c +++ b/drivers/staging/iio/adc/ad7606.c @@ -480,7 +480,8 @@ int ad7606_probe(struct device *dev, int irq, void __iomem *base_address, if (ret) dev_warn(st->dev, "failed to RESET: no RESET GPIO specified\n"); - ret = request_irq(irq, ad7606_interrupt, IRQF_TRIGGER_FALLING, name, + ret = request_irq(irq, ad7606_interrupt, + IRQF_TRIGGER_FALLING | IRQF_USER_DATA, name, indio_dev); if (ret) goto error_disable_reg; diff --git a/drivers/staging/media/bcm2048/radio-bcm2048.c b/drivers/staging/media/bcm2048/radio-bcm2048.c index d9b02ff66259..063801da275b 100644 --- a/drivers/staging/media/bcm2048/radio-bcm2048.c +++ b/drivers/staging/media/bcm2048/radio-bcm2048.c @@ -2593,8 +2593,8 @@ static int bcm2048_i2c_driver_probe(struct i2c_client *client) INIT_WORK(&bdev->work, bcm2048_work); if (client->irq) { - err = request_irq(client->irq, - bcm2048_handler, IRQF_TRIGGER_FALLING, + err = request_irq(client->irq, bcm2048_handler, + IRQF_TRIGGER_FALLING | IRQF_USER_DATA, client->name, bdev); if (err < 0) { dev_err(&client->dev, "Could not request IRQ\n"); diff --git a/drivers/staging/media/zoran/zoran_card.c b/drivers/staging/media/zoran/zoran_card.c index 94dadbba7cd5..e3c7b11958dd 100644 --- a/drivers/staging/media/zoran/zoran_card.c +++ b/drivers/staging/media/zoran/zoran_card.c @@ -1293,7 +1293,7 @@ static int zoran_probe(struct pci_dev *pdev, const struct pci_device_id *ent) } result = request_irq(zr->pci_dev->irq, zoran_irq, - IRQF_SHARED, ZR_DEVNAME(zr), zr); + IRQF_SHARED | IRQF_USER_DATA, ZR_DEVNAME(zr), zr); if (result < 0) { if (result == -EINVAL) { dprintk(1, diff --git a/drivers/staging/most/dim2/dim2.c b/drivers/staging/most/dim2/dim2.c index 31fbc1a75b06..d2dbd23c4841 100644 --- a/drivers/staging/most/dim2/dim2.c +++ b/drivers/staging/most/dim2/dim2.c @@ -802,7 +802,8 @@ static int dim2_probe(struct platform_device *pdev) goto err_shutdown_dim; } - ret = devm_request_irq(&pdev->dev, irq, dim2_ahb_isr, 0, + ret = devm_request_irq(&pdev->dev, irq, dim2_ahb_isr, + IRQF_USER_DATA, "dim2_ahb0_int", dev); if (ret) { dev_err(&pdev->dev, "failed to request ahb0_int irq %d\n", irq); @@ -816,7 +817,8 @@ static int dim2_probe(struct platform_device *pdev) goto err_shutdown_dim; } - ret = devm_request_irq(&pdev->dev, irq, dim2_mlb_isr, 0, + ret = devm_request_irq(&pdev->dev, irq, dim2_mlb_isr, + IRQF_USER_DATA, "dim2_mlb_int", dev); if (ret) { dev_err(&pdev->dev, "failed to request mlb_int irq %d\n", irq); diff --git a/drivers/staging/most/i2c/i2c.c b/drivers/staging/most/i2c/i2c.c index 4a4fc1005932..60a33ea89b1e 100644 --- a/drivers/staging/most/i2c/i2c.c +++ b/drivers/staging/most/i2c/i2c.c @@ -88,7 +88,8 @@ static int configure_channel(struct most_interface *most_iface, return -ENOENT; } dev->rx.int_disabled = false; - ret = request_irq(dev->client->irq, most_irq_handler, 0, + ret = request_irq(dev->client->irq, most_irq_handler, + IRQF_USER_DATA, dev->client->name, dev); if (ret) { pr_err("request_irq(%d) failed: %d\n", diff --git a/drivers/staging/olpc_dcon/olpc_dcon_xo_1.c b/drivers/staging/olpc_dcon/olpc_dcon_xo_1.c index 80b8d4153414..d089114098ef 100644 --- a/drivers/staging/olpc_dcon/olpc_dcon_xo_1.c +++ b/drivers/staging/olpc_dcon/olpc_dcon_xo_1.c @@ -98,7 +98,7 @@ static int dcon_init_xo_1(struct dcon_priv *dcon) outb(lob, 0x4d0); /* Register the interrupt handler */ - if (request_irq(DCON_IRQ, &dcon_interrupt, 0, "DCON", dcon)) { + if (request_irq(DCON_IRQ, &dcon_interrupt, IRQF_USER_DATA, "DCON", dcon)) { pr_err("failed to request DCON's irq\n"); return -EIO; } diff --git a/drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c b/drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c index 838daa2be3ef..e5efb7421f92 100644 --- a/drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c +++ b/drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c @@ -71,7 +71,7 @@ static int dcon_init_xo_1_5(struct dcon_priv *dcon) /* we're sharing the IRQ with ACPI */ irq = acpi_gbl_FADT.sci_interrupt; - if (request_irq(irq, &dcon_interrupt, IRQF_SHARED, "DCON", dcon)) { + if (request_irq(irq, &dcon_interrupt, IRQF_SHARED | IRQF_USER_DATA, "DCON", dcon)) { pr_err("DCON (IRQ%d) allocation failed\n", irq); return 1; } diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c index b2314636dc89..e7240abab54e 100644 --- a/drivers/staging/pi433/pi433_if.c +++ b/drivers/staging/pi433/pi433_if.c @@ -1036,10 +1036,8 @@ static int setup_gpio(struct pi433_device *device) device->gpiod[i] = ERR_PTR(-EINVAL); return device->irq_num[i]; } - retval = request_irq(device->irq_num[i], - DIO_irq_handler[i], - 0, /* flags */ - name, + retval = request_irq(device->irq_num[i], DIO_irq_handler[i], + IRQF_USER_DATA, name, device); if (retval) diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c index 96f265eee007..6070e3da1be6 100644 --- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c @@ -1081,7 +1081,7 @@ static short _rtl92e_init(struct net_device *dev) 0); rtl92e_irq_disable(dev); - if (request_irq(dev->irq, _rtl92e_irq, IRQF_SHARED, dev->name, dev)) { + if (request_irq(dev->irq, _rtl92e_irq, IRQF_SHARED | IRQF_USER_DATA, dev->name, dev)) { netdev_err(dev, "Error allocating IRQ %d", dev->irq); return -1; } diff --git a/drivers/staging/rtlwifi/pci.c b/drivers/staging/rtlwifi/pci.c index 4bb5703bd715..473d9cac1060 100644 --- a/drivers/staging/rtlwifi/pci.c +++ b/drivers/staging/rtlwifi/pci.c @@ -2135,7 +2135,7 @@ static int rtl_pci_intr_mode_msi(struct ieee80211_hw *hw) return ret; ret = request_irq(rtlpci->pdev->irq, &_rtl_pci_interrupt, - IRQF_SHARED, KBUILD_MODNAME, hw); + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, hw); if (ret < 0) { pci_disable_msi(rtlpci->pdev); return ret; @@ -2156,7 +2156,7 @@ static int rtl_pci_intr_mode_legacy(struct ieee80211_hw *hw) int ret; ret = request_irq(rtlpci->pdev->irq, &_rtl_pci_interrupt, - IRQF_SHARED, KBUILD_MODNAME, hw); + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, hw); if (ret < 0) return ret; diff --git a/drivers/staging/rts5208/rtsx.c b/drivers/staging/rts5208/rtsx.c index fa597953e9a0..bf11d96531e6 100644 --- a/drivers/staging/rts5208/rtsx.c +++ b/drivers/staging/rts5208/rtsx.c @@ -243,9 +243,7 @@ static int rtsx_acquire_irq(struct rtsx_dev *dev) dev_info(&dev->pci->dev, "%s: chip->msi_en = %d, pci->irq = %d\n", __func__, chip->msi_en, dev->pci->irq); - if (request_irq(dev->pci->irq, rtsx_interrupt, - chip->msi_en ? 0 : IRQF_SHARED, - CR_DRIVER_NAME, dev)) { + if (request_irq(dev->pci->irq, rtsx_interrupt, (chip->msi_en ? 0 : IRQF_SHARED) | IRQF_USER_DATA, CR_DRIVER_NAME, dev)) { dev_err(&dev->pci->dev, "rtsx: unable to grab IRQ %d, disabling device\n", dev->pci->irq); diff --git a/drivers/staging/speakup/serialio.c b/drivers/staging/speakup/serialio.c index 177a2988641c..49dbedd2be0d 100644 --- a/drivers/staging/speakup/serialio.c +++ b/drivers/staging/speakup/serialio.c @@ -130,8 +130,9 @@ static void start_serial_interrupt(int irq) if (!synth->read_buff_add) return; - rv = request_irq(irq, synth_readbuf_handler, IRQF_SHARED, - "serial", (void *)synth_readbuf_handler); + rv = request_irq(irq, synth_readbuf_handler, + IRQF_SHARED | IRQF_USER_DATA, "serial", + (void *)synth_readbuf_handler); if (rv) pr_err("Unable to request Speakup serial I R Q\n"); diff --git a/drivers/staging/vt6655/device_main.c b/drivers/staging/vt6655/device_main.c index c9097e7367d8..32544b8b75d3 100644 --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -1227,7 +1227,7 @@ static int vnt_start(struct ieee80211_hw *hw) return -ENOMEM; ret = request_irq(priv->pcid->irq, vnt_interrupt, - IRQF_SHARED, "vt6655", priv); + IRQF_SHARED | IRQF_USER_DATA, "vt6655", priv); if (ret) { dev_dbg(&priv->pcid->dev, "failed to start irq\n"); goto err_free_rings; diff --git a/drivers/thermal/ti-soc-thermal/ti-bandgap.c b/drivers/thermal/ti-soc-thermal/ti-bandgap.c index 097328d8e943..fd1326340b2a 100644 --- a/drivers/thermal/ti-soc-thermal/ti-bandgap.c +++ b/drivers/thermal/ti-soc-thermal/ti-bandgap.c @@ -772,8 +772,10 @@ static int ti_bandgap_tshut_init(struct ti_bandgap *bgp, return status; } - status = request_irq(gpio_to_irq(gpio_nr), ti_bandgap_tshut_irq_handler, - IRQF_TRIGGER_RISING, "tshut", NULL); + status = request_irq(gpio_to_irq(gpio_nr), + ti_bandgap_tshut_irq_handler, + IRQF_TRIGGER_RISING | IRQF_USER_DATA, "tshut", + NULL); if (status) { gpio_free(gpio_nr); dev_err(bgp->dev, "request irq failed for TSHUT"); diff --git a/drivers/thunderbolt/nhi.c b/drivers/thunderbolt/nhi.c index 9aa44f9762a3..262bff1e829b 100644 --- a/drivers/thunderbolt/nhi.c +++ b/drivers/thunderbolt/nhi.c @@ -400,7 +400,8 @@ static int ring_request_msix(struct tb_ring *ring, bool no_suspend) return ring->irq; irqflags = no_suspend ? IRQF_NO_SUSPEND : 0; - return request_irq(ring->irq, ring_msix, irqflags, "thunderbolt", ring); + return request_irq(ring->irq, ring_msix, irqflags | IRQF_USER_DATA, + "thunderbolt", ring); } static void ring_release_msix(struct tb_ring *ring) @@ -986,7 +987,8 @@ static int nhi_init_msi(struct tb_nhi *nhi) return irq; res = devm_request_irq(&pdev->dev, irq, nhi_msi, - IRQF_NO_SUSPEND, "thunderbolt", nhi); + IRQF_NO_SUSPEND | IRQF_USER_DATA, + "thunderbolt", nhi); if (res) { dev_err(&pdev->dev, "request_irq failed, aborting\n"); return res; diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c index 4562c8060d09..b564886c39ac 100644 --- a/drivers/tty/cyclades.c +++ b/drivers/tty/cyclades.c @@ -3306,8 +3306,7 @@ static int __init cy_detect_isa(void) } /* allocate IRQ */ - if (request_irq(cy_isa_irq, cyy_interrupt, - 0, "Cyclom-Y", card)) { + if (request_irq(cy_isa_irq, cyy_interrupt, IRQF_USER_DATA, "Cyclom-Y", card)) { printk(KERN_ERR "Cyclom-Y/ISA found at 0x%lx, but " "could not allocate IRQ#%d.\n", (unsigned long)cy_isa_address, cy_isa_irq); @@ -3790,7 +3789,8 @@ static int cy_pci_probe(struct pci_dev *pdev, device_id == PCI_DEVICE_ID_CYCLOM_Y_Hi) { /* allocate IRQ */ retval = request_irq(irq, cyy_interrupt, - IRQF_SHARED, "Cyclom-Y", card); + IRQF_SHARED | IRQF_USER_DATA, "Cyclom-Y", + card); if (retval) { dev_err(&pdev->dev, "could not allocate IRQ\n"); goto err_unmap; @@ -3809,7 +3809,8 @@ static int cy_pci_probe(struct pci_dev *pdev, /* allocate IRQ only if board has an IRQ */ if (irq != 0 && irq != 255) { retval = request_irq(irq, cyz_interrupt, - IRQF_SHARED, "Cyclades-Z", card); + IRQF_SHARED | IRQF_USER_DATA, + "Cyclades-Z", card); if (retval) { dev_err(&pdev->dev, "could not allocate IRQ\n"); goto err_unmap; diff --git a/drivers/tty/goldfish.c b/drivers/tty/goldfish.c index c8c5cdfc5e19..608922f7c22d 100644 --- a/drivers/tty/goldfish.c +++ b/drivers/tty/goldfish.c @@ -378,8 +378,8 @@ static int goldfish_tty_probe(struct platform_device *pdev) writel(GOLDFISH_TTY_CMD_INT_DISABLE, base + GOLDFISH_TTY_REG_CMD); - ret = request_irq(irq, goldfish_tty_interrupt, IRQF_SHARED, - "goldfish_tty", qtty); + ret = request_irq(irq, goldfish_tty_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "goldfish_tty", qtty); if (ret) { pr_err("goldfish_tty: No IRQ available!\n"); goto err_dec_line_count; diff --git a/drivers/tty/hvc/hvc_irq.c b/drivers/tty/hvc/hvc_irq.c index 4b255dfef2cc..e12dff7e9658 100644 --- a/drivers/tty/hvc/hvc_irq.c +++ b/drivers/tty/hvc/hvc_irq.c @@ -34,8 +34,8 @@ int notifier_add_irq(struct hvc_struct *hp, int irq) hp->irq_requested = 0; return 0; } - rc = request_irq(irq, hvc_handle_interrupt, hp->flags, - "hvc_console", hp); + rc = request_irq(irq, hvc_handle_interrupt, + hp->flags | IRQF_USER_DATA, "hvc_console", hp); if (!rc) hp->irq_requested = 1; return rc; diff --git a/drivers/tty/isicom.c b/drivers/tty/isicom.c index e04a43e89f6b..803226775c8e 100644 --- a/drivers/tty/isicom.c +++ b/drivers/tty/isicom.c @@ -1559,7 +1559,7 @@ static int isicom_probe(struct pci_dev *pdev, } retval = request_irq(board->irq, isicom_interrupt, - IRQF_SHARED, ISICOM_NAME, board); + IRQF_SHARED | IRQF_USER_DATA, ISICOM_NAME, board); if (retval < 0) { dev_err(&pdev->dev, "Could not install handler at Irq %d. " "Card%d will be disabled.\n", board->irq, index + 1); diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c index 9d00ff5ef961..772497d057de 100644 --- a/drivers/tty/mxser.c +++ b/drivers/tty/mxser.c @@ -2413,8 +2413,8 @@ static int mxser_initbrd(struct mxser_board *brd) info->ioaddr + UART_IER); } - retval = request_irq(brd->irq, mxser_interrupt, IRQF_SHARED, "mxser", - brd); + retval = request_irq(brd->irq, mxser_interrupt, + IRQF_SHARED | IRQF_USER_DATA, "mxser", brd); if (retval) { for (i = 0; i < brd->info->nports; i++) tty_port_destroy(&brd->ports[i].port); diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c index e441221e04b9..2b161a64a0c8 100644 --- a/drivers/tty/serial/8250/8250_core.c +++ b/drivers/tty/serial/8250/8250_core.c @@ -210,7 +210,8 @@ static int serial_link_irq_chain(struct uart_8250_port *up) spin_unlock_irq(&i->lock); irq_flags |= up->port.irqflags; ret = request_irq(up->port.irq, serial8250_interrupt, - irq_flags, up->port.name, i); + irq_flags | IRQF_USER_DATA, up->port.name, + i); if (ret < 0) serial_do_unlink(i, up); } diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c index 0089aa305ef9..4d600c39b518 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -499,7 +499,7 @@ exar_pci_probe(struct pci_dev *pcidev, const struct pci_device_id *ent) uart.port.dev = &pcidev->dev; rc = devm_request_irq(&pcidev->dev, uart.port.irq, exar_misc_handler, - IRQF_SHARED, "exar_uart", priv); + IRQF_SHARED | IRQF_USER_DATA, "exar_uart", priv); if (rc) return rc; diff --git a/drivers/tty/serial/altera_jtaguart.c b/drivers/tty/serial/altera_jtaguart.c index c90e503d6b57..4f54bf976dca 100644 --- a/drivers/tty/serial/altera_jtaguart.c +++ b/drivers/tty/serial/altera_jtaguart.c @@ -213,8 +213,8 @@ static int altera_jtaguart_startup(struct uart_port *port) unsigned long flags; int ret; - ret = request_irq(port->irq, altera_jtaguart_interrupt, 0, - DRV_NAME, port); + ret = request_irq(port->irq, altera_jtaguart_interrupt, + IRQF_USER_DATA, DRV_NAME, port); if (ret) { pr_err(DRV_NAME ": unable to attach Altera JTAG UART %d " "interrupt vector=%d\n", port->line, port->irq); diff --git a/drivers/tty/serial/altera_uart.c b/drivers/tty/serial/altera_uart.c index 0e487ce091ac..150c193dfb9c 100644 --- a/drivers/tty/serial/altera_uart.c +++ b/drivers/tty/serial/altera_uart.c @@ -328,8 +328,9 @@ static int altera_uart_startup(struct uart_port *port) } else { int ret; - ret = request_irq(port->irq, altera_uart_interrupt, 0, - DRV_NAME, port); + ret = request_irq(port->irq, altera_uart_interrupt, + IRQF_USER_DATA, DRV_NAME, + port); if (ret) { pr_err(DRV_NAME ": unable to attach Altera UART %d " "interrupt vector=%d\n", port->line, port->irq); diff --git a/drivers/tty/serial/arc_uart.c b/drivers/tty/serial/arc_uart.c index d904a3a345e7..63f9d11a93da 100644 --- a/drivers/tty/serial/arc_uart.c +++ b/drivers/tty/serial/arc_uart.c @@ -339,7 +339,7 @@ static int arc_serial_startup(struct uart_port *port) /* Before we hook up the ISR, Disable all UART Interrupts */ UART_ALL_IRQ_DISABLE(port); - if (request_irq(port->irq, arc_serial_isr, 0, "arc uart rx-tx", port)) { + if (request_irq(port->irq, arc_serial_isr, IRQF_USER_DATA, "arc uart rx-tx", port)) { dev_warn(port->dev, "Unable to attach ARC UART intr\n"); return -EBUSY; } diff --git a/drivers/tty/serial/digicolor-usart.c b/drivers/tty/serial/digicolor-usart.c index f460cca139e2..a19ea82d617e 100644 --- a/drivers/tty/serial/digicolor-usart.c +++ b/drivers/tty/serial/digicolor-usart.c @@ -496,7 +496,8 @@ static int digicolor_uart_probe(struct platform_device *pdev) INIT_DELAYED_WORK(&dp->rx_poll_work, digicolor_rx_poll); - ret = devm_request_irq(&pdev->dev, dp->port.irq, digicolor_uart_int, 0, + ret = devm_request_irq(&pdev->dev, dp->port.irq, digicolor_uart_int, + IRQF_USER_DATA, dev_name(&pdev->dev), &dp->port); if (ret) return ret; diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c index debdd1b9e01a..39950a1c45a8 100644 --- a/drivers/tty/serial/fsl_lpuart.c +++ b/drivers/tty/serial/fsl_lpuart.c @@ -2205,12 +2205,16 @@ static int lpuart_probe(struct platform_device *pdev) if (lpuart_is_32(sport)) { lpuart_reg.cons = LPUART32_CONSOLE; - ret = devm_request_irq(&pdev->dev, sport->port.irq, lpuart32_int, 0, - DRIVER_NAME, sport); + ret = devm_request_irq(&pdev->dev, sport->port.irq, + lpuart32_int, + IRQF_USER_DATA, + DRIVER_NAME, sport); } else { lpuart_reg.cons = LPUART_CONSOLE; - ret = devm_request_irq(&pdev->dev, sport->port.irq, lpuart_int, 0, - DRIVER_NAME, sport); + ret = devm_request_irq(&pdev->dev, sport->port.irq, + lpuart_int, + IRQF_USER_DATA, + DRIVER_NAME, sport); } if (ret) diff --git a/drivers/tty/serial/ifx6x60.c b/drivers/tty/serial/ifx6x60.c index ffefd218761e..4d796a82f311 100644 --- a/drivers/tty/serial/ifx6x60.c +++ b/drivers/tty/serial/ifx6x60.c @@ -1163,8 +1163,8 @@ static int ifx_spi_spi_probe(struct spi_device *spi) ret = request_irq(gpio_to_irq(ifx_dev->gpio.reset_out), ifx_spi_reset_interrupt, - IRQF_TRIGGER_RISING|IRQF_TRIGGER_FALLING, DRVNAME, - ifx_dev); + IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_USER_DATA, + DRVNAME, ifx_dev); if (ret) { dev_err(&spi->dev, "Unable to get irq %x\n", gpio_to_irq(ifx_dev->gpio.reset_out)); @@ -1174,7 +1174,8 @@ static int ifx_spi_spi_probe(struct spi_device *spi) ret = ifx_spi_reset(ifx_dev); ret = request_irq(gpio_to_irq(ifx_dev->gpio.srdy), - ifx_spi_srdy_interrupt, IRQF_TRIGGER_RISING, DRVNAME, + ifx_spi_srdy_interrupt, + IRQF_TRIGGER_RISING | IRQF_USER_DATA, DRVNAME, ifx_dev); if (ret) { dev_err(&spi->dev, "Unable to get irq %x", diff --git a/drivers/tty/serial/jsm/jsm_driver.c b/drivers/tty/serial/jsm/jsm_driver.c index 592e51d8944e..2cf37114dbdd 100644 --- a/drivers/tty/serial/jsm/jsm_driver.c +++ b/drivers/tty/serial/jsm/jsm_driver.c @@ -215,7 +215,8 @@ static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent) return -ENXIO; } - rc = request_irq(brd->irq, brd->bd_ops->intr, IRQF_SHARED, "JSM", brd); + rc = request_irq(brd->irq, brd->bd_ops->intr, + IRQF_SHARED | IRQF_USER_DATA, "JSM", brd); if (rc) { dev_warn(&pdev->dev, "Failed to hook IRQ %d\n", brd->irq); goto out_iounmap; diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c index 371569a0fd00..437c22dbc7e9 100644 --- a/drivers/tty/serial/max3100.c +++ b/drivers/tty/serial/max3100.c @@ -603,8 +603,7 @@ static int max3100_startup(struct uart_port *port) } INIT_WORK(&s->work, max3100_work); - if (request_irq(s->irq, max3100_irq, - IRQF_TRIGGER_FALLING, "max3100", s) < 0) { + if (request_irq(s->irq, max3100_irq, IRQF_TRIGGER_FALLING | IRQF_USER_DATA, "max3100", s) < 0) { dev_warn(&s->spi->dev, "cannot allocate irq %d\n", s->irq); s->irq = 0; destroy_workqueue(s->workqueue); diff --git a/drivers/tty/serial/men_z135_uart.c b/drivers/tty/serial/men_z135_uart.c index ef89534dd760..ca87d7c99f76 100644 --- a/drivers/tty/serial/men_z135_uart.c +++ b/drivers/tty/serial/men_z135_uart.c @@ -440,8 +440,8 @@ static int men_z135_request_irq(struct men_z135_port *uart) struct uart_port *port = &uart->port; int err = 0; - err = request_irq(port->irq, men_z135_intr, IRQF_SHARED, - "men_z135_intr", uart); + err = request_irq(port->irq, men_z135_intr, + IRQF_SHARED | IRQF_USER_DATA, "men_z135_intr", uart); if (err) dev_err(dev, "Error %d getting interrupt\n", err); diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c index 9ed121f08a54..019d58228f55 100644 --- a/drivers/tty/serial/pch_uart.c +++ b/drivers/tty/serial/pch_uart.c @@ -1326,8 +1326,8 @@ static int pch_uart_startup(struct uart_port *port) if (ret < 0) return ret; - ret = request_irq(priv->port.irq, pch_uart_interrupt, IRQF_SHARED, - priv->irq_name, priv); + ret = request_irq(priv->port.irq, pch_uart_interrupt, + IRQF_SHARED | IRQF_USER_DATA, priv->irq_name, priv); if (ret < 0) return ret; diff --git a/drivers/tty/serial/rp2.c b/drivers/tty/serial/rp2.c index 5690c09cc041..2697acd6bff8 100644 --- a/drivers/tty/serial/rp2.c +++ b/drivers/tty/serial/rp2.c @@ -781,7 +781,7 @@ static int rp2_probe(struct pci_dev *pdev, card->ports = ports; rc = devm_request_irq(&pdev->dev, pdev->irq, rp2_uart_interrupt, - IRQF_SHARED, DRV_NAME, card); + IRQF_SHARED | IRQF_USER_DATA, DRV_NAME, card); if (rc) return rc; diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 268098681856..c99e7ce41db4 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -1298,7 +1298,7 @@ static int sc16is7xx_probe(struct device *dev, /* Setup interrupt */ ret = devm_request_irq(dev, irq, sc16is7xx_irq, - flags, dev_name(dev), s); + flags | IRQF_USER_DATA, dev_name(dev), s); if (!ret) return 0; diff --git a/drivers/tty/serial/timbuart.c b/drivers/tty/serial/timbuart.c index 19d38b504e27..7febe4bfb676 100644 --- a/drivers/tty/serial/timbuart.c +++ b/drivers/tty/serial/timbuart.c @@ -250,8 +250,8 @@ static int timbuart_startup(struct uart_port *port) iowrite32(RXBAF | RXBF | RXTT | CTS_DELTA, port->membase + TIMBUART_IER); - return request_irq(port->irq, timbuart_handleinterrupt, IRQF_SHARED, - "timb-uart", uart); + return request_irq(port->irq, timbuart_handleinterrupt, + IRQF_SHARED | IRQF_USER_DATA, "timb-uart", uart); } static void timbuart_shutdown(struct uart_port *port) diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c index b8b912b5a8b9..5d5a89b2fa60 100644 --- a/drivers/tty/serial/uartlite.c +++ b/drivers/tty/serial/uartlite.c @@ -280,7 +280,8 @@ static int ulite_startup(struct uart_port *port) return ret; } - ret = request_irq(port->irq, ulite_isr, IRQF_SHARED | IRQF_TRIGGER_RISING, + ret = request_irq(port->irq, ulite_isr, + IRQF_SHARED | IRQF_TRIGGER_RISING | IRQF_USER_DATA, "uartlite", port); if (ret) return ret; diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c index 094f2958cb2b..76ebb8db3d4c 100644 --- a/drivers/tty/serial/xilinx_uartps.c +++ b/drivers/tty/serial/xilinx_uartps.c @@ -861,7 +861,9 @@ static int cdns_uart_startup(struct uart_port *port) spin_unlock_irqrestore(&port->lock, flags); - ret = request_irq(port->irq, cdns_uart_isr, 0, CDNS_UART_NAME, port); + ret = request_irq(port->irq, cdns_uart_isr, + IRQF_USER_DATA, CDNS_UART_NAME, + port); if (ret) { dev_err(port->dev, "request_irq '%d' failed with %d\n", port->irq, ret); diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c index d55c858d6058..3a885131f45e 100644 --- a/drivers/tty/synclink.c +++ b/drivers/tty/synclink.c @@ -4032,8 +4032,7 @@ static int mgsl_claim_resources(struct mgsl_struct *info) } info->io_addr_requested = true; - if ( request_irq(info->irq_level,mgsl_interrupt,info->irq_flags, - info->device_name, info ) < 0 ) { + if (request_irq(info->irq_level, mgsl_interrupt, info->irq_flags | IRQF_USER_DATA, info->device_name, info) < 0 ) { printk( "%s(%d):Can't request interrupt on device %s IRQ=%d\n", __FILE__,__LINE__,info->device_name, info->irq_level ); goto errout; diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c index e8a9047de451..4b9d1b347673 100644 --- a/drivers/tty/synclink_gt.c +++ b/drivers/tty/synclink_gt.c @@ -3635,11 +3635,7 @@ static void device_init(int adapter_num, struct pci_dev *pdev) alloc_dma_bufs(port_array[i]); } - if (request_irq(port_array[0]->irq_level, - slgt_interrupt, - port_array[0]->irq_flags, - port_array[0]->device_name, - port_array[0]) < 0) { + if (request_irq(port_array[0]->irq_level, slgt_interrupt, port_array[0]->irq_flags | IRQF_USER_DATA, port_array[0]->device_name, port_array[0]) < 0) { DBGERR(("%s request_irq failed IRQ=%d\n", port_array[0]->device_name, port_array[0]->irq_level)); diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c index fcb91bf7a15b..50b1e41501cf 100644 --- a/drivers/tty/synclinkmp.c +++ b/drivers/tty/synclinkmp.c @@ -3837,10 +3837,9 @@ static int device_init(int adapter_num, struct pci_dev *pdev) } rc = request_irq(port_array[0]->irq_level, - synclinkmp_interrupt, - port_array[0]->irq_flags, - port_array[0]->device_name, - port_array[0]); + synclinkmp_interrupt, + port_array[0]->irq_flags | IRQF_USER_DATA, + port_array[0]->device_name, port_array[0]); if ( rc ) { printk( "%s(%d):%s Can't request interrupt, IRQ=%d\n", __FILE__,__LINE__, diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c index 131342280b46..b9f21495141b 100644 --- a/drivers/uio/uio.c +++ b/drivers/uio/uio.c @@ -973,7 +973,8 @@ int __uio_register_device(struct module *owner, * freed until they are released. */ ret = request_irq(info->irq, uio_interrupt, - info->irq_flags, info->name, idev); + info->irq_flags | IRQF_USER_DATA, + info->name, idev); if (ret) { info->uio_dev = NULL; goto err_request_irq; diff --git a/drivers/usb/c67x00/c67x00-drv.c b/drivers/usb/c67x00/c67x00-drv.c index 53838e7d4eef..db2532530953 100644 --- a/drivers/usb/c67x00/c67x00-drv.c +++ b/drivers/usb/c67x00/c67x00-drv.c @@ -146,7 +146,8 @@ static int c67x00_drv_probe(struct platform_device *pdev) c67x00_ll_init(c67x00); c67x00_ll_hpi_reg_init(c67x00); - ret = request_irq(res2->start, c67x00_irq, 0, pdev->name, c67x00); + ret = request_irq(res2->start, c67x00_irq, + IRQF_USER_DATA, pdev->name, c67x00); if (ret) { dev_err(&pdev->dev, "Cannot claim IRQ\n"); goto request_irq_failed; diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c index 7bfcbb23c2a4..7c8d5edb9819 100644 --- a/drivers/usb/chipidea/core.c +++ b/drivers/usb/chipidea/core.c @@ -1060,8 +1060,9 @@ static int ci_hdrc_probe(struct platform_device *pdev) } } - ret = devm_request_irq(dev, ci->irq, ci_irq, IRQF_SHARED, - ci->platdata->name, ci); + ret = devm_request_irq(dev, ci->irq, ci_irq, + IRQF_SHARED | IRQF_USER_DATA, + ci->platdata->name, ci); if (ret) goto stop; diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index be47f96e810d..29790c4110fe 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@ -2675,8 +2675,9 @@ static int usb_hcd_request_irqs(struct usb_hcd *hcd, snprintf(hcd->irq_descr, sizeof(hcd->irq_descr), "%s:usb%d", hcd->driver->description, hcd->self.busnum); - retval = request_irq(irqnum, &usb_hcd_irq, irqflags, - hcd->irq_descr, hcd); + retval = request_irq(irqnum, &usb_hcd_irq, + irqflags | IRQF_USER_DATA, + hcd->irq_descr, hcd); if (retval != 0) { dev_err(hcd->self.controller, "request interrupt %d failed\n", diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c index 55ef3cc2701b..55bf64169647 100644 --- a/drivers/usb/dwc2/gadget.c +++ b/drivers/usb/dwc2/gadget.c @@ -4779,7 +4779,8 @@ int dwc2_gadget_init(struct dwc2_hsotg *hsotg) } ret = devm_request_irq(hsotg->dev, hsotg->irq, dwc2_hsotg_irq, - IRQF_SHARED, dev_name(hsotg->dev), hsotg); + IRQF_SHARED | IRQF_USER_DATA, + dev_name(hsotg->dev), hsotg); if (ret < 0) { dev_err(dev, "cannot claim IRQ for gadget\n"); return ret; diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c index c0b64d483552..153e2dff52ec 100644 --- a/drivers/usb/dwc2/platform.c +++ b/drivers/usb/dwc2/platform.c @@ -427,7 +427,8 @@ static int dwc2_driver_probe(struct platform_device *dev) dev_dbg(hsotg->dev, "registering common handler for irq%d\n", hsotg->irq); retval = devm_request_irq(hsotg->dev, hsotg->irq, - dwc2_handle_common_intr, IRQF_SHARED, + dwc2_handle_common_intr, + IRQF_SHARED | IRQF_USER_DATA, dev_name(hsotg->dev), hsotg); if (retval) return retval; diff --git a/drivers/usb/gadget/udc/amd5536udc_pci.c b/drivers/usb/gadget/udc/amd5536udc_pci.c index 57b6f66331cf..8a629e2031ee 100644 --- a/drivers/usb/gadget/udc/amd5536udc_pci.c +++ b/drivers/usb/gadget/udc/amd5536udc_pci.c @@ -140,7 +140,7 @@ static int udc_pci_probe( dev->rxfifo = (u32 __iomem *)(dev->virt_addr + UDC_RXFIFO_ADDR); dev->txfifo = (u32 __iomem *)(dev->virt_addr + UDC_TXFIFO_ADDR); - if (request_irq(pdev->irq, udc_irq, IRQF_SHARED, name, dev) != 0) { + if (request_irq(pdev->irq, udc_irq, IRQF_SHARED | IRQF_USER_DATA, name, dev) != 0) { dev_dbg(&pdev->dev, "request_irq(%d) fail\n", pdev->irq); retval = -EBUSY; goto err_irq; diff --git a/drivers/usb/gadget/udc/bdc/bdc_udc.c b/drivers/usb/gadget/udc/bdc/bdc_udc.c index 7bfd58c846f7..6ddd31aa7f95 100644 --- a/drivers/usb/gadget/udc/bdc/bdc_udc.c +++ b/drivers/usb/gadget/udc/bdc/bdc_udc.c @@ -530,7 +530,8 @@ int bdc_udc_init(struct bdc *bdc) bdc->gadget.name = BRCM_BDC_NAME; ret = devm_request_irq(bdc->dev, bdc->irq, bdc_udc_interrupt, - IRQF_SHARED , BRCM_BDC_NAME, bdc); + IRQF_SHARED | IRQF_USER_DATA, BRCM_BDC_NAME, + bdc); if (ret) { dev_err(bdc->dev, "failed to request irq #%d %d\n", diff --git a/drivers/usb/gadget/udc/fotg210-udc.c b/drivers/usb/gadget/udc/fotg210-udc.c index bc6abaea907d..19a0a5449b60 100644 --- a/drivers/usb/gadget/udc/fotg210-udc.c +++ b/drivers/usb/gadget/udc/fotg210-udc.c @@ -1168,8 +1168,8 @@ static int fotg210_udc_probe(struct platform_device *pdev) fotg210_disable_unplug(fotg210); - ret = request_irq(ires->start, fotg210_irq, IRQF_SHARED, - udc_name, fotg210); + ret = request_irq(ires->start, fotg210_irq, + IRQF_SHARED | IRQF_USER_DATA, udc_name, fotg210); if (ret < 0) { pr_err("request_irq error (%d)\n", ret); goto err_req; diff --git a/drivers/usb/gadget/udc/fusb300_udc.c b/drivers/usb/gadget/udc/fusb300_udc.c index 263804d154a7..94daba652c50 100644 --- a/drivers/usb/gadget/udc/fusb300_udc.c +++ b/drivers/usb/gadget/udc/fusb300_udc.c @@ -1418,15 +1418,15 @@ static int fusb300_probe(struct platform_device *pdev) fusb300->gadget.name = udc_name; fusb300->reg = reg; - ret = request_irq(ires->start, fusb300_irq, IRQF_SHARED, - udc_name, fusb300); + ret = request_irq(ires->start, fusb300_irq, + IRQF_SHARED | IRQF_USER_DATA, udc_name, fusb300); if (ret < 0) { pr_err("request_irq error (%d)\n", ret); goto clean_up; } ret = request_irq(ires1->start, fusb300_irq, - IRQF_SHARED, udc_name, fusb300); + IRQF_SHARED | IRQF_USER_DATA, udc_name, fusb300); if (ret < 0) { pr_err("request_irq1 error (%d)\n", ret); goto clean_up; diff --git a/drivers/usb/gadget/udc/goku_udc.c b/drivers/usb/gadget/udc/goku_udc.c index c3721225b61e..cdad54ba2cd7 100644 --- a/drivers/usb/gadget/udc/goku_udc.c +++ b/drivers/usb/gadget/udc/goku_udc.c @@ -1798,8 +1798,7 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id) /* init to known state, then setup irqs */ udc_reset(dev); udc_reinit (dev); - if (request_irq(pdev->irq, goku_irq, IRQF_SHARED, - driver_name, dev) != 0) { + if (request_irq(pdev->irq, goku_irq, IRQF_SHARED | IRQF_USER_DATA, driver_name, dev) != 0) { DBG(dev, "request interrupt %d failed\n", pdev->irq); retval = -EBUSY; goto err; diff --git a/drivers/usb/gadget/udc/m66592-udc.c b/drivers/usb/gadget/udc/m66592-udc.c index a8288df6aadf..7f8f97ec63f3 100644 --- a/drivers/usb/gadget/udc/m66592-udc.c +++ b/drivers/usb/gadget/udc/m66592-udc.c @@ -1592,8 +1592,8 @@ static int m66592_probe(struct platform_device *pdev) timer_setup(&m66592->timer, m66592_timer, 0); m66592->reg = reg; - ret = request_irq(ires->start, m66592_irq, IRQF_SHARED, - udc_name, m66592); + ret = request_irq(ires->start, m66592_irq, + IRQF_SHARED | IRQF_USER_DATA, udc_name, m66592); if (ret < 0) { pr_err("request_irq error (%d)\n", ret); goto clean_up; diff --git a/drivers/usb/gadget/udc/mv_u3d_core.c b/drivers/usb/gadget/udc/mv_u3d_core.c index 35e02a8d0091..4b5b71e916fe 100644 --- a/drivers/usb/gadget/udc/mv_u3d_core.c +++ b/drivers/usb/gadget/udc/mv_u3d_core.c @@ -1922,8 +1922,7 @@ static int mv_u3d_probe(struct platform_device *dev) goto err_get_irq; } u3d->irq = r->start; - if (request_irq(u3d->irq, mv_u3d_irq, - IRQF_SHARED, driver_name, u3d)) { + if (request_irq(u3d->irq, mv_u3d_irq, IRQF_SHARED | IRQF_USER_DATA, driver_name, u3d)) { u3d->irq = 0; dev_err(&dev->dev, "Request irq %d for u3d failed\n", u3d->irq); diff --git a/drivers/usb/gadget/udc/mv_udc_core.c b/drivers/usb/gadget/udc/mv_udc_core.c index cafde053788b..99f8ab17f39d 100644 --- a/drivers/usb/gadget/udc/mv_udc_core.c +++ b/drivers/usb/gadget/udc/mv_udc_core.c @@ -2246,8 +2246,7 @@ static int mv_udc_probe(struct platform_device *pdev) goto err_destroy_dma; } udc->irq = r->start; - if (devm_request_irq(&pdev->dev, udc->irq, mv_udc_irq, - IRQF_SHARED, driver_name, udc)) { + if (devm_request_irq(&pdev->dev, udc->irq, mv_udc_irq, IRQF_SHARED | IRQF_USER_DATA, driver_name, udc)) { dev_err(&pdev->dev, "Request irq %d for UDC failed\n", udc->irq); retval = -ENODEV; diff --git a/drivers/usb/gadget/udc/net2272.c b/drivers/usb/gadget/udc/net2272.c index b77f3126580e..1fc269c98ffd 100644 --- a/drivers/usb/gadget/udc/net2272.c +++ b/drivers/usb/gadget/udc/net2272.c @@ -2259,7 +2259,8 @@ net2272_probe_fin(struct net2272 *dev, unsigned int irqflags) net2272_usb_reset(dev); net2272_usb_reinit(dev); - ret = request_irq(dev->irq, net2272_irq, irqflags, driver_name, dev); + ret = request_irq(dev->irq, net2272_irq, irqflags | IRQF_USER_DATA, + driver_name, dev); if (ret) { dev_err(dev->dev, "request interrupt %i failed\n", dev->irq); goto err; diff --git a/drivers/usb/gadget/udc/net2280.c b/drivers/usb/gadget/udc/net2280.c index e7dae5379e04..1b2b012fcac8 100644 --- a/drivers/usb/gadget/udc/net2280.c +++ b/drivers/usb/gadget/udc/net2280.c @@ -3713,8 +3713,7 @@ static int net2280_probe(struct pci_dev *pdev, const struct pci_device_id *id) if (pci_enable_msi(pdev)) ep_err(dev, "Failed to enable MSI mode\n"); - if (request_irq(pdev->irq, net2280_irq, IRQF_SHARED, - driver_name, dev)) { + if (request_irq(pdev->irq, net2280_irq, IRQF_SHARED | IRQF_USER_DATA, driver_name, dev)) { ep_err(dev, "request interrupt %d failed\n", pdev->irq); retval = -EBUSY; goto done; diff --git a/drivers/usb/gadget/udc/pch_udc.c b/drivers/usb/gadget/udc/pch_udc.c index 55c8c8abeacd..84e44f14ef5d 100644 --- a/drivers/usb/gadget/udc/pch_udc.c +++ b/drivers/usb/gadget/udc/pch_udc.c @@ -1394,8 +1394,9 @@ static int pch_vbus_gpio_init(struct pch_udc_dev *dev, int vbus_gpio_port) irq_num = gpio_to_irq(vbus_gpio_port); if (irq_num > 0) { irq_set_irq_type(irq_num, IRQ_TYPE_EDGE_BOTH); - err = request_irq(irq_num, pch_vbus_gpio_irq, 0, - "vbus_detect", dev); + err = request_irq(irq_num, pch_vbus_gpio_irq, + IRQF_USER_DATA, + "vbus_detect", dev); if (!err) { dev->vbus_gpio.intr = irq_num; INIT_WORK(&dev->vbus_gpio.irq_work_rise, @@ -3106,7 +3107,8 @@ static int pch_udc_probe(struct pci_dev *pdev, pci_enable_msi(pdev); retval = devm_request_irq(&pdev->dev, pdev->irq, pch_udc_isr, - IRQF_SHARED, KBUILD_MODNAME, dev); + IRQF_SHARED | IRQF_USER_DATA, + KBUILD_MODNAME, dev); if (retval) { dev_err(&pdev->dev, "%s: request_irq(%d) fail\n", __func__, pdev->irq); diff --git a/drivers/usb/gadget/udc/pxa27x_udc.c b/drivers/usb/gadget/udc/pxa27x_udc.c index 014233252299..e72c51764c7a 100644 --- a/drivers/usb/gadget/udc/pxa27x_udc.c +++ b/drivers/usb/gadget/udc/pxa27x_udc.c @@ -2420,7 +2420,8 @@ static int pxa_udc_probe(struct platform_device *pdev) /* irq setup after old hardware state is cleaned up */ retval = devm_request_irq(&pdev->dev, udc->irq, pxa_udc_irq, - IRQF_SHARED, driver_name, udc); + IRQF_SHARED | IRQF_USER_DATA, driver_name, + udc); if (retval != 0) { dev_err(udc->dev, "%s: can't get irq %i, err %d\n", driver_name, udc->irq, retval); diff --git a/drivers/usb/gadget/udc/r8a66597-udc.c b/drivers/usb/gadget/udc/r8a66597-udc.c index 11e25a3f4f1f..1370c43c1f79 100644 --- a/drivers/usb/gadget/udc/r8a66597-udc.c +++ b/drivers/usb/gadget/udc/r8a66597-udc.c @@ -1895,8 +1895,9 @@ static int r8a66597_probe(struct platform_device *pdev) disable_controller(r8a66597); /* make sure controller is disabled */ - ret = devm_request_irq(dev, irq, r8a66597_irq, IRQF_SHARED, - udc_name, r8a66597); + ret = devm_request_irq(dev, irq, r8a66597_irq, + IRQF_SHARED | IRQF_USER_DATA, udc_name, + r8a66597); if (ret < 0) { dev_err(dev, "request_irq error (%d)\n", ret); goto clean_up2; diff --git a/drivers/usb/gadget/udc/snps_udc_plat.c b/drivers/usb/gadget/udc/snps_udc_plat.c index 32f1d3e90c26..31d3fbba1932 100644 --- a/drivers/usb/gadget/udc/snps_udc_plat.c +++ b/drivers/usb/gadget/udc/snps_udc_plat.c @@ -193,8 +193,8 @@ static int udc_plat_probe(struct platform_device *pdev) goto exit_extcon; } - ret = devm_request_irq(dev, udc->irq, udc_irq, IRQF_SHARED, - "snps-udc", udc); + ret = devm_request_irq(dev, udc->irq, udc_irq, + IRQF_SHARED | IRQF_USER_DATA, "snps-udc", udc); if (ret < 0) { dev_err(dev, "Request irq %d failed for UDC\n", udc->irq); goto exit_dma; diff --git a/drivers/usb/gadget/udc/udc-xilinx.c b/drivers/usb/gadget/udc/udc-xilinx.c index b1f4104d1283..0b48ddec81c0 100644 --- a/drivers/usb/gadget/udc/udc-xilinx.c +++ b/drivers/usb/gadget/udc/udc-xilinx.c @@ -2078,7 +2078,8 @@ static int xudc_probe(struct platform_device *pdev) dev_err(&pdev->dev, "unable to get irq\n"); return irq; } - ret = devm_request_irq(&pdev->dev, irq, xudc_irq, 0, + ret = devm_request_irq(&pdev->dev, irq, xudc_irq, + IRQF_USER_DATA, dev_name(&pdev->dev), udc); if (ret < 0) { dev_dbg(&pdev->dev, "unable to request irq %d", irq); diff --git a/drivers/usb/host/max3421-hcd.c b/drivers/usb/host/max3421-hcd.c index afa321ab55fc..b64eaea62e23 100644 --- a/drivers/usb/host/max3421-hcd.c +++ b/drivers/usb/host/max3421-hcd.c @@ -1940,7 +1940,8 @@ max3421_probe(struct spi_device *spi) } retval = request_irq(spi->irq, max3421_irq_handler, - IRQF_TRIGGER_LOW, "max3421", hcd); + IRQF_TRIGGER_LOW | IRQF_USER_DATA, "max3421", + hcd); if (retval < 0) { dev_err(&spi->dev, "failed to request irq %d\n", spi->irq); goto error; diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 005e65922608..3f191e431edf 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c @@ -308,7 +308,8 @@ static int xhci_setup_msi(struct xhci_hcd *xhci) } ret = request_irq(pdev->irq, xhci_msi_irq, - 0, "xhci_hcd", xhci_to_hcd(xhci)); + IRQF_USER_DATA, "xhci_hcd", + xhci_to_hcd(xhci)); if (ret) { xhci_dbg_trace(xhci, trace_xhci_dbg_init, "disable MSI interrupt"); @@ -346,8 +347,9 @@ static int xhci_setup_msix(struct xhci_hcd *xhci) } for (i = 0; i < xhci->msix_count; i++) { - ret = request_irq(pci_irq_vector(pdev, i), xhci_msi_irq, 0, - "xhci_hcd", xhci_to_hcd(xhci)); + ret = request_irq(pci_irq_vector(pdev, i), xhci_msi_irq, + IRQF_USER_DATA, "xhci_hcd", + xhci_to_hcd(xhci)); if (ret) goto disable_msix; } @@ -446,8 +448,8 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd) hcd->driver->description, hcd->self.busnum); /* fall back to legacy interrupt*/ - ret = request_irq(pdev->irq, &usb_hcd_irq, IRQF_SHARED, - hcd->irq_descr, hcd); + ret = request_irq(pdev->irq, &usb_hcd_irq, + IRQF_SHARED | IRQF_USER_DATA, hcd->irq_descr, hcd); if (ret) { xhci_err(xhci, "request interrupt %d failed\n", pdev->irq); diff --git a/drivers/usb/isp1760/isp1760-udc.c b/drivers/usb/isp1760/isp1760-udc.c index 1714b2258b54..fe83ffbc8cdc 100644 --- a/drivers/usb/isp1760/isp1760-udc.c +++ b/drivers/usb/isp1760/isp1760-udc.c @@ -1458,7 +1458,8 @@ int isp1760_udc_register(struct isp1760_device *isp, int irq, if (!udc->irqname) return -ENOMEM; - ret = request_irq(irq, isp1760_udc_irq, IRQF_SHARED | irqflags, + ret = request_irq(irq, isp1760_udc_irq, + IRQF_SHARED | irqflags | IRQF_USER_DATA, udc->irqname, udc); if (ret < 0) goto error; diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index b7d56272f9d1..445a8520b4e5 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -2331,7 +2331,7 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl) timer_setup(&musb->otg_timer, musb_otg_timer_func, 0); /* attach to the IRQ */ - if (request_irq(nIrq, musb->isr, IRQF_SHARED, dev_name(dev), musb)) { + if (request_irq(nIrq, musb->isr, IRQF_SHARED | IRQF_USER_DATA, dev_name(dev), musb)) { dev_err(dev, "request_irq %d failed!\n", nIrq); status = -ENODEV; goto fail3; diff --git a/drivers/usb/phy/phy-gpio-vbus-usb.c b/drivers/usb/phy/phy-gpio-vbus-usb.c index 553e2573c74f..71d4e46fdac3 100644 --- a/drivers/usb/phy/phy-gpio-vbus-usb.c +++ b/drivers/usb/phy/phy-gpio-vbus-usb.c @@ -305,8 +305,8 @@ static int gpio_vbus_probe(struct platform_device *pdev) gpio_direction_output(gpio, pdata->gpio_pullup_inverted); } - err = devm_request_irq(&pdev->dev, irq, gpio_vbus_irq, irqflags, - "vbus_detect", pdev); + err = devm_request_irq(&pdev->dev, irq, gpio_vbus_irq, + irqflags | IRQF_USER_DATA, "vbus_detect", pdev); if (err) { dev_err(&pdev->dev, "can't request irq %i, err: %d\n", irq, err); diff --git a/drivers/uwb/whc-rc.c b/drivers/uwb/whc-rc.c index 3ae3c702500d..6591dbaac5eb 100644 --- a/drivers/uwb/whc-rc.c +++ b/drivers/uwb/whc-rc.c @@ -237,8 +237,9 @@ int whcrc_setup_rc_umc(struct whcrc *whcrc) goto error_ioremap_nocache; } - result = request_irq(umc_dev->irq, whcrc_irq_cb, IRQF_SHARED, - KBUILD_MODNAME, whcrc); + result = request_irq(umc_dev->irq, whcrc_irq_cb, + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, + whcrc); if (result < 0) { dev_err(dev, "can't allocate IRQ %d: %d\n", umc_dev->irq, result); diff --git a/drivers/vfio/pci/vfio_pci_intrs.c b/drivers/vfio/pci/vfio_pci_intrs.c index 1c46045b0e7f..d928f12708b9 100644 --- a/drivers/vfio/pci/vfio_pci_intrs.c +++ b/drivers/vfio/pci/vfio_pci_intrs.c @@ -206,7 +206,7 @@ static int vfio_intx_set_signal(struct vfio_pci_device *vdev, int fd) irqflags = 0; ret = request_irq(pdev->irq, vfio_intx_handler, - irqflags, vdev->ctx[0].name, vdev); + irqflags | IRQF_USER_DATA, vdev->ctx[0].name, vdev); if (ret) { vdev->ctx[0].trigger = NULL; kfree(vdev->ctx[0].name); @@ -333,7 +333,8 @@ static int vfio_msi_set_vector_signal(struct vfio_pci_device *vdev, pci_write_msi_msg(irq, &msg); } - ret = request_irq(irq, vfio_msihandler, 0, + ret = request_irq(irq, vfio_msihandler, + IRQF_USER_DATA, vdev->ctx[vector].name, trigger); if (ret) { kfree(vdev->ctx[vector].name); diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c index a48741aab240..c873ebc1a551 100644 --- a/drivers/video/fbdev/arcfb.c +++ b/drivers/video/fbdev/arcfb.c @@ -550,8 +550,7 @@ static int arcfb_probe(struct platform_device *dev) platform_set_drvdata(dev, info); if (irq) { par->irq = irq; - if (request_irq(par->irq, &arcfb_interrupt, IRQF_SHARED, - "arcfb", info)) { + if (request_irq(par->irq, &arcfb_interrupt, IRQF_SHARED | IRQF_USER_DATA, "arcfb", info)) { printk(KERN_INFO "arcfb: Failed req IRQ %d\n", par->irq); retval = -EBUSY; diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c index b6fe103df145..0764bb519b83 100644 --- a/drivers/video/fbdev/aty/atyfb_base.c +++ b/drivers/video/fbdev/aty/atyfb_base.c @@ -1633,7 +1633,7 @@ static int aty_enable_irq(struct atyfb_par *par, int reenable) u32 int_cntl; if (!test_and_set_bit(0, &par->irq_flags)) { - if (request_irq(par->irq, aty_irq, IRQF_SHARED, "atyfb", par)) { + if (request_irq(par->irq, aty_irq, IRQF_SHARED | IRQF_USER_DATA, "atyfb", par)) { clear_bit(0, &par->irq_flags); return -EINVAL; } diff --git a/drivers/video/fbdev/goldfishfb.c b/drivers/video/fbdev/goldfishfb.c index 4377e3442638..4ad3e0cf34ee 100644 --- a/drivers/video/fbdev/goldfishfb.c +++ b/drivers/video/fbdev/goldfishfb.c @@ -263,8 +263,8 @@ static int goldfish_fb_probe(struct platform_device *pdev) if (ret) goto err_fb_set_var_failed; - ret = request_irq(fb->irq, goldfish_fb_interrupt, IRQF_SHARED, - pdev->name, fb); + ret = request_irq(fb->irq, goldfish_fb_interrupt, + IRQF_SHARED | IRQF_USER_DATA, pdev->name, fb); if (ret) goto err_request_irq_failed; diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c index 838869c6490c..f8707365ee67 100644 --- a/drivers/video/fbdev/matrox/matroxfb_base.c +++ b/drivers/video/fbdev/matrox/matroxfb_base.c @@ -232,8 +232,7 @@ int matroxfb_enable_irq(struct matrox_fb_info *minfo, int reenable) bm = 0x020; if (!test_and_set_bit(0, &minfo->irq_flags)) { - if (request_irq(minfo->pcidev->irq, matrox_irq, - IRQF_SHARED, "matroxfb", minfo)) { + if (request_irq(minfo->pcidev->irq, matrox_irq, IRQF_SHARED | IRQF_USER_DATA, "matroxfb", minfo)) { clear_bit(0, &minfo->irq_flags); return -EINVAL; } diff --git a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c index cd372527c9e4..d74a8a5b4ff9 100644 --- a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c +++ b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c @@ -740,8 +740,7 @@ static int of_platform_mb862xx_probe(struct platform_device *ofdev) if (mb862xx_gdc_init(par)) goto io_unmap; - if (request_irq(par->irq, mb862xx_intr, 0, - DRV_NAME, (void *)par)) { + if (request_irq(par->irq, mb862xx_intr, IRQF_USER_DATA, DRV_NAME, (void *)par)) { dev_err(dev, "Cannot request irq\n"); goto io_unmap; } @@ -1077,8 +1076,8 @@ static int mb862xx_pci_probe(struct pci_dev *pdev, if (ret) goto io_unmap; - ret = request_irq(par->irq, mb862xx_intr, IRQF_SHARED, - DRV_NAME, (void *)par); + ret = request_irq(par->irq, mb862xx_intr, + IRQF_SHARED | IRQF_USER_DATA, DRV_NAME, (void *)par); if (ret) { dev_err(dev, "Cannot request irq\n"); goto io_unmap; diff --git a/drivers/video/fbdev/via/via-core.c b/drivers/video/fbdev/via/via-core.c index b041eb27a9bf..d242edf537a0 100644 --- a/drivers/video/fbdev/via/via-core.c +++ b/drivers/video/fbdev/via/via-core.c @@ -197,7 +197,8 @@ int viafb_request_dma(void) viafb_dma_users++; if (viafb_dma_users == 1) { ret = request_irq(global_dev.pdev->irq, viafb_dma_irq, - IRQF_SHARED, "via-dma", &viafb_dma_users); + IRQF_SHARED | IRQF_USER_DATA, "via-dma", + &viafb_dma_users); if (ret) viafb_dma_users--; else diff --git a/drivers/virt/vboxguest/vboxguest_linux.c b/drivers/virt/vboxguest/vboxguest_linux.c index 6e2a9619192d..768aa4677c64 100644 --- a/drivers/virt/vboxguest/vboxguest_linux.c +++ b/drivers/virt/vboxguest/vboxguest_linux.c @@ -340,8 +340,9 @@ static int vbg_pci_probe(struct pci_dev *pci, const struct pci_device_id *id) goto err_vbg_core_exit; } - ret = devm_request_irq(dev, pci->irq, vbg_core_isr, IRQF_SHARED, - DEVICE_NAME, gdev); + ret = devm_request_irq(dev, pci->irq, vbg_core_isr, + IRQF_SHARED | IRQF_USER_DATA, DEVICE_NAME, + gdev); if (ret) { vbg_err("vboxguest: Error requesting irq: %d\n", ret); goto err_vbg_core_exit; diff --git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index d9dd0f789279..c45cfc7a0ddf 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -470,8 +470,8 @@ static int vm_find_vqs(struct virtio_device *vdev, unsigned nvqs, unsigned int irq = platform_get_irq(vm_dev->pdev, 0); int i, err, queue_idx = 0; - err = request_irq(irq, vm_interrupt, IRQF_SHARED, - dev_name(&vdev->dev), vm_dev); + err = request_irq(irq, vm_interrupt, IRQF_SHARED | IRQF_USER_DATA, + dev_name(&vdev->dev), vm_dev); if (err) return err; diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c index d0584c040c60..04a25f2c208b 100644 --- a/drivers/virtio/virtio_pci_common.c +++ b/drivers/virtio/virtio_pci_common.c @@ -144,8 +144,8 @@ static int vp_request_msix_vectors(struct virtio_device *vdev, int nvectors, snprintf(vp_dev->msix_names[v], sizeof *vp_dev->msix_names, "%s-config", name); err = request_irq(pci_irq_vector(vp_dev->pci_dev, v), - vp_config_changed, 0, vp_dev->msix_names[v], - vp_dev); + vp_config_changed, IRQF_USER_DATA, + vp_dev->msix_names[v], vp_dev); if (err) goto error; ++vp_dev->msix_used_vectors; @@ -163,8 +163,9 @@ static int vp_request_msix_vectors(struct virtio_device *vdev, int nvectors, snprintf(vp_dev->msix_names[v], sizeof *vp_dev->msix_names, "%s-virtqueues", name); err = request_irq(pci_irq_vector(vp_dev->pci_dev, v), - vp_vring_interrupt, 0, vp_dev->msix_names[v], - vp_dev); + vp_vring_interrupt, + IRQF_USER_DATA, + vp_dev->msix_names[v], vp_dev); if (err) goto error; ++vp_dev->msix_used_vectors; @@ -338,9 +339,9 @@ static int vp_find_vqs_msix(struct virtio_device *vdev, unsigned nvqs, "%s-%s", dev_name(&vp_dev->vdev.dev), names[i]); err = request_irq(pci_irq_vector(vp_dev->pci_dev, msix_vec), - vring_interrupt, 0, - vp_dev->msix_names[msix_vec], - vqs[i]); + vring_interrupt, + IRQF_USER_DATA, + vp_dev->msix_names[msix_vec], vqs[i]); if (err) goto error_find; } @@ -362,8 +363,9 @@ static int vp_find_vqs_intx(struct virtio_device *vdev, unsigned nvqs, if (!vp_dev->vqs) return -ENOMEM; - err = request_irq(vp_dev->pci_dev->irq, vp_interrupt, IRQF_SHARED, - dev_name(&vdev->dev), vp_dev); + err = request_irq(vp_dev->pci_dev->irq, vp_interrupt, + IRQF_SHARED | IRQF_USER_DATA, dev_name(&vdev->dev), + vp_dev); if (err) goto out_del_vqs; diff --git a/drivers/vme/bridges/vme_ca91cx42.c b/drivers/vme/bridges/vme_ca91cx42.c index 53bdc256805f..0afef4408ded 100644 --- a/drivers/vme/bridges/vme_ca91cx42.c +++ b/drivers/vme/bridges/vme_ca91cx42.c @@ -214,8 +214,9 @@ static int ca91cx42_irq_init(struct vme_bridge *ca91cx42_bridge) /* Clear Any Pending PCI Interrupts */ iowrite32(0x00FFFFFF, bridge->base + LINT_STAT); - result = request_irq(pdev->irq, ca91cx42_irqhandler, IRQF_SHARED, - driver_name, ca91cx42_bridge); + result = request_irq(pdev->irq, ca91cx42_irqhandler, + IRQF_SHARED | IRQF_USER_DATA, driver_name, + ca91cx42_bridge); if (result) { dev_err(&pdev->dev, "Can't get assigned pci irq vector %02X\n", pdev->irq); diff --git a/drivers/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c index 647d231d4422..73160ddfe675 100644 --- a/drivers/vme/bridges/vme_tsi148.c +++ b/drivers/vme/bridges/vme_tsi148.c @@ -316,10 +316,9 @@ static int tsi148_irq_init(struct vme_bridge *tsi148_bridge) bridge = tsi148_bridge->driver_priv; - result = request_irq(pdev->irq, - tsi148_irqhandler, - IRQF_SHARED, - driver_name, tsi148_bridge); + result = request_irq(pdev->irq, tsi148_irqhandler, + IRQF_SHARED | IRQF_USER_DATA, driver_name, + tsi148_bridge); if (result) { dev_err(tsi148_bridge->parent, "Can't get assigned pci irq " "vector %02X\n", pdev->irq); diff --git a/drivers/w1/masters/ds1wm.c b/drivers/w1/masters/ds1wm.c index f661695fb589..c5b0e509f4a8 100644 --- a/drivers/w1/masters/ds1wm.c +++ b/drivers/w1/masters/ds1wm.c @@ -578,7 +578,8 @@ static int ds1wm_probe(struct platform_device *pdev) irq_set_irq_type(ds1wm_data->irq, IRQ_TYPE_LEVEL_LOW); ret = devm_request_irq(&pdev->dev, ds1wm_data->irq, ds1wm_isr, - IRQF_SHARED, "ds1wm", ds1wm_data); + IRQF_SHARED | IRQF_USER_DATA, "ds1wm", + ds1wm_data); if (ret) { dev_err(&ds1wm_data->pdev->dev, "devm_request_irq %d failed with errno %d\n", diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c index 117e76b2f939..c849861f3c33 100644 --- a/drivers/xen/events/events_base.c +++ b/drivers/xen/events/events_base.c @@ -1028,7 +1028,8 @@ int bind_evtchn_to_irqhandler(unsigned int evtchn, irq = bind_evtchn_to_irq(evtchn); if (irq < 0) return irq; - retval = request_irq(irq, handler, irqflags, devname, dev_id); + retval = request_irq(irq, handler, irqflags | IRQF_USER_DATA, devname, + dev_id); if (retval != 0) { unbind_from_irq(irq); return retval; @@ -1051,7 +1052,8 @@ int bind_interdomain_evtchn_to_irqhandler(unsigned int remote_domain, if (irq < 0) return irq; - retval = request_irq(irq, handler, irqflags, devname, dev_id); + retval = request_irq(irq, handler, irqflags | IRQF_USER_DATA, devname, + dev_id); if (retval != 0) { unbind_from_irq(irq); return retval; @@ -1070,7 +1072,8 @@ int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu, irq = bind_virq_to_irq(virq, cpu, irqflags & IRQF_PERCPU); if (irq < 0) return irq; - retval = request_irq(irq, handler, irqflags, devname, dev_id); + retval = request_irq(irq, handler, irqflags | IRQF_USER_DATA, devname, + dev_id); if (retval != 0) { unbind_from_irq(irq); return retval; @@ -1094,7 +1097,8 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi, return irq; irqflags |= IRQF_NO_SUSPEND | IRQF_FORCE_RESUME | IRQF_EARLY_RESUME; - retval = request_irq(irq, handler, irqflags, devname, dev_id); + retval = request_irq(irq, handler, irqflags | IRQF_USER_DATA, devname, + dev_id); if (retval != 0) { unbind_from_irq(irq); return retval; diff --git a/drivers/xen/platform-pci.c b/drivers/xen/platform-pci.c index 5d7dcad0b0a0..8416bfa8b0bf 100644 --- a/drivers/xen/platform-pci.c +++ b/drivers/xen/platform-pci.c @@ -83,8 +83,8 @@ static irqreturn_t do_hvm_evtchn_intr(int irq, void *dev_id) static int xen_allocate_irq(struct pci_dev *pdev) { return request_irq(pdev->irq, do_hvm_evtchn_intr, - IRQF_NOBALANCING | IRQF_TRIGGER_RISING, - "xen-platform-pci", pdev); + IRQF_NOBALANCING | IRQF_TRIGGER_RISING | IRQF_USER_DATA, + "xen-platform-pci", pdev); } static int platform_pci_resume(struct pci_dev *pdev) diff --git a/drivers/xen/xen-pciback/pciback_ops.c b/drivers/xen/xen-pciback/pciback_ops.c index ea4a08b83fa0..0ce77cab9cc3 100644 --- a/drivers/xen/xen-pciback/pciback_ops.c +++ b/drivers/xen/xen-pciback/pciback_ops.c @@ -78,9 +78,9 @@ static void xen_pcibk_control_isr(struct pci_dev *dev, int reset) if (dev->msi_enabled || dev->msix_enabled) goto out; - rc = request_irq(dev_data->irq, - xen_pcibk_guest_interrupt, IRQF_SHARED, - dev_data->irq_name, dev); + rc = request_irq(dev_data->irq, xen_pcibk_guest_interrupt, + IRQF_SHARED | IRQF_USER_DATA, + dev_data->irq_name, dev); if (rc) { dev_err(&dev->dev, "%s: failed to install fake IRQ " \ "handler for IRQ %d! (rc:%d)\n", diff --git a/samples/v4l/v4l2-pci-skeleton.c b/samples/v4l/v4l2-pci-skeleton.c index 27ec30952cfa..b6115d9c0459 100644 --- a/samples/v4l/v4l2-pci-skeleton.c +++ b/samples/v4l/v4l2-pci-skeleton.c @@ -779,8 +779,9 @@ static int skeleton_probe(struct pci_dev *pdev, const struct pci_device_id *ent) } /* Allocate the interrupt */ - ret = devm_request_irq(&pdev->dev, pdev->irq, - skeleton_irq, 0, KBUILD_MODNAME, skel); + ret = devm_request_irq(&pdev->dev, pdev->irq, skeleton_irq, + IRQF_USER_DATA, + KBUILD_MODNAME, skel); if (ret) { dev_err(&pdev->dev, "request_irq failed\n"); goto disable_pci; diff --git a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c index 85610cdcde9f..528bcc670149 100644 --- a/sound/drivers/mpu401/mpu401_uart.c +++ b/sound/drivers/mpu401/mpu401_uart.c @@ -580,8 +580,7 @@ int snd_mpu401_uart_new(struct snd_card *card, int device, else mpu->cport = port + 1; if (irq >= 0) { - if (request_irq(irq, snd_mpu401_uart_interrupt, 0, - "MPU401 UART", (void *) mpu)) { + if (request_irq(irq, snd_mpu401_uart_interrupt, IRQF_USER_DATA, "MPU401 UART", (void *)mpu)) { snd_printk(KERN_ERR "mpu401_uart: " "unable to grab IRQ %d\n", irq); err = -EBUSY; diff --git a/sound/drivers/mtpav.c b/sound/drivers/mtpav.c index 547662e02fcc..32b04d8b10e3 100644 --- a/sound/drivers/mtpav.c +++ b/sound/drivers/mtpav.c @@ -588,7 +588,7 @@ static int snd_mtpav_get_ISA(struct mtpav *mcard) return -EBUSY; } mcard->port = port; - if (request_irq(irq, snd_mtpav_irqh, 0, "MOTU MTPAV", mcard)) { + if (request_irq(irq, snd_mtpav_irqh, IRQF_USER_DATA, "MOTU MTPAV", mcard)) { snd_printk(KERN_ERR "MTVAP IRQ %d busy\n", irq); return -EBUSY; } diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c index 0a67b8b9f176..6f7315903ce9 100644 --- a/sound/drivers/serial-u16550.c +++ b/sound/drivers/serial-u16550.c @@ -813,8 +813,7 @@ static int snd_uart16550_create(struct snd_card *card, } if (irq >= 0 && irq != SNDRV_AUTO_IRQ) { - if (request_irq(irq, snd_uart16550_interrupt, - 0, "Serial MIDI", uart)) { + if (request_irq(irq, snd_uart16550_interrupt, IRQF_USER_DATA, "Serial MIDI", uart)) { snd_printk(KERN_WARNING "irq %d busy. Using Polling.\n", irq); } else { diff --git a/sound/isa/ad1816a/ad1816a_lib.c b/sound/isa/ad1816a/ad1816a_lib.c index fba6d22f7f4b..c1740bb3874a 100644 --- a/sound/isa/ad1816a/ad1816a_lib.c +++ b/sound/isa/ad1816a/ad1816a_lib.c @@ -615,7 +615,7 @@ int snd_ad1816a_create(struct snd_card *card, snd_ad1816a_free(chip); return -EBUSY; } - if (request_irq(irq, snd_ad1816a_interrupt, 0, "AD1816A", (void *) chip)) { + if (request_irq(irq, snd_ad1816a_interrupt, IRQF_USER_DATA, "AD1816A", (void *)chip)) { snd_printk(KERN_ERR "ad1816a: can't grab IRQ %d\n", irq); snd_ad1816a_free(chip); return -EBUSY; diff --git a/sound/isa/es1688/es1688_lib.c b/sound/isa/es1688/es1688_lib.c index 50cdce0e8946..d243f6763330 100644 --- a/sound/isa/es1688/es1688_lib.c +++ b/sound/isa/es1688/es1688_lib.c @@ -665,7 +665,9 @@ int snd_es1688_create(struct snd_card *card, goto exit; } - err = request_irq(irq, snd_es1688_interrupt, 0, "ES1688", (void *) chip); + err = request_irq(irq, snd_es1688_interrupt, + IRQF_USER_DATA, "ES1688", + (void *)chip); if (err < 0) { snd_printk(KERN_ERR "es1688: can't grab IRQ %d\n", irq); goto exit; diff --git a/sound/isa/es18xx.c b/sound/isa/es18xx.c index 0d103d6f805e..85ecf0c7173f 100644 --- a/sound/isa/es18xx.c +++ b/sound/isa/es18xx.c @@ -1807,8 +1807,7 @@ static int snd_es18xx_new_device(struct snd_card *card, return -EBUSY; } - if (request_irq(irq, snd_es18xx_interrupt, 0, "ES18xx", - (void *) card)) { + if (request_irq(irq, snd_es18xx_interrupt, IRQF_USER_DATA, "ES18xx", (void *)card)) { snd_es18xx_free(card); snd_printk(KERN_ERR PFX "unable to grap IRQ %d\n", irq); return -EBUSY; diff --git a/sound/isa/gus/gus_main.c b/sound/isa/gus/gus_main.c index 3b8a0c880db5..d6e6cf996b8e 100644 --- a/sound/isa/gus/gus_main.c +++ b/sound/isa/gus/gus_main.c @@ -181,7 +181,7 @@ int snd_gus_create(struct snd_card *card, snd_gus_free(gus); return -EBUSY; } - if (irq >= 0 && request_irq(irq, snd_gus_interrupt, 0, "GUS GF1", (void *) gus)) { + if (irq >= 0 && request_irq(irq, snd_gus_interrupt, IRQF_USER_DATA, "GUS GF1", (void *)gus)) { snd_printk(KERN_ERR "gus: can't grab irq %d\n", irq); snd_gus_free(gus); return -EBUSY; diff --git a/sound/isa/gus/gusmax.c b/sound/isa/gus/gusmax.c index 63309a453140..9e4f8d55522c 100644 --- a/sound/isa/gus/gusmax.c +++ b/sound/isa/gus/gusmax.c @@ -291,7 +291,7 @@ static int snd_gusmax_probe(struct device *pdev, unsigned int dev) goto _err; } - if (request_irq(xirq, snd_gusmax_interrupt, 0, "GUS MAX", (void *)maxcard)) { + if (request_irq(xirq, snd_gusmax_interrupt, IRQF_USER_DATA, "GUS MAX", (void *)maxcard)) { snd_printk(KERN_ERR PFX "unable to grab IRQ %d\n", xirq); err = -EBUSY; goto _err; diff --git a/sound/isa/gus/interwave.c b/sound/isa/gus/interwave.c index a6fc26bf0af2..f09d8198f61f 100644 --- a/sound/isa/gus/interwave.c +++ b/sound/isa/gus/interwave.c @@ -676,8 +676,7 @@ static int snd_interwave_probe(struct snd_card *card, int dev) if ((err = snd_gus_initialize(gus)) < 0) return err; - if (request_irq(xirq, snd_interwave_interrupt, 0, - "InterWave", iwcard)) { + if (request_irq(xirq, snd_interwave_interrupt, IRQF_USER_DATA, "InterWave", iwcard)) { snd_printk(KERN_ERR PFX "unable to grab IRQ %d\n", xirq); return -EBUSY; } diff --git a/sound/isa/msnd/msnd_pinnacle.c b/sound/isa/msnd/msnd_pinnacle.c index 11af9c40bc05..f448872f943e 100644 --- a/sound/isa/msnd/msnd_pinnacle.c +++ b/sound/isa/msnd/msnd_pinnacle.c @@ -546,7 +546,8 @@ static int snd_msnd_attach(struct snd_card *card) .dev_free = snd_msnd_dev_free, }; - err = request_irq(chip->irq, snd_msnd_interrupt, 0, card->shortname, + err = request_irq(chip->irq, snd_msnd_interrupt, + IRQF_USER_DATA, card->shortname, chip); if (err < 0) { printk(KERN_ERR LOGNAME ": Couldn't grab IRQ %d\n", chip->irq); diff --git a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c index 7cce4cd4a23b..75ac5916c1e2 100644 --- a/sound/isa/opl3sa2.c +++ b/sound/isa/opl3sa2.c @@ -667,8 +667,8 @@ static int snd_opl3sa2_probe(struct snd_card *card, int dev) err = snd_opl3sa2_detect(card); if (err < 0) return err; - err = request_irq(xirq, snd_opl3sa2_interrupt, 0, - "OPL3-SA2", card); + err = request_irq(xirq, snd_opl3sa2_interrupt, + IRQF_USER_DATA, "OPL3-SA2", card); if (err) { snd_printk(KERN_ERR PFX "can't grab IRQ %d\n", xirq); return -ENODEV; diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c index 47e0b2820ace..ade2f53fc8c2 100644 --- a/sound/isa/opti9xx/opti92x-ad1848.c +++ b/sound/isa/opti9xx/opti92x-ad1848.c @@ -874,7 +874,8 @@ static int snd_opti9xx_probe(struct snd_card *card) #endif #ifdef OPTi93X error = request_irq(irq, snd_opti93x_interrupt, - 0, DEV_NAME" - WSS", chip); + IRQF_USER_DATA, + DEV_NAME " - WSS", chip); if (error < 0) { snd_printk(KERN_ERR "opti9xx: can't grab IRQ %d\n", irq); return error; diff --git a/sound/isa/sb/sb_common.c b/sound/isa/sb/sb_common.c index 90b254aaef74..9f7e44c4973c 100644 --- a/sound/isa/sb/sb_common.c +++ b/sound/isa/sb/sb_common.c @@ -237,11 +237,7 @@ int snd_sbdsp_create(struct snd_card *card, chip->dma16 = -1; chip->port = port; - if (request_irq(irq, irq_handler, - (hardware == SB_HW_ALS4000 || - hardware == SB_HW_CS5530) ? - IRQF_SHARED : 0, - "SoundBlaster", (void *) chip)) { + if (request_irq(irq, irq_handler, ((hardware == SB_HW_ALS4000 || hardware == SB_HW_CS5530) ? IRQF_SHARED : 0) | IRQF_USER_DATA, "SoundBlaster", (void *)chip)) { snd_printk(KERN_ERR "sb: can't grab irq %d\n", irq); snd_sbdsp_free(chip); return -EBUSY; diff --git a/sound/isa/wavefront/wavefront.c b/sound/isa/wavefront/wavefront.c index b1989facd732..abc0e4136030 100644 --- a/sound/isa/wavefront/wavefront.c +++ b/sound/isa/wavefront/wavefront.c @@ -415,8 +415,7 @@ snd_wavefront_probe (struct snd_card *card, int dev) ics2115_port[dev], ics2115_port[dev] + 16 - 1); return -EBUSY; } - if (request_irq(ics2115_irq[dev], snd_wavefront_ics2115_interrupt, - 0, "ICS2115", acard)) { + if (request_irq(ics2115_irq[dev], snd_wavefront_ics2115_interrupt, IRQF_USER_DATA, "ICS2115", acard)) { snd_printk(KERN_ERR "unable to use ICS2115 IRQ %d\n", ics2115_irq[dev]); return -EBUSY; } diff --git a/sound/isa/wss/wss_lib.c b/sound/isa/wss/wss_lib.c index 3a5008837576..a2ec51887db5 100644 --- a/sound/isa/wss/wss_lib.c +++ b/sound/isa/wss/wss_lib.c @@ -1835,8 +1835,7 @@ int snd_wss_create(struct snd_card *card, } chip->cport = cport; if (!(hwshare & WSS_HWSHARE_IRQ)) - if (request_irq(irq, snd_wss_interrupt, 0, - "WSS", (void *) chip)) { + if (request_irq(irq, snd_wss_interrupt, IRQF_USER_DATA, "WSS", (void *)chip)) { snd_printk(KERN_ERR "wss: can't grab IRQ %d\n", irq); snd_wss_free(chip); return -EBUSY; diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c index d9c54c08e2db..4234cfe099f6 100644 --- a/sound/pci/ad1889.c +++ b/sound/pci/ad1889.c @@ -932,8 +932,7 @@ snd_ad1889_create(struct snd_card *card, spin_lock_init(&chip->lock); /* only now can we call ad1889_free */ - if (request_irq(pci->irq, snd_ad1889_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_ad1889_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "cannot obtain IRQ %d\n", pci->irq); snd_ad1889_free(chip); return -EBUSY; diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index 9f569379b77e..a1001fe87a6c 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c @@ -2066,8 +2066,7 @@ static int snd_ali_resources(struct snd_ali *codec) return err; codec->port = pci_resource_start(codec->pci, 0); - if (request_irq(codec->pci->irq, snd_ali_card_interrupt, - IRQF_SHARED, KBUILD_MODNAME, codec)) { + if (request_irq(codec->pci->irq, snd_ali_card_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, codec)) { dev_err(codec->card->dev, "Unable to request irq.\n"); return -EBUSY; } diff --git a/sound/pci/als300.c b/sound/pci/als300.c index eaa2d853d922..3a1a1cf54d33 100644 --- a/sound/pci/als300.c +++ b/sound/pci/als300.c @@ -690,8 +690,7 @@ static int snd_als300_create(struct snd_card *card, else irq_handler = snd_als300_interrupt; - if (request_irq(pci->irq, irq_handler, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, irq_handler, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_als300_free(chip); return -EBUSY; diff --git a/sound/pci/asihpi/hpioctl.c b/sound/pci/asihpi/hpioctl.c index 7d049569012c..a3b5dbfec973 100644 --- a/sound/pci/asihpi/hpioctl.c +++ b/sound/pci/asihpi/hpioctl.c @@ -485,8 +485,7 @@ int asihpi_adapter_probe(struct pci_dev *pci_dev, } /* Note: request_irq calls asihpi_isr here */ - if (request_irq(pci_dev->irq, asihpi_isr, IRQF_SHARED, - "asihpi", &adapters[adapter_index])) { + if (request_irq(pci_dev->irq, asihpi_isr, IRQF_SHARED | IRQF_USER_DATA, "asihpi", &adapters[adapter_index])) { dev_err(&pci_dev->dev, "request_irq(%d) failed\n", pci_dev->irq); goto err; diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index 1a41f8c80243..dc7002089fe2 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c @@ -1619,8 +1619,7 @@ static int snd_atiixp_create(struct snd_card *card, return -EIO; } - if (request_irq(pci->irq, snd_atiixp_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_atiixp_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_atiixp_free(chip); return -EBUSY; diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c index dc1de860cedf..5fbed10f86ca 100644 --- a/sound/pci/atiixp_modem.c +++ b/sound/pci/atiixp_modem.c @@ -1245,8 +1245,7 @@ static int snd_atiixp_create(struct snd_card *card, return -EIO; } - if (request_irq(pci->irq, snd_atiixp_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_atiixp_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_atiixp_free(chip); return -EBUSY; diff --git a/sound/pci/aw2/aw2-alsa.c b/sound/pci/aw2/aw2-alsa.c index 9a49e4243a9c..15118f5be53d 100644 --- a/sound/pci/aw2/aw2-alsa.c +++ b/sound/pci/aw2/aw2-alsa.c @@ -298,8 +298,7 @@ static int snd_aw2_create(struct snd_card *card, /* (2) initialization of the chip hardware */ snd_aw2_saa7146_setup(&chip->saa7146, chip->iobase_virt); - if (request_irq(pci->irq, snd_aw2_saa7146_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_aw2_saa7146_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "Cannot grab irq %d\n", pci->irq); iounmap(chip->iobase_virt); diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c index fc18c29a8173..6ff40c762da1 100644 --- a/sound/pci/azt3328.c +++ b/sound/pci/azt3328.c @@ -2455,8 +2455,7 @@ snd_azf3328_create(struct snd_card *card, codec_setup->type = AZF_CODEC_I2S_OUT; codec_setup->name = "I2S_OUT"; - if (request_irq(pci->irq, snd_azf3328_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_azf3328_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); err = -EBUSY; goto out_err; diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c index ba971042f871..230c58b24383 100644 --- a/sound/pci/bt87x.c +++ b/sound/pci/bt87x.c @@ -766,8 +766,8 @@ static int snd_bt87x_create(struct snd_card *card, snd_bt87x_writel(chip, REG_INT_MASK, 0); snd_bt87x_writel(chip, REG_INT_STAT, MY_INTERRUPTS); - err = request_irq(pci->irq, snd_bt87x_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip); + err = request_irq(pci->irq, snd_bt87x_interrupt, + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip); if (err < 0) { dev_err(card->dev, "cannot grab irq %d\n", pci->irq); goto fail; diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c index cd27b5536654..553f8e50393b 100644 --- a/sound/pci/ca0106/ca0106_main.c +++ b/sound/pci/ca0106/ca0106_main.c @@ -1701,8 +1701,7 @@ static int snd_ca0106_create(int dev, struct snd_card *card, return -EBUSY; } - if (request_irq(pci->irq, snd_ca0106_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_ca0106_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { snd_ca0106_free(chip); dev_err(card->dev, "cannot grab irq\n"); return -EBUSY; diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c index 452cc79b44af..f058c8d01d01 100644 --- a/sound/pci/cmipci.c +++ b/sound/pci/cmipci.c @@ -3054,8 +3054,7 @@ static int snd_cmipci_create(struct snd_card *card, struct pci_dev *pci, } cm->iobase = pci_resource_start(pci, 0); - if (request_irq(pci->irq, snd_cmipci_interrupt, - IRQF_SHARED, KBUILD_MODNAME, cm)) { + if (request_irq(pci->irq, snd_cmipci_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, cm)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_cmipci_free(cm); return -EBUSY; diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c index ec4247638fa1..9855ce43d187 100644 --- a/sound/pci/cs4281.c +++ b/sound/pci/cs4281.c @@ -1379,8 +1379,7 @@ static int snd_cs4281_create(struct snd_card *card, return -ENOMEM; } - if (request_irq(pci->irq, snd_cs4281_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_cs4281_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_cs4281_free(chip); return -ENOMEM; diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c index 750eec437a79..88f7a7c5e918 100644 --- a/sound/pci/cs46xx/cs46xx_lib.c +++ b/sound/pci/cs46xx/cs46xx_lib.c @@ -4008,8 +4008,7 @@ int snd_cs46xx_create(struct snd_card *card, } } - if (request_irq(pci->irq, snd_cs46xx_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_cs46xx_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(chip->card->dev, "unable to grab IRQ %d\n", pci->irq); snd_cs46xx_free(chip); return -EBUSY; diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c index 4590086d9cd8..db73543eb7c8 100644 --- a/sound/pci/cs5535audio/cs5535audio.c +++ b/sound/pci/cs5535audio/cs5535audio.c @@ -309,8 +309,7 @@ static int snd_cs5535audio_create(struct snd_card *card, cs5535au->port = pci_resource_start(pci, 0); - if (request_irq(pci->irq, snd_cs5535audio_interrupt, - IRQF_SHARED, KBUILD_MODNAME, cs5535au)) { + if (request_irq(pci->irq, snd_cs5535audio_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, cs5535au)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); err = -EBUSY; goto sndfail; diff --git a/sound/pci/ctxfi/cthw20k1.c b/sound/pci/ctxfi/cthw20k1.c index 6a051a1c3724..4ef23084d48b 100644 --- a/sound/pci/ctxfi/cthw20k1.c +++ b/sound/pci/ctxfi/cthw20k1.c @@ -1933,7 +1933,8 @@ static int hw_card_start(struct hw *hw) } if (hw->irq < 0) { - err = request_irq(pci->irq, ct_20k1_interrupt, IRQF_SHARED, + err = request_irq(pci->irq, ct_20k1_interrupt, + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, hw); if (err < 0) { dev_err(hw->card->dev, diff --git a/sound/pci/ctxfi/cthw20k2.c b/sound/pci/ctxfi/cthw20k2.c index 3c966fafc754..7b470af8f10a 100644 --- a/sound/pci/ctxfi/cthw20k2.c +++ b/sound/pci/ctxfi/cthw20k2.c @@ -2057,7 +2057,8 @@ static int hw_card_start(struct hw *hw) hw_write_20kx(hw, GLOBAL_CNTL_GCTL, gctl); if (hw->irq < 0) { - err = request_irq(pci->irq, ct_20k2_interrupt, IRQF_SHARED, + err = request_irq(pci->irq, ct_20k2_interrupt, + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, hw); if (err < 0) { dev_err(hw->card->dev, diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 61f85ff91cd9..05cad2c2ac92 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c @@ -2007,8 +2007,7 @@ int snd_emu10k1_create(struct snd_card *card, emu->fx8010.etram_pages.bytes = 0; /* irq handler must be registered after I/O ports are activated */ - if (request_irq(pci->irq, snd_emu10k1_interrupt, IRQF_SHARED, - KBUILD_MODNAME, emu)) { + if (request_irq(pci->irq, snd_emu10k1_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, emu)) { err = -EBUSY; goto error; } diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c index 611589cbdad6..1513af662fe6 100644 --- a/sound/pci/emu10k1/emu10k1x.c +++ b/sound/pci/emu10k1/emu10k1x.c @@ -942,8 +942,7 @@ static int snd_emu10k1x_create(struct snd_card *card, return -EBUSY; } - if (request_irq(pci->irq, snd_emu10k1x_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_emu10k1x_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "cannot grab irq %d\n", pci->irq); snd_emu10k1x_free(chip); return -EBUSY; diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c index 727eb3da1fda..afb73016d36f 100644 --- a/sound/pci/ens1370.c +++ b/sound/pci/ens1370.c @@ -2106,8 +2106,7 @@ static int snd_ensoniq_create(struct snd_card *card, return err; } ensoniq->port = pci_resource_start(pci, 0); - if (request_irq(pci->irq, snd_audiopci_interrupt, IRQF_SHARED, - KBUILD_MODNAME, ensoniq)) { + if (request_irq(pci->irq, snd_audiopci_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, ensoniq)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_ensoniq_free(ensoniq); return -EBUSY; diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c index 9d248eb2e26c..a775bcb1c15b 100644 --- a/sound/pci/es1938.c +++ b/sound/pci/es1938.c @@ -1496,8 +1496,7 @@ static int es1938_resume(struct device *dev) struct es1938 *chip = card->private_data; unsigned char *s, *d; - if (request_irq(pci->irq, snd_es1938_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_es1938_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(dev, "unable to grab IRQ %d, disabling device\n", pci->irq); snd_card_disconnect(card); @@ -1625,8 +1624,7 @@ static int snd_es1938_create(struct snd_card *card, chip->vc_port = pci_resource_start(pci, 2); chip->mpu_port = pci_resource_start(pci, 3); chip->game_port = pci_resource_start(pci, 4); - if (request_irq(pci->irq, snd_es1938_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_es1938_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_es1938_free(chip); return -EBUSY; diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c index 0b1845ca6005..b1fea07bdd87 100644 --- a/sound/pci/es1968.c +++ b/sound/pci/es1968.c @@ -2724,8 +2724,7 @@ static int snd_es1968_create(struct snd_card *card, return err; } chip->io_port = pci_resource_start(pci, 0); - if (request_irq(pci->irq, snd_es1968_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_es1968_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_es1968_free(chip); return -EBUSY; diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c index e3fb9c61017c..bbd5c056a412 100644 --- a/sound/pci/fm801.c +++ b/sound/pci/fm801.c @@ -1244,8 +1244,7 @@ static int snd_fm801_create(struct snd_card *card, } if ((chip->tea575x_tuner & TUNER_ONLY) == 0) { - if (devm_request_irq(&pci->dev, pci->irq, snd_fm801_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip)) { + if (devm_request_irq(&pci->dev, pci->irq, snd_fm801_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_fm801_free(chip); return -EBUSY; diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index e5c49003e75f..5e03b7cde151 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -783,9 +783,7 @@ static int azx_acquire_irq(struct azx *chip, int do_disconnect) { struct hdac_bus *bus = azx_bus(chip); - if (request_irq(chip->pci->irq, azx_interrupt, - chip->msi ? 0 : IRQF_SHARED, - chip->card->irq_descr, chip)) { + if (request_irq(chip->pci->irq, azx_interrupt, (chip->msi ? 0 : IRQF_SHARED) | IRQF_USER_DATA, chip->card->irq_descr, chip)) { dev_err(chip->card->dev, "unable to grab IRQ %d, disabling device\n", chip->pci->irq); diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c index f1fe497c2f9d..d1aaf856fd0a 100644 --- a/sound/pci/ice1712/ice1712.c +++ b/sound/pci/ice1712/ice1712.c @@ -2588,8 +2588,7 @@ static int snd_ice1712_create(struct snd_card *card, ice->dmapath_port = pci_resource_start(pci, 2); ice->profi_port = pci_resource_start(pci, 3); - if (request_irq(pci->irq, snd_ice1712_interrupt, IRQF_SHARED, - KBUILD_MODNAME, ice)) { + if (request_irq(pci->irq, snd_ice1712_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, ice)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_ice1712_free(ice); return -EIO; diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c index 057c2f394ea7..ec53f2f7b6cc 100644 --- a/sound/pci/ice1712/ice1724.c +++ b/sound/pci/ice1712/ice1724.c @@ -2576,8 +2576,7 @@ static int snd_vt1724_create(struct snd_card *card, ice->port = pci_resource_start(pci, 0); ice->profi_port = pci_resource_start(pci, 1); - if (request_irq(pci->irq, snd_vt1724_interrupt, - IRQF_SHARED, KBUILD_MODNAME, ice)) { + if (request_irq(pci->irq, snd_vt1724_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, ice)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_vt1724_free(ice); return -EIO; diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c index ffddcdfe0c66..ba2d7a64c051 100644 --- a/sound/pci/intel8x0.c +++ b/sound/pci/intel8x0.c @@ -2636,8 +2636,7 @@ static int intel8x0_resume(struct device *dev) int i; snd_intel8x0_chip_init(chip, 0); - if (request_irq(pci->irq, snd_intel8x0_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_intel8x0_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(dev, "unable to grab IRQ %d, disabling device\n", pci->irq); snd_card_disconnect(card); @@ -3119,8 +3118,7 @@ static int snd_intel8x0_create(struct snd_card *card, } /* request irq after initializaing int_sta_mask, etc */ - if (request_irq(pci->irq, snd_intel8x0_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_intel8x0_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_intel8x0_free(chip); return -EBUSY; diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c index c84629190cba..0ffb23fa00b9 100644 --- a/sound/pci/intel8x0m.c +++ b/sound/pci/intel8x0m.c @@ -1044,8 +1044,7 @@ static int intel8x0m_resume(struct device *dev) struct snd_card *card = dev_get_drvdata(dev); struct intel8x0m *chip = card->private_data; - if (request_irq(pci->irq, snd_intel8x0m_interrupt, - IRQF_SHARED, KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_intel8x0m_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(dev, "unable to grab IRQ %d, disabling device\n", pci->irq); snd_card_disconnect(card); @@ -1221,8 +1220,7 @@ static int snd_intel8x0m_create(struct snd_card *card, return err; } - if (request_irq(pci->irq, snd_intel8x0m_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_intel8x0m_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_intel8x0m_free(chip); return -EBUSY; diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c index 4e189a93f475..f7608ffce070 100644 --- a/sound/pci/korg1212/korg1212.c +++ b/sound/pci/korg1212/korg1212.c @@ -2243,8 +2243,8 @@ static int snd_korg1212_create(struct snd_card *card, struct pci_dev *pci, } err = request_irq(pci->irq, snd_korg1212_interrupt, - IRQF_SHARED, - KBUILD_MODNAME, korg1212); + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, + korg1212); if (err) { snd_printk(KERN_ERR "korg1212: unable to grab IRQ %d\n", pci->irq); diff --git a/sound/pci/lola/lola.c b/sound/pci/lola/lola.c index 254f24366892..b7f8fc1b422e 100644 --- a/sound/pci/lola/lola.c +++ b/sound/pci/lola/lola.c @@ -644,8 +644,7 @@ static int lola_create(struct snd_card *card, struct pci_dev *pci, if (err < 0) goto errout; - if (request_irq(pci->irq, lola_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, lola_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(chip->card->dev, "unable to grab IRQ %d\n", pci->irq); err = -EBUSY; goto errout; diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c index 62962178a9d7..2de65a6027b5 100644 --- a/sound/pci/maestro3.c +++ b/sound/pci/maestro3.c @@ -2648,8 +2648,7 @@ snd_m3_create(struct snd_card *card, struct pci_dev *pci, snd_m3_hv_init(chip); - if (request_irq(pci->irq, snd_m3_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_m3_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); err = -ENOMEM; goto free_chip; diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c index b97f4ea6b56c..2901b32e509f 100644 --- a/sound/pci/nm256/nm256.c +++ b/sound/pci/nm256/nm256.c @@ -466,8 +466,7 @@ static int snd_nm256_acquire_irq(struct nm256 *chip) { mutex_lock(&chip->irq_mutex); if (chip->irq < 0) { - if (request_irq(chip->pci->irq, chip->interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(chip->pci->irq, chip->interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(chip->card->dev, "unable to grab IRQ %d\n", chip->pci->irq); mutex_unlock(&chip->irq_mutex); diff --git a/sound/pci/oxygen/oxygen_lib.c b/sound/pci/oxygen/oxygen_lib.c index b4ef5804212d..544457309d33 100644 --- a/sound/pci/oxygen/oxygen_lib.c +++ b/sound/pci/oxygen/oxygen_lib.c @@ -669,8 +669,8 @@ int oxygen_pci_probe(struct pci_dev *pci, int index, char *id, oxygen_init(chip); chip->model.init(chip); - err = request_irq(pci->irq, oxygen_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip); + err = request_irq(pci->irq, oxygen_interrupt, + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip); if (err < 0) { dev_err(card->dev, "cannot grab interrupt %d\n", pci->irq); goto err_card; diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c index 23017e3bc76c..7b94fb792a8c 100644 --- a/sound/pci/riptide/riptide.c +++ b/sound/pci/riptide/riptide.c @@ -1877,8 +1877,7 @@ snd_riptide_create(struct snd_card *card, struct pci_dev *pci, hwport = (struct riptideport *)chip->port; UNSET_AIE(hwport); - if (request_irq(pci->irq, snd_riptide_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_riptide_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { snd_printk(KERN_ERR "Riptide: unable to grab IRQ %d\n", pci->irq); snd_riptide_free(chip); diff --git a/sound/pci/rme32.c b/sound/pci/rme32.c index 3ac8c71d567c..6e69d95a5834 100644 --- a/sound/pci/rme32.c +++ b/sound/pci/rme32.c @@ -1366,8 +1366,7 @@ static int snd_rme32_create(struct rme32 *rme32) return -ENOMEM; } - if (request_irq(pci->irq, snd_rme32_interrupt, IRQF_SHARED, - KBUILD_MODNAME, rme32)) { + if (request_irq(pci->irq, snd_rme32_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, rme32)) { dev_err(rme32->card->dev, "unable to grab IRQ %d\n", pci->irq); return -EBUSY; } diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c index dcfa4d7a73e2..04b9dfe9349b 100644 --- a/sound/pci/rme96.c +++ b/sound/pci/rme96.c @@ -1641,8 +1641,7 @@ snd_rme96_create(struct rme96 *rme96) return -ENOMEM; } - if (request_irq(pci->irq, snd_rme96_interrupt, IRQF_SHARED, - KBUILD_MODNAME, rme96)) { + if (request_irq(pci->irq, snd_rme96_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, rme96)) { dev_err(rme96->card->dev, "unable to grab IRQ %d\n", pci->irq); return -EBUSY; } diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c index ba99ff0e93e0..479db0dcb86f 100644 --- a/sound/pci/rme9652/hdsp.c +++ b/sound/pci/rme9652/hdsp.c @@ -5248,8 +5248,7 @@ static int snd_hdsp_create(struct snd_card *card, return -EBUSY; } - if (request_irq(pci->irq, snd_hdsp_interrupt, IRQF_SHARED, - KBUILD_MODNAME, hdsp)) { + if (request_irq(pci->irq, snd_hdsp_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, hdsp)) { dev_err(hdsp->card->dev, "unable to use IRQ %d\n", pci->irq); return -EBUSY; } diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index 679ad0415e3b..5cb6248677f7 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c @@ -6629,8 +6629,7 @@ static int snd_hdspm_create(struct snd_card *card, (unsigned long)hdspm->iobase, hdspm->port, hdspm->port + io_extent - 1); - if (request_irq(pci->irq, snd_hdspm_interrupt, - IRQF_SHARED, KBUILD_MODNAME, hdspm)) { + if (request_irq(pci->irq, snd_hdspm_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, hdspm)) { dev_err(card->dev, "unable to use IRQ %d\n", pci->irq); return -EBUSY; } diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c index edd765e22377..cab697211d25 100644 --- a/sound/pci/rme9652/rme9652.c +++ b/sound/pci/rme9652/rme9652.c @@ -2495,8 +2495,7 @@ static int snd_rme9652_create(struct snd_card *card, return -EBUSY; } - if (request_irq(pci->irq, snd_rme9652_interrupt, IRQF_SHARED, - KBUILD_MODNAME, rme9652)) { + if (request_irq(pci->irq, snd_rme9652_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, rme9652)) { dev_err(card->dev, "unable to request IRQ %d\n", pci->irq); return -EBUSY; } diff --git a/sound/pci/sis7019.c b/sound/pci/sis7019.c index 964acf302479..33b0ab75060f 100644 --- a/sound/pci/sis7019.c +++ b/sound/pci/sis7019.c @@ -1252,8 +1252,7 @@ static int sis_resume(struct device *dev) goto error; } - if (request_irq(pci->irq, sis_interrupt, IRQF_SHARED, - KBUILD_MODNAME, sis)) { + if (request_irq(pci->irq, sis_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, sis)) { dev_err(&pci->dev, "unable to regain IRQ %d\n", pci->irq); goto error; } @@ -1362,8 +1361,8 @@ static int sis_chip_create(struct snd_card *card, if (rc) goto error_out_cleanup; - rc = request_irq(pci->irq, sis_interrupt, IRQF_SHARED, KBUILD_MODNAME, - sis); + rc = request_irq(pci->irq, sis_interrupt, + IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, sis); if (rc) { dev_err(&pci->dev, "unable to allocate irq %d\n", sis->irq); goto error_out_cleanup; diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c index 7218f38b59db..5ae258d3b8b4 100644 --- a/sound/pci/sonicvibes.c +++ b/sound/pci/sonicvibes.c @@ -1293,8 +1293,7 @@ static int snd_sonicvibes_create(struct snd_card *card, sonic->midi_port = pci_resource_start(pci, 3); sonic->game_port = pci_resource_start(pci, 4); - if (request_irq(pci->irq, snd_sonicvibes_interrupt, IRQF_SHARED, - KBUILD_MODNAME, sonic)) { + if (request_irq(pci->irq, snd_sonicvibes_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, sonic)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_sonicvibes_free(sonic); return -EBUSY; diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c index 5523e193d556..4e5b48c8745f 100644 --- a/sound/pci/trident/trident_main.c +++ b/sound/pci/trident/trident_main.c @@ -3590,8 +3590,7 @@ int snd_trident_create(struct snd_card *card, } trident->port = pci_resource_start(pci, 0); - if (request_irq(pci->irq, snd_trident_interrupt, IRQF_SHARED, - KBUILD_MODNAME, trident)) { + if (request_irq(pci->irq, snd_trident_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, trident)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_trident_free(trident); return -EBUSY; diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c index c488c5afa195..0051a94c5030 100644 --- a/sound/pci/via82xx.c +++ b/sound/pci/via82xx.c @@ -2403,11 +2403,7 @@ static int snd_via82xx_create(struct snd_card *card, return err; } chip->port = pci_resource_start(pci, 0); - if (request_irq(pci->irq, - chip_type == TYPE_VIA8233 ? - snd_via8233_interrupt : snd_via686_interrupt, - IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, chip_type == TYPE_VIA8233 ? snd_via8233_interrupt : snd_via686_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_via82xx_free(chip); return -EBUSY; diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c index b13c8688cc8d..277b44566d47 100644 --- a/sound/pci/via82xx_modem.c +++ b/sound/pci/via82xx_modem.c @@ -1127,8 +1127,7 @@ static int snd_via82xx_create(struct snd_card *card, return err; } chip->port = pci_resource_start(pci, 0); - if (request_irq(pci->irq, snd_via82xx_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_via82xx_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(card->dev, "unable to grab IRQ %d\n", pci->irq); snd_via82xx_free(chip); return -EBUSY; diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c index a4926fb03991..0e0bdefbee4d 100644 --- a/sound/pci/ymfpci/ymfpci_main.c +++ b/sound/pci/ymfpci/ymfpci_main.c @@ -2402,8 +2402,7 @@ int snd_ymfpci_create(struct snd_card *card, err = -EBUSY; goto free_chip; } - if (request_irq(pci->irq, snd_ymfpci_interrupt, IRQF_SHARED, - KBUILD_MODNAME, chip)) { + if (request_irq(pci->irq, snd_ymfpci_interrupt, IRQF_SHARED | IRQF_USER_DATA, KBUILD_MODNAME, chip)) { dev_err(chip->card->dev, "unable to grab IRQ %d\n", pci->irq); err = -EBUSY; goto free_chip; diff --git a/sound/soc/amd/acp-pcm-dma.c b/sound/soc/amd/acp-pcm-dma.c index f4011bebc7ec..3689383fd5c3 100644 --- a/sound/soc/amd/acp-pcm-dma.c +++ b/sound/soc/amd/acp-pcm-dma.c @@ -1288,7 +1288,8 @@ static int acp_audio_probe(struct platform_device *pdev) } status = devm_request_irq(&pdev->dev, res->start, dma_irq_handler, - 0, "ACP_IRQ", &pdev->dev); + IRQF_USER_DATA, "ACP_IRQ", + &pdev->dev); if (status) { dev_err(&pdev->dev, "ACP IRQ request failed\n"); return status; diff --git a/sound/soc/amd/raven/acp3x-pcm-dma.c b/sound/soc/amd/raven/acp3x-pcm-dma.c index 3d58338fa3cf..8c15933a3145 100644 --- a/sound/soc/amd/raven/acp3x-pcm-dma.c +++ b/sound/soc/amd/raven/acp3x-pcm-dma.c @@ -647,7 +647,8 @@ static int acp3x_audio_probe(struct platform_device *pdev) goto dev_err; } status = devm_request_irq(&pdev->dev, adata->i2s_irq, i2s_irq_handler, - irqflags, "ACP3x_I2S_IRQ", adata); + irqflags | IRQF_USER_DATA, "ACP3x_I2S_IRQ", + adata); if (status) { dev_err(&pdev->dev, "ACP3x I2S IRQ request failed\n"); goto dev_err; diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c index fc530481a6e4..6433d713ae8b 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c @@ -2833,8 +2833,8 @@ static int rt5640_i2c_probe(struct i2c_client *i2c, return ret; ret = devm_request_irq(&i2c->dev, rt5640->irq, rt5640_irq, - IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING - | IRQF_ONESHOT, "rt5640", rt5640); + IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_ONESHOT | IRQF_USER_DATA, + "rt5640", rt5640); if (ret == 0) { /* Gets re-enabled by rt5640_set_jack() */ disable_irq(rt5640->irq); diff --git a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c index b7ba64350a07..6965f970a32a 100644 --- a/sound/soc/codecs/rt5651.c +++ b/sound/soc/codecs/rt5651.c @@ -2200,8 +2200,8 @@ static int rt5651_i2c_probe(struct i2c_client *i2c, return ret; ret = devm_request_irq(&i2c->dev, rt5651->irq, rt5651_irq, - IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING - | IRQF_ONESHOT, "rt5651", rt5651); + IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_ONESHOT | IRQF_USER_DATA, + "rt5651", rt5651); if (ret == 0) { /* Gets re-enabled by rt5651_set_jack() */ disable_irq(rt5651->irq); diff --git a/sound/soc/codecs/rt5663.c b/sound/soc/codecs/rt5663.c index da6647015708..aa24893a98b6 100644 --- a/sound/soc/codecs/rt5663.c +++ b/sound/soc/codecs/rt5663.c @@ -3676,8 +3676,8 @@ static int rt5663_i2c_probe(struct i2c_client *i2c, if (i2c->irq) { ret = request_irq(i2c->irq, rt5663_irq, - IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING - | IRQF_ONESHOT, "rt5663", rt5663); + IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_ONESHOT | IRQF_USER_DATA, + "rt5663", rt5663); if (ret) { dev_err(&i2c->dev, "%s Failed to reguest IRQ: %d\n", __func__, ret); diff --git a/sound/soc/dwc/dwc-i2s.c b/sound/soc/dwc/dwc-i2s.c index 65112b9d8588..4ab23c0474c8 100644 --- a/sound/soc/dwc/dwc-i2s.c +++ b/sound/soc/dwc/dwc-i2s.c @@ -641,8 +641,9 @@ static int dw_i2s_probe(struct platform_device *pdev) irq = platform_get_irq(pdev, 0); if (irq >= 0) { - ret = devm_request_irq(&pdev->dev, irq, i2s_irq_handler, 0, - pdev->name, dev); + ret = devm_request_irq(&pdev->dev, irq, i2s_irq_handler, + IRQF_USER_DATA, + pdev->name, dev); if (ret < 0) { dev_err(&pdev->dev, "failed to request irq\n"); return ret; diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c index 528e8b108422..119c1f908115 100644 --- a/sound/soc/fsl/fsl_asrc.c +++ b/sound/soc/fsl/fsl_asrc.c @@ -839,7 +839,8 @@ static int fsl_asrc_probe(struct platform_device *pdev) return irq; } - ret = devm_request_irq(&pdev->dev, irq, fsl_asrc_isr, 0, + ret = devm_request_irq(&pdev->dev, irq, fsl_asrc_isr, + IRQF_USER_DATA, dev_name(&pdev->dev), asrc_priv); if (ret) { dev_err(&pdev->dev, "failed to claim irq %u: %d\n", irq, ret); diff --git a/sound/soc/fsl/fsl_esai.c b/sound/soc/fsl/fsl_esai.c index 57b484768a58..e72b88a34cd5 100644 --- a/sound/soc/fsl/fsl_esai.c +++ b/sound/soc/fsl/fsl_esai.c @@ -851,7 +851,8 @@ static int fsl_esai_probe(struct platform_device *pdev) return irq; } - ret = devm_request_irq(&pdev->dev, irq, esai_isr, 0, + ret = devm_request_irq(&pdev->dev, irq, esai_isr, + IRQF_USER_DATA, esai_priv->name, esai_priv); if (ret) { dev_err(&pdev->dev, "failed to claim irq %u\n", irq); diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c index 4163f2cfc06f..859c7b8b5074 100644 --- a/sound/soc/fsl/fsl_sai.c +++ b/sound/soc/fsl/fsl_sai.c @@ -843,7 +843,8 @@ static int fsl_sai_probe(struct platform_device *pdev) return irq; } - ret = devm_request_irq(&pdev->dev, irq, fsl_sai_isr, 0, np->name, sai); + ret = devm_request_irq(&pdev->dev, irq, fsl_sai_isr, + IRQF_USER_DATA, np->name, sai); if (ret) { dev_err(&pdev->dev, "failed to claim irq %u\n", irq); return ret; diff --git a/sound/soc/fsl/fsl_spdif.c b/sound/soc/fsl/fsl_spdif.c index 740b90df44bb..9987849d5258 100644 --- a/sound/soc/fsl/fsl_spdif.c +++ b/sound/soc/fsl/fsl_spdif.c @@ -1251,7 +1251,8 @@ static int fsl_spdif_probe(struct platform_device *pdev) return irq; } - ret = devm_request_irq(&pdev->dev, irq, spdif_isr, 0, + ret = devm_request_irq(&pdev->dev, irq, spdif_isr, + IRQF_USER_DATA, dev_name(&pdev->dev), spdif_priv); if (ret) { dev_err(&pdev->dev, "could not claim irq %u\n", irq); diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c index 0a648229e643..6481ea718aa3 100644 --- a/sound/soc/fsl/fsl_ssi.c +++ b/sound/soc/fsl/fsl_ssi.c @@ -1572,7 +1572,8 @@ static int fsl_ssi_probe(struct platform_device *pdev) } if (ssi->use_dma) { - ret = devm_request_irq(dev, ssi->irq, fsl_ssi_isr, 0, + ret = devm_request_irq(dev, ssi->irq, fsl_ssi_isr, + IRQF_USER_DATA, dev_name(dev), ssi); if (ret < 0) { dev_err(dev, "failed to claim irq %u\n", ssi->irq); diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c index 00c92eb854ce..d497def8ecdf 100644 --- a/sound/x86/intel_hdmi_audio.c +++ b/sound/x86/intel_hdmi_audio.c @@ -1786,8 +1786,9 @@ static int hdmi_lpe_audio_probe(struct platform_device *pdev) } /* setup interrupt handler */ - ret = request_irq(irq, display_pipe_interrupt_handler, 0, - pdev->name, card_ctx); + ret = request_irq(irq, display_pipe_interrupt_handler, + IRQF_USER_DATA, pdev->name, + card_ctx); if (ret < 0) { dev_err(&pdev->dev, "request_irq failed\n"); goto err; -- 2.17.2