aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2013-08-21 17:48:46 +0200
committerSteven Rostedt <rostedt@goodmis.org>2013-09-09 07:26:32 -0400
commit78bb95b21636fef80e27f04ee5ca7ed2ab36eb54 (patch)
treec374000b21858a70b4252fcfa21196a768565b50 /include
parent3092130dd703107d7fbb9510a3c061ffa26a939d (diff)
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. Cc: stable-rt@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Diffstat (limited to 'include')
-rw-r--r--include/linux/interrupt.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 71c2c0bcb2ff..9f67f911b20b 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -255,6 +255,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);
};