aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/kernel/irq_64.c5
-rw-r--r--arch/sparc/kernel/time_64.c6
2 files changed, 5 insertions, 6 deletions
diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c
index 8ba064f08a6f..d0d6a515499a 100644
--- a/arch/sparc/kernel/irq_64.c
+++ b/arch/sparc/kernel/irq_64.c
@@ -252,9 +252,10 @@ struct irq_handler_data {
252#ifdef CONFIG_SMP 252#ifdef CONFIG_SMP
253static int irq_choose_cpu(unsigned int virt_irq) 253static int irq_choose_cpu(unsigned int virt_irq)
254{ 254{
255 cpumask_t mask = irq_desc[virt_irq].affinity; 255 cpumask_t mask;
256 int cpuid; 256 int cpuid;
257 257
258 cpumask_copy(&mask, irq_desc[virt_irq].affinity);
258 if (cpus_equal(mask, CPU_MASK_ALL)) { 259 if (cpus_equal(mask, CPU_MASK_ALL)) {
259 static int irq_rover; 260 static int irq_rover;
260 static DEFINE_SPINLOCK(irq_rover_lock); 261 static DEFINE_SPINLOCK(irq_rover_lock);
@@ -805,7 +806,7 @@ void fixup_irqs(void)
805 !(irq_desc[irq].status & IRQ_PER_CPU)) { 806 !(irq_desc[irq].status & IRQ_PER_CPU)) {
806 if (irq_desc[irq].chip->set_affinity) 807 if (irq_desc[irq].chip->set_affinity)
807 irq_desc[irq].chip->set_affinity(irq, 808 irq_desc[irq].chip->set_affinity(irq,
808 &irq_desc[irq].affinity); 809 irq_desc[irq].affinity);
809 } 810 }
810 spin_unlock_irqrestore(&irq_desc[irq].lock, flags); 811 spin_unlock_irqrestore(&irq_desc[irq].lock, flags);
811 } 812 }
diff --git a/arch/sparc/kernel/time_64.c b/arch/sparc/kernel/time_64.c
index 4ee2e48c4b39..db310aa00183 100644
--- a/arch/sparc/kernel/time_64.c
+++ b/arch/sparc/kernel/time_64.c
@@ -36,10 +36,10 @@
36#include <linux/clocksource.h> 36#include <linux/clocksource.h>
37#include <linux/of_device.h> 37#include <linux/of_device.h>
38#include <linux/platform_device.h> 38#include <linux/platform_device.h>
39#include <linux/irq.h>
40 39
41#include <asm/oplib.h> 40#include <asm/oplib.h>
42#include <asm/timer.h> 41#include <asm/timer.h>
42#include <asm/irq.h>
43#include <asm/io.h> 43#include <asm/io.h>
44#include <asm/prom.h> 44#include <asm/prom.h>
45#include <asm/starfire.h> 45#include <asm/starfire.h>
@@ -724,14 +724,12 @@ void timer_interrupt(int irq, struct pt_regs *regs)
724 unsigned long tick_mask = tick_ops->softint_mask; 724 unsigned long tick_mask = tick_ops->softint_mask;
725 int cpu = smp_processor_id(); 725 int cpu = smp_processor_id();
726 struct clock_event_device *evt = &per_cpu(sparc64_events, cpu); 726 struct clock_event_device *evt = &per_cpu(sparc64_events, cpu);
727 struct irq_desc *desc;
728 727
729 clear_softint(tick_mask); 728 clear_softint(tick_mask);
730 729
731 irq_enter(); 730 irq_enter();
732 731
733 desc = irq_to_desc(0); 732 kstat_incr_irqs_this_cpu(0, irq_to_desc(0));
734 kstat_incr_irqs_this_cpu(0, desc);
735 733
736 if (unlikely(!evt->event_handler)) { 734 if (unlikely(!evt->event_handler)) {
737 printk(KERN_WARNING 735 printk(KERN_WARNING