summaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-versatile-fpga.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2015-06-21 21:11:00 +0200
committerThomas Gleixner <tglx@linutronix.de>2015-07-11 23:14:26 +0200
commitfcd3c5bee16a2c3c9cd6c4cb8e3e093d458d9f86 (patch)
tree95387e0703348cf2178453b508eca8bc7671ab2b /drivers/irqchip/irq-versatile-fpga.c
parent22890b0dbe233fa460d25762ab6a2f5c90f84d9c (diff)
downloadlinux-stable-fcd3c5bee16a2c3c9cd6c4cb8e3e093d458d9f86.tar.gz
linux-stable-fcd3c5bee16a2c3c9cd6c4cb8e3e093d458d9f86.tar.bz2
linux-stable-fcd3c5bee16a2c3c9cd6c4cb8e3e093d458d9f86.zip
irqchip/versatile: Consolidate chained IRQ handler install/remove
Chained irq handlers usually set up handler data as well. We now have a function to set both under irq_desc->lock. Replace the two calls with one. Search and conversion was done with coccinelle: @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); | -irq_set_handler_data(E1, E2); ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); @@ expression E1, E2, E3; @@ ( -if (irq_set_handler_data(E1, E2) != 0) - BUG(); ... | -irq_set_handler_data(E1, E2); ... ) -irq_set_chained_handler(E1, E3); +irq_set_chained_handler_and_data(E1, E3, E2); Reported-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Julia Lawall <Julia.Lawall@lip6.fr> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Jason Cooper <jason@lakedaemon.net>
Diffstat (limited to 'drivers/irqchip/irq-versatile-fpga.c')
-rw-r--r--drivers/irqchip/irq-versatile-fpga.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/irqchip/irq-versatile-fpga.c b/drivers/irqchip/irq-versatile-fpga.c
index 4ba480b92844..70088bb3fb53 100644
--- a/drivers/irqchip/irq-versatile-fpga.c
+++ b/drivers/irqchip/irq-versatile-fpga.c
@@ -155,8 +155,8 @@ void __init fpga_irq_init(void __iomem *base, const char *name, int irq_start,
f->valid = valid;
if (parent_irq != -1) {
- irq_set_handler_data(parent_irq, f);
- irq_set_chained_handler(parent_irq, fpga_irq_handle);
+ irq_set_chained_handler_and_data(parent_irq, fpga_irq_handle,
+ f);
}
/* This will also allocate irq descriptors */