aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/alpha/kernel/irq.c2
-rw-r--r--arch/arc/kernel/mcip.c2
-rw-r--r--arch/arm/common/it8152.c2
-rw-r--r--arch/arm/common/locomo.c2
-rw-r--r--arch/arm/common/sa1111.c6
-rw-r--r--arch/arm/include/asm/hardware/it8152.h2
-rw-r--r--arch/arm/include/asm/mach/irq.h4
-rw-r--r--arch/arm/mach-dove/irq.c6
-rw-r--r--arch/arm/mach-footbridge/isa-irq.c5
-rw-r--r--arch/arm/mach-gemini/gpio.c2
-rw-r--r--arch/arm/mach-imx/3ds_debugboard.c2
-rw-r--r--arch/arm/mach-imx/mach-mx31ads.c2
-rw-r--r--arch/arm/mach-iop13xx/msi.c2
-rw-r--r--arch/arm/mach-lpc32xx/irq.c4
-rw-r--r--arch/arm/mach-netx/generic.c3
-rw-r--r--arch/arm/mach-omap1/fpga.c2
-rw-r--r--arch/arm/mach-omap2/prm_common.c2
-rw-r--r--arch/arm/mach-pxa/balloon3.c2
-rw-r--r--arch/arm/mach-pxa/cm-x2xx-pci.c5
-rw-r--r--arch/arm/mach-pxa/lpd270.c2
-rw-r--r--arch/arm/mach-pxa/pcm990-baseboard.c2
-rw-r--r--arch/arm/mach-pxa/viper.c2
-rw-r--r--arch/arm/mach-pxa/zeus.c2
-rw-r--r--arch/arm/mach-rpc/ecard.c3
-rw-r--r--arch/arm/mach-s3c24xx/bast-irq.c4
-rw-r--r--arch/arm/mach-s3c64xx/common.c8
-rw-r--r--arch/arm/mach-sa1100/neponset.c2
-rw-r--r--arch/arm/plat-orion/gpio.c2
-rw-r--r--arch/avr32/mach-at32ap/extint.c2
-rw-r--r--arch/avr32/mach-at32ap/pio.c2
-rw-r--r--arch/blackfin/include/asm/irq_handler.h4
-rw-r--r--arch/blackfin/kernel/irqchip.c2
-rw-r--r--arch/blackfin/mach-bf537/ints-priority.c10
-rw-r--r--arch/blackfin/mach-common/ints-priority.c5
-rw-r--r--arch/c6x/platforms/megamod-pic.c2
-rw-r--r--arch/m68k/amiga/amiints.c8
-rw-r--r--arch/m68k/coldfire/intc-5272.c6
-rw-r--r--arch/m68k/include/asm/irq.h3
-rw-r--r--arch/m68k/include/asm/mac_via.h2
-rw-r--r--arch/m68k/mac/baboon.c2
-rw-r--r--arch/m68k/mac/oss.c4
-rw-r--r--arch/m68k/mac/psc.c2
-rw-r--r--arch/m68k/mac/via.c6
-rw-r--r--arch/metag/kernel/irq.c4
-rw-r--r--arch/mips/alchemy/common/irq.c4
-rw-r--r--arch/mips/alchemy/devboards/bcsr.c2
-rw-r--r--arch/mips/ath25/ar2315.c2
-rw-r--r--arch/mips/ath25/ar5312.c2
-rw-r--r--arch/mips/ath79/irq.c8
-rw-r--r--arch/mips/cavium-octeon/octeon-irq.c2
-rw-r--r--arch/mips/include/asm/netlogic/common.h4
-rw-r--r--arch/mips/jz4740/gpio.c2
-rw-r--r--arch/mips/netlogic/common/smp.c4
-rw-r--r--arch/mips/pci/pci-ar2315.c2
-rw-r--r--arch/mips/pci/pci-ar71xx.c2
-rw-r--r--arch/mips/pci/pci-ar724x.c2
-rw-r--r--arch/mips/pci/pci-rt3883.c2
-rw-r--r--arch/mips/ralink/irq.c2
-rw-r--r--arch/powerpc/include/asm/qe_ic.h23
-rw-r--r--arch/powerpc/include/asm/tsi108_pci.h2
-rw-r--r--arch/powerpc/platforms/512x/mpc5121_ads_cpld.c3
-rw-r--r--arch/powerpc/platforms/52xx/media5200.c2
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_gpt.c2
-rw-r--r--arch/powerpc/platforms/82xx/pq2ads-pci-pic.c2
-rw-r--r--arch/powerpc/platforms/85xx/common.c2
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_cds.c6
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_ds.c2
-rw-r--r--arch/powerpc/platforms/85xx/socrates_fpga_pic.c2
-rw-r--r--arch/powerpc/platforms/86xx/pic.c2
-rw-r--r--arch/powerpc/platforms/8xx/m8xx_setup.c2
-rw-r--r--arch/powerpc/platforms/cell/axon_msi.c2
-rw-r--r--arch/powerpc/platforms/cell/interrupt.c2
-rw-r--r--arch/powerpc/platforms/cell/spider-pic.c2
-rw-r--r--arch/powerpc/platforms/chrp/setup.c2
-rw-r--r--arch/powerpc/platforms/embedded6xx/hlwd-pic.c3
-rw-r--r--arch/powerpc/platforms/embedded6xx/mvme5100.c2
-rw-r--r--arch/powerpc/platforms/pseries/setup.c2
-rw-r--r--arch/powerpc/sysdev/ge/ge_pic.c2
-rw-r--r--arch/powerpc/sysdev/ge/ge_pic.h2
-rw-r--r--arch/powerpc/sysdev/mpic.c2
-rw-r--r--arch/powerpc/sysdev/qe_lib/qe_ic.c4
-rw-r--r--arch/powerpc/sysdev/tsi108_pci.c2
-rw-r--r--arch/powerpc/sysdev/uic.c2
-rw-r--r--arch/powerpc/sysdev/xilinx_intc.c2
-rw-r--r--arch/sh/boards/mach-se/7343/irq.c2
-rw-r--r--arch/sh/boards/mach-se/7722/irq.c2
-rw-r--r--arch/sh/boards/mach-se/7724/irq.c2
-rw-r--r--arch/sh/boards/mach-x3proto/gpio.c2
-rw-r--r--arch/sh/cchips/hd6446x/hd64461.c2
-rw-r--r--arch/sparc/kernel/leon_kernel.c2
-rw-r--r--arch/sparc/kernel/leon_pci_grpci1.c2
-rw-r--r--arch/sparc/kernel/leon_pci_grpci2.c2
-rw-r--r--arch/tile/kernel/pci_gx.c5
-rw-r--r--arch/unicore32/kernel/irq.c2
-rw-r--r--arch/x86/kernel/irq_32.c19
-rw-r--r--arch/x86/kernel/irq_64.c2
-rw-r--r--arch/x86/lguest/boot.c2
-rw-r--r--drivers/dma/ipu/ipu_irq.c2
-rw-r--r--drivers/gpio/gpio-altera.c6
-rw-r--r--drivers/gpio/gpio-bcm-kona.c2
-rw-r--r--drivers/gpio/gpio-brcmstb.c2
-rw-r--r--drivers/gpio/gpio-davinci.c3
-rw-r--r--drivers/gpio/gpio-dwapb.c2
-rw-r--r--drivers/gpio/gpio-ep93xx.c5
-rw-r--r--drivers/gpio/gpio-intel-mid.c2
-rw-r--r--drivers/gpio/gpio-lynxpoint.c2
-rw-r--r--drivers/gpio/gpio-mpc8xxx.c2
-rw-r--r--drivers/gpio/gpio-msic.c2
-rw-r--r--drivers/gpio/gpio-msm-v2.c2
-rw-r--r--drivers/gpio/gpio-mvebu.c2
-rw-r--r--drivers/gpio/gpio-mxc.c4
-rw-r--r--drivers/gpio/gpio-mxs.c2
-rw-r--r--drivers/gpio/gpio-omap.c2
-rw-r--r--drivers/gpio/gpio-pl061.c2
-rw-r--r--drivers/gpio/gpio-pxa.c2
-rw-r--r--drivers/gpio/gpio-sa1100.c3
-rw-r--r--drivers/gpio/gpio-tegra.c2
-rw-r--r--drivers/gpio/gpio-timberdale.c2
-rw-r--r--drivers/gpio/gpio-tz1090.c4
-rw-r--r--drivers/gpio/gpio-vf610.c2
-rw-r--r--drivers/gpio/gpio-zx.c2
-rw-r--r--drivers/gpio/gpio-zynq.c2
-rw-r--r--drivers/gpu/ipu-v3/ipu-common.c4
-rw-r--r--drivers/irqchip/exynos-combiner.c6
-rw-r--r--drivers/irqchip/irq-armada-370-xp.c3
-rw-r--r--drivers/irqchip/irq-bcm2835.c4
-rw-r--r--drivers/irqchip/irq-bcm7038-l1.c2
-rw-r--r--drivers/irqchip/irq-bcm7120-l2.c2
-rw-r--r--drivers/irqchip/irq-brcmstb-l2.c7
-rw-r--r--drivers/irqchip/irq-dw-apb-ictl.c2
-rw-r--r--drivers/irqchip/irq-gic.c4
-rw-r--r--drivers/irqchip/irq-i8259.c2
-rw-r--r--drivers/irqchip/irq-imgpdc.c4
-rw-r--r--drivers/irqchip/irq-keystone.c2
-rw-r--r--drivers/irqchip/irq-metag-ext.c2
-rw-r--r--drivers/irqchip/irq-metag.c2
-rw-r--r--drivers/irqchip/irq-mips-gic.c2
-rw-r--r--drivers/irqchip/irq-mmp.c2
-rw-r--r--drivers/irqchip/irq-orion.c2
-rw-r--r--drivers/irqchip/irq-s3c24xx.c2
-rw-r--r--drivers/irqchip/irq-sunxi-nmi.c2
-rw-r--r--drivers/irqchip/irq-tb10x.c2
-rw-r--r--drivers/irqchip/irq-versatile-fpga.c8
-rw-r--r--drivers/irqchip/irq-vic.c2
-rw-r--r--drivers/irqchip/spear-shirq.c2
-rw-r--r--drivers/mfd/asic3.c2
-rw-r--r--drivers/mfd/ezx-pcap.c2
-rw-r--r--drivers/mfd/htc-egpio.c2
-rw-r--r--drivers/mfd/jz4740-adc.c2
-rw-r--r--drivers/mfd/pm8921-core.c2
-rw-r--r--drivers/mfd/t7l66xb.c2
-rw-r--r--drivers/mfd/tc6393xb.c3
-rw-r--r--drivers/mfd/ucb1x00-core.c2
-rw-r--r--drivers/pci/host/pci-keystone.c5
-rw-r--r--drivers/pci/host/pci-xgene-msi.c2
-rw-r--r--drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c2
-rw-r--r--drivers/pinctrl/intel/pinctrl-baytrail.c2
-rw-r--r--drivers/pinctrl/intel/pinctrl-cherryview.c2
-rw-r--r--drivers/pinctrl/intel/pinctrl-intel.c2
-rw-r--r--drivers/pinctrl/mediatek/pinctrl-mtk-common.c2
-rw-r--r--drivers/pinctrl/nomadik/pinctrl-nomadik.c4
-rw-r--r--drivers/pinctrl/pinctrl-adi2.c3
-rw-r--r--drivers/pinctrl/pinctrl-amd.c6
-rw-r--r--drivers/pinctrl/pinctrl-at91.c2
-rw-r--r--drivers/pinctrl/pinctrl-coh901.c2
-rw-r--r--drivers/pinctrl/pinctrl-pistachio.c6
-rw-r--r--drivers/pinctrl/pinctrl-rockchip.c2
-rw-r--r--drivers/pinctrl/pinctrl-single.c2
-rw-r--r--drivers/pinctrl/pinctrl-st.c4
-rw-r--r--drivers/pinctrl/qcom/pinctrl-msm.c5
-rw-r--r--drivers/pinctrl/samsung/pinctrl-exynos.c4
-rw-r--r--drivers/pinctrl/samsung/pinctrl-s3c24xx.c8
-rw-r--r--drivers/pinctrl/samsung/pinctrl-s3c64xx.c10
-rw-r--r--drivers/pinctrl/sirf/pinctrl-atlas7.c4
-rw-r--r--drivers/pinctrl/sirf/pinctrl-sirf.c4
-rw-r--r--drivers/pinctrl/spear/pinctrl-plgpio.c2
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sunxi.c2
-rw-r--r--drivers/sh/intc/core.c2
-rw-r--r--drivers/sh/intc/virq.c4
-rw-r--r--drivers/soc/dove/pmu.c4
-rw-r--r--drivers/spmi/spmi-pmic-arb.c2
-rw-r--r--include/linux/irq.h16
-rw-r--r--include/linux/irqdesc.h4
-rw-r--r--include/linux/irqhandler.h2
-rw-r--r--kernel/irq/chip.c27
-rw-r--r--kernel/irq/handle.c4
-rw-r--r--kernel/irq/irqdesc.c2
-rw-r--r--kernel/irq/resend.c2
188 files changed, 281 insertions, 340 deletions
diff --git a/arch/alpha/kernel/irq.c b/arch/alpha/kernel/irq.c
index 2804648c8ff4..2d6efcff3bf3 100644
--- a/arch/alpha/kernel/irq.c
+++ b/arch/alpha/kernel/irq.c
@@ -117,6 +117,6 @@ handle_irq(int irq)
117 } 117 }
118 118
119 irq_enter(); 119 irq_enter();
120 generic_handle_irq_desc(irq, desc); 120 generic_handle_irq_desc(desc);
121 irq_exit(); 121 irq_exit();
122} 122}
diff --git a/arch/arc/kernel/mcip.c b/arch/arc/kernel/mcip.c
index d9e44b62df05..4ffd1855f1bd 100644
--- a/arch/arc/kernel/mcip.c
+++ b/arch/arc/kernel/mcip.c
@@ -252,7 +252,7 @@ static struct irq_chip idu_irq_chip = {
252 252
253static int idu_first_irq; 253static int idu_first_irq;
254 254
255static void idu_cascade_isr(unsigned int __core_irq, struct irq_desc *desc) 255static void idu_cascade_isr(struct irq_desc *desc)
256{ 256{
257 struct irq_domain *domain = irq_desc_get_handler_data(desc); 257 struct irq_domain *domain = irq_desc_get_handler_data(desc);
258 unsigned int core_irq = irq_desc_get_irq(desc); 258 unsigned int core_irq = irq_desc_get_irq(desc);
diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c
index 96dabcb6c621..996aed3b4eee 100644
--- a/arch/arm/common/it8152.c
+++ b/arch/arm/common/it8152.c
@@ -95,7 +95,7 @@ void it8152_init_irq(void)
95 } 95 }
96} 96}
97 97
98void it8152_irq_demux(unsigned int irq, struct irq_desc *desc) 98void it8152_irq_demux(struct irq_desc *desc)
99{ 99{
100 int bits_pd, bits_lp, bits_ld; 100 int bits_pd, bits_lp, bits_ld;
101 int i; 101 int i;
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
index 304adea4bc52..0e97b4b871f9 100644
--- a/arch/arm/common/locomo.c
+++ b/arch/arm/common/locomo.c
@@ -138,7 +138,7 @@ static struct locomo_dev_info locomo_devices[] = {
138 }, 138 },
139}; 139};
140 140
141static void locomo_handler(unsigned int __irq, struct irq_desc *desc) 141static void locomo_handler(struct irq_desc *desc)
142{ 142{
143 struct locomo *lchip = irq_desc_get_chip_data(desc); 143 struct locomo *lchip = irq_desc_get_chip_data(desc);
144 int req, i; 144 int req, i;
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 4f290250fa93..3d224941b541 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -196,10 +196,8 @@ static struct sa1111_dev_info sa1111_devices[] = {
196 * active IRQs causes the interrupt output to pulse, the upper levels 196 * active IRQs causes the interrupt output to pulse, the upper levels
197 * will call us again if there are more interrupts to process. 197 * will call us again if there are more interrupts to process.
198 */ 198 */
199static void 199static void sa1111_irq_handler(struct irq_desc *desc)
200sa1111_irq_handler(unsigned int __irq, struct irq_desc *desc)
201{ 200{
202 unsigned int irq = irq_desc_get_irq(desc);
203 unsigned int stat0, stat1, i; 201 unsigned int stat0, stat1, i;
204 struct sa1111 *sachip = irq_desc_get_handler_data(desc); 202 struct sa1111 *sachip = irq_desc_get_handler_data(desc);
205 void __iomem *mapbase = sachip->base + SA1111_INTC; 203 void __iomem *mapbase = sachip->base + SA1111_INTC;
@@ -214,7 +212,7 @@ sa1111_irq_handler(unsigned int __irq, struct irq_desc *desc)
214 sa1111_writel(stat1, mapbase + SA1111_INTSTATCLR1); 212 sa1111_writel(stat1, mapbase + SA1111_INTSTATCLR1);
215 213
216 if (stat0 == 0 && stat1 == 0) { 214 if (stat0 == 0 && stat1 == 0) {
217 do_bad_IRQ(irq, desc); 215 do_bad_IRQ(desc);
218 return; 216 return;
219 } 217 }
220 218
diff --git a/arch/arm/include/asm/hardware/it8152.h b/arch/arm/include/asm/hardware/it8152.h
index d36a73d7c0e8..076777ff3daa 100644
--- a/arch/arm/include/asm/hardware/it8152.h
+++ b/arch/arm/include/asm/hardware/it8152.h
@@ -106,7 +106,7 @@ extern void __iomem *it8152_base_address;
106struct pci_dev; 106struct pci_dev;
107struct pci_sys_data; 107struct pci_sys_data;
108 108
109extern void it8152_irq_demux(unsigned int irq, struct irq_desc *desc); 109extern void it8152_irq_demux(struct irq_desc *desc);
110extern void it8152_init_irq(void); 110extern void it8152_init_irq(void);
111extern int it8152_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin); 111extern int it8152_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
112extern int it8152_pci_setup(int nr, struct pci_sys_data *sys); 112extern int it8152_pci_setup(int nr, struct pci_sys_data *sys);
diff --git a/arch/arm/include/asm/mach/irq.h b/arch/arm/include/asm/mach/irq.h
index 2092ee1e1300..de4634b51456 100644
--- a/arch/arm/include/asm/mach/irq.h
+++ b/arch/arm/include/asm/mach/irq.h
@@ -23,10 +23,10 @@ extern int show_fiq_list(struct seq_file *, int);
23/* 23/*
24 * This is for easy migration, but should be changed in the source 24 * This is for easy migration, but should be changed in the source
25 */ 25 */
26#define do_bad_IRQ(irq,desc) \ 26#define do_bad_IRQ(desc) \
27do { \ 27do { \
28 raw_spin_lock(&desc->lock); \ 28 raw_spin_lock(&desc->lock); \
29 handle_bad_irq(irq, desc); \ 29 handle_bad_irq(desc); \
30 raw_spin_unlock(&desc->lock); \ 30 raw_spin_unlock(&desc->lock); \
31} while(0) 31} while(0)
32 32
diff --git a/arch/arm/mach-dove/irq.c b/arch/arm/mach-dove/irq.c
index 305d7c6242bb..bfb3703357c5 100644
--- a/arch/arm/mach-dove/irq.c
+++ b/arch/arm/mach-dove/irq.c
@@ -69,14 +69,14 @@ static struct irq_chip pmu_irq_chip = {
69 .irq_ack = pmu_irq_ack, 69 .irq_ack = pmu_irq_ack,
70}; 70};
71 71
72static void pmu_irq_handler(unsigned int __irq, struct irq_desc *desc) 72static void pmu_irq_handler(struct irq_desc *desc)
73{ 73{
74 unsigned int irq = irq_desc_get_irq(desc);
75 unsigned long cause = readl(PMU_INTERRUPT_CAUSE); 74 unsigned long cause = readl(PMU_INTERRUPT_CAUSE);
75 unsigned int irq;
76 76
77 cause &= readl(PMU_INTERRUPT_MASK); 77 cause &= readl(PMU_INTERRUPT_MASK);
78 if (cause == 0) { 78 if (cause == 0) {
79 do_bad_IRQ(irq, desc); 79 do_bad_IRQ(desc);
80 return; 80 return;
81 } 81 }
82 82
diff --git a/arch/arm/mach-footbridge/isa-irq.c b/arch/arm/mach-footbridge/isa-irq.c
index fcd79bc3a3e1..c01fca11b224 100644
--- a/arch/arm/mach-footbridge/isa-irq.c
+++ b/arch/arm/mach-footbridge/isa-irq.c
@@ -87,13 +87,12 @@ static struct irq_chip isa_hi_chip = {
87 .irq_unmask = isa_unmask_pic_hi_irq, 87 .irq_unmask = isa_unmask_pic_hi_irq,
88}; 88};
89 89
90static void 90static void isa_irq_handler(struct irq_desc *desc)
91isa_irq_handler(unsigned int irq, struct irq_desc *desc)
92{ 91{
93 unsigned int isa_irq = *(unsigned char *)PCIIACK_BASE; 92 unsigned int isa_irq = *(unsigned char *)PCIIACK_BASE;
94 93
95 if (isa_irq < _ISA_IRQ(0) || isa_irq >= _ISA_IRQ(16)) { 94 if (isa_irq < _ISA_IRQ(0) || isa_irq >= _ISA_IRQ(16)) {
96 do_bad_IRQ(isa_irq, desc); 95 do_bad_IRQ(desc);
97 return; 96 return;
98 } 97 }
99 98
diff --git a/arch/arm/mach-gemini/gpio.c b/arch/arm/mach-gemini/gpio.c
index 220333ed741d..2478d9f4d92d 100644
--- a/arch/arm/mach-gemini/gpio.c
+++ b/arch/arm/mach-gemini/gpio.c
@@ -126,7 +126,7 @@ static int gpio_set_irq_type(struct irq_data *d, unsigned int type)
126 return 0; 126 return 0;
127} 127}
128 128
129static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 129static void gpio_irq_handler(struct irq_desc *desc)
130{ 130{
131 unsigned int port = (unsigned int)irq_desc_get_handler_data(desc); 131 unsigned int port = (unsigned int)irq_desc_get_handler_data(desc);
132 unsigned int gpio_irq_no, irq_stat; 132 unsigned int gpio_irq_no, irq_stat;
diff --git a/arch/arm/mach-imx/3ds_debugboard.c b/arch/arm/mach-imx/3ds_debugboard.c
index 45903be6e7b3..16496a071ecb 100644
--- a/arch/arm/mach-imx/3ds_debugboard.c
+++ b/arch/arm/mach-imx/3ds_debugboard.c
@@ -85,7 +85,7 @@ static struct platform_device smsc_lan9217_device = {
85 .resource = smsc911x_resources, 85 .resource = smsc911x_resources,
86}; 86};
87 87
88static void mxc_expio_irq_handler(u32 irq, struct irq_desc *desc) 88static void mxc_expio_irq_handler(struct irq_desc *desc)
89{ 89{
90 u32 imr_val; 90 u32 imr_val;
91 u32 int_valid; 91 u32 int_valid;
diff --git a/arch/arm/mach-imx/mach-mx31ads.c b/arch/arm/mach-imx/mach-mx31ads.c
index 2c0853560bd2..2b147e4bf9c9 100644
--- a/arch/arm/mach-imx/mach-mx31ads.c
+++ b/arch/arm/mach-imx/mach-mx31ads.c
@@ -154,7 +154,7 @@ static inline void mxc_init_imx_uart(void)
154 imx31_add_imx_uart0(&uart_pdata); 154 imx31_add_imx_uart0(&uart_pdata);
155} 155}
156 156
157static void mx31ads_expio_irq_handler(u32 irq, struct irq_desc *desc) 157static void mx31ads_expio_irq_handler(struct irq_desc *desc)
158{ 158{
159 u32 imr_val; 159 u32 imr_val;
160 u32 int_valid; 160 u32 int_valid;
diff --git a/arch/arm/mach-iop13xx/msi.c b/arch/arm/mach-iop13xx/msi.c
index 9f89e76dfbb9..f6235b28578c 100644
--- a/arch/arm/mach-iop13xx/msi.c
+++ b/arch/arm/mach-iop13xx/msi.c
@@ -91,7 +91,7 @@ static void (*write_imipr[])(u32) = {
91 write_imipr_3, 91 write_imipr_3,
92}; 92};
93 93
94static void iop13xx_msi_handler(unsigned int irq, struct irq_desc *desc) 94static void iop13xx_msi_handler(struct irq_desc *desc)
95{ 95{
96 int i, j; 96 int i, j;
97 unsigned long status; 97 unsigned long status;
diff --git a/arch/arm/mach-lpc32xx/irq.c b/arch/arm/mach-lpc32xx/irq.c
index cce4cef12b6e..2ae431e8bc1b 100644
--- a/arch/arm/mach-lpc32xx/irq.c
+++ b/arch/arm/mach-lpc32xx/irq.c
@@ -370,7 +370,7 @@ static struct irq_chip lpc32xx_irq_chip = {
370 .irq_set_wake = lpc32xx_irq_wake 370 .irq_set_wake = lpc32xx_irq_wake
371}; 371};
372 372
373static void lpc32xx_sic1_handler(unsigned int irq, struct irq_desc *desc) 373static void lpc32xx_sic1_handler(struct irq_desc *desc)
374{ 374{
375 unsigned long ints = __raw_readl(LPC32XX_INTC_STAT(LPC32XX_SIC1_BASE)); 375 unsigned long ints = __raw_readl(LPC32XX_INTC_STAT(LPC32XX_SIC1_BASE));
376 376
@@ -383,7 +383,7 @@ static void lpc32xx_sic1_handler(unsigned int irq, struct irq_desc *desc)
383 } 383 }
384} 384}
385 385
386static void lpc32xx_sic2_handler(unsigned int irq, struct irq_desc *desc) 386static void lpc32xx_sic2_handler(struct irq_desc *desc)
387{ 387{
388 unsigned long ints = __raw_readl(LPC32XX_INTC_STAT(LPC32XX_SIC2_BASE)); 388 unsigned long ints = __raw_readl(LPC32XX_INTC_STAT(LPC32XX_SIC2_BASE));
389 389
diff --git a/arch/arm/mach-netx/generic.c b/arch/arm/mach-netx/generic.c
index 6373e2bff203..842302df99c1 100644
--- a/arch/arm/mach-netx/generic.c
+++ b/arch/arm/mach-netx/generic.c
@@ -69,8 +69,7 @@ static struct platform_device *devices[] __initdata = {
69#define DEBUG_IRQ(fmt...) while (0) {} 69#define DEBUG_IRQ(fmt...) while (0) {}
70#endif 70#endif
71 71
72static void 72static void netx_hif_demux_handler(struct irq_desc *desc)
73netx_hif_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
74{ 73{
75 unsigned int irq = NETX_IRQ_HIF_CHAINED(0); 74 unsigned int irq = NETX_IRQ_HIF_CHAINED(0);
76 unsigned int stat; 75 unsigned int stat;
diff --git a/arch/arm/mach-omap1/fpga.c b/arch/arm/mach-omap1/fpga.c
index dfec671b1639..39e20d0ead08 100644
--- a/arch/arm/mach-omap1/fpga.c
+++ b/arch/arm/mach-omap1/fpga.c
@@ -87,7 +87,7 @@ static void fpga_mask_ack_irq(struct irq_data *d)
87 fpga_ack_irq(d); 87 fpga_ack_irq(d);
88} 88}
89 89
90static void innovator_fpga_IRQ_demux(unsigned int irq, struct irq_desc *desc) 90static void innovator_fpga_IRQ_demux(struct irq_desc *desc)
91{ 91{
92 u32 stat; 92 u32 stat;
93 int fpga_irq; 93 int fpga_irq;
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c
index 257e98c26618..3fc2cbe52113 100644
--- a/arch/arm/mach-omap2/prm_common.c
+++ b/arch/arm/mach-omap2/prm_common.c
@@ -102,7 +102,7 @@ static void omap_prcm_events_filter_priority(unsigned long *events,
102 * dispatched accordingly. Clearing of the wakeup events should be 102 * dispatched accordingly. Clearing of the wakeup events should be
103 * done by the SoC specific individual handlers. 103 * done by the SoC specific individual handlers.
104 */ 104 */
105static void omap_prcm_irq_handler(unsigned int irq, struct irq_desc *desc) 105static void omap_prcm_irq_handler(struct irq_desc *desc)
106{ 106{
107 unsigned long pending[OMAP_PRCM_MAX_NR_PENDING_REG]; 107 unsigned long pending[OMAP_PRCM_MAX_NR_PENDING_REG];
108 unsigned long priority_pending[OMAP_PRCM_MAX_NR_PENDING_REG]; 108 unsigned long priority_pending[OMAP_PRCM_MAX_NR_PENDING_REG];
diff --git a/arch/arm/mach-pxa/balloon3.c b/arch/arm/mach-pxa/balloon3.c
index 70366b35d299..a3ebb517cca1 100644
--- a/arch/arm/mach-pxa/balloon3.c
+++ b/arch/arm/mach-pxa/balloon3.c
@@ -496,7 +496,7 @@ static struct irq_chip balloon3_irq_chip = {
496 .irq_unmask = balloon3_unmask_irq, 496 .irq_unmask = balloon3_unmask_irq,
497}; 497};
498 498
499static void balloon3_irq_handler(unsigned int __irq, struct irq_desc *desc) 499static void balloon3_irq_handler(struct irq_desc *desc)
500{ 500{
501 unsigned long pending = __raw_readl(BALLOON3_INT_CONTROL_REG) & 501 unsigned long pending = __raw_readl(BALLOON3_INT_CONTROL_REG) &
502 balloon3_irq_enabled; 502 balloon3_irq_enabled;
diff --git a/arch/arm/mach-pxa/cm-x2xx-pci.c b/arch/arm/mach-pxa/cm-x2xx-pci.c
index 1fa79f1f832d..3221ae15bef7 100644
--- a/arch/arm/mach-pxa/cm-x2xx-pci.c
+++ b/arch/arm/mach-pxa/cm-x2xx-pci.c
@@ -29,13 +29,12 @@
29void __iomem *it8152_base_address; 29void __iomem *it8152_base_address;
30static int cmx2xx_it8152_irq_gpio; 30static int cmx2xx_it8152_irq_gpio;
31 31
32static void cmx2xx_it8152_irq_demux(unsigned int __irq, struct irq_desc *desc) 32static void cmx2xx_it8152_irq_demux(struct irq_desc *desc)
33{ 33{
34 unsigned int irq = irq_desc_get_irq(desc);
35 /* clear our parent irq */ 34 /* clear our parent irq */
36 desc->irq_data.chip->irq_ack(&desc->irq_data); 35 desc->irq_data.chip->irq_ack(&desc->irq_data);
37 36
38 it8152_irq_demux(irq, desc); 37 it8152_irq_demux(desc);
39} 38}
40 39
41void __cmx2xx_pci_init_irq(int irq_gpio) 40void __cmx2xx_pci_init_irq(int irq_gpio)
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c
index b070167deef2..4823d972e647 100644
--- a/arch/arm/mach-pxa/lpd270.c
+++ b/arch/arm/mach-pxa/lpd270.c
@@ -120,7 +120,7 @@ static struct irq_chip lpd270_irq_chip = {
120 .irq_unmask = lpd270_unmask_irq, 120 .irq_unmask = lpd270_unmask_irq,
121}; 121};
122 122
123static void lpd270_irq_handler(unsigned int __irq, struct irq_desc *desc) 123static void lpd270_irq_handler(struct irq_desc *desc)
124{ 124{
125 unsigned int irq; 125 unsigned int irq;
126 unsigned long pending; 126 unsigned long pending;
diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c
index 9a0c8affdadb..d8319b54299a 100644
--- a/arch/arm/mach-pxa/pcm990-baseboard.c
+++ b/arch/arm/mach-pxa/pcm990-baseboard.c
@@ -284,7 +284,7 @@ static struct irq_chip pcm990_irq_chip = {
284 .irq_unmask = pcm990_unmask_irq, 284 .irq_unmask = pcm990_unmask_irq,
285}; 285};
286 286
287static void pcm990_irq_handler(unsigned int __irq, struct irq_desc *desc) 287static void pcm990_irq_handler(struct irq_desc *desc)
288{ 288{
289 unsigned int irq; 289 unsigned int irq;
290 unsigned long pending; 290 unsigned long pending;
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c
index 4841d6cefe76..8ab26370107e 100644
--- a/arch/arm/mach-pxa/viper.c
+++ b/arch/arm/mach-pxa/viper.c
@@ -276,7 +276,7 @@ static inline unsigned long viper_irq_pending(void)
276 viper_irq_enabled_mask; 276 viper_irq_enabled_mask;
277} 277}
278 278
279static void viper_irq_handler(unsigned int __irq, struct irq_desc *desc) 279static void viper_irq_handler(struct irq_desc *desc)
280{ 280{
281 unsigned int irq; 281 unsigned int irq;
282 unsigned long pending; 282 unsigned long pending;
diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c
index 6f94dd7b4dee..30e62a3f0701 100644
--- a/arch/arm/mach-pxa/zeus.c
+++ b/arch/arm/mach-pxa/zeus.c
@@ -105,7 +105,7 @@ static inline unsigned long zeus_irq_pending(void)
105 return __raw_readw(ZEUS_CPLD_ISA_IRQ) & zeus_irq_enabled_mask; 105 return __raw_readw(ZEUS_CPLD_ISA_IRQ) & zeus_irq_enabled_mask;
106} 106}
107 107
108static void zeus_irq_handler(unsigned int __irq, struct irq_desc *desc) 108static void zeus_irq_handler(struct irq_desc *desc)
109{ 109{
110 unsigned int irq; 110 unsigned int irq;
111 unsigned long pending; 111 unsigned long pending;
diff --git a/arch/arm/mach-rpc/ecard.c b/arch/arm/mach-rpc/ecard.c
index f726d4c4e6dd..dc67a7fb3831 100644
--- a/arch/arm/mach-rpc/ecard.c
+++ b/arch/arm/mach-rpc/ecard.c
@@ -551,8 +551,7 @@ static void ecard_check_lockup(struct irq_desc *desc)
551 } 551 }
552} 552}
553 553
554static void 554static void ecard_irq_handler(struct irq_desc *desc)
555ecard_irq_handler(unsigned int irq, struct irq_desc *desc)
556{ 555{
557 ecard_t *ec; 556 ecard_t *ec;
558 int called = 0; 557 int called = 0;
diff --git a/arch/arm/mach-s3c24xx/bast-irq.c b/arch/arm/mach-s3c24xx/bast-irq.c
index ced1ab86ac83..2bb08961e934 100644
--- a/arch/arm/mach-s3c24xx/bast-irq.c
+++ b/arch/arm/mach-s3c24xx/bast-irq.c
@@ -100,9 +100,7 @@ static struct irq_chip bast_pc104_chip = {
100 .irq_ack = bast_pc104_maskack 100 .irq_ack = bast_pc104_maskack
101}; 101};
102 102
103static void 103static void bast_irq_pc104_demux(struct irq_desc *desc)
104bast_irq_pc104_demux(unsigned int irq,
105 struct irq_desc *desc)
106{ 104{
107 unsigned int stat; 105 unsigned int stat;
108 unsigned int irqno; 106 unsigned int irqno;
diff --git a/arch/arm/mach-s3c64xx/common.c b/arch/arm/mach-s3c64xx/common.c
index fd63ecfb2f81..ddb30b8434c5 100644
--- a/arch/arm/mach-s3c64xx/common.c
+++ b/arch/arm/mach-s3c64xx/common.c
@@ -388,22 +388,22 @@ static inline void s3c_irq_demux_eint(unsigned int start, unsigned int end)
388 } 388 }
389} 389}
390 390
391static void s3c_irq_demux_eint0_3(unsigned int irq, struct irq_desc *desc) 391static void s3c_irq_demux_eint0_3(struct irq_desc *desc)
392{ 392{
393 s3c_irq_demux_eint(0, 3); 393 s3c_irq_demux_eint(0, 3);
394} 394}
395 395
396static void s3c_irq_demux_eint4_11(unsigned int irq, struct irq_desc *desc) 396static void s3c_irq_demux_eint4_11(struct irq_desc *desc)
397{ 397{
398 s3c_irq_demux_eint(4, 11); 398 s3c_irq_demux_eint(4, 11);
399} 399}
400 400
401static void s3c_irq_demux_eint12_19(unsigned int irq, struct irq_desc *desc) 401static void s3c_irq_demux_eint12_19(struct irq_desc *desc)
402{ 402{
403 s3c_irq_demux_eint(12, 19); 403 s3c_irq_demux_eint(12, 19);
404} 404}
405 405
406static void s3c_irq_demux_eint20_27(unsigned int irq, struct irq_desc *desc) 406static void s3c_irq_demux_eint20_27(struct irq_desc *desc)
407{ 407{
408 s3c_irq_demux_eint(20, 27); 408 s3c_irq_demux_eint(20, 27);
409} 409}
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c
index 6d237b4f7a8e..8411985af9ff 100644
--- a/arch/arm/mach-sa1100/neponset.c
+++ b/arch/arm/mach-sa1100/neponset.c
@@ -166,7 +166,7 @@ static struct sa1100_port_fns neponset_port_fns = {
166 * ensure that the IRQ signal is deasserted before returning. This 166 * ensure that the IRQ signal is deasserted before returning. This
167 * is rather unfortunate. 167 * is rather unfortunate.
168 */ 168 */
169static void neponset_irq_handler(unsigned int irq, struct irq_desc *desc) 169static void neponset_irq_handler(struct irq_desc *desc)
170{ 170{
171 struct neponset_drvdata *d = irq_desc_get_handler_data(desc); 171 struct neponset_drvdata *d = irq_desc_get_handler_data(desc);
172 unsigned int irr; 172 unsigned int irr;
diff --git a/arch/arm/plat-orion/gpio.c b/arch/arm/plat-orion/gpio.c
index 79c33eca09a3..7bd22d8e5b11 100644
--- a/arch/arm/plat-orion/gpio.c
+++ b/arch/arm/plat-orion/gpio.c
@@ -407,7 +407,7 @@ static int gpio_irq_set_type(struct irq_data *d, u32 type)
407 return 0; 407 return 0;
408} 408}
409 409
410static void gpio_irq_handler(unsigned __irq, struct irq_desc *desc) 410static void gpio_irq_handler(struct irq_desc *desc)
411{ 411{
412 struct orion_gpio_chip *ochip = irq_desc_get_handler_data(desc); 412 struct orion_gpio_chip *ochip = irq_desc_get_handler_data(desc);
413 u32 cause, type; 413 u32 cause, type;
diff --git a/arch/avr32/mach-at32ap/extint.c b/arch/avr32/mach-at32ap/extint.c
index d51ff8f1c541..96cabad68489 100644
--- a/arch/avr32/mach-at32ap/extint.c
+++ b/arch/avr32/mach-at32ap/extint.c
@@ -144,7 +144,7 @@ static struct irq_chip eic_chip = {
144 .irq_set_type = eic_set_irq_type, 144 .irq_set_type = eic_set_irq_type,
145}; 145};
146 146
147static void demux_eic_irq(unsigned int irq, struct irq_desc *desc) 147static void demux_eic_irq(struct irq_desc *desc)
148{ 148{
149 struct eic *eic = irq_desc_get_handler_data(desc); 149 struct eic *eic = irq_desc_get_handler_data(desc);
150 unsigned long status, pending; 150 unsigned long status, pending;
diff --git a/arch/avr32/mach-at32ap/pio.c b/arch/avr32/mach-at32ap/pio.c
index 157a5e0e789f..4f61378c3453 100644
--- a/arch/avr32/mach-at32ap/pio.c
+++ b/arch/avr32/mach-at32ap/pio.c
@@ -281,7 +281,7 @@ static struct irq_chip gpio_irqchip = {
281 .irq_set_type = gpio_irq_type, 281 .irq_set_type = gpio_irq_type,
282}; 282};
283 283
284static void gpio_irq_handler(unsigned irq, struct irq_desc *desc) 284static void gpio_irq_handler(struct irq_desc *desc)
285{ 285{
286 struct pio_device *pio = irq_desc_get_chip_data(desc); 286 struct pio_device *pio = irq_desc_get_chip_data(desc);
287 unsigned gpio_irq; 287 unsigned gpio_irq;
diff --git a/arch/blackfin/include/asm/irq_handler.h b/arch/blackfin/include/asm/irq_handler.h
index 4b2a992794d7..d2f90c72378e 100644
--- a/arch/blackfin/include/asm/irq_handler.h
+++ b/arch/blackfin/include/asm/irq_handler.h
@@ -60,7 +60,7 @@ extern void bfin_internal_mask_irq(unsigned int irq);
60extern void bfin_internal_unmask_irq(unsigned int irq); 60extern void bfin_internal_unmask_irq(unsigned int irq);
61 61
62struct irq_desc; 62struct irq_desc;
63extern void bfin_demux_mac_status_irq(unsigned int, struct irq_desc *); 63extern void bfin_demux_mac_status_irq(struct irq_desc *);
64extern void bfin_demux_gpio_irq(unsigned int, struct irq_desc *); 64extern void bfin_demux_gpio_irq(struct irq_desc *);
65 65
66#endif 66#endif
diff --git a/arch/blackfin/kernel/irqchip.c b/arch/blackfin/kernel/irqchip.c
index 0ba25764b8c0..052cde5ed2e4 100644
--- a/arch/blackfin/kernel/irqchip.c
+++ b/arch/blackfin/kernel/irqchip.c
@@ -107,7 +107,7 @@ asmlinkage void asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
107 * than crashing, do something sensible. 107 * than crashing, do something sensible.
108 */ 108 */
109 if (irq >= NR_IRQS) 109 if (irq >= NR_IRQS)
110 handle_bad_irq(irq, &bad_irq_desc); 110 handle_bad_irq(&bad_irq_desc);
111 else 111 else
112 generic_handle_irq(irq); 112 generic_handle_irq(irq);
113 113
diff --git a/arch/blackfin/mach-bf537/ints-priority.c b/arch/blackfin/mach-bf537/ints-priority.c
index 14b2f74554dc..a48baae4384d 100644
--- a/arch/blackfin/mach-bf537/ints-priority.c
+++ b/arch/blackfin/mach-bf537/ints-priority.c
@@ -89,8 +89,7 @@ static struct irq_chip bf537_generic_error_irqchip = {
89 .irq_unmask = bf537_generic_error_unmask_irq, 89 .irq_unmask = bf537_generic_error_unmask_irq,
90}; 90};
91 91
92static void bf537_demux_error_irq(unsigned int int_err_irq, 92static void bf537_demux_error_irq(struct irq_desc *inta_desc)
93 struct irq_desc *inta_desc)
94{ 93{
95 int irq = 0; 94 int irq = 0;
96 95
@@ -182,15 +181,12 @@ static struct irq_chip bf537_mac_rx_irqchip = {
182 .irq_unmask = bf537_mac_rx_unmask_irq, 181 .irq_unmask = bf537_mac_rx_unmask_irq,
183}; 182};
184 183
185static void bf537_demux_mac_rx_irq(unsigned int __int_irq, 184static void bf537_demux_mac_rx_irq(struct irq_desc *desc)
186 struct irq_desc *desc)
187{ 185{
188 unsigned int int_irq = irq_desc_get_irq(desc);
189
190 if (bfin_read_DMA1_IRQ_STATUS() & (DMA_DONE | DMA_ERR)) 186 if (bfin_read_DMA1_IRQ_STATUS() & (DMA_DONE | DMA_ERR))
191 bfin_handle_irq(IRQ_MAC_RX); 187 bfin_handle_irq(IRQ_MAC_RX);
192 else 188 else
193 bfin_demux_gpio_irq(int_irq, desc); 189 bfin_demux_gpio_irq(desc);
194} 190}
195#endif 191#endif
196 192
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index a6d1b03cdf36..e8d4d748d0fd 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -656,8 +656,7 @@ static struct irq_chip bfin_mac_status_irqchip = {
656 .irq_set_wake = bfin_mac_status_set_wake, 656 .irq_set_wake = bfin_mac_status_set_wake,
657}; 657};
658 658
659void bfin_demux_mac_status_irq(unsigned int int_err_irq, 659void bfin_demux_mac_status_irq(struct irq_desc *inta_desc)
660 struct irq_desc *inta_desc)
661{ 660{
662 int i, irq = 0; 661 int i, irq = 0;
663 u32 status = bfin_read_EMAC_SYSTAT(); 662 u32 status = bfin_read_EMAC_SYSTAT();
@@ -825,7 +824,7 @@ static void bfin_demux_gpio_block(unsigned int irq)
825 } 824 }
826} 825}
827 826
828void bfin_demux_gpio_irq(unsigned int __inta_irq, struct irq_desc *desc) 827void bfin_demux_gpio_irq(struct irq_desc *desc)
829{ 828{
830 unsigned int inta_irq = irq_desc_get_irq(desc); 829 unsigned int inta_irq = irq_desc_get_irq(desc);
831 unsigned int irq; 830 unsigned int irq;
diff --git a/arch/c6x/platforms/megamod-pic.c b/arch/c6x/platforms/megamod-pic.c
index d487698e978a..ddcb45d7dfa7 100644
--- a/arch/c6x/platforms/megamod-pic.c
+++ b/arch/c6x/platforms/megamod-pic.c
@@ -93,7 +93,7 @@ static struct irq_chip megamod_chip = {
93 .irq_unmask = unmask_megamod, 93 .irq_unmask = unmask_megamod,
94}; 94};
95 95
96static void megamod_irq_cascade(unsigned int __irq, struct irq_desc *desc) 96static void megamod_irq_cascade(struct irq_desc *desc)
97{ 97{
98 struct megamod_cascade_data *cascade; 98 struct megamod_cascade_data *cascade;
99 struct megamod_pic *pic; 99 struct megamod_pic *pic;
diff --git a/arch/m68k/amiga/amiints.c b/arch/m68k/amiga/amiints.c
index 47b5f90002ab..7ff739e94896 100644
--- a/arch/m68k/amiga/amiints.c
+++ b/arch/m68k/amiga/amiints.c
@@ -46,7 +46,7 @@ static struct irq_chip amiga_irq_chip = {
46 * The builtin Amiga hardware interrupt handlers. 46 * The builtin Amiga hardware interrupt handlers.
47 */ 47 */
48 48
49static void ami_int1(unsigned int irq, struct irq_desc *desc) 49static void ami_int1(struct irq_desc *desc)
50{ 50{
51 unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar; 51 unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar;
52 52
@@ -69,7 +69,7 @@ static void ami_int1(unsigned int irq, struct irq_desc *desc)
69 } 69 }
70} 70}
71 71
72static void ami_int3(unsigned int irq, struct irq_desc *desc) 72static void ami_int3(struct irq_desc *desc)
73{ 73{
74 unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar; 74 unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar;
75 75
@@ -92,7 +92,7 @@ static void ami_int3(unsigned int irq, struct irq_desc *desc)
92 } 92 }
93} 93}
94 94
95static void ami_int4(unsigned int irq, struct irq_desc *desc) 95static void ami_int4(struct irq_desc *desc)
96{ 96{
97 unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar; 97 unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar;
98 98
@@ -121,7 +121,7 @@ static void ami_int4(unsigned int irq, struct irq_desc *desc)
121 } 121 }
122} 122}
123 123
124static void ami_int5(unsigned int irq, struct irq_desc *desc) 124static void ami_int5(struct irq_desc *desc)
125{ 125{
126 unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar; 126 unsigned short ints = amiga_custom.intreqr & amiga_custom.intenar;
127 127
diff --git a/arch/m68k/coldfire/intc-5272.c b/arch/m68k/coldfire/intc-5272.c
index 47371de60427..b0a19e207a63 100644
--- a/arch/m68k/coldfire/intc-5272.c
+++ b/arch/m68k/coldfire/intc-5272.c
@@ -143,12 +143,10 @@ static int intc_irq_set_type(struct irq_data *d, unsigned int type)
143 * We need to be careful with the masking/acking due to the side effects 143 * We need to be careful with the masking/acking due to the side effects
144 * of masking an interrupt. 144 * of masking an interrupt.
145 */ 145 */
146static void intc_external_irq(unsigned int __irq, struct irq_desc *desc) 146static void intc_external_irq(struct irq_desc *desc)
147{ 147{
148 unsigned int irq = irq_desc_get_irq(desc);
149
150 irq_desc_get_chip(desc)->irq_ack(&desc->irq_data); 148 irq_desc_get_chip(desc)->irq_ack(&desc->irq_data);
151 handle_simple_irq(irq, desc); 149 handle_simple_irq(desc);
152} 150}
153 151
154static struct irq_chip intc_irq_chip = { 152static struct irq_chip intc_irq_chip = {
diff --git a/arch/m68k/include/asm/irq.h b/arch/m68k/include/asm/irq.h
index 81ca118d58af..a644f4a53b94 100644
--- a/arch/m68k/include/asm/irq.h
+++ b/arch/m68k/include/asm/irq.h
@@ -64,8 +64,7 @@ extern void m68k_setup_auto_interrupt(void (*handler)(unsigned int,
64 struct pt_regs *)); 64 struct pt_regs *));
65extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt); 65extern void m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt);
66extern void m68k_setup_irq_controller(struct irq_chip *, 66extern void m68k_setup_irq_controller(struct irq_chip *,
67 void (*handle)(unsigned int irq, 67 void (*handle)(struct irq_desc *desc),
68 struct irq_desc *desc),
69 unsigned int irq, unsigned int cnt); 68 unsigned int irq, unsigned int cnt);
70 69
71extern unsigned int irq_canonicalize(unsigned int irq); 70extern unsigned int irq_canonicalize(unsigned int irq);
diff --git a/arch/m68k/include/asm/mac_via.h b/arch/m68k/include/asm/mac_via.h
index fe3fc9ae1b69..53c632c85b03 100644
--- a/arch/m68k/include/asm/mac_via.h
+++ b/arch/m68k/include/asm/mac_via.h
@@ -261,7 +261,7 @@ extern void via_irq_enable(int);
261extern void via_irq_disable(int); 261extern void via_irq_disable(int);
262extern void via_nubus_irq_startup(int irq); 262extern void via_nubus_irq_startup(int irq);
263extern void via_nubus_irq_shutdown(int irq); 263extern void via_nubus_irq_shutdown(int irq);
264extern void via1_irq(unsigned int irq, struct irq_desc *desc); 264extern void via1_irq(struct irq_desc *desc);
265extern void via1_set_head(int); 265extern void via1_set_head(int);
266extern int via2_scsi_drq_pending(void); 266extern int via2_scsi_drq_pending(void);
267 267
diff --git a/arch/m68k/mac/baboon.c b/arch/m68k/mac/baboon.c
index 3fe0e43d44f6..f6f7d42713ec 100644
--- a/arch/m68k/mac/baboon.c
+++ b/arch/m68k/mac/baboon.c
@@ -45,7 +45,7 @@ void __init baboon_init(void)
45 * Baboon interrupt handler. This works a lot like a VIA. 45 * Baboon interrupt handler. This works a lot like a VIA.
46 */ 46 */
47 47
48static void baboon_irq(unsigned int irq, struct irq_desc *desc) 48static void baboon_irq(struct irq_desc *desc)
49{ 49{
50 int irq_bit, irq_num; 50 int irq_bit, irq_num;
51 unsigned char events; 51 unsigned char events;
diff --git a/arch/m68k/mac/oss.c b/arch/m68k/mac/oss.c
index 191610d97689..55d6592783f5 100644
--- a/arch/m68k/mac/oss.c
+++ b/arch/m68k/mac/oss.c
@@ -63,7 +63,7 @@ void __init oss_nubus_init(void)
63 * Handle miscellaneous OSS interrupts. 63 * Handle miscellaneous OSS interrupts.
64 */ 64 */
65 65
66static void oss_irq(unsigned int __irq, struct irq_desc *desc) 66static void oss_irq(struct irq_desc *desc)
67{ 67{
68 int events = oss->irq_pending & 68 int events = oss->irq_pending &
69 (OSS_IP_IOPSCC | OSS_IP_SCSI | OSS_IP_IOPISM); 69 (OSS_IP_IOPSCC | OSS_IP_SCSI | OSS_IP_IOPISM);
@@ -99,7 +99,7 @@ static void oss_irq(unsigned int __irq, struct irq_desc *desc)
99 * Unlike the VIA/RBV this is on its own autovector interrupt level. 99 * Unlike the VIA/RBV this is on its own autovector interrupt level.
100 */ 100 */
101 101
102static void oss_nubus_irq(unsigned int irq, struct irq_desc *desc) 102static void oss_nubus_irq(struct irq_desc *desc)
103{ 103{
104 int events, irq_bit, i; 104 int events, irq_bit, i;
105 105
diff --git a/arch/m68k/mac/psc.c b/arch/m68k/mac/psc.c
index 3b9e302e7a37..cd38f29955c8 100644
--- a/arch/m68k/mac/psc.c
+++ b/arch/m68k/mac/psc.c
@@ -113,7 +113,7 @@ void __init psc_init(void)
113 * PSC interrupt handler. It's a lot like the VIA interrupt handler. 113 * PSC interrupt handler. It's a lot like the VIA interrupt handler.
114 */ 114 */
115 115
116static void psc_irq(unsigned int __irq, struct irq_desc *desc) 116static void psc_irq(struct irq_desc *desc)
117{ 117{
118 unsigned int offset = (unsigned int)irq_desc_get_handler_data(desc); 118 unsigned int offset = (unsigned int)irq_desc_get_handler_data(desc);
119 unsigned int irq = irq_desc_get_irq(desc); 119 unsigned int irq = irq_desc_get_irq(desc);
diff --git a/arch/m68k/mac/via.c b/arch/m68k/mac/via.c
index e198dec868e4..ce56e04386e7 100644
--- a/arch/m68k/mac/via.c
+++ b/arch/m68k/mac/via.c
@@ -446,7 +446,7 @@ void via_nubus_irq_shutdown(int irq)
446 * via6522.c :-), disable/pending masks added. 446 * via6522.c :-), disable/pending masks added.
447 */ 447 */
448 448
449void via1_irq(unsigned int irq, struct irq_desc *desc) 449void via1_irq(struct irq_desc *desc)
450{ 450{
451 int irq_num; 451 int irq_num;
452 unsigned char irq_bit, events; 452 unsigned char irq_bit, events;
@@ -467,7 +467,7 @@ void via1_irq(unsigned int irq, struct irq_desc *desc)
467 } while (events >= irq_bit); 467 } while (events >= irq_bit);
468} 468}
469 469
470static void via2_irq(unsigned int irq, struct irq_desc *desc) 470static void via2_irq(struct irq_desc *desc)
471{ 471{
472 int irq_num; 472 int irq_num;
473 unsigned char irq_bit, events; 473 unsigned char irq_bit, events;
@@ -493,7 +493,7 @@ static void via2_irq(unsigned int irq, struct irq_desc *desc)
493 * VIA2 dispatcher as a fast interrupt handler. 493 * VIA2 dispatcher as a fast interrupt handler.
494 */ 494 */
495 495
496void via_nubus_irq(unsigned int irq, struct irq_desc *desc) 496static void via_nubus_irq(struct irq_desc *desc)
497{ 497{
498 int slot_irq; 498 int slot_irq;
499 unsigned char slot_bit, events; 499 unsigned char slot_bit, events;
diff --git a/arch/metag/kernel/irq.c b/arch/metag/kernel/irq.c
index a336094a7a6c..3074b64793e6 100644
--- a/arch/metag/kernel/irq.c
+++ b/arch/metag/kernel/irq.c
@@ -94,13 +94,11 @@ void do_IRQ(int irq, struct pt_regs *regs)
94 "MOV D0.5,%0\n" 94 "MOV D0.5,%0\n"
95 "MOV D1Ar1,%1\n" 95 "MOV D1Ar1,%1\n"
96 "MOV D1RtP,%2\n" 96 "MOV D1RtP,%2\n"
97 "MOV D0Ar2,%3\n"
98 "SWAP A0StP,D0.5\n" 97 "SWAP A0StP,D0.5\n"
99 "SWAP PC,D1RtP\n" 98 "SWAP PC,D1RtP\n"
100 "MOV A0StP,D0.5\n" 99 "MOV A0StP,D0.5\n"
101 : 100 :
102 : "r" (isp), "r" (irq), "r" (desc->handle_irq), 101 : "r" (isp), "r" (desc), "r" (desc->handle_irq)
103 "r" (desc)
104 : "memory", "cc", "D1Ar1", "D0Ar2", "D1Ar3", "D0Ar4", 102 : "memory", "cc", "D1Ar1", "D0Ar2", "D1Ar3", "D0Ar4",
105 "D1Ar5", "D0Ar6", "D0Re0", "D1Re0", "D0.4", "D1RtP", 103 "D1Ar5", "D0Ar6", "D0Re0", "D1Re0", "D0.4", "D1RtP",
106 "D0.5" 104 "D0.5"
diff --git a/arch/mips/alchemy/common/irq.c b/arch/mips/alchemy/common/irq.c
index 4c496c50edf6..da9f9220048f 100644
--- a/arch/mips/alchemy/common/irq.c
+++ b/arch/mips/alchemy/common/irq.c
@@ -851,7 +851,7 @@ static struct syscore_ops alchemy_gpic_pmops = {
851 851
852/* create chained handlers for the 4 IC requests to the MIPS IRQ ctrl */ 852/* create chained handlers for the 4 IC requests to the MIPS IRQ ctrl */
853#define DISP(name, base, addr) \ 853#define DISP(name, base, addr) \
854static void au1000_##name##_dispatch(unsigned int irq, struct irq_desc *d) \ 854static void au1000_##name##_dispatch(struct irq_desc *d) \
855{ \ 855{ \
856 unsigned long r = __raw_readl((void __iomem *)KSEG1ADDR(addr)); \ 856 unsigned long r = __raw_readl((void __iomem *)KSEG1ADDR(addr)); \
857 if (likely(r)) \ 857 if (likely(r)) \
@@ -865,7 +865,7 @@ DISP(ic0r1, AU1000_INTC0_INT_BASE, AU1000_IC0_PHYS_ADDR + IC_REQ1INT)
865DISP(ic1r0, AU1000_INTC1_INT_BASE, AU1000_IC1_PHYS_ADDR + IC_REQ0INT) 865DISP(ic1r0, AU1000_INTC1_INT_BASE, AU1000_IC1_PHYS_ADDR + IC_REQ0INT)
866DISP(ic1r1, AU1000_INTC1_INT_BASE, AU1000_IC1_PHYS_ADDR + IC_REQ1INT) 866DISP(ic1r1, AU1000_INTC1_INT_BASE, AU1000_IC1_PHYS_ADDR + IC_REQ1INT)
867 867
868static void alchemy_gpic_dispatch(unsigned int irq, struct irq_desc *d) 868static void alchemy_gpic_dispatch(struct irq_desc *d)
869{ 869{
870 int i = __raw_readl(AU1300_GPIC_ADDR + AU1300_GPIC_PRIENC); 870 int i = __raw_readl(AU1300_GPIC_ADDR + AU1300_GPIC_PRIENC);
871 generic_handle_irq(ALCHEMY_GPIC_INT_BASE + i); 871 generic_handle_irq(ALCHEMY_GPIC_INT_BASE + i);
diff --git a/arch/mips/alchemy/devboards/bcsr.c b/arch/mips/alchemy/devboards/bcsr.c
index 324ad72d7c36..faeddf119fd4 100644
--- a/arch/mips/alchemy/devboards/bcsr.c
+++ b/arch/mips/alchemy/devboards/bcsr.c
@@ -86,7 +86,7 @@ EXPORT_SYMBOL_GPL(bcsr_mod);
86/* 86/*
87 * DB1200/PB1200 CPLD IRQ muxer 87 * DB1200/PB1200 CPLD IRQ muxer
88 */ 88 */
89static void bcsr_csc_handler(unsigned int irq, struct irq_desc *d) 89static void bcsr_csc_handler(struct irq_desc *d)
90{ 90{
91 unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT); 91 unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT);
92 struct irq_chip *chip = irq_desc_get_chip(d); 92 struct irq_chip *chip = irq_desc_get_chip(d);
diff --git a/arch/mips/ath25/ar2315.c b/arch/mips/ath25/ar2315.c
index ec9a371f1e62..8da996142d6a 100644
--- a/arch/mips/ath25/ar2315.c
+++ b/arch/mips/ath25/ar2315.c
@@ -69,7 +69,7 @@ static struct irqaction ar2315_ahb_err_interrupt = {
69 .name = "ar2315-ahb-error", 69 .name = "ar2315-ahb-error",
70}; 70};
71 71
72static void ar2315_misc_irq_handler(unsigned irq, struct irq_desc *desc) 72static void ar2315_misc_irq_handler(struct irq_desc *desc)
73{ 73{
74 u32 pending = ar2315_rst_reg_read(AR2315_ISR) & 74 u32 pending = ar2315_rst_reg_read(AR2315_ISR) &
75 ar2315_rst_reg_read(AR2315_IMR); 75 ar2315_rst_reg_read(AR2315_IMR);
diff --git a/arch/mips/ath25/ar5312.c b/arch/mips/ath25/ar5312.c
index e63e38fa4880..acd55a9cffe3 100644
--- a/arch/mips/ath25/ar5312.c
+++ b/arch/mips/ath25/ar5312.c
@@ -73,7 +73,7 @@ static struct irqaction ar5312_ahb_err_interrupt = {
73 .name = "ar5312-ahb-error", 73 .name = "ar5312-ahb-error",
74}; 74};
75 75
76static void ar5312_misc_irq_handler(unsigned irq, struct irq_desc *desc) 76static void ar5312_misc_irq_handler(struct irq_desc *desc)
77{ 77{
78 u32 pending = ar5312_rst_reg_read(AR5312_ISR) & 78 u32 pending = ar5312_rst_reg_read(AR5312_ISR) &
79 ar5312_rst_reg_read(AR5312_IMR); 79 ar5312_rst_reg_read(AR5312_IMR);
diff --git a/arch/mips/ath79/irq.c b/arch/mips/ath79/irq.c
index 807132b838b2..15ecb4831e12 100644
--- a/arch/mips/ath79/irq.c
+++ b/arch/mips/ath79/irq.c
@@ -26,7 +26,7 @@
26#include "common.h" 26#include "common.h"
27#include "machtypes.h" 27#include "machtypes.h"
28 28
29static void ath79_misc_irq_handler(unsigned int irq, struct irq_desc *desc) 29static void ath79_misc_irq_handler(struct irq_desc *desc)
30{ 30{
31 void __iomem *base = ath79_reset_base; 31 void __iomem *base = ath79_reset_base;
32 u32 pending; 32 u32 pending;
@@ -119,7 +119,7 @@ static void __init ath79_misc_irq_init(void)
119 irq_set_chained_handler(ATH79_CPU_IRQ(6), ath79_misc_irq_handler); 119 irq_set_chained_handler(ATH79_CPU_IRQ(6), ath79_misc_irq_handler);
120} 120}
121 121
122static void ar934x_ip2_irq_dispatch(unsigned int irq, struct irq_desc *desc) 122static void ar934x_ip2_irq_dispatch(struct irq_desc *desc)
123{ 123{
124 u32 status; 124 u32 status;
125 125
@@ -148,7 +148,7 @@ static void ar934x_ip2_irq_init(void)
148 irq_set_chained_handler(ATH79_CPU_IRQ(2), ar934x_ip2_irq_dispatch); 148 irq_set_chained_handler(ATH79_CPU_IRQ(2), ar934x_ip2_irq_dispatch);
149} 149}
150 150
151static void qca955x_ip2_irq_dispatch(unsigned int irq, struct irq_desc *desc) 151static void qca955x_ip2_irq_dispatch(struct irq_desc *desc)
152{ 152{
153 u32 status; 153 u32 status;
154 154
@@ -171,7 +171,7 @@ static void qca955x_ip2_irq_dispatch(unsigned int irq, struct irq_desc *desc)
171 } 171 }
172} 172}
173 173
174static void qca955x_ip3_irq_dispatch(unsigned int irq, struct irq_desc *desc) 174static void qca955x_ip3_irq_dispatch(struct irq_desc *desc)
175{ 175{
176 u32 status; 176 u32 status;
177 177
diff --git a/arch/mips/cavium-octeon/octeon-irq.c b/arch/mips/cavium-octeon/octeon-irq.c
index f26c3c661cca..0352bc8d56b3 100644
--- a/arch/mips/cavium-octeon/octeon-irq.c
+++ b/arch/mips/cavium-octeon/octeon-irq.c
@@ -2221,7 +2221,7 @@ static irqreturn_t octeon_irq_cib_handler(int my_irq, void *data)
2221 if (irqd_get_trigger_type(irq_data) & 2221 if (irqd_get_trigger_type(irq_data) &
2222 IRQ_TYPE_EDGE_BOTH) 2222 IRQ_TYPE_EDGE_BOTH)
2223 cvmx_write_csr(host_data->raw_reg, 1ull << i); 2223 cvmx_write_csr(host_data->raw_reg, 1ull << i);
2224 generic_handle_irq_desc(irq, desc); 2224 generic_handle_irq_desc(desc);
2225 } 2225 }
2226 } 2226 }
2227 2227
diff --git a/arch/mips/include/asm/netlogic/common.h b/arch/mips/include/asm/netlogic/common.h
index 2a4c128277e4..be52c2125d71 100644
--- a/arch/mips/include/asm/netlogic/common.h
+++ b/arch/mips/include/asm/netlogic/common.h
@@ -57,8 +57,8 @@
57#include <asm/mach-netlogic/multi-node.h> 57#include <asm/mach-netlogic/multi-node.h>
58 58
59struct irq_desc; 59struct irq_desc;
60void nlm_smp_function_ipi_handler(unsigned int irq, struct irq_desc *desc); 60void nlm_smp_function_ipi_handler(struct irq_desc *desc);
61void nlm_smp_resched_ipi_handler(unsigned int irq, struct irq_desc *desc); 61void nlm_smp_resched_ipi_handler(struct irq_desc *desc);
62void nlm_smp_irq_init(int hwcpuid); 62void nlm_smp_irq_init(int hwcpuid);
63void nlm_boot_secondary_cpus(void); 63void nlm_boot_secondary_cpus(void);
64int nlm_wakeup_secondary_cpus(void); 64int nlm_wakeup_secondary_cpus(void);
diff --git a/arch/mips/jz4740/gpio.c b/arch/mips/jz4740/gpio.c
index 6cd69fdaa1c5..a74e181058b0 100644
--- a/arch/mips/jz4740/gpio.c
+++ b/arch/mips/jz4740/gpio.c
@@ -291,7 +291,7 @@ static void jz_gpio_check_trigger_both(struct jz_gpio_chip *chip, unsigned int i
291 writel(mask, reg); 291 writel(mask, reg);
292} 292}
293 293
294static void jz_gpio_irq_demux_handler(unsigned int irq, struct irq_desc *desc) 294static void jz_gpio_irq_demux_handler(struct irq_desc *desc)
295{ 295{
296 uint32_t flag; 296 uint32_t flag;
297 unsigned int gpio_irq; 297 unsigned int gpio_irq;
diff --git a/arch/mips/netlogic/common/smp.c b/arch/mips/netlogic/common/smp.c
index 0136b4f9c9cd..10d86d54880a 100644
--- a/arch/mips/netlogic/common/smp.c
+++ b/arch/mips/netlogic/common/smp.c
@@ -82,7 +82,7 @@ void nlm_send_ipi_mask(const struct cpumask *mask, unsigned int action)
82} 82}
83 83
84/* IRQ_IPI_SMP_FUNCTION Handler */ 84/* IRQ_IPI_SMP_FUNCTION Handler */
85void nlm_smp_function_ipi_handler(unsigned int __irq, struct irq_desc *desc) 85void nlm_smp_function_ipi_handler(struct irq_desc *desc)
86{ 86{
87 unsigned int irq = irq_desc_get_irq(desc); 87 unsigned int irq = irq_desc_get_irq(desc);
88 clear_c0_eimr(irq); 88 clear_c0_eimr(irq);
@@ -92,7 +92,7 @@ void nlm_smp_function_ipi_handler(unsigned int __irq, struct irq_desc *desc)
92} 92}
93 93
94/* IRQ_IPI_SMP_RESCHEDULE handler */ 94/* IRQ_IPI_SMP_RESCHEDULE handler */
95void nlm_smp_resched_ipi_handler(unsigned int __irq, struct irq_desc *desc) 95void nlm_smp_resched_ipi_handler(struct irq_desc *desc)
96{ 96{
97 unsigned int irq = irq_desc_get_irq(desc); 97 unsigned int irq = irq_desc_get_irq(desc);
98 clear_c0_eimr(irq); 98 clear_c0_eimr(irq);
diff --git a/arch/mips/pci/pci-ar2315.c b/arch/mips/pci/pci-ar2315.c
index f8d0acb4f973..b4fa6413c4e5 100644
--- a/arch/mips/pci/pci-ar2315.c
+++ b/arch/mips/pci/pci-ar2315.c
@@ -318,7 +318,7 @@ static int ar2315_pci_host_setup(struct ar2315_pci_ctrl *apc)
318 return 0; 318 return 0;
319} 319}
320 320
321static void ar2315_pci_irq_handler(unsigned irq, struct irq_desc *desc) 321static void ar2315_pci_irq_handler(struct irq_desc *desc)
322{ 322{
323 struct ar2315_pci_ctrl *apc = irq_desc_get_handler_data(desc); 323 struct ar2315_pci_ctrl *apc = irq_desc_get_handler_data(desc);
324 u32 pending = ar2315_pci_reg_read(apc, AR2315_PCI_ISR) & 324 u32 pending = ar2315_pci_reg_read(apc, AR2315_PCI_ISR) &
diff --git a/arch/mips/pci/pci-ar71xx.c b/arch/mips/pci/pci-ar71xx.c
index ad35a5e6a56c..7db963deec73 100644
--- a/arch/mips/pci/pci-ar71xx.c
+++ b/arch/mips/pci/pci-ar71xx.c
@@ -226,7 +226,7 @@ static struct pci_ops ar71xx_pci_ops = {
226 .write = ar71xx_pci_write_config, 226 .write = ar71xx_pci_write_config,
227}; 227};
228 228
229static void ar71xx_pci_irq_handler(unsigned int irq, struct irq_desc *desc) 229static void ar71xx_pci_irq_handler(struct irq_desc *desc)
230{ 230{
231 struct ar71xx_pci_controller *apc; 231 struct ar71xx_pci_controller *apc;
232 void __iomem *base = ath79_reset_base; 232 void __iomem *base = ath79_reset_base;
diff --git a/arch/mips/pci/pci-ar724x.c b/arch/mips/pci/pci-ar724x.c
index 907d11dd921b..2013dad700df 100644
--- a/arch/mips/pci/pci-ar724x.c
+++ b/arch/mips/pci/pci-ar724x.c
@@ -225,7 +225,7 @@ static struct pci_ops ar724x_pci_ops = {
225 .write = ar724x_pci_write, 225 .write = ar724x_pci_write,
226}; 226};
227 227
228static void ar724x_pci_irq_handler(unsigned int irq, struct irq_desc *desc) 228static void ar724x_pci_irq_handler(struct irq_desc *desc)
229{ 229{
230 struct ar724x_pci_controller *apc; 230 struct ar724x_pci_controller *apc;
231 void __iomem *base; 231 void __iomem *base;
diff --git a/arch/mips/pci/pci-rt3883.c b/arch/mips/pci/pci-rt3883.c
index 53c8efaf1572..ed6732f9aa87 100644
--- a/arch/mips/pci/pci-rt3883.c
+++ b/arch/mips/pci/pci-rt3883.c
@@ -129,7 +129,7 @@ static void rt3883_pci_write_cfg32(struct rt3883_pci_controller *rpc,
129 rt3883_pci_w32(rpc, val, RT3883_PCI_REG_CFGDATA); 129 rt3883_pci_w32(rpc, val, RT3883_PCI_REG_CFGDATA);
130} 130}
131 131
132static void rt3883_pci_irq_handler(unsigned int __irq, struct irq_desc *desc) 132static void rt3883_pci_irq_handler(struct irq_desc *desc)
133{ 133{
134 struct rt3883_pci_controller *rpc; 134 struct rt3883_pci_controller *rpc;
135 u32 pending; 135 u32 pending;
diff --git a/arch/mips/ralink/irq.c b/arch/mips/ralink/irq.c
index 8c624a8b9ea2..4cf77f358395 100644
--- a/arch/mips/ralink/irq.c
+++ b/arch/mips/ralink/irq.c
@@ -96,7 +96,7 @@ unsigned int get_c0_compare_int(void)
96 return CP0_LEGACY_COMPARE_IRQ; 96 return CP0_LEGACY_COMPARE_IRQ;
97} 97}
98 98
99static void ralink_intc_irq_handler(unsigned int irq, struct irq_desc *desc) 99static void ralink_intc_irq_handler(struct irq_desc *desc)
100{ 100{
101 u32 pending = rt_intc_r32(INTC_REG_STATUS0); 101 u32 pending = rt_intc_r32(INTC_REG_STATUS0);
102 102
diff --git a/arch/powerpc/include/asm/qe_ic.h b/arch/powerpc/include/asm/qe_ic.h
index 25784cc959a0..1e155ca6d33c 100644
--- a/arch/powerpc/include/asm/qe_ic.h
+++ b/arch/powerpc/include/asm/qe_ic.h
@@ -59,14 +59,14 @@ enum qe_ic_grp_id {
59 59
60#ifdef CONFIG_QUICC_ENGINE 60#ifdef CONFIG_QUICC_ENGINE
61void qe_ic_init(struct device_node *node, unsigned int flags, 61void qe_ic_init(struct device_node *node, unsigned int flags,
62 void (*low_handler)(unsigned int irq, struct irq_desc *desc), 62 void (*low_handler)(struct irq_desc *desc),
63 void (*high_handler)(unsigned int irq, struct irq_desc *desc)); 63 void (*high_handler)(struct irq_desc *desc));
64unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic); 64unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic);
65unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic); 65unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic);
66#else 66#else
67static inline void qe_ic_init(struct device_node *node, unsigned int flags, 67static inline void qe_ic_init(struct device_node *node, unsigned int flags,
68 void (*low_handler)(unsigned int irq, struct irq_desc *desc), 68 void (*low_handler)(struct irq_desc *desc),
69 void (*high_handler)(unsigned int irq, struct irq_desc *desc)) 69 void (*high_handler)(struct irq_desc *desc))
70{} 70{}
71static inline unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic) 71static inline unsigned int qe_ic_get_low_irq(struct qe_ic *qe_ic)
72{ return 0; } 72{ return 0; }
@@ -78,8 +78,7 @@ void qe_ic_set_highest_priority(unsigned int virq, int high);
78int qe_ic_set_priority(unsigned int virq, unsigned int priority); 78int qe_ic_set_priority(unsigned int virq, unsigned int priority);
79int qe_ic_set_high_priority(unsigned int virq, unsigned int priority, int high); 79int qe_ic_set_high_priority(unsigned int virq, unsigned int priority, int high);
80 80
81static inline void qe_ic_cascade_low_ipic(unsigned int irq, 81static inline void qe_ic_cascade_low_ipic(struct irq_desc *desc)
82 struct irq_desc *desc)
83{ 82{
84 struct qe_ic *qe_ic = irq_desc_get_handler_data(desc); 83 struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
85 unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic); 84 unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic);
@@ -88,8 +87,7 @@ static inline void qe_ic_cascade_low_ipic(unsigned int irq,
88 generic_handle_irq(cascade_irq); 87 generic_handle_irq(cascade_irq);
89} 88}
90 89
91static inline void qe_ic_cascade_high_ipic(unsigned int irq, 90static inline void qe_ic_cascade_high_ipic(struct irq_desc *desc)
92 struct irq_desc *desc)
93{ 91{
94 struct qe_ic *qe_ic = irq_desc_get_handler_data(desc); 92 struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
95 unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic); 93 unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic);
@@ -98,8 +96,7 @@ static inline void qe_ic_cascade_high_ipic(unsigned int irq,
98 generic_handle_irq(cascade_irq); 96 generic_handle_irq(cascade_irq);
99} 97}
100 98
101static inline void qe_ic_cascade_low_mpic(unsigned int irq, 99static inline void qe_ic_cascade_low_mpic(struct irq_desc *desc)
102 struct irq_desc *desc)
103{ 100{
104 struct qe_ic *qe_ic = irq_desc_get_handler_data(desc); 101 struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
105 unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic); 102 unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic);
@@ -111,8 +108,7 @@ static inline void qe_ic_cascade_low_mpic(unsigned int irq,
111 chip->irq_eoi(&desc->irq_data); 108 chip->irq_eoi(&desc->irq_data);
112} 109}
113 110
114static inline void qe_ic_cascade_high_mpic(unsigned int irq, 111static inline void qe_ic_cascade_high_mpic(struct irq_desc *desc)
115 struct irq_desc *desc)
116{ 112{
117 struct qe_ic *qe_ic = irq_desc_get_handler_data(desc); 113 struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
118 unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic); 114 unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic);
@@ -124,8 +120,7 @@ static inline void qe_ic_cascade_high_mpic(unsigned int irq,
124 chip->irq_eoi(&desc->irq_data); 120 chip->irq_eoi(&desc->irq_data);
125} 121}
126 122
127static inline void qe_ic_cascade_muxed_mpic(unsigned int irq, 123static inline void qe_ic_cascade_muxed_mpic(struct irq_desc *desc)
128 struct irq_desc *desc)
129{ 124{
130 struct qe_ic *qe_ic = irq_desc_get_handler_data(desc); 125 struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
131 unsigned int cascade_irq; 126 unsigned int cascade_irq;
diff --git a/arch/powerpc/include/asm/tsi108_pci.h b/arch/powerpc/include/asm/tsi108_pci.h
index 5653d7cc3e24..ae59d5b672b0 100644
--- a/arch/powerpc/include/asm/tsi108_pci.h
+++ b/arch/powerpc/include/asm/tsi108_pci.h
@@ -39,7 +39,7 @@
39 39
40extern int tsi108_setup_pci(struct device_node *dev, u32 cfg_phys, int primary); 40extern int tsi108_setup_pci(struct device_node *dev, u32 cfg_phys, int primary);
41extern void tsi108_pci_int_init(struct device_node *node); 41extern void tsi108_pci_int_init(struct device_node *node);
42extern void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc); 42extern void tsi108_irq_cascade(struct irq_desc *desc);
43extern void tsi108_clear_pci_cfg_error(void); 43extern void tsi108_clear_pci_cfg_error(void);
44 44
45#endif /* _ASM_POWERPC_TSI108_PCI_H */ 45#endif /* _ASM_POWERPC_TSI108_PCI_H */
diff --git a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
index cf8287487157..0035d146df73 100644
--- a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
+++ b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
@@ -104,8 +104,7 @@ cpld_pic_get_irq(int offset, u8 ignore, u8 __iomem *statusp,
104 return irq_linear_revmap(cpld_pic_host, cpld_irq); 104 return irq_linear_revmap(cpld_pic_host, cpld_irq);
105} 105}
106 106
107static void 107static void cpld_pic_cascade(struct irq_desc *desc)
108cpld_pic_cascade(unsigned int __irq, struct irq_desc *desc)
109{ 108{
110 unsigned int irq; 109 unsigned int irq;
111 110
diff --git a/arch/powerpc/platforms/52xx/media5200.c b/arch/powerpc/platforms/52xx/media5200.c
index 32cae33c4266..8fb95480fd73 100644
--- a/arch/powerpc/platforms/52xx/media5200.c
+++ b/arch/powerpc/platforms/52xx/media5200.c
@@ -80,7 +80,7 @@ static struct irq_chip media5200_irq_chip = {
80 .irq_mask_ack = media5200_irq_mask, 80 .irq_mask_ack = media5200_irq_mask,
81}; 81};
82 82
83void media5200_irq_cascade(unsigned int virq, struct irq_desc *desc) 83static void media5200_irq_cascade(struct irq_desc *desc)
84{ 84{
85 struct irq_chip *chip = irq_desc_get_chip(desc); 85 struct irq_chip *chip = irq_desc_get_chip(desc);
86 int sub_virq, val; 86 int sub_virq, val;
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index 63016621aff8..78ac19aefa4d 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -191,7 +191,7 @@ static struct irq_chip mpc52xx_gpt_irq_chip = {
191 .irq_set_type = mpc52xx_gpt_irq_set_type, 191 .irq_set_type = mpc52xx_gpt_irq_set_type,
192}; 192};
193 193
194void mpc52xx_gpt_irq_cascade(unsigned int virq, struct irq_desc *desc) 194static void mpc52xx_gpt_irq_cascade(struct irq_desc *desc)
195{ 195{
196 struct mpc52xx_gpt_priv *gpt = irq_desc_get_handler_data(desc); 196 struct mpc52xx_gpt_priv *gpt = irq_desc_get_handler_data(desc);
197 int sub_virq; 197 int sub_virq;
diff --git a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
index 74861a7fb807..60e89fc9c753 100644
--- a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
+++ b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
@@ -78,7 +78,7 @@ static struct irq_chip pq2ads_pci_ic = {
78 .irq_disable = pq2ads_pci_mask_irq 78 .irq_disable = pq2ads_pci_mask_irq
79}; 79};
80 80
81static void pq2ads_pci_irq_demux(unsigned int irq, struct irq_desc *desc) 81static void pq2ads_pci_irq_demux(struct irq_desc *desc)
82{ 82{
83 struct pq2ads_pci_pic *priv = irq_desc_get_handler_data(desc); 83 struct pq2ads_pci_pic *priv = irq_desc_get_handler_data(desc);
84 u32 stat, mask, pend; 84 u32 stat, mask, pend;
diff --git a/arch/powerpc/platforms/85xx/common.c b/arch/powerpc/platforms/85xx/common.c
index 7bfb9b184dd4..23791de7b688 100644
--- a/arch/powerpc/platforms/85xx/common.c
+++ b/arch/powerpc/platforms/85xx/common.c
@@ -49,7 +49,7 @@ int __init mpc85xx_common_publish_devices(void)
49 return of_platform_bus_probe(NULL, mpc85xx_common_ids, NULL); 49 return of_platform_bus_probe(NULL, mpc85xx_common_ids, NULL);
50} 50}
51#ifdef CONFIG_CPM2 51#ifdef CONFIG_CPM2
52static void cpm2_cascade(unsigned int irq, struct irq_desc *desc) 52static void cpm2_cascade(struct irq_desc *desc)
53{ 53{
54 struct irq_chip *chip = irq_desc_get_chip(desc); 54 struct irq_chip *chip = irq_desc_get_chip(desc);
55 int cascade_irq; 55 int cascade_irq;
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
index 13a8d1a3d55c..5ac70de3e48a 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
@@ -192,10 +192,8 @@ void mpc85xx_cds_fixup_bus(struct pci_bus *bus)
192} 192}
193 193
194#ifdef CONFIG_PPC_I8259 194#ifdef CONFIG_PPC_I8259
195static void mpc85xx_8259_cascade_handler(unsigned int __irq, 195static void mpc85xx_8259_cascade_handler(struct irq_desc *desc)
196 struct irq_desc *desc)
197{ 196{
198 unsigned int irq = irq_desc_get_irq(desc);
199 unsigned int cascade_irq = i8259_irq(); 197 unsigned int cascade_irq = i8259_irq();
200 198
201 if (cascade_irq != NO_IRQ) 199 if (cascade_irq != NO_IRQ)
@@ -203,7 +201,7 @@ static void mpc85xx_8259_cascade_handler(unsigned int __irq,
203 generic_handle_irq(cascade_irq); 201 generic_handle_irq(cascade_irq);
204 202
205 /* check for any interrupts from the shared IRQ line */ 203 /* check for any interrupts from the shared IRQ line */
206 handle_fasteoi_irq(irq, desc); 204 handle_fasteoi_irq(desc);
207} 205}
208 206
209static irqreturn_t mpc85xx_8259_cascade_action(int irq, void *dev_id) 207static irqreturn_t mpc85xx_8259_cascade_action(int irq, void *dev_id)
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index ffdf02121a7c..f858306dba6a 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -46,7 +46,7 @@
46#endif 46#endif
47 47
48#ifdef CONFIG_PPC_I8259 48#ifdef CONFIG_PPC_I8259
49static void mpc85xx_8259_cascade(unsigned int irq, struct irq_desc *desc) 49static void mpc85xx_8259_cascade(struct irq_desc *desc)
50{ 50{
51 struct irq_chip *chip = irq_desc_get_chip(desc); 51 struct irq_chip *chip = irq_desc_get_chip(desc);
52 unsigned int cascade_irq = i8259_irq(); 52 unsigned int cascade_irq = i8259_irq();
diff --git a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
index d78fda892e8b..b02d6a5bb035 100644
--- a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
+++ b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
@@ -91,7 +91,7 @@ static inline unsigned int socrates_fpga_pic_get_irq(unsigned int irq)
91 (irq_hw_number_t)i); 91 (irq_hw_number_t)i);
92} 92}
93 93
94void socrates_fpga_pic_cascade(unsigned int __irq, struct irq_desc *desc) 94static void socrates_fpga_pic_cascade(struct irq_desc *desc)
95{ 95{
96 struct irq_chip *chip = irq_desc_get_chip(desc); 96 struct irq_chip *chip = irq_desc_get_chip(desc);
97 unsigned int irq = irq_desc_get_irq(desc); 97 unsigned int irq = irq_desc_get_irq(desc);
diff --git a/arch/powerpc/platforms/86xx/pic.c b/arch/powerpc/platforms/86xx/pic.c
index d5b98c0f958a..845defa1fd19 100644
--- a/arch/powerpc/platforms/86xx/pic.c
+++ b/arch/powerpc/platforms/86xx/pic.c
@@ -17,7 +17,7 @@
17#include <asm/i8259.h> 17#include <asm/i8259.h>
18 18
19#ifdef CONFIG_PPC_I8259 19#ifdef CONFIG_PPC_I8259
20static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc) 20static void mpc86xx_8259_cascade(struct irq_desc *desc)
21{ 21{
22 struct irq_chip *chip = irq_desc_get_chip(desc); 22 struct irq_chip *chip = irq_desc_get_chip(desc);
23 unsigned int cascade_irq = i8259_irq(); 23 unsigned int cascade_irq = i8259_irq();
diff --git a/arch/powerpc/platforms/8xx/m8xx_setup.c b/arch/powerpc/platforms/8xx/m8xx_setup.c
index d3037747031d..c289fc77b4ba 100644
--- a/arch/powerpc/platforms/8xx/m8xx_setup.c
+++ b/arch/powerpc/platforms/8xx/m8xx_setup.c
@@ -214,7 +214,7 @@ void mpc8xx_restart(char *cmd)
214 panic("Restart failed\n"); 214 panic("Restart failed\n");
215} 215}
216 216
217static void cpm_cascade(unsigned int irq, struct irq_desc *desc) 217static void cpm_cascade(struct irq_desc *desc)
218{ 218{
219 struct irq_chip *chip = irq_desc_get_chip(desc); 219 struct irq_chip *chip = irq_desc_get_chip(desc);
220 int cascade_irq = cpm_get_irq(); 220 int cascade_irq = cpm_get_irq();
diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c
index 306888acb737..e0e68a1c0d3c 100644
--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -93,7 +93,7 @@ static void msic_dcr_write(struct axon_msic *msic, unsigned int dcr_n, u32 val)
93 dcr_write(msic->dcr_host, dcr_n, val); 93 dcr_write(msic->dcr_host, dcr_n, val);
94} 94}
95 95
96static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc) 96static void axon_msi_cascade(struct irq_desc *desc)
97{ 97{
98 struct irq_chip *chip = irq_desc_get_chip(desc); 98 struct irq_chip *chip = irq_desc_get_chip(desc);
99 struct axon_msic *msic = irq_desc_get_handler_data(desc); 99 struct axon_msic *msic = irq_desc_get_handler_data(desc);
diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c
index 6558e7e8ee50..9f609fc8d331 100644
--- a/arch/powerpc/platforms/cell/interrupt.c
+++ b/arch/powerpc/platforms/cell/interrupt.c
@@ -99,7 +99,7 @@ static void iic_ioexc_eoi(struct irq_data *d)
99{ 99{
100} 100}
101 101
102static void iic_ioexc_cascade(unsigned int __irq, struct irq_desc *desc) 102static void iic_ioexc_cascade(struct irq_desc *desc)
103{ 103{
104 struct irq_chip *chip = irq_desc_get_chip(desc); 104 struct irq_chip *chip = irq_desc_get_chip(desc);
105 struct cbe_iic_regs __iomem *node_iic = 105 struct cbe_iic_regs __iomem *node_iic =
diff --git a/arch/powerpc/platforms/cell/spider-pic.c b/arch/powerpc/platforms/cell/spider-pic.c
index 1f72f4ab6353..9d27de62dc62 100644
--- a/arch/powerpc/platforms/cell/spider-pic.c
+++ b/arch/powerpc/platforms/cell/spider-pic.c
@@ -199,7 +199,7 @@ static const struct irq_domain_ops spider_host_ops = {
199 .xlate = spider_host_xlate, 199 .xlate = spider_host_xlate,
200}; 200};
201 201
202static void spider_irq_cascade(unsigned int irq, struct irq_desc *desc) 202static void spider_irq_cascade(struct irq_desc *desc)
203{ 203{
204 struct irq_chip *chip = irq_desc_get_chip(desc); 204 struct irq_chip *chip = irq_desc_get_chip(desc);
205 struct spider_pic *pic = irq_desc_get_handler_data(desc); 205 struct spider_pic *pic = irq_desc_get_handler_data(desc);
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c
index 15ebc4e8a151..987d1b8d68e3 100644
--- a/arch/powerpc/platforms/chrp/setup.c
+++ b/arch/powerpc/platforms/chrp/setup.c
@@ -363,7 +363,7 @@ void __init chrp_setup_arch(void)
363 if (ppc_md.progress) ppc_md.progress("Linux/PPC "UTS_RELEASE"\n", 0x0); 363 if (ppc_md.progress) ppc_md.progress("Linux/PPC "UTS_RELEASE"\n", 0x0);
364} 364}
365 365
366static void chrp_8259_cascade(unsigned int irq, struct irq_desc *desc) 366static void chrp_8259_cascade(struct irq_desc *desc)
367{ 367{
368 struct irq_chip *chip = irq_desc_get_chip(desc); 368 struct irq_chip *chip = irq_desc_get_chip(desc);
369 unsigned int cascade_irq = i8259_irq(); 369 unsigned int cascade_irq = i8259_irq();
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
index 9dd154d6f89a..9b7975706bfc 100644
--- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
@@ -120,8 +120,7 @@ static unsigned int __hlwd_pic_get_irq(struct irq_domain *h)
120 return irq_linear_revmap(h, irq); 120 return irq_linear_revmap(h, irq);
121} 121}
122 122
123static void hlwd_pic_irq_cascade(unsigned int cascade_virq, 123static void hlwd_pic_irq_cascade(struct irq_desc *desc)
124 struct irq_desc *desc)
125{ 124{
126 struct irq_chip *chip = irq_desc_get_chip(desc); 125 struct irq_chip *chip = irq_desc_get_chip(desc);
127 struct irq_domain *irq_domain = irq_desc_get_handler_data(desc); 126 struct irq_domain *irq_domain = irq_desc_get_handler_data(desc);
diff --git a/arch/powerpc/platforms/embedded6xx/mvme5100.c b/arch/powerpc/platforms/embedded6xx/mvme5100.c
index 1613303177e6..8f65aa3747f5 100644
--- a/arch/powerpc/platforms/embedded6xx/mvme5100.c
+++ b/arch/powerpc/platforms/embedded6xx/mvme5100.c
@@ -42,7 +42,7 @@
42static phys_addr_t pci_membase; 42static phys_addr_t pci_membase;
43static u_char *restart; 43static u_char *restart;
44 44
45static void mvme5100_8259_cascade(unsigned int irq, struct irq_desc *desc) 45static void mvme5100_8259_cascade(struct irq_desc *desc)
46{ 46{
47 struct irq_chip *chip = irq_desc_get_chip(desc); 47 struct irq_chip *chip = irq_desc_get_chip(desc);
48 unsigned int cascade_irq = i8259_irq(); 48 unsigned int cascade_irq = i8259_irq();
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index 39a74fad3e04..9a83eb71b030 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -111,7 +111,7 @@ static void __init fwnmi_init(void)
111 fwnmi_active = 1; 111 fwnmi_active = 1;
112} 112}
113 113
114static void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc) 114static void pseries_8259_cascade(struct irq_desc *desc)
115{ 115{
116 struct irq_chip *chip = irq_desc_get_chip(desc); 116 struct irq_chip *chip = irq_desc_get_chip(desc);
117 unsigned int cascade_irq = i8259_irq(); 117 unsigned int cascade_irq = i8259_irq();
diff --git a/arch/powerpc/sysdev/ge/ge_pic.c b/arch/powerpc/sysdev/ge/ge_pic.c
index 2bcb78bb3a15..d57b77573068 100644
--- a/arch/powerpc/sysdev/ge/ge_pic.c
+++ b/arch/powerpc/sysdev/ge/ge_pic.c
@@ -91,7 +91,7 @@ static int gef_pic_cascade_irq;
91 * should be masked out. 91 * should be masked out.
92 */ 92 */
93 93
94void gef_pic_cascade(unsigned int irq, struct irq_desc *desc) 94static void gef_pic_cascade(struct irq_desc *desc)
95{ 95{
96 struct irq_chip *chip = irq_desc_get_chip(desc); 96 struct irq_chip *chip = irq_desc_get_chip(desc);
97 unsigned int cascade_irq; 97 unsigned int cascade_irq;
diff --git a/arch/powerpc/sysdev/ge/ge_pic.h b/arch/powerpc/sysdev/ge/ge_pic.h
index 908dbd9826b6..5bf7e4b81e36 100644
--- a/arch/powerpc/sysdev/ge/ge_pic.h
+++ b/arch/powerpc/sysdev/ge/ge_pic.h
@@ -1,8 +1,6 @@
1#ifndef __GEF_PIC_H__ 1#ifndef __GEF_PIC_H__
2#define __GEF_PIC_H__ 2#define __GEF_PIC_H__
3 3
4
5void gef_pic_cascade(unsigned int, struct irq_desc *);
6unsigned int gef_pic_get_irq(void); 4unsigned int gef_pic_get_irq(void);
7void gef_pic_init(struct device_node *); 5void gef_pic_init(struct device_node *);
8 6
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 97a8ae8f94dd..537e5db85a06 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1181,7 +1181,7 @@ static int mpic_host_xlate(struct irq_domain *h, struct device_node *ct,
1181} 1181}
1182 1182
1183/* IRQ handler for a secondary MPIC cascaded from another IRQ controller */ 1183/* IRQ handler for a secondary MPIC cascaded from another IRQ controller */
1184static void mpic_cascade(unsigned int irq, struct irq_desc *desc) 1184static void mpic_cascade(struct irq_desc *desc)
1185{ 1185{
1186 struct irq_chip *chip = irq_desc_get_chip(desc); 1186 struct irq_chip *chip = irq_desc_get_chip(desc);
1187 struct mpic *mpic = irq_desc_get_handler_data(desc); 1187 struct mpic *mpic = irq_desc_get_handler_data(desc);
diff --git a/arch/powerpc/sysdev/qe_lib/qe_ic.c b/arch/powerpc/sysdev/qe_lib/qe_ic.c
index 47b352e4bc74..fbcc1f855a7f 100644
--- a/arch/powerpc/sysdev/qe_lib/qe_ic.c
+++ b/arch/powerpc/sysdev/qe_lib/qe_ic.c
@@ -311,8 +311,8 @@ unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic)
311} 311}
312 312
313void __init qe_ic_init(struct device_node *node, unsigned int flags, 313void __init qe_ic_init(struct device_node *node, unsigned int flags,
314 void (*low_handler)(unsigned int irq, struct irq_desc *desc), 314 void (*low_handler)(struct irq_desc *desc),
315 void (*high_handler)(unsigned int irq, struct irq_desc *desc)) 315 void (*high_handler)(struct irq_desc *desc))
316{ 316{
317 struct qe_ic *qe_ic; 317 struct qe_ic *qe_ic;
318 struct resource res; 318 struct resource res;
diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c
index 57b54476e747..379de955aae3 100644
--- a/arch/powerpc/sysdev/tsi108_pci.c
+++ b/arch/powerpc/sysdev/tsi108_pci.c
@@ -428,7 +428,7 @@ void __init tsi108_pci_int_init(struct device_node *node)
428 init_pci_source(); 428 init_pci_source();
429} 429}
430 430
431void tsi108_irq_cascade(unsigned int irq, struct irq_desc *desc) 431void tsi108_irq_cascade(struct irq_desc *desc)
432{ 432{
433 struct irq_chip *chip = irq_desc_get_chip(desc); 433 struct irq_chip *chip = irq_desc_get_chip(desc);
434 unsigned int cascade_irq = get_pci_source(); 434 unsigned int cascade_irq = get_pci_source();
diff --git a/arch/powerpc/sysdev/uic.c b/arch/powerpc/sysdev/uic.c
index d77345338671..6893d8f236df 100644
--- a/arch/powerpc/sysdev/uic.c
+++ b/arch/powerpc/sysdev/uic.c
@@ -194,7 +194,7 @@ static const struct irq_domain_ops uic_host_ops = {
194 .xlate = irq_domain_xlate_twocell, 194 .xlate = irq_domain_xlate_twocell,
195}; 195};
196 196
197void uic_irq_cascade(unsigned int virq, struct irq_desc *desc) 197static void uic_irq_cascade(struct irq_desc *desc)
198{ 198{
199 struct irq_chip *chip = irq_desc_get_chip(desc); 199 struct irq_chip *chip = irq_desc_get_chip(desc);
200 struct irq_data *idata = irq_desc_get_irq_data(desc); 200 struct irq_data *idata = irq_desc_get_irq_data(desc);
diff --git a/arch/powerpc/sysdev/xilinx_intc.c b/arch/powerpc/sysdev/xilinx_intc.c
index 43b8b275bc5c..0f52d7955796 100644
--- a/arch/powerpc/sysdev/xilinx_intc.c
+++ b/arch/powerpc/sysdev/xilinx_intc.c
@@ -222,7 +222,7 @@ int xilinx_intc_get_irq(void)
222/* 222/*
223 * Support code for cascading to 8259 interrupt controllers 223 * Support code for cascading to 8259 interrupt controllers
224 */ 224 */
225static void xilinx_i8259_cascade(unsigned int irq, struct irq_desc *desc) 225static void xilinx_i8259_cascade(struct irq_desc *desc)
226{ 226{
227 struct irq_chip *chip = irq_desc_get_chip(desc); 227 struct irq_chip *chip = irq_desc_get_chip(desc);
228 unsigned int cascade_irq = i8259_irq(); 228 unsigned int cascade_irq = i8259_irq();
diff --git a/arch/sh/boards/mach-se/7343/irq.c b/arch/sh/boards/mach-se/7343/irq.c
index 6f97a8f0d0d6..6129aef6db76 100644
--- a/arch/sh/boards/mach-se/7343/irq.c
+++ b/arch/sh/boards/mach-se/7343/irq.c
@@ -29,7 +29,7 @@
29static void __iomem *se7343_irq_regs; 29static void __iomem *se7343_irq_regs;
30struct irq_domain *se7343_irq_domain; 30struct irq_domain *se7343_irq_domain;
31 31
32static void se7343_irq_demux(unsigned int irq, struct irq_desc *desc) 32static void se7343_irq_demux(struct irq_desc *desc)
33{ 33{
34 struct irq_data *data = irq_desc_get_irq_data(desc); 34 struct irq_data *data = irq_desc_get_irq_data(desc);
35 struct irq_chip *chip = irq_data_get_irq_chip(data); 35 struct irq_chip *chip = irq_data_get_irq_chip(data);
diff --git a/arch/sh/boards/mach-se/7722/irq.c b/arch/sh/boards/mach-se/7722/irq.c
index 60aebd14ccf8..24c74a88290c 100644
--- a/arch/sh/boards/mach-se/7722/irq.c
+++ b/arch/sh/boards/mach-se/7722/irq.c
@@ -28,7 +28,7 @@
28static void __iomem *se7722_irq_regs; 28static void __iomem *se7722_irq_regs;
29struct irq_domain *se7722_irq_domain; 29struct irq_domain *se7722_irq_domain;
30 30
31static void se7722_irq_demux(unsigned int irq, struct irq_desc *desc) 31static void se7722_irq_demux(struct irq_desc *desc)
32{ 32{
33 struct irq_data *data = irq_desc_get_irq_data(desc); 33 struct irq_data *data = irq_desc_get_irq_data(desc);
34 struct irq_chip *chip = irq_data_get_irq_chip(data); 34 struct irq_chip *chip = irq_data_get_irq_chip(data);
diff --git a/arch/sh/boards/mach-se/7724/irq.c b/arch/sh/boards/mach-se/7724/irq.c
index 9f2033898652..64e681e66c57 100644
--- a/arch/sh/boards/mach-se/7724/irq.c
+++ b/arch/sh/boards/mach-se/7724/irq.c
@@ -92,7 +92,7 @@ static struct irq_chip se7724_irq_chip __read_mostly = {
92 .irq_unmask = enable_se7724_irq, 92 .irq_unmask = enable_se7724_irq,
93}; 93};
94 94
95static void se7724_irq_demux(unsigned int __irq, struct irq_desc *desc) 95static void se7724_irq_demux(struct irq_desc *desc)
96{ 96{
97 unsigned int irq = irq_desc_get_irq(desc); 97 unsigned int irq = irq_desc_get_irq(desc);
98 struct fpga_irq set = get_fpga_irq(irq); 98 struct fpga_irq set = get_fpga_irq(irq);
diff --git a/arch/sh/boards/mach-x3proto/gpio.c b/arch/sh/boards/mach-x3proto/gpio.c
index 24555c364d5b..1fb2cbee25f2 100644
--- a/arch/sh/boards/mach-x3proto/gpio.c
+++ b/arch/sh/boards/mach-x3proto/gpio.c
@@ -60,7 +60,7 @@ static int x3proto_gpio_to_irq(struct gpio_chip *chip, unsigned gpio)
60 return virq; 60 return virq;
61} 61}
62 62
63static void x3proto_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 63static void x3proto_gpio_irq_handler(struct irq_desc *desc)
64{ 64{
65 struct irq_data *data = irq_desc_get_irq_data(desc); 65 struct irq_data *data = irq_desc_get_irq_data(desc);
66 struct irq_chip *chip = irq_data_get_irq_chip(data); 66 struct irq_chip *chip = irq_data_get_irq_chip(data);
diff --git a/arch/sh/cchips/hd6446x/hd64461.c b/arch/sh/cchips/hd6446x/hd64461.c
index e9735616bdc8..8180092502f7 100644
--- a/arch/sh/cchips/hd6446x/hd64461.c
+++ b/arch/sh/cchips/hd6446x/hd64461.c
@@ -56,7 +56,7 @@ static struct irq_chip hd64461_irq_chip = {
56 .irq_unmask = hd64461_unmask_irq, 56 .irq_unmask = hd64461_unmask_irq,
57}; 57};
58 58
59static void hd64461_irq_demux(unsigned int irq, struct irq_desc *desc) 59static void hd64461_irq_demux(struct irq_desc *desc)
60{ 60{
61 unsigned short intv = __raw_readw(HD64461_NIRR); 61 unsigned short intv = __raw_readw(HD64461_NIRR);
62 unsigned int ext_irq = HD64461_IRQBASE; 62 unsigned int ext_irq = HD64461_IRQBASE;
diff --git a/arch/sparc/kernel/leon_kernel.c b/arch/sparc/kernel/leon_kernel.c
index 0299f052a2ef..42efcf85f721 100644
--- a/arch/sparc/kernel/leon_kernel.c
+++ b/arch/sparc/kernel/leon_kernel.c
@@ -53,7 +53,7 @@ static inline unsigned int leon_eirq_get(int cpu)
53} 53}
54 54
55/* Handle one or multiple IRQs from the extended interrupt controller */ 55/* Handle one or multiple IRQs from the extended interrupt controller */
56static void leon_handle_ext_irq(unsigned int irq, struct irq_desc *desc) 56static void leon_handle_ext_irq(struct irq_desc *desc)
57{ 57{
58 unsigned int eirq; 58 unsigned int eirq;
59 struct irq_bucket *p; 59 struct irq_bucket *p;
diff --git a/arch/sparc/kernel/leon_pci_grpci1.c b/arch/sparc/kernel/leon_pci_grpci1.c
index 3382f7b3eeef..1e77128a8f88 100644
--- a/arch/sparc/kernel/leon_pci_grpci1.c
+++ b/arch/sparc/kernel/leon_pci_grpci1.c
@@ -357,7 +357,7 @@ static struct irq_chip grpci1_irq = {
357}; 357};
358 358
359/* Handle one or multiple IRQs from the PCI core */ 359/* Handle one or multiple IRQs from the PCI core */
360static void grpci1_pci_flow_irq(unsigned int irq, struct irq_desc *desc) 360static void grpci1_pci_flow_irq(struct irq_desc *desc)
361{ 361{
362 struct grpci1_priv *priv = grpci1priv; 362 struct grpci1_priv *priv = grpci1priv;
363 int i, ack = 0; 363 int i, ack = 0;
diff --git a/arch/sparc/kernel/leon_pci_grpci2.c b/arch/sparc/kernel/leon_pci_grpci2.c
index 814fb1729b12..f727c4de1316 100644
--- a/arch/sparc/kernel/leon_pci_grpci2.c
+++ b/arch/sparc/kernel/leon_pci_grpci2.c
@@ -498,7 +498,7 @@ static struct irq_chip grpci2_irq = {
498}; 498};
499 499
500/* Handle one or multiple IRQs from the PCI core */ 500/* Handle one or multiple IRQs from the PCI core */
501static void grpci2_pci_flow_irq(unsigned int irq, struct irq_desc *desc) 501static void grpci2_pci_flow_irq(struct irq_desc *desc)
502{ 502{
503 struct grpci2_priv *priv = grpci2priv; 503 struct grpci2_priv *priv = grpci2priv;
504 int i, ack = 0; 504 int i, ack = 0;
diff --git a/arch/tile/kernel/pci_gx.c b/arch/tile/kernel/pci_gx.c
index b3f73fd764a3..4c017d0d2de8 100644
--- a/arch/tile/kernel/pci_gx.c
+++ b/arch/tile/kernel/pci_gx.c
@@ -304,17 +304,16 @@ static struct irq_chip tilegx_legacy_irq_chip = {
304 * to Linux which just calls handle_level_irq() after clearing the 304 * to Linux which just calls handle_level_irq() after clearing the
305 * MAC INTx Assert status bit associated with this interrupt. 305 * MAC INTx Assert status bit associated with this interrupt.
306 */ 306 */
307static void trio_handle_level_irq(unsigned int __irq, struct irq_desc *desc) 307static void trio_handle_level_irq(struct irq_desc *desc)
308{ 308{
309 struct pci_controller *controller = irq_desc_get_handler_data(desc); 309 struct pci_controller *controller = irq_desc_get_handler_data(desc);
310 gxio_trio_context_t *trio_context = controller->trio; 310 gxio_trio_context_t *trio_context = controller->trio;
311 uint64_t intx = (uint64_t)irq_desc_get_chip_data(desc); 311 uint64_t intx = (uint64_t)irq_desc_get_chip_data(desc);
312 unsigned int irq = irq_desc_get_irq(desc);
313 int mac = controller->mac; 312 int mac = controller->mac;
314 unsigned int reg_offset; 313 unsigned int reg_offset;
315 uint64_t level_mask; 314 uint64_t level_mask;
316 315
317 handle_level_irq(irq, desc); 316 handle_level_irq(desc);
318 317
319 /* 318 /*
320 * Clear the INTx Level status, otherwise future interrupts are 319 * Clear the INTx Level status, otherwise future interrupts are
diff --git a/arch/unicore32/kernel/irq.c b/arch/unicore32/kernel/irq.c
index c53729d92e8d..eb1fd0030359 100644
--- a/arch/unicore32/kernel/irq.c
+++ b/arch/unicore32/kernel/irq.c
@@ -112,7 +112,7 @@ static struct irq_chip puv3_low_gpio_chip = {
112 * irq_controller_lock held, and IRQs disabled. Decode the IRQ 112 * irq_controller_lock held, and IRQs disabled. Decode the IRQ
113 * and call the handler. 113 * and call the handler.
114 */ 114 */
115static void puv3_gpio_handler(unsigned int __irq, struct irq_desc *desc) 115static void puv3_gpio_handler(struct irq_desc *desc)
116{ 116{
117 unsigned int mask, irq; 117 unsigned int mask, irq;
118 118
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
index c80cf6699678..38da8f29a9c8 100644
--- a/arch/x86/kernel/irq_32.c
+++ b/arch/x86/kernel/irq_32.c
@@ -68,11 +68,10 @@ static inline void *current_stack(void)
68 return (void *)(current_stack_pointer() & ~(THREAD_SIZE - 1)); 68 return (void *)(current_stack_pointer() & ~(THREAD_SIZE - 1));
69} 69}
70 70
71static inline int 71static inline int execute_on_irq_stack(int overflow, struct irq_desc *desc)
72execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
73{ 72{
74 struct irq_stack *curstk, *irqstk; 73 struct irq_stack *curstk, *irqstk;
75 u32 *isp, *prev_esp, arg1, arg2; 74 u32 *isp, *prev_esp, arg1;
76 75
77 curstk = (struct irq_stack *) current_stack(); 76 curstk = (struct irq_stack *) current_stack();
78 irqstk = __this_cpu_read(hardirq_stack); 77 irqstk = __this_cpu_read(hardirq_stack);
@@ -98,8 +97,8 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
98 asm volatile("xchgl %%ebx,%%esp \n" 97 asm volatile("xchgl %%ebx,%%esp \n"
99 "call *%%edi \n" 98 "call *%%edi \n"
100 "movl %%ebx,%%esp \n" 99 "movl %%ebx,%%esp \n"
101 : "=a" (arg1), "=d" (arg2), "=b" (isp) 100 : "=a" (arg1), "=b" (isp)
102 : "0" (irq), "1" (desc), "2" (isp), 101 : "0" (desc), "1" (isp),
103 "D" (desc->handle_irq) 102 "D" (desc->handle_irq)
104 : "memory", "cc", "ecx"); 103 : "memory", "cc", "ecx");
105 return 1; 104 return 1;
@@ -150,19 +149,15 @@ void do_softirq_own_stack(void)
150 149
151bool handle_irq(struct irq_desc *desc, struct pt_regs *regs) 150bool handle_irq(struct irq_desc *desc, struct pt_regs *regs)
152{ 151{
153 unsigned int irq; 152 int overflow = check_stack_overflow();
154 int overflow;
155
156 overflow = check_stack_overflow();
157 153
158 if (IS_ERR_OR_NULL(desc)) 154 if (IS_ERR_OR_NULL(desc))
159 return false; 155 return false;
160 156
161 irq = irq_desc_get_irq(desc); 157 if (user_mode(regs) || !execute_on_irq_stack(overflow, desc)) {
162 if (user_mode(regs) || !execute_on_irq_stack(overflow, desc, irq)) {
163 if (unlikely(overflow)) 158 if (unlikely(overflow))
164 print_stack_overflow(); 159 print_stack_overflow();
165 generic_handle_irq_desc(irq, desc); 160 generic_handle_irq_desc(desc);
166 } 161 }
167 162
168 return true; 163 return true;
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
index ff16ccb918f2..c767cf2bc80a 100644
--- a/arch/x86/kernel/irq_64.c
+++ b/arch/x86/kernel/irq_64.c
@@ -75,6 +75,6 @@ bool handle_irq(struct irq_desc *desc, struct pt_regs *regs)
75 if (unlikely(IS_ERR_OR_NULL(desc))) 75 if (unlikely(IS_ERR_OR_NULL(desc)))
76 return false; 76 return false;
77 77
78 generic_handle_irq_desc(irq_desc_get_irq(desc), desc); 78 generic_handle_irq_desc(desc);
79 return true; 79 return true;
80} 80}
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index 161804de124a..a0d09f6c6533 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -1015,7 +1015,7 @@ static struct clock_event_device lguest_clockevent = {
1015 * This is the Guest timer interrupt handler (hardware interrupt 0). We just 1015 * This is the Guest timer interrupt handler (hardware interrupt 0). We just
1016 * call the clockevent infrastructure and it does whatever needs doing. 1016 * call the clockevent infrastructure and it does whatever needs doing.
1017 */ 1017 */
1018static void lguest_time_irq(unsigned int irq, struct irq_desc *desc) 1018static void lguest_time_irq(struct irq_desc *desc)
1019{ 1019{
1020 unsigned long flags; 1020 unsigned long flags;
1021 1021
diff --git a/drivers/dma/ipu/ipu_irq.c b/drivers/dma/ipu/ipu_irq.c
index 4768a829253a..2bf37e68ad0f 100644
--- a/drivers/dma/ipu/ipu_irq.c
+++ b/drivers/dma/ipu/ipu_irq.c
@@ -266,7 +266,7 @@ int ipu_irq_unmap(unsigned int source)
266} 266}
267 267
268/* Chained IRQ handler for IPU function and error interrupt */ 268/* Chained IRQ handler for IPU function and error interrupt */
269static void ipu_irq_handler(unsigned int __irq, struct irq_desc *desc) 269static void ipu_irq_handler(struct irq_desc *desc)
270{ 270{
271 struct ipu *ipu = irq_desc_get_handler_data(desc); 271 struct ipu *ipu = irq_desc_get_handler_data(desc);
272 u32 status; 272 u32 status;
diff --git a/drivers/gpio/gpio-altera.c b/drivers/gpio/gpio-altera.c
index 9b7e0b3db387..1b44941574fa 100644
--- a/drivers/gpio/gpio-altera.c
+++ b/drivers/gpio/gpio-altera.c
@@ -201,8 +201,7 @@ static int altera_gpio_direction_output(struct gpio_chip *gc,
201 return 0; 201 return 0;
202} 202}
203 203
204static void altera_gpio_irq_edge_handler(unsigned int irq, 204static void altera_gpio_irq_edge_handler(struct irq_desc *desc)
205 struct irq_desc *desc)
206{ 205{
207 struct altera_gpio_chip *altera_gc; 206 struct altera_gpio_chip *altera_gc;
208 struct irq_chip *chip; 207 struct irq_chip *chip;
@@ -231,8 +230,7 @@ static void altera_gpio_irq_edge_handler(unsigned int irq,
231} 230}
232 231
233 232
234static void altera_gpio_irq_leveL_high_handler(unsigned int irq, 233static void altera_gpio_irq_leveL_high_handler(struct irq_desc *desc)
235 struct irq_desc *desc)
236{ 234{
237 struct altera_gpio_chip *altera_gc; 235 struct altera_gpio_chip *altera_gc;
238 struct irq_chip *chip; 236 struct irq_chip *chip;
diff --git a/drivers/gpio/gpio-bcm-kona.c b/drivers/gpio/gpio-bcm-kona.c
index 31b90ac15204..33a1f9779b86 100644
--- a/drivers/gpio/gpio-bcm-kona.c
+++ b/drivers/gpio/gpio-bcm-kona.c
@@ -433,7 +433,7 @@ static int bcm_kona_gpio_irq_set_type(struct irq_data *d, unsigned int type)
433 return 0; 433 return 0;
434} 434}
435 435
436static void bcm_kona_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 436static void bcm_kona_gpio_irq_handler(struct irq_desc *desc)
437{ 437{
438 void __iomem *reg_base; 438 void __iomem *reg_base;
439 int bit, bank_id; 439 int bit, bank_id;
diff --git a/drivers/gpio/gpio-brcmstb.c b/drivers/gpio/gpio-brcmstb.c
index 9ea86d2ac054..4c64627c6bb5 100644
--- a/drivers/gpio/gpio-brcmstb.c
+++ b/drivers/gpio/gpio-brcmstb.c
@@ -236,7 +236,7 @@ static void brcmstb_gpio_irq_bank_handler(struct brcmstb_gpio_bank *bank)
236} 236}
237 237
238/* Each UPG GIO block has one IRQ for all banks */ 238/* Each UPG GIO block has one IRQ for all banks */
239static void brcmstb_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 239static void brcmstb_gpio_irq_handler(struct irq_desc *desc)
240{ 240{
241 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 241 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
242 struct brcmstb_gpio_priv *priv = brcmstb_gpio_gc_to_priv(gc); 242 struct brcmstb_gpio_priv *priv = brcmstb_gpio_gc_to_priv(gc);
diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
index 94b0ab709721..5e715388803d 100644
--- a/drivers/gpio/gpio-davinci.c
+++ b/drivers/gpio/gpio-davinci.c
@@ -326,8 +326,7 @@ static struct irq_chip gpio_irqchip = {
326 .flags = IRQCHIP_SET_TYPE_MASKED, 326 .flags = IRQCHIP_SET_TYPE_MASKED,
327}; 327};
328 328
329static void 329static void gpio_irq_handler(struct irq_desc *desc)
330gpio_irq_handler(unsigned __irq, struct irq_desc *desc)
331{ 330{
332 unsigned int irq = irq_desc_get_irq(desc); 331 unsigned int irq = irq_desc_get_irq(desc);
333 struct davinci_gpio_regs __iomem *g; 332 struct davinci_gpio_regs __iomem *g;
diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c
index c5be4b9b8baf..fcd5b0acfc72 100644
--- a/drivers/gpio/gpio-dwapb.c
+++ b/drivers/gpio/gpio-dwapb.c
@@ -147,7 +147,7 @@ static u32 dwapb_do_irq(struct dwapb_gpio *gpio)
147 return ret; 147 return ret;
148} 148}
149 149
150static void dwapb_irq_handler(u32 irq, struct irq_desc *desc) 150static void dwapb_irq_handler(struct irq_desc *desc)
151{ 151{
152 struct dwapb_gpio *gpio = irq_desc_get_handler_data(desc); 152 struct dwapb_gpio *gpio = irq_desc_get_handler_data(desc);
153 struct irq_chip *chip = irq_desc_get_chip(desc); 153 struct irq_chip *chip = irq_desc_get_chip(desc);
diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c
index 9d90366ea259..3e3947b35c83 100644
--- a/drivers/gpio/gpio-ep93xx.c
+++ b/drivers/gpio/gpio-ep93xx.c
@@ -78,7 +78,7 @@ static void ep93xx_gpio_int_debounce(unsigned int irq, bool enable)
78 EP93XX_GPIO_REG(int_debounce_register_offset[port])); 78 EP93XX_GPIO_REG(int_debounce_register_offset[port]));
79} 79}
80 80
81static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc) 81static void ep93xx_gpio_ab_irq_handler(struct irq_desc *desc)
82{ 82{
83 unsigned char status; 83 unsigned char status;
84 int i; 84 int i;
@@ -100,8 +100,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc)
100 } 100 }
101} 101}
102 102
103static void ep93xx_gpio_f_irq_handler(unsigned int __irq, 103static void ep93xx_gpio_f_irq_handler(struct irq_desc *desc)
104 struct irq_desc *desc)
105{ 104{
106 /* 105 /*
107 * map discontiguous hw irq range to continuous sw irq range: 106 * map discontiguous hw irq range to continuous sw irq range:
diff --git a/drivers/gpio/gpio-intel-mid.c b/drivers/gpio/gpio-intel-mid.c
index aa28c65eb6b4..70097472b02c 100644
--- a/drivers/gpio/gpio-intel-mid.c
+++ b/drivers/gpio/gpio-intel-mid.c
@@ -301,7 +301,7 @@ static const struct pci_device_id intel_gpio_ids[] = {
301}; 301};
302MODULE_DEVICE_TABLE(pci, intel_gpio_ids); 302MODULE_DEVICE_TABLE(pci, intel_gpio_ids);
303 303
304static void intel_mid_irq_handler(unsigned irq, struct irq_desc *desc) 304static void intel_mid_irq_handler(struct irq_desc *desc)
305{ 305{
306 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 306 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
307 struct intel_mid_gpio *priv = to_intel_gpio_priv(gc); 307 struct intel_mid_gpio *priv = to_intel_gpio_priv(gc);
diff --git a/drivers/gpio/gpio-lynxpoint.c b/drivers/gpio/gpio-lynxpoint.c
index 153af464c7a7..127c37b380ae 100644
--- a/drivers/gpio/gpio-lynxpoint.c
+++ b/drivers/gpio/gpio-lynxpoint.c
@@ -234,7 +234,7 @@ static int lp_gpio_direction_output(struct gpio_chip *chip,
234 return 0; 234 return 0;
235} 235}
236 236
237static void lp_gpio_irq_handler(unsigned hwirq, struct irq_desc *desc) 237static void lp_gpio_irq_handler(struct irq_desc *desc)
238{ 238{
239 struct irq_data *data = irq_desc_get_irq_data(desc); 239 struct irq_data *data = irq_desc_get_irq_data(desc);
240 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 240 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c
index 8ef7a12de983..48ef368347ab 100644
--- a/drivers/gpio/gpio-mpc8xxx.c
+++ b/drivers/gpio/gpio-mpc8xxx.c
@@ -194,7 +194,7 @@ static int mpc8xxx_gpio_to_irq(struct gpio_chip *gc, unsigned offset)
194 return -ENXIO; 194 return -ENXIO;
195} 195}
196 196
197static void mpc8xxx_gpio_irq_cascade(unsigned int irq, struct irq_desc *desc) 197static void mpc8xxx_gpio_irq_cascade(struct irq_desc *desc)
198{ 198{
199 struct mpc8xxx_gpio_chip *mpc8xxx_gc = irq_desc_get_handler_data(desc); 199 struct mpc8xxx_gpio_chip *mpc8xxx_gc = irq_desc_get_handler_data(desc);
200 struct irq_chip *chip = irq_desc_get_chip(desc); 200 struct irq_chip *chip = irq_desc_get_chip(desc);
diff --git a/drivers/gpio/gpio-msic.c b/drivers/gpio/gpio-msic.c
index 7bcfb87a5fa6..22523aae8abe 100644
--- a/drivers/gpio/gpio-msic.c
+++ b/drivers/gpio/gpio-msic.c
@@ -232,7 +232,7 @@ static struct irq_chip msic_irqchip = {
232 .irq_bus_sync_unlock = msic_bus_sync_unlock, 232 .irq_bus_sync_unlock = msic_bus_sync_unlock,
233}; 233};
234 234
235static void msic_gpio_irq_handler(unsigned irq, struct irq_desc *desc) 235static void msic_gpio_irq_handler(struct irq_desc *desc)
236{ 236{
237 struct irq_data *data = irq_desc_get_irq_data(desc); 237 struct irq_data *data = irq_desc_get_irq_data(desc);
238 struct msic_gpio *mg = irq_data_get_irq_handler_data(data); 238 struct msic_gpio *mg = irq_data_get_irq_handler_data(data);
diff --git a/drivers/gpio/gpio-msm-v2.c b/drivers/gpio/gpio-msm-v2.c
index d2012cfb5571..4b4222145f10 100644
--- a/drivers/gpio/gpio-msm-v2.c
+++ b/drivers/gpio/gpio-msm-v2.c
@@ -305,7 +305,7 @@ static int msm_gpio_irq_set_type(struct irq_data *d, unsigned int flow_type)
305 * which have been set as summary IRQ lines and which are triggered, 305 * which have been set as summary IRQ lines and which are triggered,
306 * and to call their interrupt handlers. 306 * and to call their interrupt handlers.
307 */ 307 */
308static void msm_summary_irq_handler(unsigned int irq, struct irq_desc *desc) 308static void msm_summary_irq_handler(struct irq_desc *desc)
309{ 309{
310 unsigned long i; 310 unsigned long i;
311 struct irq_chip *chip = irq_desc_get_chip(desc); 311 struct irq_chip *chip = irq_desc_get_chip(desc);
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
index b396bf3bf294..df418b81456d 100644
--- a/drivers/gpio/gpio-mvebu.c
+++ b/drivers/gpio/gpio-mvebu.c
@@ -458,7 +458,7 @@ static int mvebu_gpio_irq_set_type(struct irq_data *d, unsigned int type)
458 return 0; 458 return 0;
459} 459}
460 460
461static void mvebu_gpio_irq_handler(unsigned int __irq, struct irq_desc *desc) 461static void mvebu_gpio_irq_handler(struct irq_desc *desc)
462{ 462{
463 struct mvebu_gpio_chip *mvchip = irq_desc_get_handler_data(desc); 463 struct mvebu_gpio_chip *mvchip = irq_desc_get_handler_data(desc);
464 struct irq_chip *chip = irq_desc_get_chip(desc); 464 struct irq_chip *chip = irq_desc_get_chip(desc);
diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
index b752b560126e..5e3235a73bf9 100644
--- a/drivers/gpio/gpio-mxc.c
+++ b/drivers/gpio/gpio-mxc.c
@@ -272,7 +272,7 @@ static void mxc_gpio_irq_handler(struct mxc_gpio_port *port, u32 irq_stat)
272} 272}
273 273
274/* MX1 and MX3 has one interrupt *per* gpio port */ 274/* MX1 and MX3 has one interrupt *per* gpio port */
275static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc) 275static void mx3_gpio_irq_handler(struct irq_desc *desc)
276{ 276{
277 u32 irq_stat; 277 u32 irq_stat;
278 struct mxc_gpio_port *port = irq_desc_get_handler_data(desc); 278 struct mxc_gpio_port *port = irq_desc_get_handler_data(desc);
@@ -288,7 +288,7 @@ static void mx3_gpio_irq_handler(u32 irq, struct irq_desc *desc)
288} 288}
289 289
290/* MX2 has one interrupt *for all* gpio ports */ 290/* MX2 has one interrupt *for all* gpio ports */
291static void mx2_gpio_irq_handler(u32 irq, struct irq_desc *desc) 291static void mx2_gpio_irq_handler(struct irq_desc *desc)
292{ 292{
293 u32 irq_msk, irq_stat; 293 u32 irq_msk, irq_stat;
294 struct mxc_gpio_port *port; 294 struct mxc_gpio_port *port;
diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c
index b7f383eb18d9..b7763f078b23 100644
--- a/drivers/gpio/gpio-mxs.c
+++ b/drivers/gpio/gpio-mxs.c
@@ -154,7 +154,7 @@ static void mxs_flip_edge(struct mxs_gpio_port *port, u32 gpio)
154} 154}
155 155
156/* MXS has one interrupt *per* gpio port */ 156/* MXS has one interrupt *per* gpio port */
157static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc) 157static void mxs_gpio_irq_handler(struct irq_desc *desc)
158{ 158{
159 u32 irq_stat; 159 u32 irq_stat;
160 struct mxs_gpio_port *port = irq_desc_get_handler_data(desc); 160 struct mxs_gpio_port *port = irq_desc_get_handler_data(desc);
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
index 2ae0d47e9554..9df014c0e3e4 100644
--- a/drivers/gpio/gpio-omap.c
+++ b/drivers/gpio/gpio-omap.c
@@ -709,7 +709,7 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset)
709 * line's interrupt handler has been run, we may miss some nested 709 * line's interrupt handler has been run, we may miss some nested
710 * interrupts. 710 * interrupts.
711 */ 711 */
712static void omap_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 712static void omap_gpio_irq_handler(struct irq_desc *desc)
713{ 713{
714 void __iomem *isr_reg = NULL; 714 void __iomem *isr_reg = NULL;
715 u32 isr; 715 u32 isr;
diff --git a/drivers/gpio/gpio-pl061.c b/drivers/gpio/gpio-pl061.c
index 04756130437f..229ef653e0f8 100644
--- a/drivers/gpio/gpio-pl061.c
+++ b/drivers/gpio/gpio-pl061.c
@@ -187,7 +187,7 @@ static int pl061_irq_type(struct irq_data *d, unsigned trigger)
187 return 0; 187 return 0;
188} 188}
189 189
190static void pl061_irq_handler(unsigned irq, struct irq_desc *desc) 190static void pl061_irq_handler(struct irq_desc *desc)
191{ 191{
192 unsigned long pending; 192 unsigned long pending;
193 int offset; 193 int offset;
diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c
index 55a11de3d5b7..df2ce550f309 100644
--- a/drivers/gpio/gpio-pxa.c
+++ b/drivers/gpio/gpio-pxa.c
@@ -401,7 +401,7 @@ static int pxa_gpio_irq_type(struct irq_data *d, unsigned int type)
401 return 0; 401 return 0;
402} 402}
403 403
404static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc) 404static void pxa_gpio_demux_handler(struct irq_desc *desc)
405{ 405{
406 struct pxa_gpio_chip *c; 406 struct pxa_gpio_chip *c;
407 int loop, gpio, gpio_base, n; 407 int loop, gpio, gpio_base, n;
diff --git a/drivers/gpio/gpio-sa1100.c b/drivers/gpio/gpio-sa1100.c
index 67bd2f5d89e8..990fa9023e22 100644
--- a/drivers/gpio/gpio-sa1100.c
+++ b/drivers/gpio/gpio-sa1100.c
@@ -172,8 +172,7 @@ static struct irq_domain *sa1100_gpio_irqdomain;
172 * irq_controller_lock held, and IRQs disabled. Decode the IRQ 172 * irq_controller_lock held, and IRQs disabled. Decode the IRQ
173 * and call the handler. 173 * and call the handler.
174 */ 174 */
175static void 175static void sa1100_gpio_handler(struct irq_desc *desc)
176sa1100_gpio_handler(unsigned int __irq, struct irq_desc *desc)
177{ 176{
178 unsigned int irq, mask; 177 unsigned int irq, mask;
179 178
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index 9b14aafb576d..027e5f47dd28 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -266,7 +266,7 @@ static void tegra_gpio_irq_shutdown(struct irq_data *d)
266 gpiochip_unlock_as_irq(&tegra_gpio_chip, gpio); 266 gpiochip_unlock_as_irq(&tegra_gpio_chip, gpio);
267} 267}
268 268
269static void tegra_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 269static void tegra_gpio_irq_handler(struct irq_desc *desc)
270{ 270{
271 int port; 271 int port;
272 int pin; 272 int pin;
diff --git a/drivers/gpio/gpio-timberdale.c b/drivers/gpio/gpio-timberdale.c
index 5a492054589f..30653e6319e9 100644
--- a/drivers/gpio/gpio-timberdale.c
+++ b/drivers/gpio/gpio-timberdale.c
@@ -192,7 +192,7 @@ out:
192 return ret; 192 return ret;
193} 193}
194 194
195static void timbgpio_irq(unsigned int irq, struct irq_desc *desc) 195static void timbgpio_irq(struct irq_desc *desc)
196{ 196{
197 struct timbgpio *tgpio = irq_desc_get_handler_data(desc); 197 struct timbgpio *tgpio = irq_desc_get_handler_data(desc);
198 struct irq_data *data = irq_desc_get_irq_data(desc); 198 struct irq_data *data = irq_desc_get_irq_data(desc);
diff --git a/drivers/gpio/gpio-tz1090.c b/drivers/gpio/gpio-tz1090.c
index bbac92ae4c32..87bb1b1eee8d 100644
--- a/drivers/gpio/gpio-tz1090.c
+++ b/drivers/gpio/gpio-tz1090.c
@@ -375,7 +375,7 @@ static int gpio_set_irq_wake(struct irq_data *data, unsigned int on)
375#define gpio_set_irq_wake NULL 375#define gpio_set_irq_wake NULL
376#endif 376#endif
377 377
378static void tz1090_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 378static void tz1090_gpio_irq_handler(struct irq_desc *desc)
379{ 379{
380 irq_hw_number_t hw; 380 irq_hw_number_t hw;
381 unsigned int irq_stat, irq_no; 381 unsigned int irq_stat, irq_no;
@@ -400,7 +400,7 @@ static void tz1090_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
400 == IRQ_TYPE_EDGE_BOTH) 400 == IRQ_TYPE_EDGE_BOTH)
401 tz1090_gpio_irq_next_edge(bank, hw); 401 tz1090_gpio_irq_next_edge(bank, hw);
402 402
403 generic_handle_irq_desc(irq_no, child_desc); 403 generic_handle_irq_desc(child_desc);
404 } 404 }
405} 405}
406 406
diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c
index 7a6640b51911..069f9e4b7daa 100644
--- a/drivers/gpio/gpio-vf610.c
+++ b/drivers/gpio/gpio-vf610.c
@@ -120,7 +120,7 @@ static int vf610_gpio_direction_output(struct gpio_chip *chip, unsigned gpio,
120 return pinctrl_gpio_direction_output(chip->base + gpio); 120 return pinctrl_gpio_direction_output(chip->base + gpio);
121} 121}
122 122
123static void vf610_gpio_irq_handler(u32 irq, struct irq_desc *desc) 123static void vf610_gpio_irq_handler(struct irq_desc *desc)
124{ 124{
125 struct vf610_gpio_port *port = irq_desc_get_handler_data(desc); 125 struct vf610_gpio_port *port = irq_desc_get_handler_data(desc);
126 struct irq_chip *chip = irq_desc_get_chip(desc); 126 struct irq_chip *chip = irq_desc_get_chip(desc);
diff --git a/drivers/gpio/gpio-zx.c b/drivers/gpio/gpio-zx.c
index 12ee1969298c..4b8a26910705 100644
--- a/drivers/gpio/gpio-zx.c
+++ b/drivers/gpio/gpio-zx.c
@@ -177,7 +177,7 @@ static int zx_irq_type(struct irq_data *d, unsigned trigger)
177 return 0; 177 return 0;
178} 178}
179 179
180static void zx_irq_handler(unsigned irq, struct irq_desc *desc) 180static void zx_irq_handler(struct irq_desc *desc)
181{ 181{
182 unsigned long pending; 182 unsigned long pending;
183 int offset; 183 int offset;
diff --git a/drivers/gpio/gpio-zynq.c b/drivers/gpio/gpio-zynq.c
index 27348e7cb705..1d1a5865ede9 100644
--- a/drivers/gpio/gpio-zynq.c
+++ b/drivers/gpio/gpio-zynq.c
@@ -514,7 +514,7 @@ static void zynq_gpio_handle_bank_irq(struct zynq_gpio *gpio,
514 * application for that pin. 514 * application for that pin.
515 * Note: A bug is reported if no handler is set for the gpio pin. 515 * Note: A bug is reported if no handler is set for the gpio pin.
516 */ 516 */
517static void zynq_gpio_irqhandler(unsigned int irq, struct irq_desc *desc) 517static void zynq_gpio_irqhandler(struct irq_desc *desc)
518{ 518{
519 u32 int_sts, int_enb; 519 u32 int_sts, int_enb;
520 unsigned int bank_num; 520 unsigned int bank_num;
diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c
index 243f99a80253..649d03be2f38 100644
--- a/drivers/gpu/ipu-v3/ipu-common.c
+++ b/drivers/gpu/ipu-v3/ipu-common.c
@@ -912,7 +912,7 @@ static void ipu_irq_handle(struct ipu_soc *ipu, const int *regs, int num_regs)
912 } 912 }
913} 913}
914 914
915static void ipu_irq_handler(unsigned int irq, struct irq_desc *desc) 915static void ipu_irq_handler(struct irq_desc *desc)
916{ 916{
917 struct ipu_soc *ipu = irq_desc_get_handler_data(desc); 917 struct ipu_soc *ipu = irq_desc_get_handler_data(desc);
918 struct irq_chip *chip = irq_desc_get_chip(desc); 918 struct irq_chip *chip = irq_desc_get_chip(desc);
@@ -925,7 +925,7 @@ static void ipu_irq_handler(unsigned int irq, struct irq_desc *desc)
925 chained_irq_exit(chip, desc); 925 chained_irq_exit(chip, desc);
926} 926}
927 927
928static void ipu_err_irq_handler(unsigned int irq, struct irq_desc *desc) 928static void ipu_err_irq_handler(struct irq_desc *desc)
929{ 929{
930 struct ipu_soc *ipu = irq_desc_get_handler_data(desc); 930 struct ipu_soc *ipu = irq_desc_get_handler_data(desc);
931 struct irq_chip *chip = irq_desc_get_chip(desc); 931 struct irq_chip *chip = irq_desc_get_chip(desc);
diff --git a/drivers/irqchip/exynos-combiner.c b/drivers/irqchip/exynos-combiner.c
index e9c6f2a5b52d..94ddc96f2f7d 100644
--- a/drivers/irqchip/exynos-combiner.c
+++ b/drivers/irqchip/exynos-combiner.c
@@ -65,12 +65,10 @@ static void combiner_unmask_irq(struct irq_data *data)
65 __raw_writel(mask, combiner_base(data) + COMBINER_ENABLE_SET); 65 __raw_writel(mask, combiner_base(data) + COMBINER_ENABLE_SET);
66} 66}
67 67
68static void combiner_handle_cascade_irq(unsigned int __irq, 68static void combiner_handle_cascade_irq(struct irq_desc *desc)
69 struct irq_desc *desc)
70{ 69{
71 struct combiner_chip_data *chip_data = irq_desc_get_handler_data(desc); 70 struct combiner_chip_data *chip_data = irq_desc_get_handler_data(desc);
72 struct irq_chip *chip = irq_desc_get_chip(desc); 71 struct irq_chip *chip = irq_desc_get_chip(desc);
73 unsigned int irq = irq_desc_get_irq(desc);
74 unsigned int cascade_irq, combiner_irq; 72 unsigned int cascade_irq, combiner_irq;
75 unsigned long status; 73 unsigned long status;
76 74
@@ -88,7 +86,7 @@ static void combiner_handle_cascade_irq(unsigned int __irq,
88 cascade_irq = irq_find_mapping(combiner_irq_domain, combiner_irq); 86 cascade_irq = irq_find_mapping(combiner_irq_domain, combiner_irq);
89 87
90 if (unlikely(!cascade_irq)) 88 if (unlikely(!cascade_irq))
91 handle_bad_irq(irq, desc); 89 handle_bad_irq(desc);
92 else 90 else
93 generic_handle_irq(cascade_irq); 91 generic_handle_irq(cascade_irq);
94 92
diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index 39b72da0c143..693b9fb879bd 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -447,8 +447,7 @@ static void armada_370_xp_handle_msi_irq(struct pt_regs *regs, bool is_chained)
447static void armada_370_xp_handle_msi_irq(struct pt_regs *r, bool b) {} 447static void armada_370_xp_handle_msi_irq(struct pt_regs *r, bool b) {}
448#endif 448#endif
449 449
450static void armada_370_xp_mpic_handle_cascade_irq(unsigned int irq, 450static void armada_370_xp_mpic_handle_cascade_irq(struct irq_desc *desc)
451 struct irq_desc *desc)
452{ 451{
453 struct irq_chip *chip = irq_desc_get_chip(desc); 452 struct irq_chip *chip = irq_desc_get_chip(desc);
454 unsigned long irqmap, irqn, irqsrc, cpuid; 453 unsigned long irqmap, irqn, irqsrc, cpuid;
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index ed4ca9deca70..56c9cf488e6c 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -96,7 +96,7 @@ struct armctrl_ic {
96static struct armctrl_ic intc __read_mostly; 96static struct armctrl_ic intc __read_mostly;
97static void __exception_irq_entry bcm2835_handle_irq( 97static void __exception_irq_entry bcm2835_handle_irq(
98 struct pt_regs *regs); 98 struct pt_regs *regs);
99static void bcm2836_chained_handle_irq(unsigned int irq, struct irq_desc *desc); 99static void bcm2836_chained_handle_irq(struct irq_desc *desc);
100 100
101static void armctrl_mask_irq(struct irq_data *d) 101static void armctrl_mask_irq(struct irq_data *d)
102{ 102{
@@ -245,7 +245,7 @@ static void __exception_irq_entry bcm2835_handle_irq(
245 handle_IRQ(irq_linear_revmap(intc.domain, hwirq), regs); 245 handle_IRQ(irq_linear_revmap(intc.domain, hwirq), regs);
246} 246}
247 247
248static void bcm2836_chained_handle_irq(unsigned int irq, struct irq_desc *desc) 248static void bcm2836_chained_handle_irq(struct irq_desc *desc)
249{ 249{
250 u32 hwirq; 250 u32 hwirq;
251 251
diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c
index 409bdc6366c2..0fea985ef1dc 100644
--- a/drivers/irqchip/irq-bcm7038-l1.c
+++ b/drivers/irqchip/irq-bcm7038-l1.c
@@ -115,7 +115,7 @@ static inline void l1_writel(u32 val, void __iomem *reg)
115 writel(val, reg); 115 writel(val, reg);
116} 116}
117 117
118static void bcm7038_l1_irq_handle(unsigned int irq, struct irq_desc *desc) 118static void bcm7038_l1_irq_handle(struct irq_desc *desc)
119{ 119{
120 struct bcm7038_l1_chip *intc = irq_desc_get_handler_data(desc); 120 struct bcm7038_l1_chip *intc = irq_desc_get_handler_data(desc);
121 struct bcm7038_l1_cpu *cpu; 121 struct bcm7038_l1_cpu *cpu;
diff --git a/drivers/irqchip/irq-bcm7120-l2.c b/drivers/irqchip/irq-bcm7120-l2.c
index d3f976913a6f..61b18ab33ad9 100644
--- a/drivers/irqchip/irq-bcm7120-l2.c
+++ b/drivers/irqchip/irq-bcm7120-l2.c
@@ -56,7 +56,7 @@ struct bcm7120_l2_intc_data {
56 const __be32 *map_mask_prop; 56 const __be32 *map_mask_prop;
57}; 57};
58 58
59static void bcm7120_l2_intc_irq_handle(unsigned int irq, struct irq_desc *desc) 59static void bcm7120_l2_intc_irq_handle(struct irq_desc *desc)
60{ 60{
61 struct bcm7120_l1_intc_data *data = irq_desc_get_handler_data(desc); 61 struct bcm7120_l1_intc_data *data = irq_desc_get_handler_data(desc);
62 struct bcm7120_l2_intc_data *b = data->b; 62 struct bcm7120_l2_intc_data *b = data->b;
diff --git a/drivers/irqchip/irq-brcmstb-l2.c b/drivers/irqchip/irq-brcmstb-l2.c
index aedda06191eb..65cd341f331a 100644
--- a/drivers/irqchip/irq-brcmstb-l2.c
+++ b/drivers/irqchip/irq-brcmstb-l2.c
@@ -49,13 +49,12 @@ struct brcmstb_l2_intc_data {
49 u32 saved_mask; /* for suspend/resume */ 49 u32 saved_mask; /* for suspend/resume */
50}; 50};
51 51
52static void brcmstb_l2_intc_irq_handle(unsigned int __irq, 52static void brcmstb_l2_intc_irq_handle(struct irq_desc *desc)
53 struct irq_desc *desc)
54{ 53{
55 struct brcmstb_l2_intc_data *b = irq_desc_get_handler_data(desc); 54 struct brcmstb_l2_intc_data *b = irq_desc_get_handler_data(desc);
56 struct irq_chip_generic *gc = irq_get_domain_generic_chip(b->domain, 0); 55 struct irq_chip_generic *gc = irq_get_domain_generic_chip(b->domain, 0);
57 struct irq_chip *chip = irq_desc_get_chip(desc); 56 struct irq_chip *chip = irq_desc_get_chip(desc);
58 unsigned int irq = irq_desc_get_irq(desc); 57 unsigned int irq;
59 u32 status; 58 u32 status;
60 59
61 chained_irq_enter(chip, desc); 60 chained_irq_enter(chip, desc);
@@ -65,7 +64,7 @@ static void brcmstb_l2_intc_irq_handle(unsigned int __irq,
65 64
66 if (status == 0) { 65 if (status == 0) {
67 raw_spin_lock(&desc->lock); 66 raw_spin_lock(&desc->lock);
68 handle_bad_irq(irq, desc); 67 handle_bad_irq(desc);
69 raw_spin_unlock(&desc->lock); 68 raw_spin_unlock(&desc->lock);
70 goto out; 69 goto out;
71 } 70 }
diff --git a/drivers/irqchip/irq-dw-apb-ictl.c b/drivers/irqchip/irq-dw-apb-ictl.c
index efd95d9955e7..052f266364c0 100644
--- a/drivers/irqchip/irq-dw-apb-ictl.c
+++ b/drivers/irqchip/irq-dw-apb-ictl.c
@@ -26,7 +26,7 @@
26#define APB_INT_FINALSTATUS_H 0x34 26#define APB_INT_FINALSTATUS_H 0x34
27#define APB_INT_BASE_OFFSET 0x04 27#define APB_INT_BASE_OFFSET 0x04
28 28
29static void dw_apb_ictl_handler(unsigned int irq, struct irq_desc *desc) 29static void dw_apb_ictl_handler(struct irq_desc *desc)
30{ 30{
31 struct irq_domain *d = irq_desc_get_handler_data(desc); 31 struct irq_domain *d = irq_desc_get_handler_data(desc);
32 struct irq_chip *chip = irq_desc_get_chip(desc); 32 struct irq_chip *chip = irq_desc_get_chip(desc);
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index 9bccdd295769..00bb7c05a55e 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -341,7 +341,7 @@ static void __exception_irq_entry gic_handle_irq(struct pt_regs *regs)
341 } while (1); 341 } while (1);
342} 342}
343 343
344static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) 344static void gic_handle_cascade_irq(struct irq_desc *desc)
345{ 345{
346 struct gic_chip_data *chip_data = irq_desc_get_handler_data(desc); 346 struct gic_chip_data *chip_data = irq_desc_get_handler_data(desc);
347 struct irq_chip *chip = irq_desc_get_chip(desc); 347 struct irq_chip *chip = irq_desc_get_chip(desc);
@@ -360,7 +360,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
360 360
361 cascade_irq = irq_find_mapping(chip_data->domain, gic_irq); 361 cascade_irq = irq_find_mapping(chip_data->domain, gic_irq);
362 if (unlikely(gic_irq < 32 || gic_irq > 1020)) 362 if (unlikely(gic_irq < 32 || gic_irq > 1020))
363 handle_bad_irq(cascade_irq, desc); 363 handle_bad_irq(desc);
364 else 364 else
365 generic_handle_irq(cascade_irq); 365 generic_handle_irq(cascade_irq);
366 366
diff --git a/drivers/irqchip/irq-i8259.c b/drivers/irqchip/irq-i8259.c
index 4836102ba312..e484fd255321 100644
--- a/drivers/irqchip/irq-i8259.c
+++ b/drivers/irqchip/irq-i8259.c
@@ -352,7 +352,7 @@ void __init init_i8259_irqs(void)
352 __init_i8259_irqs(NULL); 352 __init_i8259_irqs(NULL);
353} 353}
354 354
355static void i8259_irq_dispatch(unsigned int __irq, struct irq_desc *desc) 355static void i8259_irq_dispatch(struct irq_desc *desc)
356{ 356{
357 struct irq_domain *domain = irq_desc_get_handler_data(desc); 357 struct irq_domain *domain = irq_desc_get_handler_data(desc);
358 int hwirq = i8259_irq(); 358 int hwirq = i8259_irq();
diff --git a/drivers/irqchip/irq-imgpdc.c b/drivers/irqchip/irq-imgpdc.c
index 841604b81004..c02d29c9dc05 100644
--- a/drivers/irqchip/irq-imgpdc.c
+++ b/drivers/irqchip/irq-imgpdc.c
@@ -218,7 +218,7 @@ static int pdc_irq_set_wake(struct irq_data *data, unsigned int on)
218 return 0; 218 return 0;
219} 219}
220 220
221static void pdc_intc_perip_isr(unsigned int __irq, struct irq_desc *desc) 221static void pdc_intc_perip_isr(struct irq_desc *desc)
222{ 222{
223 unsigned int irq = irq_desc_get_irq(desc); 223 unsigned int irq = irq_desc_get_irq(desc);
224 struct pdc_intc_priv *priv; 224 struct pdc_intc_priv *priv;
@@ -240,7 +240,7 @@ found:
240 generic_handle_irq(irq_no); 240 generic_handle_irq(irq_no);
241} 241}
242 242
243static void pdc_intc_syswake_isr(unsigned int irq, struct irq_desc *desc) 243static void pdc_intc_syswake_isr(struct irq_desc *desc)
244{ 244{
245 struct pdc_intc_priv *priv; 245 struct pdc_intc_priv *priv;
246 unsigned int syswake, irq_no; 246 unsigned int syswake, irq_no;
diff --git a/drivers/irqchip/irq-keystone.c b/drivers/irqchip/irq-keystone.c
index c1517267b5db..7b784b692f3c 100644
--- a/drivers/irqchip/irq-keystone.c
+++ b/drivers/irqchip/irq-keystone.c
@@ -83,7 +83,7 @@ static void keystone_irq_ack(struct irq_data *d)
83 /* nothing to do here */ 83 /* nothing to do here */
84} 84}
85 85
86static void keystone_irq_handler(unsigned __irq, struct irq_desc *desc) 86static void keystone_irq_handler(struct irq_desc *desc)
87{ 87{
88 unsigned int irq = irq_desc_get_irq(desc); 88 unsigned int irq = irq_desc_get_irq(desc);
89 struct keystone_irq_device *kirq = irq_desc_get_handler_data(desc); 89 struct keystone_irq_device *kirq = irq_desc_get_handler_data(desc);
diff --git a/drivers/irqchip/irq-metag-ext.c b/drivers/irqchip/irq-metag-ext.c
index 5f4c52928d16..8c38b3d92e1c 100644
--- a/drivers/irqchip/irq-metag-ext.c
+++ b/drivers/irqchip/irq-metag-ext.c
@@ -446,7 +446,7 @@ static int meta_intc_irq_set_type(struct irq_data *data, unsigned int flow_type)
446 * Whilst using TR2 to detect external interrupts is a software convention it is 446 * Whilst using TR2 to detect external interrupts is a software convention it is
447 * (hopefully) unlikely to change. 447 * (hopefully) unlikely to change.
448 */ 448 */
449static void meta_intc_irq_demux(unsigned int irq, struct irq_desc *desc) 449static void meta_intc_irq_demux(struct irq_desc *desc)
450{ 450{
451 struct meta_intc_priv *priv = &meta_intc_priv; 451 struct meta_intc_priv *priv = &meta_intc_priv;
452 irq_hw_number_t hw; 452 irq_hw_number_t hw;
diff --git a/drivers/irqchip/irq-metag.c b/drivers/irqchip/irq-metag.c
index 3d23ce3edb5c..a5f053bd2f44 100644
--- a/drivers/irqchip/irq-metag.c
+++ b/drivers/irqchip/irq-metag.c
@@ -220,7 +220,7 @@ static int metag_internal_irq_set_affinity(struct irq_data *data,
220 * occurred. It is this function's job to demux this irq and 220 * occurred. It is this function's job to demux this irq and
221 * figure out exactly which trigger needs servicing. 221 * figure out exactly which trigger needs servicing.
222 */ 222 */
223static void metag_internal_irq_demux(unsigned int irq, struct irq_desc *desc) 223static void metag_internal_irq_demux(struct irq_desc *desc)
224{ 224{
225 struct metag_internal_irq_priv *priv = irq_desc_get_handler_data(desc); 225 struct metag_internal_irq_priv *priv = irq_desc_get_handler_data(desc);
226 irq_hw_number_t hw; 226 irq_hw_number_t hw;
diff --git a/drivers/irqchip/irq-mips-gic.c b/drivers/irqchip/irq-mips-gic.c
index 1764bcf8ee6b..af2f16bb8a94 100644
--- a/drivers/irqchip/irq-mips-gic.c
+++ b/drivers/irqchip/irq-mips-gic.c
@@ -546,7 +546,7 @@ static void __gic_irq_dispatch(void)
546 gic_handle_shared_int(false); 546 gic_handle_shared_int(false);
547} 547}
548 548
549static void gic_irq_dispatch(unsigned int irq, struct irq_desc *desc) 549static void gic_irq_dispatch(struct irq_desc *desc)
550{ 550{
551 gic_handle_local_int(true); 551 gic_handle_local_int(true);
552 gic_handle_shared_int(true); 552 gic_handle_shared_int(true);
diff --git a/drivers/irqchip/irq-mmp.c b/drivers/irqchip/irq-mmp.c
index 781ed6e71dbb..ea6e3a96f3b3 100644
--- a/drivers/irqchip/irq-mmp.c
+++ b/drivers/irqchip/irq-mmp.c
@@ -129,7 +129,7 @@ struct irq_chip icu_irq_chip = {
129 .irq_unmask = icu_unmask_irq, 129 .irq_unmask = icu_unmask_irq,
130}; 130};
131 131
132static void icu_mux_irq_demux(unsigned int __irq, struct irq_desc *desc) 132static void icu_mux_irq_demux(struct irq_desc *desc)
133{ 133{
134 unsigned int irq = irq_desc_get_irq(desc); 134 unsigned int irq = irq_desc_get_irq(desc);
135 struct irq_domain *domain; 135 struct irq_domain *domain;
diff --git a/drivers/irqchip/irq-orion.c b/drivers/irqchip/irq-orion.c
index 5ea999a724b5..be4c5a8c9659 100644
--- a/drivers/irqchip/irq-orion.c
+++ b/drivers/irqchip/irq-orion.c
@@ -106,7 +106,7 @@ IRQCHIP_DECLARE(orion_intc, "marvell,orion-intc", orion_irq_init);
106#define ORION_BRIDGE_IRQ_CAUSE 0x00 106#define ORION_BRIDGE_IRQ_CAUSE 0x00
107#define ORION_BRIDGE_IRQ_MASK 0x04 107#define ORION_BRIDGE_IRQ_MASK 0x04
108 108
109static void orion_bridge_irq_handler(unsigned int irq, struct irq_desc *desc) 109static void orion_bridge_irq_handler(struct irq_desc *desc)
110{ 110{
111 struct irq_domain *d = irq_desc_get_handler_data(desc); 111 struct irq_domain *d = irq_desc_get_handler_data(desc);
112 112
diff --git a/drivers/irqchip/irq-s3c24xx.c b/drivers/irqchip/irq-s3c24xx.c
index 506d9f20ca51..e47572a9bbb2 100644
--- a/drivers/irqchip/irq-s3c24xx.c
+++ b/drivers/irqchip/irq-s3c24xx.c
@@ -298,7 +298,7 @@ static struct irq_chip s3c_irq_eint0t4 = {
298 .irq_set_type = s3c_irqext0_type, 298 .irq_set_type = s3c_irqext0_type,
299}; 299};
300 300
301static void s3c_irq_demux(unsigned int __irq, struct irq_desc *desc) 301static void s3c_irq_demux(struct irq_desc *desc)
302{ 302{
303 struct irq_chip *chip = irq_desc_get_chip(desc); 303 struct irq_chip *chip = irq_desc_get_chip(desc);
304 struct s3c_irq_data *irq_data = irq_desc_get_chip_data(desc); 304 struct s3c_irq_data *irq_data = irq_desc_get_chip_data(desc);
diff --git a/drivers/irqchip/irq-sunxi-nmi.c b/drivers/irqchip/irq-sunxi-nmi.c
index 772a82cacbf7..c143dd58410c 100644
--- a/drivers/irqchip/irq-sunxi-nmi.c
+++ b/drivers/irqchip/irq-sunxi-nmi.c
@@ -58,7 +58,7 @@ static inline u32 sunxi_sc_nmi_read(struct irq_chip_generic *gc, u32 off)
58 return irq_reg_readl(gc, off); 58 return irq_reg_readl(gc, off);
59} 59}
60 60
61static void sunxi_sc_nmi_handle_irq(unsigned int irq, struct irq_desc *desc) 61static void sunxi_sc_nmi_handle_irq(struct irq_desc *desc)
62{ 62{
63 struct irq_domain *domain = irq_desc_get_handler_data(desc); 63 struct irq_domain *domain = irq_desc_get_handler_data(desc);
64 struct irq_chip *chip = irq_desc_get_chip(desc); 64 struct irq_chip *chip = irq_desc_get_chip(desc);
diff --git a/drivers/irqchip/irq-tb10x.c b/drivers/irqchip/irq-tb10x.c
index 331829661366..848d782a2a3b 100644
--- a/drivers/irqchip/irq-tb10x.c
+++ b/drivers/irqchip/irq-tb10x.c
@@ -97,7 +97,7 @@ static int tb10x_irq_set_type(struct irq_data *data, unsigned int flow_type)
97 return IRQ_SET_MASK_OK; 97 return IRQ_SET_MASK_OK;
98} 98}
99 99
100static void tb10x_irq_cascade(unsigned int __irq, struct irq_desc *desc) 100static void tb10x_irq_cascade(struct irq_desc *desc)
101{ 101{
102 struct irq_domain *domain = irq_desc_get_handler_data(desc); 102 struct irq_domain *domain = irq_desc_get_handler_data(desc);
103 unsigned int irq = irq_desc_get_irq(desc); 103 unsigned int irq = irq_desc_get_irq(desc);
diff --git a/drivers/irqchip/irq-versatile-fpga.c b/drivers/irqchip/irq-versatile-fpga.c
index 16123f688768..1b1c63e8d249 100644
--- a/drivers/irqchip/irq-versatile-fpga.c
+++ b/drivers/irqchip/irq-versatile-fpga.c
@@ -65,19 +65,19 @@ static void fpga_irq_unmask(struct irq_data *d)
65 writel(mask, f->base + IRQ_ENABLE_SET); 65 writel(mask, f->base + IRQ_ENABLE_SET);
66} 66}
67 67
68static void fpga_irq_handle(unsigned int __irq, struct irq_desc *desc) 68static void fpga_irq_handle(struct irq_desc *desc)
69{ 69{
70 struct fpga_irq_data *f = irq_desc_get_handler_data(desc); 70 struct fpga_irq_data *f = irq_desc_get_handler_data(desc);
71 unsigned int irq = irq_desc_get_irq(desc);
72 u32 status = readl(f->base + IRQ_STATUS); 71 u32 status = readl(f->base + IRQ_STATUS);
73 72
74 if (status == 0) { 73 if (status == 0) {
75 do_bad_IRQ(irq, desc); 74 do_bad_IRQ(desc);
76 return; 75 return;
77 } 76 }
78 77
79 do { 78 do {
80 irq = ffs(status) - 1; 79 unsigned int irq = ffs(status) - 1;
80
81 status &= ~(1 << irq); 81 status &= ~(1 << irq);
82 generic_handle_irq(irq_find_mapping(f->domain, irq)); 82 generic_handle_irq(irq_find_mapping(f->domain, irq));
83 } while (status); 83 } while (status);
diff --git a/drivers/irqchip/irq-vic.c b/drivers/irqchip/irq-vic.c
index 03846dff4212..cb85504c2ff1 100644
--- a/drivers/irqchip/irq-vic.c
+++ b/drivers/irqchip/irq-vic.c
@@ -225,7 +225,7 @@ static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs)
225 return handled; 225 return handled;
226} 226}
227 227
228static void vic_handle_irq_cascaded(unsigned int irq, struct irq_desc *desc) 228static void vic_handle_irq_cascaded(struct irq_desc *desc)
229{ 229{
230 u32 stat, hwirq; 230 u32 stat, hwirq;
231 struct irq_chip *host_chip = irq_desc_get_chip(desc); 231 struct irq_chip *host_chip = irq_desc_get_chip(desc);
diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c
index 4cbd9c5dc1e6..c838c9286ea5 100644
--- a/drivers/irqchip/spear-shirq.c
+++ b/drivers/irqchip/spear-shirq.c
@@ -182,7 +182,7 @@ static struct spear_shirq *spear320_shirq_blocks[] = {
182 &spear320_shirq_intrcomm_ras, 182 &spear320_shirq_intrcomm_ras,
183}; 183};
184 184
185static void shirq_handler(unsigned __irq, struct irq_desc *desc) 185static void shirq_handler(struct irq_desc *desc)
186{ 186{
187 struct spear_shirq *shirq = irq_desc_get_handler_data(desc); 187 struct spear_shirq *shirq = irq_desc_get_handler_data(desc);
188 u32 pend; 188 u32 pend;
diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
index 4b54128bc78e..a726f01e3b02 100644
--- a/drivers/mfd/asic3.c
+++ b/drivers/mfd/asic3.c
@@ -138,7 +138,7 @@ static void asic3_irq_flip_edge(struct asic3 *asic,
138 spin_unlock_irqrestore(&asic->lock, flags); 138 spin_unlock_irqrestore(&asic->lock, flags);
139} 139}
140 140
141static void asic3_irq_demux(unsigned int irq, struct irq_desc *desc) 141static void asic3_irq_demux(struct irq_desc *desc)
142{ 142{
143 struct asic3 *asic = irq_desc_get_handler_data(desc); 143 struct asic3 *asic = irq_desc_get_handler_data(desc);
144 struct irq_data *data = irq_desc_get_irq_data(desc); 144 struct irq_data *data = irq_desc_get_irq_data(desc);
diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c
index a76eb6ef47a0..b279205659a4 100644
--- a/drivers/mfd/ezx-pcap.c
+++ b/drivers/mfd/ezx-pcap.c
@@ -205,7 +205,7 @@ static void pcap_isr_work(struct work_struct *work)
205 } while (gpio_get_value(pdata->gpio)); 205 } while (gpio_get_value(pdata->gpio));
206} 206}
207 207
208static void pcap_irq_handler(unsigned int irq, struct irq_desc *desc) 208static void pcap_irq_handler(struct irq_desc *desc)
209{ 209{
210 struct pcap_chip *pcap = irq_desc_get_handler_data(desc); 210 struct pcap_chip *pcap = irq_desc_get_handler_data(desc);
211 211
diff --git a/drivers/mfd/htc-egpio.c b/drivers/mfd/htc-egpio.c
index 9131cdcdc64a..6ccaf90d98fd 100644
--- a/drivers/mfd/htc-egpio.c
+++ b/drivers/mfd/htc-egpio.c
@@ -98,7 +98,7 @@ static struct irq_chip egpio_muxed_chip = {
98 .irq_unmask = egpio_unmask, 98 .irq_unmask = egpio_unmask,
99}; 99};
100 100
101static void egpio_handler(unsigned int irq, struct irq_desc *desc) 101static void egpio_handler(struct irq_desc *desc)
102{ 102{
103 struct egpio_info *ei = irq_desc_get_handler_data(desc); 103 struct egpio_info *ei = irq_desc_get_handler_data(desc);
104 int irqpin; 104 int irqpin;
diff --git a/drivers/mfd/jz4740-adc.c b/drivers/mfd/jz4740-adc.c
index 5bb49f08955d..798e44306382 100644
--- a/drivers/mfd/jz4740-adc.c
+++ b/drivers/mfd/jz4740-adc.c
@@ -65,7 +65,7 @@ struct jz4740_adc {
65 spinlock_t lock; 65 spinlock_t lock;
66}; 66};
67 67
68static void jz4740_adc_irq_demux(unsigned int irq, struct irq_desc *desc) 68static void jz4740_adc_irq_demux(struct irq_desc *desc)
69{ 69{
70 struct irq_chip_generic *gc = irq_desc_get_handler_data(desc); 70 struct irq_chip_generic *gc = irq_desc_get_handler_data(desc);
71 uint8_t status; 71 uint8_t status;
diff --git a/drivers/mfd/pm8921-core.c b/drivers/mfd/pm8921-core.c
index 59502d02cd15..1b7ec0870c2a 100644
--- a/drivers/mfd/pm8921-core.c
+++ b/drivers/mfd/pm8921-core.c
@@ -156,7 +156,7 @@ static int pm8xxx_irq_master_handler(struct pm_irq_chip *chip, int master)
156 return ret; 156 return ret;
157} 157}
158 158
159static void pm8xxx_irq_handler(unsigned int irq, struct irq_desc *desc) 159static void pm8xxx_irq_handler(struct irq_desc *desc)
160{ 160{
161 struct pm_irq_chip *chip = irq_desc_get_handler_data(desc); 161 struct pm_irq_chip *chip = irq_desc_get_handler_data(desc);
162 struct irq_chip *irq_chip = irq_desc_get_chip(desc); 162 struct irq_chip *irq_chip = irq_desc_get_chip(desc);
diff --git a/drivers/mfd/t7l66xb.c b/drivers/mfd/t7l66xb.c
index 16fc1adc4fa3..94bd89cb1f06 100644
--- a/drivers/mfd/t7l66xb.c
+++ b/drivers/mfd/t7l66xb.c
@@ -185,7 +185,7 @@ static struct mfd_cell t7l66xb_cells[] = {
185/*--------------------------------------------------------------------------*/ 185/*--------------------------------------------------------------------------*/
186 186
187/* Handle the T7L66XB interrupt mux */ 187/* Handle the T7L66XB interrupt mux */
188static void t7l66xb_irq(unsigned int irq, struct irq_desc *desc) 188static void t7l66xb_irq(struct irq_desc *desc)
189{ 189{
190 struct t7l66xb *t7l66xb = irq_desc_get_handler_data(desc); 190 struct t7l66xb *t7l66xb = irq_desc_get_handler_data(desc);
191 unsigned int isr; 191 unsigned int isr;
diff --git a/drivers/mfd/tc6393xb.c b/drivers/mfd/tc6393xb.c
index 775b9aca871a..8c84a513016b 100644
--- a/drivers/mfd/tc6393xb.c
+++ b/drivers/mfd/tc6393xb.c
@@ -522,8 +522,7 @@ static int tc6393xb_register_gpio(struct tc6393xb *tc6393xb, int gpio_base)
522 522
523/*--------------------------------------------------------------------------*/ 523/*--------------------------------------------------------------------------*/
524 524
525static void 525static void tc6393xb_irq(struct irq_desc *desc)
526tc6393xb_irq(unsigned int irq, struct irq_desc *desc)
527{ 526{
528 struct tc6393xb *tc6393xb = irq_desc_get_handler_data(desc); 527 struct tc6393xb *tc6393xb = irq_desc_get_handler_data(desc);
529 unsigned int isr; 528 unsigned int isr;
diff --git a/drivers/mfd/ucb1x00-core.c b/drivers/mfd/ucb1x00-core.c
index 9a2302129711..f691d7ecad52 100644
--- a/drivers/mfd/ucb1x00-core.c
+++ b/drivers/mfd/ucb1x00-core.c
@@ -282,7 +282,7 @@ void ucb1x00_adc_disable(struct ucb1x00 *ucb)
282 * SIBCLK to talk to the chip. We leave the clock running until 282 * SIBCLK to talk to the chip. We leave the clock running until
283 * we have finished processing all interrupts from the chip. 283 * we have finished processing all interrupts from the chip.
284 */ 284 */
285static void ucb1x00_irq(unsigned int __irq, struct irq_desc *desc) 285static void ucb1x00_irq(struct irq_desc *desc)
286{ 286{
287 struct ucb1x00 *ucb = irq_desc_get_handler_data(desc); 287 struct ucb1x00 *ucb = irq_desc_get_handler_data(desc);
288 unsigned int isr, i; 288 unsigned int isr, i;
diff --git a/drivers/pci/host/pci-keystone.c b/drivers/pci/host/pci-keystone.c
index 81253e70b1c5..0aa81bd3de12 100644
--- a/drivers/pci/host/pci-keystone.c
+++ b/drivers/pci/host/pci-keystone.c
@@ -110,7 +110,7 @@ static int ks_pcie_establish_link(struct keystone_pcie *ks_pcie)
110 return -EINVAL; 110 return -EINVAL;
111} 111}
112 112
113static void ks_pcie_msi_irq_handler(unsigned int __irq, struct irq_desc *desc) 113static void ks_pcie_msi_irq_handler(struct irq_desc *desc)
114{ 114{
115 unsigned int irq = irq_desc_get_irq(desc); 115 unsigned int irq = irq_desc_get_irq(desc);
116 struct keystone_pcie *ks_pcie = irq_desc_get_handler_data(desc); 116 struct keystone_pcie *ks_pcie = irq_desc_get_handler_data(desc);
@@ -138,8 +138,7 @@ static void ks_pcie_msi_irq_handler(unsigned int __irq, struct irq_desc *desc)
138 * Traverse through pending legacy interrupts and invoke handler for each. Also 138 * Traverse through pending legacy interrupts and invoke handler for each. Also
139 * takes care of interrupt controller level mask/ack operation. 139 * takes care of interrupt controller level mask/ack operation.
140 */ 140 */
141static void ks_pcie_legacy_irq_handler(unsigned int __irq, 141static void ks_pcie_legacy_irq_handler(struct irq_desc *desc)
142 struct irq_desc *desc)
143{ 142{
144 unsigned int irq = irq_desc_get_irq(desc); 143 unsigned int irq = irq_desc_get_irq(desc);
145 struct keystone_pcie *ks_pcie = irq_desc_get_handler_data(desc); 144 struct keystone_pcie *ks_pcie = irq_desc_get_handler_data(desc);
diff --git a/drivers/pci/host/pci-xgene-msi.c b/drivers/pci/host/pci-xgene-msi.c
index 996327cfa1e1..e491681daf22 100644
--- a/drivers/pci/host/pci-xgene-msi.c
+++ b/drivers/pci/host/pci-xgene-msi.c
@@ -295,7 +295,7 @@ static int xgene_msi_init_allocator(struct xgene_msi *xgene_msi)
295 return 0; 295 return 0;
296} 296}
297 297
298static void xgene_msi_isr(unsigned int irq, struct irq_desc *desc) 298static void xgene_msi_isr(struct irq_desc *desc)
299{ 299{
300 struct irq_chip *chip = irq_desc_get_chip(desc); 300 struct irq_chip *chip = irq_desc_get_chip(desc);
301 struct xgene_msi_group *msi_groups; 301 struct xgene_msi_group *msi_groups;
diff --git a/drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c b/drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c
index 7d9482bf8252..1ca783098e47 100644
--- a/drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c
+++ b/drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c
@@ -143,7 +143,7 @@ static inline bool cygnus_get_bit(struct cygnus_gpio *chip, unsigned int reg,
143 return !!(readl(chip->base + offset) & BIT(shift)); 143 return !!(readl(chip->base + offset) & BIT(shift));
144} 144}
145 145
146static void cygnus_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 146static void cygnus_gpio_irq_handler(struct irq_desc *desc)
147{ 147{
148 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 148 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
149 struct cygnus_gpio *chip = to_cygnus_gpio(gc); 149 struct cygnus_gpio *chip = to_cygnus_gpio(gc);
diff --git a/drivers/pinctrl/intel/pinctrl-baytrail.c b/drivers/pinctrl/intel/pinctrl-baytrail.c
index dac4865f3203..f79ea430f651 100644
--- a/drivers/pinctrl/intel/pinctrl-baytrail.c
+++ b/drivers/pinctrl/intel/pinctrl-baytrail.c
@@ -425,7 +425,7 @@ static void byt_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
425 } 425 }
426} 426}
427 427
428static void byt_gpio_irq_handler(unsigned irq, struct irq_desc *desc) 428static void byt_gpio_irq_handler(struct irq_desc *desc)
429{ 429{
430 struct irq_data *data = irq_desc_get_irq_data(desc); 430 struct irq_data *data = irq_desc_get_irq_data(desc);
431 struct byt_gpio *vg = to_byt_gpio(irq_desc_get_handler_data(desc)); 431 struct byt_gpio *vg = to_byt_gpio(irq_desc_get_handler_data(desc));
diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c
index 2d5d3ddc36e5..270c127e03ea 100644
--- a/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ b/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -1414,7 +1414,7 @@ static struct irq_chip chv_gpio_irqchip = {
1414 .flags = IRQCHIP_SKIP_SET_WAKE, 1414 .flags = IRQCHIP_SKIP_SET_WAKE,
1415}; 1415};
1416 1416
1417static void chv_gpio_irq_handler(unsigned irq, struct irq_desc *desc) 1417static void chv_gpio_irq_handler(struct irq_desc *desc)
1418{ 1418{
1419 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 1419 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
1420 struct chv_pinctrl *pctrl = gpiochip_to_pinctrl(gc); 1420 struct chv_pinctrl *pctrl = gpiochip_to_pinctrl(gc);
diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
index bb377c110541..54848b8decef 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.c
+++ b/drivers/pinctrl/intel/pinctrl-intel.c
@@ -836,7 +836,7 @@ static void intel_gpio_community_irq_handler(struct gpio_chip *gc,
836 } 836 }
837} 837}
838 838
839static void intel_gpio_irq_handler(unsigned irq, struct irq_desc *desc) 839static void intel_gpio_irq_handler(struct irq_desc *desc)
840{ 840{
841 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 841 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
842 struct intel_pinctrl *pctrl = gpiochip_to_pinctrl(gc); 842 struct intel_pinctrl *pctrl = gpiochip_to_pinctrl(gc);
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
index 7726c6caaf83..1b22f96ba839 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
@@ -1190,7 +1190,7 @@ mtk_eint_debounce_process(struct mtk_pinctrl *pctl, int index)
1190 } 1190 }
1191} 1191}
1192 1192
1193static void mtk_eint_irq_handler(unsigned irq, struct irq_desc *desc) 1193static void mtk_eint_irq_handler(struct irq_desc *desc)
1194{ 1194{
1195 struct irq_chip *chip = irq_desc_get_chip(desc); 1195 struct irq_chip *chip = irq_desc_get_chip(desc);
1196 struct mtk_pinctrl *pctl = irq_desc_get_handler_data(desc); 1196 struct mtk_pinctrl *pctl = irq_desc_get_handler_data(desc);
diff --git a/drivers/pinctrl/nomadik/pinctrl-nomadik.c b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
index 352ede13a9e9..96cf03908e93 100644
--- a/drivers/pinctrl/nomadik/pinctrl-nomadik.c
+++ b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
@@ -860,7 +860,7 @@ static void __nmk_gpio_irq_handler(struct irq_desc *desc, u32 status)
860 chained_irq_exit(host_chip, desc); 860 chained_irq_exit(host_chip, desc);
861} 861}
862 862
863static void nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 863static void nmk_gpio_irq_handler(struct irq_desc *desc)
864{ 864{
865 struct gpio_chip *chip = irq_desc_get_handler_data(desc); 865 struct gpio_chip *chip = irq_desc_get_handler_data(desc);
866 struct nmk_gpio_chip *nmk_chip = container_of(chip, struct nmk_gpio_chip, chip); 866 struct nmk_gpio_chip *nmk_chip = container_of(chip, struct nmk_gpio_chip, chip);
@@ -873,7 +873,7 @@ static void nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
873 __nmk_gpio_irq_handler(desc, status); 873 __nmk_gpio_irq_handler(desc, status);
874} 874}
875 875
876static void nmk_gpio_latent_irq_handler(unsigned int irq, struct irq_desc *desc) 876static void nmk_gpio_latent_irq_handler(struct irq_desc *desc)
877{ 877{
878 struct gpio_chip *chip = irq_desc_get_handler_data(desc); 878 struct gpio_chip *chip = irq_desc_get_handler_data(desc);
879 struct nmk_gpio_chip *nmk_chip = container_of(chip, struct nmk_gpio_chip, chip); 879 struct nmk_gpio_chip *nmk_chip = container_of(chip, struct nmk_gpio_chip, chip);
diff --git a/drivers/pinctrl/pinctrl-adi2.c b/drivers/pinctrl/pinctrl-adi2.c
index a5976ebc4482..f6be68518c87 100644
--- a/drivers/pinctrl/pinctrl-adi2.c
+++ b/drivers/pinctrl/pinctrl-adi2.c
@@ -530,8 +530,7 @@ static inline void preflow_handler(struct irq_desc *desc)
530static inline void preflow_handler(struct irq_desc *desc) { } 530static inline void preflow_handler(struct irq_desc *desc) { }
531#endif 531#endif
532 532
533static void adi_gpio_handle_pint_irq(unsigned int inta_irq, 533static void adi_gpio_handle_pint_irq(struct irq_desc *desc)
534 struct irq_desc *desc)
535{ 534{
536 u32 request; 535 u32 request;
537 u32 level_mask, hwirq; 536 u32 level_mask, hwirq;
diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c
index 5e86bb8ca80e..3318f1d6193c 100644
--- a/drivers/pinctrl/pinctrl-amd.c
+++ b/drivers/pinctrl/pinctrl-amd.c
@@ -492,15 +492,15 @@ static struct irq_chip amd_gpio_irqchip = {
492 .irq_set_type = amd_gpio_irq_set_type, 492 .irq_set_type = amd_gpio_irq_set_type,
493}; 493};
494 494
495static void amd_gpio_irq_handler(unsigned int __irq, struct irq_desc *desc) 495static void amd_gpio_irq_handler(struct irq_desc *desc)
496{ 496{
497 unsigned int irq = irq_desc_get_irq(desc);
498 u32 i; 497 u32 i;
499 u32 off; 498 u32 off;
500 u32 reg; 499 u32 reg;
501 u32 pin_reg; 500 u32 pin_reg;
502 u64 reg64; 501 u64 reg64;
503 int handled = 0; 502 int handled = 0;
503 unsigned int irq;
504 unsigned long flags; 504 unsigned long flags;
505 struct irq_chip *chip = irq_desc_get_chip(desc); 505 struct irq_chip *chip = irq_desc_get_chip(desc);
506 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 506 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
@@ -541,7 +541,7 @@ static void amd_gpio_irq_handler(unsigned int __irq, struct irq_desc *desc)
541 } 541 }
542 542
543 if (handled == 0) 543 if (handled == 0)
544 handle_bad_irq(irq, desc); 544 handle_bad_irq(desc);
545 545
546 spin_lock_irqsave(&gpio_dev->lock, flags); 546 spin_lock_irqsave(&gpio_dev->lock, flags);
547 reg = readl(gpio_dev->base + WAKE_INT_MASTER_REG); 547 reg = readl(gpio_dev->base + WAKE_INT_MASTER_REG);
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index bae0012ee356..b0fde0f385e6 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -1585,7 +1585,7 @@ static struct irq_chip gpio_irqchip = {
1585 .irq_set_wake = gpio_irq_set_wake, 1585 .irq_set_wake = gpio_irq_set_wake,
1586}; 1586};
1587 1587
1588static void gpio_irq_handler(unsigned irq, struct irq_desc *desc) 1588static void gpio_irq_handler(struct irq_desc *desc)
1589{ 1589{
1590 struct irq_chip *chip = irq_desc_get_chip(desc); 1590 struct irq_chip *chip = irq_desc_get_chip(desc);
1591 struct gpio_chip *gpio_chip = irq_desc_get_handler_data(desc); 1591 struct gpio_chip *gpio_chip = irq_desc_get_handler_data(desc);
diff --git a/drivers/pinctrl/pinctrl-coh901.c b/drivers/pinctrl/pinctrl-coh901.c
index 3731cc67a88b..9c9b88934bcc 100644
--- a/drivers/pinctrl/pinctrl-coh901.c
+++ b/drivers/pinctrl/pinctrl-coh901.c
@@ -519,7 +519,7 @@ static struct irq_chip u300_gpio_irqchip = {
519 .irq_set_type = u300_gpio_irq_type, 519 .irq_set_type = u300_gpio_irq_type,
520}; 520};
521 521
522static void u300_gpio_irq_handler(unsigned __irq, struct irq_desc *desc) 522static void u300_gpio_irq_handler(struct irq_desc *desc)
523{ 523{
524 unsigned int irq = irq_desc_get_irq(desc); 524 unsigned int irq = irq_desc_get_irq(desc);
525 struct irq_chip *parent_chip = irq_desc_get_chip(desc); 525 struct irq_chip *parent_chip = irq_desc_get_chip(desc);
diff --git a/drivers/pinctrl/pinctrl-pistachio.c b/drivers/pinctrl/pinctrl-pistachio.c
index f22d585d9300..952b1c623887 100644
--- a/drivers/pinctrl/pinctrl-pistachio.c
+++ b/drivers/pinctrl/pinctrl-pistachio.c
@@ -1310,13 +1310,11 @@ static int pistachio_gpio_irq_set_type(struct irq_data *data, unsigned int type)
1310 return 0; 1310 return 0;
1311} 1311}
1312 1312
1313static void pistachio_gpio_irq_handler(unsigned int __irq, 1313static void pistachio_gpio_irq_handler(struct irq_desc *desc)
1314 struct irq_desc *desc)
1315{ 1314{
1316 unsigned int irq = irq_desc_get_irq(desc);
1317 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 1315 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
1318 struct pistachio_gpio_bank *bank = gc_to_bank(gc); 1316 struct pistachio_gpio_bank *bank = gc_to_bank(gc);
1319 struct irq_chip *chip = irq_get_chip(irq); 1317 struct irq_chip *chip = irq_desc_get_chip(desc);
1320 unsigned long pending; 1318 unsigned long pending;
1321 unsigned int pin; 1319 unsigned int pin;
1322 1320
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index c5246c05f70c..88bb707e107a 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -1475,7 +1475,7 @@ static const struct gpio_chip rockchip_gpiolib_chip = {
1475 * Interrupt handling 1475 * Interrupt handling
1476 */ 1476 */
1477 1477
1478static void rockchip_irq_demux(unsigned int __irq, struct irq_desc *desc) 1478static void rockchip_irq_demux(struct irq_desc *desc)
1479{ 1479{
1480 struct irq_chip *chip = irq_desc_get_chip(desc); 1480 struct irq_chip *chip = irq_desc_get_chip(desc);
1481 struct rockchip_pin_bank *bank = irq_desc_get_handler_data(desc); 1481 struct rockchip_pin_bank *bank = irq_desc_get_handler_data(desc);
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
index bf548c2a7a9d..ef04b962c3d5 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -1679,7 +1679,7 @@ static irqreturn_t pcs_irq_handler(int irq, void *d)
1679 * Use this if you have a separate interrupt for each 1679 * Use this if you have a separate interrupt for each
1680 * pinctrl-single instance. 1680 * pinctrl-single instance.
1681 */ 1681 */
1682static void pcs_irq_chain_handler(unsigned int irq, struct irq_desc *desc) 1682static void pcs_irq_chain_handler(struct irq_desc *desc)
1683{ 1683{
1684 struct pcs_soc_data *pcs_soc = irq_desc_get_handler_data(desc); 1684 struct pcs_soc_data *pcs_soc = irq_desc_get_handler_data(desc);
1685 struct irq_chip *chip; 1685 struct irq_chip *chip;
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
index f8338d2e6b6b..389526e704fb 100644
--- a/drivers/pinctrl/pinctrl-st.c
+++ b/drivers/pinctrl/pinctrl-st.c
@@ -1460,7 +1460,7 @@ static void __gpio_irq_handler(struct st_gpio_bank *bank)
1460 } 1460 }
1461} 1461}
1462 1462
1463static void st_gpio_irq_handler(unsigned irq, struct irq_desc *desc) 1463static void st_gpio_irq_handler(struct irq_desc *desc)
1464{ 1464{
1465 /* interrupt dedicated per bank */ 1465 /* interrupt dedicated per bank */
1466 struct irq_chip *chip = irq_desc_get_chip(desc); 1466 struct irq_chip *chip = irq_desc_get_chip(desc);
@@ -1472,7 +1472,7 @@ static void st_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
1472 chained_irq_exit(chip, desc); 1472 chained_irq_exit(chip, desc);
1473} 1473}
1474 1474
1475static void st_gpio_irqmux_handler(unsigned irq, struct irq_desc *desc) 1475static void st_gpio_irqmux_handler(struct irq_desc *desc)
1476{ 1476{
1477 struct irq_chip *chip = irq_desc_get_chip(desc); 1477 struct irq_chip *chip = irq_desc_get_chip(desc);
1478 struct st_pinctrl *info = irq_desc_get_handler_data(desc); 1478 struct st_pinctrl *info = irq_desc_get_handler_data(desc);
diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
index 492cdd51dc5c..a0c7407c1cac 100644
--- a/drivers/pinctrl/qcom/pinctrl-msm.c
+++ b/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -765,9 +765,8 @@ static struct irq_chip msm_gpio_irq_chip = {
765 .irq_set_wake = msm_gpio_irq_set_wake, 765 .irq_set_wake = msm_gpio_irq_set_wake,
766}; 766};
767 767
768static void msm_gpio_irq_handler(unsigned int __irq, struct irq_desc *desc) 768static void msm_gpio_irq_handler(struct irq_desc *desc)
769{ 769{
770 unsigned int irq = irq_desc_get_irq(desc);
771 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 770 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
772 const struct msm_pingroup *g; 771 const struct msm_pingroup *g;
773 struct msm_pinctrl *pctrl = to_msm_pinctrl(gc); 772 struct msm_pinctrl *pctrl = to_msm_pinctrl(gc);
@@ -795,7 +794,7 @@ static void msm_gpio_irq_handler(unsigned int __irq, struct irq_desc *desc)
795 794
796 /* No interrupts were flagged */ 795 /* No interrupts were flagged */
797 if (handled == 0) 796 if (handled == 0)
798 handle_bad_irq(irq, desc); 797 handle_bad_irq(desc);
799 798
800 chained_irq_exit(chip, desc); 799 chained_irq_exit(chip, desc);
801} 800}
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c
index 5f45caaef46d..71ccf6a90b22 100644
--- a/drivers/pinctrl/samsung/pinctrl-exynos.c
+++ b/drivers/pinctrl/samsung/pinctrl-exynos.c
@@ -419,7 +419,7 @@ static const struct of_device_id exynos_wkup_irq_ids[] = {
419}; 419};
420 420
421/* interrupt handler for wakeup interrupts 0..15 */ 421/* interrupt handler for wakeup interrupts 0..15 */
422static void exynos_irq_eint0_15(unsigned int irq, struct irq_desc *desc) 422static void exynos_irq_eint0_15(struct irq_desc *desc)
423{ 423{
424 struct exynos_weint_data *eintd = irq_desc_get_handler_data(desc); 424 struct exynos_weint_data *eintd = irq_desc_get_handler_data(desc);
425 struct samsung_pin_bank *bank = eintd->bank; 425 struct samsung_pin_bank *bank = eintd->bank;
@@ -451,7 +451,7 @@ static inline void exynos_irq_demux_eint(unsigned long pend,
451} 451}
452 452
453/* interrupt handler for wakeup interrupt 16 */ 453/* interrupt handler for wakeup interrupt 16 */
454static void exynos_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc) 454static void exynos_irq_demux_eint16_31(struct irq_desc *desc)
455{ 455{
456 struct irq_chip *chip = irq_desc_get_chip(desc); 456 struct irq_chip *chip = irq_desc_get_chip(desc);
457 struct exynos_muxed_weint_data *eintd = irq_desc_get_handler_data(desc); 457 struct exynos_muxed_weint_data *eintd = irq_desc_get_handler_data(desc);
diff --git a/drivers/pinctrl/samsung/pinctrl-s3c24xx.c b/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
index 019844d479bb..b3cd9ae3f4a2 100644
--- a/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
+++ b/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
@@ -240,7 +240,7 @@ static struct irq_chip s3c2410_eint0_3_chip = {
240 .irq_set_type = s3c24xx_eint_type, 240 .irq_set_type = s3c24xx_eint_type,
241}; 241};
242 242
243static void s3c2410_demux_eint0_3(unsigned int irq, struct irq_desc *desc) 243static void s3c2410_demux_eint0_3(struct irq_desc *desc)
244{ 244{
245 struct irq_data *data = irq_desc_get_irq_data(desc); 245 struct irq_data *data = irq_desc_get_irq_data(desc);
246 struct s3c24xx_eint_data *eint_data = irq_desc_get_handler_data(desc); 246 struct s3c24xx_eint_data *eint_data = irq_desc_get_handler_data(desc);
@@ -295,7 +295,7 @@ static struct irq_chip s3c2412_eint0_3_chip = {
295 .irq_set_type = s3c24xx_eint_type, 295 .irq_set_type = s3c24xx_eint_type,
296}; 296};
297 297
298static void s3c2412_demux_eint0_3(unsigned int irq, struct irq_desc *desc) 298static void s3c2412_demux_eint0_3(struct irq_desc *desc)
299{ 299{
300 struct s3c24xx_eint_data *eint_data = irq_desc_get_handler_data(desc); 300 struct s3c24xx_eint_data *eint_data = irq_desc_get_handler_data(desc);
301 struct irq_data *data = irq_desc_get_irq_data(desc); 301 struct irq_data *data = irq_desc_get_irq_data(desc);
@@ -388,12 +388,12 @@ static inline void s3c24xx_demux_eint(struct irq_desc *desc,
388 chained_irq_exit(chip, desc); 388 chained_irq_exit(chip, desc);
389} 389}
390 390
391static void s3c24xx_demux_eint4_7(unsigned int irq, struct irq_desc *desc) 391static void s3c24xx_demux_eint4_7(struct irq_desc *desc)
392{ 392{
393 s3c24xx_demux_eint(desc, 0, 0xf0); 393 s3c24xx_demux_eint(desc, 0, 0xf0);
394} 394}
395 395
396static void s3c24xx_demux_eint8_23(unsigned int irq, struct irq_desc *desc) 396static void s3c24xx_demux_eint8_23(struct irq_desc *desc)
397{ 397{
398 s3c24xx_demux_eint(desc, 8, 0xffff00); 398 s3c24xx_demux_eint(desc, 8, 0xffff00);
399} 399}
diff --git a/drivers/pinctrl/samsung/pinctrl-s3c64xx.c b/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
index f5ea40a69711..43407ab248f5 100644
--- a/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
+++ b/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
@@ -407,7 +407,7 @@ static const struct irq_domain_ops s3c64xx_gpio_irqd_ops = {
407 .xlate = irq_domain_xlate_twocell, 407 .xlate = irq_domain_xlate_twocell,
408}; 408};
409 409
410static void s3c64xx_eint_gpio_irq(unsigned int irq, struct irq_desc *desc) 410static void s3c64xx_eint_gpio_irq(struct irq_desc *desc)
411{ 411{
412 struct irq_chip *chip = irq_desc_get_chip(desc); 412 struct irq_chip *chip = irq_desc_get_chip(desc);
413 struct s3c64xx_eint_gpio_data *data = irq_desc_get_handler_data(desc); 413 struct s3c64xx_eint_gpio_data *data = irq_desc_get_handler_data(desc);
@@ -631,22 +631,22 @@ static inline void s3c64xx_irq_demux_eint(struct irq_desc *desc, u32 range)
631 chained_irq_exit(chip, desc); 631 chained_irq_exit(chip, desc);
632} 632}
633 633
634static void s3c64xx_demux_eint0_3(unsigned int irq, struct irq_desc *desc) 634static void s3c64xx_demux_eint0_3(struct irq_desc *desc)
635{ 635{
636 s3c64xx_irq_demux_eint(desc, 0xf); 636 s3c64xx_irq_demux_eint(desc, 0xf);
637} 637}
638 638
639static void s3c64xx_demux_eint4_11(unsigned int irq, struct irq_desc *desc) 639static void s3c64xx_demux_eint4_11(struct irq_desc *desc)
640{ 640{
641 s3c64xx_irq_demux_eint(desc, 0xff0); 641 s3c64xx_irq_demux_eint(desc, 0xff0);
642} 642}
643 643
644static void s3c64xx_demux_eint12_19(unsigned int irq, struct irq_desc *desc) 644static void s3c64xx_demux_eint12_19(struct irq_desc *desc)
645{ 645{
646 s3c64xx_irq_demux_eint(desc, 0xff000); 646 s3c64xx_irq_demux_eint(desc, 0xff000);
647} 647}
648 648
649static void s3c64xx_demux_eint20_27(unsigned int irq, struct irq_desc *desc) 649static void s3c64xx_demux_eint20_27(struct irq_desc *desc)
650{ 650{
651 s3c64xx_irq_demux_eint(desc, 0xff00000); 651 s3c64xx_irq_demux_eint(desc, 0xff00000);
652} 652}
diff --git a/drivers/pinctrl/sirf/pinctrl-atlas7.c b/drivers/pinctrl/sirf/pinctrl-atlas7.c
index 9df0c5f25824..0d24d9e4b70c 100644
--- a/drivers/pinctrl/sirf/pinctrl-atlas7.c
+++ b/drivers/pinctrl/sirf/pinctrl-atlas7.c
@@ -4489,7 +4489,7 @@ static struct irq_chip atlas7_gpio_irq_chip = {
4489 .irq_set_type = atlas7_gpio_irq_type, 4489 .irq_set_type = atlas7_gpio_irq_type,
4490}; 4490};
4491 4491
4492static void atlas7_gpio_handle_irq(unsigned int __irq, struct irq_desc *desc) 4492static void atlas7_gpio_handle_irq(struct irq_desc *desc)
4493{ 4493{
4494 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 4494 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
4495 struct atlas7_gpio_chip *a7gc = to_atlas7_gpio(gc); 4495 struct atlas7_gpio_chip *a7gc = to_atlas7_gpio(gc);
@@ -4512,7 +4512,7 @@ static void atlas7_gpio_handle_irq(unsigned int __irq, struct irq_desc *desc)
4512 if (!status) { 4512 if (!status) {
4513 pr_warn("%s: gpio [%s] status %#x no interrupt is flaged\n", 4513 pr_warn("%s: gpio [%s] status %#x no interrupt is flaged\n",
4514 __func__, gc->label, status); 4514 __func__, gc->label, status);
4515 handle_bad_irq(irq, desc); 4515 handle_bad_irq(desc);
4516 return; 4516 return;
4517 } 4517 }
4518 4518
diff --git a/drivers/pinctrl/sirf/pinctrl-sirf.c b/drivers/pinctrl/sirf/pinctrl-sirf.c
index f8bd9fb52033..2a8d69725de8 100644
--- a/drivers/pinctrl/sirf/pinctrl-sirf.c
+++ b/drivers/pinctrl/sirf/pinctrl-sirf.c
@@ -545,7 +545,7 @@ static struct irq_chip sirfsoc_irq_chip = {
545 .irq_set_type = sirfsoc_gpio_irq_type, 545 .irq_set_type = sirfsoc_gpio_irq_type,
546}; 546};
547 547
548static void sirfsoc_gpio_handle_irq(unsigned int __irq, struct irq_desc *desc) 548static void sirfsoc_gpio_handle_irq(struct irq_desc *desc)
549{ 549{
550 unsigned int irq = irq_desc_get_irq(desc); 550 unsigned int irq = irq_desc_get_irq(desc);
551 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 551 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
@@ -570,7 +570,7 @@ static void sirfsoc_gpio_handle_irq(unsigned int __irq, struct irq_desc *desc)
570 printk(KERN_WARNING 570 printk(KERN_WARNING
571 "%s: gpio id %d status %#x no interrupt is flagged\n", 571 "%s: gpio id %d status %#x no interrupt is flagged\n",
572 __func__, bank->id, status); 572 __func__, bank->id, status);
573 handle_bad_irq(irq, desc); 573 handle_bad_irq(desc);
574 return; 574 return;
575 } 575 }
576 576
diff --git a/drivers/pinctrl/spear/pinctrl-plgpio.c b/drivers/pinctrl/spear/pinctrl-plgpio.c
index ae8f29fb5536..1f0af250dbb5 100644
--- a/drivers/pinctrl/spear/pinctrl-plgpio.c
+++ b/drivers/pinctrl/spear/pinctrl-plgpio.c
@@ -356,7 +356,7 @@ static struct irq_chip plgpio_irqchip = {
356 .irq_set_type = plgpio_irq_set_type, 356 .irq_set_type = plgpio_irq_set_type,
357}; 357};
358 358
359static void plgpio_irq_handler(unsigned irq, struct irq_desc *desc) 359static void plgpio_irq_handler(struct irq_desc *desc)
360{ 360{
361 struct gpio_chip *gc = irq_desc_get_handler_data(desc); 361 struct gpio_chip *gc = irq_desc_get_handler_data(desc);
362 struct plgpio *plgpio = container_of(gc, struct plgpio, chip); 362 struct plgpio *plgpio = container_of(gc, struct plgpio, chip);
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index 31af97d89272..38e0c7bdd2ac 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -740,7 +740,7 @@ static struct irq_domain_ops sunxi_pinctrl_irq_domain_ops = {
740 .xlate = sunxi_pinctrl_irq_of_xlate, 740 .xlate = sunxi_pinctrl_irq_of_xlate,
741}; 741};
742 742
743static void sunxi_pinctrl_irq_handler(unsigned __irq, struct irq_desc *desc) 743static void sunxi_pinctrl_irq_handler(struct irq_desc *desc)
744{ 744{
745 unsigned int irq = irq_desc_get_irq(desc); 745 unsigned int irq = irq_desc_get_irq(desc);
746 struct irq_chip *chip = irq_desc_get_chip(desc); 746 struct irq_chip *chip = irq_desc_get_chip(desc);
diff --git a/drivers/sh/intc/core.c b/drivers/sh/intc/core.c
index 043419dcee92..8e72bcbd3d6d 100644
--- a/drivers/sh/intc/core.c
+++ b/drivers/sh/intc/core.c
@@ -65,7 +65,7 @@ void intc_set_prio_level(unsigned int irq, unsigned int level)
65 raw_spin_unlock_irqrestore(&intc_big_lock, flags); 65 raw_spin_unlock_irqrestore(&intc_big_lock, flags);
66} 66}
67 67
68static void intc_redirect_irq(unsigned int irq, struct irq_desc *desc) 68static void intc_redirect_irq(struct irq_desc *desc)
69{ 69{
70 generic_handle_irq((unsigned int)irq_desc_get_handler_data(desc)); 70 generic_handle_irq((unsigned int)irq_desc_get_handler_data(desc));
71} 71}
diff --git a/drivers/sh/intc/virq.c b/drivers/sh/intc/virq.c
index bafc51c6f0ba..e7899624aa0b 100644
--- a/drivers/sh/intc/virq.c
+++ b/drivers/sh/intc/virq.c
@@ -109,7 +109,7 @@ static int add_virq_to_pirq(unsigned int irq, unsigned int virq)
109 return 0; 109 return 0;
110} 110}
111 111
112static void intc_virq_handler(unsigned int __irq, struct irq_desc *desc) 112static void intc_virq_handler(struct irq_desc *desc)
113{ 113{
114 unsigned int irq = irq_desc_get_irq(desc); 114 unsigned int irq = irq_desc_get_irq(desc);
115 struct irq_data *data = irq_desc_get_irq_data(desc); 115 struct irq_data *data = irq_desc_get_irq_data(desc);
@@ -127,7 +127,7 @@ static void intc_virq_handler(unsigned int __irq, struct irq_desc *desc)
127 handle = (unsigned long)irq_desc_get_handler_data(vdesc); 127 handle = (unsigned long)irq_desc_get_handler_data(vdesc);
128 addr = INTC_REG(d, _INTC_ADDR_E(handle), 0); 128 addr = INTC_REG(d, _INTC_ADDR_E(handle), 0);
129 if (intc_reg_fns[_INTC_FN(handle)](addr, handle, 0)) 129 if (intc_reg_fns[_INTC_FN(handle)](addr, handle, 0))
130 generic_handle_irq_desc(entry->irq, vdesc); 130 generic_handle_irq_desc(vdesc);
131 } 131 }
132 } 132 }
133 133
diff --git a/drivers/soc/dove/pmu.c b/drivers/soc/dove/pmu.c
index 6bc13f99489a..052aecf29893 100644
--- a/drivers/soc/dove/pmu.c
+++ b/drivers/soc/dove/pmu.c
@@ -222,7 +222,7 @@ static void __pmu_domain_register(struct pmu_domain *domain,
222} 222}
223 223
224/* PMU IRQ controller */ 224/* PMU IRQ controller */
225static void pmu_irq_handler(unsigned int irq, struct irq_desc *desc) 225static void pmu_irq_handler(struct irq_desc *desc)
226{ 226{
227 struct pmu_data *pmu = irq_desc_get_handler_data(desc); 227 struct pmu_data *pmu = irq_desc_get_handler_data(desc);
228 struct irq_chip_generic *gc = pmu->irq_gc; 228 struct irq_chip_generic *gc = pmu->irq_gc;
@@ -232,7 +232,7 @@ static void pmu_irq_handler(unsigned int irq, struct irq_desc *desc)
232 u32 done = ~0; 232 u32 done = ~0;
233 233
234 if (stat == 0) { 234 if (stat == 0) {
235 handle_bad_irq(irq_desc_get_irq(desc), desc); 235 handle_bad_irq(desc);
236 return; 236 return;
237 } 237 }
238 238
diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c
index bdfb3c84c3cb..4a3cf9ba152f 100644
--- a/drivers/spmi/spmi-pmic-arb.c
+++ b/drivers/spmi/spmi-pmic-arb.c
@@ -451,7 +451,7 @@ static void periph_interrupt(struct spmi_pmic_arb_dev *pa, u8 apid)
451 } 451 }
452} 452}
453 453
454static void pmic_arb_chained_irq(unsigned int irq, struct irq_desc *desc) 454static void pmic_arb_chained_irq(struct irq_desc *desc)
455{ 455{
456 struct spmi_pmic_arb_dev *pa = irq_desc_get_handler_data(desc); 456 struct spmi_pmic_arb_dev *pa = irq_desc_get_handler_data(desc);
457 struct irq_chip *chip = irq_desc_get_chip(desc); 457 struct irq_chip *chip = irq_desc_get_chip(desc);
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 4913c32db942..11bf09288ddb 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -475,14 +475,14 @@ static inline int irq_set_parent(int irq, int parent_irq)
475 * Built-in IRQ handlers for various IRQ types, 475 * Built-in IRQ handlers for various IRQ types,
476 * callable via desc->handle_irq() 476 * callable via desc->handle_irq()
477 */ 477 */
478extern void handle_level_irq(unsigned int irq, struct irq_desc *desc); 478extern void handle_level_irq(struct irq_desc *desc);
479extern void handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc); 479extern void handle_fasteoi_irq(struct irq_desc *desc);
480extern void handle_edge_irq(unsigned int irq, struct irq_desc *desc); 480extern void handle_edge_irq(struct irq_desc *desc);
481extern void handle_edge_eoi_irq(unsigned int irq, struct irq_desc *desc); 481extern void handle_edge_eoi_irq(struct irq_desc *desc);
482extern void handle_simple_irq(unsigned int irq, struct irq_desc *desc); 482extern void handle_simple_irq(struct irq_desc *desc);
483extern void handle_percpu_irq(unsigned int irq, struct irq_desc *desc); 483extern void handle_percpu_irq(struct irq_desc *desc);
484extern void handle_percpu_devid_irq(unsigned int irq, struct irq_desc *desc); 484extern void handle_percpu_devid_irq(struct irq_desc *desc);
485extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc); 485extern void handle_bad_irq(struct irq_desc *desc);
486extern void handle_nested_irq(unsigned int irq); 486extern void handle_nested_irq(unsigned int irq);
487 487
488extern int irq_chip_compose_msi_msg(struct irq_data *data, struct msi_msg *msg); 488extern int irq_chip_compose_msi_msg(struct irq_data *data, struct msi_msg *msg);
diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
index fbb4d5afc32b..a587a33363c7 100644
--- a/include/linux/irqdesc.h
+++ b/include/linux/irqdesc.h
@@ -135,9 +135,9 @@ static inline struct msi_desc *irq_desc_get_msi_desc(struct irq_desc *desc)
135 * Architectures call this to let the generic IRQ layer 135 * Architectures call this to let the generic IRQ layer
136 * handle an interrupt. 136 * handle an interrupt.
137 */ 137 */
138static inline void generic_handle_irq_desc(unsigned int irq, struct irq_desc *desc) 138static inline void generic_handle_irq_desc(struct irq_desc *desc)
139{ 139{
140 desc->handle_irq(irq, desc); 140 desc->handle_irq(desc);
141} 141}
142 142
143int generic_handle_irq(unsigned int irq); 143int generic_handle_irq(unsigned int irq);
diff --git a/include/linux/irqhandler.h b/include/linux/irqhandler.h
index 62d543004197..661bed0ed1f3 100644
--- a/include/linux/irqhandler.h
+++ b/include/linux/irqhandler.h
@@ -8,7 +8,7 @@
8 8
9struct irq_desc; 9struct irq_desc;
10struct irq_data; 10struct irq_data;
11typedef void (*irq_flow_handler_t)(unsigned int irq, struct irq_desc *desc); 11typedef void (*irq_flow_handler_t)(struct irq_desc *desc);
12typedef void (*irq_preflow_handler_t)(struct irq_data *data); 12typedef void (*irq_preflow_handler_t)(struct irq_data *data);
13 13
14#endif 14#endif
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 8c55d545558f..e28169dd1c36 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -372,7 +372,6 @@ static bool irq_may_run(struct irq_desc *desc)
372 372
373/** 373/**
374 * handle_simple_irq - Simple and software-decoded IRQs. 374 * handle_simple_irq - Simple and software-decoded IRQs.
375 * @irq: the interrupt number
376 * @desc: the interrupt description structure for this irq 375 * @desc: the interrupt description structure for this irq
377 * 376 *
378 * Simple interrupts are either sent from a demultiplexing interrupt 377 * Simple interrupts are either sent from a demultiplexing interrupt
@@ -382,8 +381,7 @@ static bool irq_may_run(struct irq_desc *desc)
382 * Note: The caller is expected to handle the ack, clear, mask and 381 * Note: The caller is expected to handle the ack, clear, mask and
383 * unmask issues if necessary. 382 * unmask issues if necessary.
384 */ 383 */
385void 384void handle_simple_irq(struct irq_desc *desc)
386handle_simple_irq(unsigned int irq, struct irq_desc *desc)
387{ 385{
388 raw_spin_lock(&desc->lock); 386 raw_spin_lock(&desc->lock);
389 387
@@ -425,7 +423,6 @@ static void cond_unmask_irq(struct irq_desc *desc)
425 423
426/** 424/**
427 * handle_level_irq - Level type irq handler 425 * handle_level_irq - Level type irq handler
428 * @irq: the interrupt number
429 * @desc: the interrupt description structure for this irq 426 * @desc: the interrupt description structure for this irq
430 * 427 *
431 * Level type interrupts are active as long as the hardware line has 428 * Level type interrupts are active as long as the hardware line has
@@ -433,8 +430,7 @@ static void cond_unmask_irq(struct irq_desc *desc)
433 * it after the associated handler has acknowledged the device, so the 430 * it after the associated handler has acknowledged the device, so the
434 * interrupt line is back to inactive. 431 * interrupt line is back to inactive.
435 */ 432 */
436void 433void handle_level_irq(struct irq_desc *desc)
437handle_level_irq(unsigned int irq, struct irq_desc *desc)
438{ 434{
439 raw_spin_lock(&desc->lock); 435 raw_spin_lock(&desc->lock);
440 mask_ack_irq(desc); 436 mask_ack_irq(desc);
@@ -496,7 +492,6 @@ static void cond_unmask_eoi_irq(struct irq_desc *desc, struct irq_chip *chip)
496 492
497/** 493/**
498 * handle_fasteoi_irq - irq handler for transparent controllers 494 * handle_fasteoi_irq - irq handler for transparent controllers
499 * @irq: the interrupt number
500 * @desc: the interrupt description structure for this irq 495 * @desc: the interrupt description structure for this irq
501 * 496 *
502 * Only a single callback will be issued to the chip: an ->eoi() 497 * Only a single callback will be issued to the chip: an ->eoi()
@@ -504,8 +499,7 @@ static void cond_unmask_eoi_irq(struct irq_desc *desc, struct irq_chip *chip)
504 * for modern forms of interrupt handlers, which handle the flow 499 * for modern forms of interrupt handlers, which handle the flow
505 * details in hardware, transparently. 500 * details in hardware, transparently.
506 */ 501 */
507void 502void handle_fasteoi_irq(struct irq_desc *desc)
508handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc)
509{ 503{
510 struct irq_chip *chip = desc->irq_data.chip; 504 struct irq_chip *chip = desc->irq_data.chip;
511 505
@@ -546,7 +540,6 @@ EXPORT_SYMBOL_GPL(handle_fasteoi_irq);
546 540
547/** 541/**
548 * handle_edge_irq - edge type IRQ handler 542 * handle_edge_irq - edge type IRQ handler
549 * @irq: the interrupt number
550 * @desc: the interrupt description structure for this irq 543 * @desc: the interrupt description structure for this irq
551 * 544 *
552 * Interrupt occures on the falling and/or rising edge of a hardware 545 * Interrupt occures on the falling and/or rising edge of a hardware
@@ -560,8 +553,7 @@ EXPORT_SYMBOL_GPL(handle_fasteoi_irq);
560 * the handler was running. If all pending interrupts are handled, the 553 * the handler was running. If all pending interrupts are handled, the
561 * loop is left. 554 * loop is left.
562 */ 555 */
563void 556void handle_edge_irq(struct irq_desc *desc)
564handle_edge_irq(unsigned int irq, struct irq_desc *desc)
565{ 557{
566 raw_spin_lock(&desc->lock); 558 raw_spin_lock(&desc->lock);
567 559
@@ -618,13 +610,12 @@ EXPORT_SYMBOL(handle_edge_irq);
618#ifdef CONFIG_IRQ_EDGE_EOI_HANDLER 610#ifdef CONFIG_IRQ_EDGE_EOI_HANDLER
619/** 611/**
620 * handle_edge_eoi_irq - edge eoi type IRQ handler 612 * handle_edge_eoi_irq - edge eoi type IRQ handler
621 * @irq: the interrupt number
622 * @desc: the interrupt description structure for this irq 613 * @desc: the interrupt description structure for this irq
623 * 614 *
624 * Similar as the above handle_edge_irq, but using eoi and w/o the 615 * Similar as the above handle_edge_irq, but using eoi and w/o the
625 * mask/unmask logic. 616 * mask/unmask logic.
626 */ 617 */
627void handle_edge_eoi_irq(unsigned int irq, struct irq_desc *desc) 618void handle_edge_eoi_irq(struct irq_desc *desc)
628{ 619{
629 struct irq_chip *chip = irq_desc_get_chip(desc); 620 struct irq_chip *chip = irq_desc_get_chip(desc);
630 621
@@ -665,13 +656,11 @@ out_eoi:
665 656
666/** 657/**
667 * handle_percpu_irq - Per CPU local irq handler 658 * handle_percpu_irq - Per CPU local irq handler
668 * @irq: the interrupt number
669 * @desc: the interrupt description structure for this irq 659 * @desc: the interrupt description structure for this irq
670 * 660 *
671 * Per CPU interrupts on SMP machines without locking requirements 661 * Per CPU interrupts on SMP machines without locking requirements
672 */ 662 */
673void 663void handle_percpu_irq(struct irq_desc *desc)
674handle_percpu_irq(unsigned int irq, struct irq_desc *desc)
675{ 664{
676 struct irq_chip *chip = irq_desc_get_chip(desc); 665 struct irq_chip *chip = irq_desc_get_chip(desc);
677 666
@@ -688,7 +677,6 @@ handle_percpu_irq(unsigned int irq, struct irq_desc *desc)
688 677
689/** 678/**
690 * handle_percpu_devid_irq - Per CPU local irq handler with per cpu dev ids 679 * handle_percpu_devid_irq - Per CPU local irq handler with per cpu dev ids
691 * @irq: the interrupt number
692 * @desc: the interrupt description structure for this irq 680 * @desc: the interrupt description structure for this irq
693 * 681 *
694 * Per CPU interrupts on SMP machines without locking requirements. Same as 682 * Per CPU interrupts on SMP machines without locking requirements. Same as
@@ -698,11 +686,12 @@ handle_percpu_irq(unsigned int irq, struct irq_desc *desc)
698 * contain the real device id for the cpu on which this handler is 686 * contain the real device id for the cpu on which this handler is
699 * called 687 * called
700 */ 688 */
701void handle_percpu_devid_irq(unsigned int irq, struct irq_desc *desc) 689void handle_percpu_devid_irq(struct irq_desc *desc)
702{ 690{
703 struct irq_chip *chip = irq_desc_get_chip(desc); 691 struct irq_chip *chip = irq_desc_get_chip(desc);
704 struct irqaction *action = desc->action; 692 struct irqaction *action = desc->action;
705 void *dev_id = raw_cpu_ptr(action->percpu_dev_id); 693 void *dev_id = raw_cpu_ptr(action->percpu_dev_id);
694 unsigned int irq = irq_desc_get_irq(desc);
706 irqreturn_t res; 695 irqreturn_t res;
707 696
708 kstat_incr_irqs_this_cpu(desc); 697 kstat_incr_irqs_this_cpu(desc);
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
index b6eeea8a80c5..de41a68fc038 100644
--- a/kernel/irq/handle.c
+++ b/kernel/irq/handle.c
@@ -27,8 +27,10 @@
27 * 27 *
28 * Handles spurious and unhandled IRQ's. It also prints a debugmessage. 28 * Handles spurious and unhandled IRQ's. It also prints a debugmessage.
29 */ 29 */
30void handle_bad_irq(unsigned int irq, struct irq_desc *desc) 30void handle_bad_irq(struct irq_desc *desc)
31{ 31{
32 unsigned int irq = irq_desc_get_irq(desc);
33
32 print_irq_desc(irq, desc); 34 print_irq_desc(irq, desc);
33 kstat_incr_irqs_this_cpu(desc); 35 kstat_incr_irqs_this_cpu(desc);
34 ack_bad_irq(irq); 36 ack_bad_irq(irq);
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index 596669436f7a..239e2ae2c947 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -347,7 +347,7 @@ int generic_handle_irq(unsigned int irq)
347 347
348 if (!desc) 348 if (!desc)
349 return -EINVAL; 349 return -EINVAL;
350 generic_handle_irq_desc(irq, desc); 350 generic_handle_irq_desc(desc);
351 return 0; 351 return 0;
352} 352}
353EXPORT_SYMBOL_GPL(generic_handle_irq); 353EXPORT_SYMBOL_GPL(generic_handle_irq);
diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c
index dd95f44f99b2..b86886beee4f 100644
--- a/kernel/irq/resend.c
+++ b/kernel/irq/resend.c
@@ -38,7 +38,7 @@ static void resend_irqs(unsigned long arg)
38 clear_bit(irq, irqs_resend); 38 clear_bit(irq, irqs_resend);
39 desc = irq_to_desc(irq); 39 desc = irq_to_desc(irq);
40 local_irq_disable(); 40 local_irq_disable();
41 desc->handle_irq(irq, desc); 41 desc->handle_irq(desc);
42 local_irq_enable(); 42 local_irq_enable();
43 } 43 }
44} 44}