linux/arch/avr32/mach-at32ap
Thomas Gleixner bf54da7d3a avr32/at32ap: Fix race in installing chained IRQ handler
Fix a race where a pending interrupt could be received and the handler
called before the handler's data has been setup, by converting to
irq_set_chained_handler_and_data().

Search and conversion was done with coccinelle:

@@
expression E1, E2, E3;
@@
(
-if (irq_set_chained_handler(E1, E3) != 0)
-   BUG();
|
-irq_set_chained_handler(E1, E3);
)
-irq_set_handler_data(E1, E2);
+irq_set_chained_handler_and_data(E1, E3, E2);

@@
expression E1, E2, E3;
@@
(
-if (irq_set_chained_handler(E1, E3) != 0)
-   BUG();
...
|
-irq_set_chained_handler(E1, E3);
...
)
-irq_set_handler_data(E1, E2);
+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: Haavard Skinnemoen <hskinnemoen@gmail.com>
Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
2015-06-25 11:57:52 +02:00
..
include/mach avr32: remove fake at91 cpu identification 2015-02-09 15:27:45 +01:00
at32ap700x.c dmaengine: dw: define DW_DMA_MAX_NR_MASTERS 2015-02-04 22:39:44 -08:00
clock.c avr32: add export.h to arch/avr32 for EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:59 -04:00
clock.h avr32: Hammerhead board support 2009-01-05 15:52:04 +01:00
extint.c avr32/at32ap: Fix race in installing chained IRQ handler 2015-06-25 11:57:52 +02:00
hmatrix.c avr32: Clean up HMATRIX code 2008-08-08 12:44:01 +02:00
hsmc.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
hsmc.h [PATCH] AVR32: Use __raw MMIO access for internal peripherals 2006-10-25 20:26:33 -07:00
intc.c avr32: add export.h to arch/avr32 for EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:59 -04:00
intc.h [PATCH] AVR32: Use __raw MMIO access for internal peripherals 2006-10-25 20:26:33 -07:00
Kconfig [AVR32] Add support for AT32AP7001 and AT32AP7002 2008-01-25 08:31:41 +01:00
Makefile cpufreq: AVR32: move cpufreq driver to drivers/cpufreq 2013-04-10 13:19:25 +02:00
pdc.c avr32: Use platform_driver_probe for pdc platform driver 2008-09-22 09:51:03 +02:00
pio.c avr32: add export.h to arch/avr32 for EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:59 -04:00
pio.h avr32: Fix typo of IFSR in a comment in the PIO header file 2008-07-04 09:48:05 +02:00
pm-at32ap700x.S avr32: Use generic idle loop 2013-04-08 17:39:24 +02:00
pm.c avr32: pm: Fix section mismatch 2013-12-10 08:46:38 +01:00
pm.h avr32: Add MMIO address definitions for certain controllers 2008-08-08 12:42:14 +02:00
sdramc.h avr32: Power Management support ("standby" and "mem" modes) 2008-07-02 11:05:01 +02:00