diff options
author | David Daney <ddaney@caviumnetworks.com> | 2011-03-25 15:38:50 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-03-27 11:45:59 -0400 |
commit | c2d0c555c22242c3a76e366074c4d83ef9fa3b8c (patch) | |
tree | 7426945b566129163639229fa0a5f420cdce13a8 /include/linux/irq.h | |
parent | b3d422329f2e061d66af4f933ef316e50e5edcac (diff) |
genirq: Split irq_set_affinity() so it can be called with lock held.
The .irq_cpu_online() and .irq_cpu_offline() functions may need to
adjust affinity, but they are called with the descriptor lock held.
Create __irq_set_affinity_locked() which is called with the lock held.
Make irq_set_affinity() just a wrapper that acquires the lock.
[ tglx: Changed the argument to irq_data, added a !desc check and
moved the !irq_set_affinity check where it belongs ]
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Cc: linux-mips@linux-mips.org
Cc: ralf@linux-mips.org
LKML-Reference: <1301081931-11240-4-git-send-email-ddaney@caviumnetworks.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux/irq.h')
-rw-r--r-- | include/linux/irq.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index 76e948fa88f8..a10717e1c1f3 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -382,6 +382,7 @@ extern void remove_irq(unsigned int irq, struct irqaction *act); | |||
382 | 382 | ||
383 | extern void irq_cpu_online(void); | 383 | extern void irq_cpu_online(void); |
384 | extern void irq_cpu_offline(void); | 384 | extern void irq_cpu_offline(void); |
385 | extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *cpumask); | ||
385 | 386 | ||
386 | #ifdef CONFIG_GENERIC_HARDIRQS | 387 | #ifdef CONFIG_GENERIC_HARDIRQS |
387 | 388 | ||