diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2013-08-21 17:48:46 +0200 |
---|---|---|
committer | Steven Rostedt <rostedt@rostedt.homelinux.com> | 2014-08-26 21:27:10 -0400 |
commit | 25b3e23b992b2c9bfd975586ee5c0d590e9505b6 (patch) | |
tree | bf4f0d20e88948ff2e659ff84cdef3e593b6ce37 /include/linux/interrupt.h | |
parent | 19d41c2a0da27f4e477959165a92f626bbcb4934 (diff) | |
download | linux-rt-25b3e23b992b2c9bfd975586ee5c0d590e9505b6.tar.gz |
genirq: do not invoke the affinity callback via a workqueue
Joe Korty reported, that __irq_set_affinity_locked() schedules a
workqueue while holding a rawlock which results in a might_sleep()
warning.
This patch moves the invokation into a process context so that we only
wakeup() a process while holding the lock.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Diffstat (limited to 'include/linux/interrupt.h')
-rw-r--r-- | include/linux/interrupt.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 019d2dfca7c0..75d23368defc 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -253,6 +253,7 @@ struct irq_affinity_notify { unsigned int irq; struct kref kref; struct work_struct work; + struct list_head list; void (*notify)(struct irq_affinity_notify *, const cpumask_t *mask); void (*release)(struct kref *ref); }; |