diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-07-16 06:49:40 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-07-16 07:05:32 -0400 |
commit | e0204409df29fe1b7d18f81dfc3ae6f9d90e7a63 (patch) | |
tree | 66f670c0f182d02185f2f3ea6bb7bb97c165ff3b /arch/sparc64/kernel/irq.c | |
parent | f3c681c028846bd5d39f563909409832a295ca69 (diff) |
[SPARC64]: dr-cpu unconfigure support.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/irq.c')
-rw-r--r-- | arch/sparc64/kernel/irq.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index a1c916f35baa..8cb3358674f5 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -803,6 +803,26 @@ void handler_irq(int irq, struct pt_regs *regs) | |||
803 | set_irq_regs(old_regs); | 803 | set_irq_regs(old_regs); |
804 | } | 804 | } |
805 | 805 | ||
806 | #ifdef CONFIG_HOTPLUG_CPU | ||
807 | void fixup_irqs(void) | ||
808 | { | ||
809 | unsigned int irq; | ||
810 | |||
811 | for (irq = 0; irq < NR_IRQS; irq++) { | ||
812 | unsigned long flags; | ||
813 | |||
814 | spin_lock_irqsave(&irq_desc[irq].lock, flags); | ||
815 | if (irq_desc[irq].action && | ||
816 | !(irq_desc[irq].status & IRQ_PER_CPU)) { | ||
817 | if (irq_desc[irq].chip->set_affinity) | ||
818 | irq_desc[irq].chip->set_affinity(irq, | ||
819 | irq_desc[irq].affinity); | ||
820 | } | ||
821 | spin_unlock_irqrestore(&irq_desc[irq].lock, flags); | ||
822 | } | ||
823 | } | ||
824 | #endif | ||
825 | |||
806 | struct sun5_timer { | 826 | struct sun5_timer { |
807 | u64 count0; | 827 | u64 count0; |
808 | u64 limit0; | 828 | u64 limit0; |