aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/irq.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-07-16 06:49:40 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-07-16 07:05:32 -0400
commite0204409df29fe1b7d18f81dfc3ae6f9d90e7a63 (patch)
tree66f670c0f182d02185f2f3ea6bb7bb97c165ff3b /arch/sparc64/kernel/irq.c
parentf3c681c028846bd5d39f563909409832a295ca69 (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.c20
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
807void 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
806struct sun5_timer { 826struct sun5_timer {
807 u64 count0; 827 u64 count0;
808 u64 limit0; 828 u64 limit0;