Thomas Gleixner
e04268b0ef
genirq: Remove paranoid warnons and bogus fixups
...
Alexander pointed out that the warnons in the regular exit path are
bogus and the thread_mask one actually could be triggered when
__setup_irq() hands out that thread_mask again after __free_irq()
dropped irq_desc->lock.
Thinking more about it, neither IRQTF_RUNTHREAD nor the bit in
thread_mask can be set as this is the regular exit path. We come here
due to:
__free_irq()
remove action from desc
synchronize_irq()
kthread_stop()
So synchronize_irq() makes sure that the thread finished running and
cleaned up both the thread_active count and thread_mask. After that
point nothing can set IRQTF_RUNTHREAD on this action. So the warnons
and the cleanups are pointless.
Reported-by: Alexander Gordeev <agordeev@redhat.com>
Cc: Ido Yariv <ido@wizery.com>
Link: http://lkml.kernel.org/r/20120315190755.GA6732@dhcp-26-207.brq.redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2012-03-16 11:27:28 +01:00
..
2012-01-13 09:32:14 +10:30
2012-02-28 09:52:54 +01:00
2012-03-16 11:27:28 +01:00
2012-02-04 22:23:05 +01:00
2012-03-07 08:21:19 -08:00
2012-01-16 09:41:18 -08:00
2012-01-15 11:26:35 -08:00
2012-01-08 12:19:57 -08:00
2012-01-13 09:32:18 +10:30
2012-01-17 16:41:31 -08:00
2012-01-17 16:16:57 -05:00
2012-01-17 16:17:01 -05:00
2012-01-23 08:44:53 -08:00
2012-01-17 10:19:41 -08:00
2012-01-09 12:59:24 -08:00
2012-01-09 12:59:24 -08:00
2011-10-31 19:30:05 -04:00
2012-01-08 13:10:57 -08:00
2012-01-09 12:59:24 -08:00
2011-11-06 19:44:47 -08:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2012-03-09 17:19:09 +01:00
2012-03-05 15:49:42 -08:00
2011-11-23 09:28:17 -08:00
2011-12-31 11:48:28 -08:00
2011-10-31 09:20:12 -04:00
2011-11-28 08:43:52 -08:00
2012-03-05 15:49:42 -08:00
2011-10-31 09:20:12 -04:00
2011-12-15 14:56:19 +01:00
2011-12-27 11:22:24 +02:00
2012-01-12 20:13:11 -08:00
2011-10-31 09:20:12 -04:00
2011-12-25 23:42:20 +01:00
2012-03-05 15:49:42 -08:00
2011-10-31 09:20:13 -04:00
2011-11-23 09:28:17 -08:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2012-01-06 08:02:58 -08:00
2012-01-14 00:33:03 +01:00
2012-01-15 16:21:07 -08:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2012-01-12 20:13:11 -08:00
2012-02-14 11:02:15 +10:30
2012-01-12 20:13:11 -08:00
2012-02-13 20:45:38 -05:00
2011-12-15 14:56:19 +01:00
2011-10-31 09:20:12 -04:00
2012-03-05 15:49:42 -08:00
2011-10-31 09:20:12 -04:00
2012-01-14 18:36:33 -08:00
2011-10-31 09:20:11 -04:00
2011-12-11 10:31:42 -08:00
2011-12-11 10:31:30 -08:00
2011-12-11 10:33:19 -08:00
2011-12-11 10:32:22 -08:00
2012-01-16 09:44:05 -08:00
2011-12-11 10:33:19 -08:00
2011-12-11 10:31:24 -08:00
2011-12-11 10:32:22 -08:00
2011-12-11 10:32:09 -08:00
2012-02-10 09:04:49 +01:00
2012-01-22 15:08:46 -05:00
2011-10-31 09:20:12 -04:00
2011-12-06 08:16:49 +01:00
2011-12-14 14:54:22 -08:00
2011-12-11 10:33:18 -08:00
2011-10-31 09:20:12 -04:00
2012-01-17 16:16:55 -05:00
2011-10-31 09:20:12 -04:00
2012-01-10 16:30:54 -08:00
2011-10-31 09:20:12 -04:00
2012-03-06 13:33:27 +01:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-11-06 19:44:47 -08:00
2011-10-31 17:30:44 -07:00
2012-01-12 20:13:13 -08:00
2011-12-20 10:25:04 -08:00
2011-12-05 11:37:47 +01:00
2011-10-31 09:20:12 -04:00
2012-01-06 07:53:34 -08:00
2012-01-16 11:35:57 -05:00
2011-12-15 14:56:19 +01:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-10-31 09:20:12 -04:00
2011-11-06 19:44:47 -08:00
2011-10-31 09:20:12 -04:00
2011-12-21 10:07:39 +01:00
2012-01-26 21:28:45 +01:00
2012-01-10 16:30:54 -08:00