diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-07-26 16:29:23 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-26 16:29:23 +0200 |
commit | 6dec3a10a7a6093af10cef7ac56021150afd6451 (patch) | |
tree | f4d8511f023e3e0c203baf889d4a0f3925882381 /kernel/irq | |
parent | Merge branch 'x86/header-guards' into x86/core (diff) | |
parent | Merge branch 'linus' into x86/x2apic (diff) | |
download | linux-6dec3a10a7a6093af10cef7ac56021150afd6451.tar.xz linux-6dec3a10a7a6093af10cef7ac56021150afd6451.zip |
Merge branch 'x86/x2apic' into x86/core
Conflicts:
include/asm-x86/i8259.h
include/asm-x86/msidef.h
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/irq')
-rw-r--r-- | kernel/irq/manage.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index f8914b92b664..7d73e008fc3b 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -89,7 +89,14 @@ int irq_set_affinity(unsigned int irq, cpumask_t cpumask) set_balance_irq_affinity(irq, cpumask); #ifdef CONFIG_GENERIC_PENDING_IRQ - set_pending_irq(irq, cpumask); + if (desc->status & IRQ_MOVE_PCNTXT) { + unsigned long flags; + + spin_lock_irqsave(&desc->lock, flags); + desc->chip->set_affinity(irq, cpumask); + spin_unlock_irqrestore(&desc->lock, flags); + } else + set_pending_irq(irq, cpumask); #else desc->affinity = cpumask; desc->chip->set_affinity(irq, cpumask); |