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 <[email protected]>
---
 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to