Uwe Kleine-König
3d82475ad4
net: dsa: mv88e6xxx: fix races between lock and irq freeing
...
free_irq() waits until all handlers for this IRQ have completed. As the
relevant handler (mv88e6xxx_g1_irq_thread_fn()) takes the chip's reg_lock
it might never return if the thread calling free_irq() holds this lock.
For the same reason kthread_cancel_delayed_work_sync() in the polling case
must not hold this lock.
Also first free the irq (or stop the worker respectively) such that
mv88e6xxx_g1_irq_thread_work() isn't called any more before the irq
mappings are dropped in mv88e6xxx_g1_irq_free_common() to prevent the
worker thread to call handle_nested_irq(0) which results in a NULL-pointer
exception.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de >
Signed-off-by: David S. Miller <davem@davemloft.net >
2018-07-21 22:42:41 -07:00
..
2018-07-13 10:54:01 -07:00
2018-06-06 13:49:25 -07:00
2018-06-12 16:19:22 -07:00
2018-07-02 13:18:22 -07:00
2018-06-30 21:24:18 +09:00
2018-06-12 16:19:22 -07:00
2018-07-03 16:42:51 +02:00
2018-06-04 10:58:12 -07:00
2018-07-06 19:13:42 -07:00
2018-06-17 08:38:55 +09:00
2018-07-02 04:24:44 -07:00
2018-06-12 16:19:22 -07:00
2018-07-10 13:50:31 +10:00
2018-06-27 11:01:29 -07:00
2018-07-10 22:12:47 +02:00
2018-06-06 18:39:49 -07:00
2018-06-24 23:00:36 +02:00
2018-06-07 10:23:33 -07:00
2018-06-24 06:31:54 +08:00
2018-07-13 10:54:01 -07:00
2018-06-12 16:19:22 -07:00
2018-06-28 11:57:21 +05:30
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-22 10:58:27 +02:00
2018-06-12 16:19:22 -07:00
2018-07-07 16:55:22 +02:00
2018-06-12 16:19:22 -07:00
2018-07-16 10:32:28 +10:00
2018-07-09 17:16:11 -07:00
2018-06-12 16:19:22 -07:00
2018-06-16 16:40:36 -07:00
2018-06-11 12:09:19 -07:00
2018-06-12 16:19:22 -07:00
2018-07-13 15:34:29 -07:00
2018-06-12 16:19:22 -07:00
2018-06-24 14:50:52 +01:00
2018-07-13 12:42:14 -07:00
2018-06-27 09:16:53 -07:00
2018-07-05 13:32:06 -06:00
2018-06-12 16:19:22 -07:00
2018-06-22 14:22:02 +02:00
2018-06-28 10:40:47 -07:00
2018-06-12 16:19:22 -07:00
2018-06-24 06:33:54 +08:00
2018-06-07 10:23:33 -07:00
2018-06-12 16:19:22 -07:00
2018-07-02 12:40:59 -07:00
2018-06-26 11:28:38 +02:00
2018-06-12 18:28:00 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-14 16:21:46 +09:00
2018-07-07 09:59:35 +02:00
2018-07-09 11:17:47 +02:00
2018-07-03 10:01:44 +02:00
2018-07-21 22:42:41 -07:00
2018-06-25 21:36:45 +08:00
2018-06-12 18:28:00 -07:00
2018-06-05 16:20:22 -07:00
2018-07-13 10:54:01 -07:00
2018-06-28 16:29:54 +02:00
2018-07-07 17:30:25 +02:00
2018-07-16 08:41:32 -06:00
2018-06-19 15:53:32 +05:30
2018-06-12 16:19:22 -07:00
2018-06-04 10:58:12 -07:00
2018-06-15 18:10:01 -03:00
2018-07-08 10:55:21 -07:00
2018-06-12 16:19:22 -07:00
2018-06-18 17:48:42 +01:00
2018-06-06 18:39:49 -07:00
2018-07-14 12:47:04 +02:00
2018-06-15 18:10:01 -03:00
2018-06-07 12:34:37 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-07-18 15:25:25 -07:00
2018-06-14 16:25:43 +09:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-15 07:55:25 +09:00
2018-06-12 18:28:00 -07:00
2018-06-04 12:35:03 -07:00
2018-07-13 10:37:54 +02:00
2018-07-06 09:14:34 -07:00
2018-06-15 18:10:01 -03:00
2018-07-06 19:45:47 -07:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-06-26 10:42:31 -07:00
2018-06-15 18:11:26 -03:00
2018-06-12 16:19:22 -07:00
2018-07-06 17:44:35 +02:00
2018-06-19 21:36:37 -04:00
2018-06-12 18:28:00 -07:00
2018-07-07 17:29:17 +02:00
2018-06-28 21:34:39 +09:00
2018-07-07 16:57:35 +02:00
2018-07-06 17:21:34 +02:00
2018-06-12 16:19:22 -07:00
2018-06-30 13:58:09 -06:00
2018-06-23 10:23:49 +09:00
2018-06-17 05:25:18 +09:00
2018-06-12 16:19:22 -07:00
2018-06-16 06:35:02 +09:00
2018-06-05 16:20:22 -07:00
2018-06-12 12:56:02 -07:00
2018-06-23 20:44:11 +08:00
2018-06-06 17:27:14 -07:00