diff options
Diffstat (limited to 'arch/sparc64/kernel/irq.c')
-rw-r--r-- | arch/sparc64/kernel/irq.c | 28 |
1 files changed, 1 insertions, 27 deletions
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c index c443db184371..6241e3dbbd57 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; |
@@ -653,7 +627,7 @@ static u64 prom_limit0, prom_limit1; | |||
653 | static void map_prom_timers(void) | 627 | static void map_prom_timers(void) |
654 | { | 628 | { |
655 | struct device_node *dp; | 629 | struct device_node *dp; |
656 | unsigned int *addr; | 630 | const unsigned int *addr; |
657 | 631 | ||
658 | /* PROM timer node hangs out in the top level of device siblings... */ | 632 | /* PROM timer node hangs out in the top level of device siblings... */ |
659 | dp = of_find_node_by_path("/"); | 633 | dp = of_find_node_by_path("/"); |