Since the GIC timer IRQ is a percpu IRQ, we can use percpu_dev_id to pass the IRQ handler the correct clock_event_device. Signed-off-by: Andrew Bresticker <abrestic@xxxxxxxxxxxx> --- drivers/clocksource/mips-gic-timer.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/clocksource/mips-gic-timer.c b/drivers/clocksource/mips-gic-timer.c index 763aa1c..05bdfe1 100644 --- a/drivers/clocksource/mips-gic-timer.c +++ b/drivers/clocksource/mips-gic-timer.c @@ -39,17 +39,16 @@ static void gic_set_clock_mode(enum clock_event_mode mode, static irqreturn_t gic_compare_interrupt(int irq, void *dev_id) { - struct clock_event_device *cd; - int cpu = smp_processor_id(); + struct clock_event_device *cd = dev_id; gic_write_compare(gic_read_compare()); - cd = &per_cpu(gic_clockevent_device, cpu); cd->event_handler(cd); return IRQ_HANDLED; } struct irqaction gic_compare_irqaction = { .handler = gic_compare_interrupt, + .percpu_dev_id = &gic_clockevent_device, .flags = IRQF_PERCPU | IRQF_TIMER, .name = "timer", }; -- 2.1.0.rc2.206.gedb03e5