diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2007-02-22 09:24:10 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 04:54:11 -0400 |
commit | 777a447529ad138f5fceb9c9ad28bab19848f277 (patch) | |
tree | d6fa75027b26d0b2d436cb0f8dc97c72f411b970 /arch/sparc64/kernel/irq.c | |
parent | a58c9f3c1e929c3c323c26dbdafef46373a719d4 (diff) |
[SPARC64]: Unify timer interrupt handler.
Things were scattered all over the place, split between
SMP and non-SMP.
Unify it all so that dyntick support is easier to add.
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 | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index c443db184371..d1bb3b3f2639 100644 --- a/arch/sparc64/kernel/irq.c +++ b/arch/sparc64/kernel/irq.c | |||
@@ -589,32 +589,6 @@ void ack_bad_irq(unsigned int virt_irq) | |||
589 | ino, virt_irq); | 589 | ino, virt_irq); |
590 | } | 590 | } |
591 | 591 | ||
592 | #ifndef CONFIG_SMP | ||
593 | extern irqreturn_t timer_interrupt(int, void *); | ||
594 | |||
595 | void timer_irq(int irq, struct pt_regs *regs) | ||
596 | { | ||
597 | unsigned long clr_mask = 1 << irq; | ||
598 | unsigned long tick_mask = tick_ops->softint_mask; | ||
599 | struct pt_regs *old_regs; | ||
600 | |||
601 | if (get_softint() & tick_mask) { | ||
602 | irq = 0; | ||
603 | clr_mask = tick_mask; | ||
604 | } | ||
605 | clear_softint(clr_mask); | ||
606 | |||
607 | old_regs = set_irq_regs(regs); | ||
608 | irq_enter(); | ||
609 | |||
610 | kstat_this_cpu.irqs[0]++; | ||
611 | timer_interrupt(irq, NULL); | ||
612 | |||
613 | irq_exit(); | ||
614 | set_irq_regs(old_regs); | ||
615 | } | ||
616 | #endif | ||
617 | |||
618 | void handler_irq(int irq, struct pt_regs *regs) | 592 | void handler_irq(int irq, struct pt_regs *regs) |
619 | { | 593 | { |
620 | struct ino_bucket *bucket; | 594 | struct ino_bucket *bucket; |