Thomas Gleixner
c30e30478c
mfd/asic3: 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: Samuel Ortiz <sameo@linux.intel.com>
Cc: Lee Jones <lee.jones@linaro.org>
2015-06-25 11:56:52 +02:00
..
2014-07-09 16:38:02 +01:00
2015-01-22 15:56:07 +00:00
2014-09-26 08:15:45 +01:00
2014-07-09 16:38:04 +01:00
2014-07-09 16:38:05 +01:00
2014-10-20 16:20:53 +02:00
2014-10-20 16:20:53 +02:00
2015-03-12 09:07:03 +00:00
2014-12-14 16:10:09 -08:00
2015-03-13 23:15:54 +01:00
2015-03-12 09:08:01 +00:00
2015-02-26 10:04:07 +00:00
2015-02-26 10:04:07 +00:00
2015-02-26 10:04:07 +00:00
2014-07-28 11:01:42 +01:00
2015-06-25 11:56:52 +02:00
2014-11-25 16:18:43 +00:00
2015-04-09 10:26:15 +01:00
2014-06-06 12:08:39 -07:00
2014-07-09 16:38:21 +01:00
2014-10-06 21:29:50 +01:00
2015-02-26 15:45:09 -08:00
2015-05-27 13:34:15 +01:00
2014-09-26 08:15:41 +01:00
2015-03-12 09:06:48 +00:00
2015-03-12 09:06:40 +00:00
2014-08-29 09:26:29 +01:00
2015-01-22 16:04:04 +00:00
2015-01-22 16:04:04 +00:00
2015-03-03 16:41:23 +00:00
2015-01-22 15:56:24 +00:00
2015-01-22 15:55:51 +00:00
2015-03-26 14:20:18 +00:00
2014-07-22 13:17:06 +01:00
2014-07-25 15:31:02 +01:00
2015-03-26 14:20:18 +00:00
2014-10-15 06:58:16 +02:00
2014-10-20 16:20:53 +02:00
2015-03-30 08:19:56 +01:00
2015-03-03 16:41:12 +00:00
2015-01-22 15:56:12 +00:00
2015-01-22 15:56:12 +00:00
2014-07-25 15:31:45 +01:00
2014-10-20 16:20:53 +02:00
2015-03-30 10:05:07 +01:00
2015-04-14 17:29:55 -07:00
2015-01-22 15:56:17 +00:00
2014-07-25 15:31:39 +01:00
2015-04-09 10:25:54 +01:00
2015-01-22 15:55:56 +00:00
2015-03-12 09:08:12 +00:00
2014-07-25 15:31:41 +01:00
2014-09-26 08:15:46 +01:00
2014-11-25 16:19:24 +00:00
2015-01-22 16:03:55 +00:00
2015-03-12 09:07:54 +00:00
2015-03-04 08:18:28 +00:00
2015-03-23 11:48:30 +00:00
2015-01-22 16:03:44 +00:00
2015-01-22 16:03:44 +00:00
2014-07-09 14:58:10 +01:00
2014-07-22 13:17:02 +01:00
2014-10-20 16:20:53 +02:00
2015-03-30 10:06:55 +01:00
2014-09-24 13:30:16 +01:00
2015-03-30 08:19:57 +01:00
2015-03-04 08:18:27 +00:00
2015-01-22 16:03:53 +00:00
2014-10-20 16:20:53 +02:00
2014-06-23 12:30:56 +01:00
2015-01-22 15:56:21 +00:00
2014-10-20 16:20:53 +02:00
2015-03-30 08:19:58 +01:00
2015-03-30 10:07:08 +01:00
2015-01-22 15:56:19 +00:00
2015-03-26 14:20:18 +00:00
2014-09-26 08:15:51 +01:00
2015-01-22 15:55:47 +00:00
2015-03-03 16:41:21 +00:00
2015-03-03 16:41:21 +00:00
2015-03-03 16:41:21 +00:00
2015-03-03 16:41:21 +00:00
2015-03-03 16:41:21 +00:00
2015-03-03 16:41:21 +00:00
2015-03-03 16:41:21 +00:00
2015-03-12 09:27:41 +00:00
2015-03-26 14:20:19 +00:00
2015-04-09 10:26:54 +01:00
2014-07-25 15:31:44 +01:00
2015-03-06 23:04:40 +01:00
2015-03-12 09:08:12 +00:00
2014-10-20 16:20:53 +02:00
2015-01-22 15:56:26 +00:00
2014-10-20 16:20:53 +02:00
2014-10-20 16:20:53 +02:00
2014-07-09 16:37:55 +01:00
2014-12-30 16:59:59 -08:00
2014-12-30 16:59:59 -08:00
2015-01-22 15:55:49 +00:00
2014-12-14 16:10:09 -08:00
2014-12-14 16:10:09 -08:00
2015-03-26 14:20:17 +00:00
2014-11-25 16:18:58 +00:00
2014-12-14 16:10:09 -08:00
2015-03-03 16:41:15 +00:00
2014-07-25 15:31:47 +01:00
2015-04-09 10:26:40 +01:00
2014-11-25 16:18:53 +00:00
2015-01-22 16:03:46 +00:00
2015-01-22 16:03:34 +00:00
2014-09-26 08:15:48 +01:00
2014-10-20 16:20:53 +02:00
2014-07-28 08:10:06 +01:00
2014-10-20 16:20:53 +02:00
2014-09-26 08:15:34 +01:00
2015-03-26 14:20:18 +00:00
2014-07-25 15:31:42 +01:00
2015-03-30 12:39:22 +01:00
2015-01-22 16:03:48 +00:00
2015-06-18 14:03:08 +02:00
2015-03-03 16:41:14 +00:00
2014-11-25 16:18:42 +00:00
2015-04-09 10:26:48 +01:00
2014-11-25 16:18:56 +00:00
2014-11-25 16:18:51 +00:00
2014-07-25 15:31:42 +01:00
2014-07-22 13:17:05 +01:00
2015-01-22 15:56:03 +00:00
2014-09-26 08:15:35 +01:00
2014-09-26 08:15:35 +01:00
2014-11-25 16:18:55 +00:00