clocksource: marco: Fix the affinity set for local timer of CPU1
authorZhiwu Song <[email protected]>
Wed, 7 May 2014 06:46:44 +0000 (14:46 +0800)
committerDaniel Lezcano <[email protected]>
Thu, 22 May 2014 16:54:47 +0000 (18:54 +0200)
irqchip will reject the affinity set to CPUs which is not online
yet. but in the CPU1 wakeup stage, OS only sets CPU1 to be online
after local timer is set, so that causes the irq_set_affinity not
work. this patch moves to irq_force_affinity() for the low level
boot stage.

Signed-off-by: Zhiwu Song <[email protected]>
Signed-off-by: Barry Song <[email protected]>
Signed-off-by: Daniel Lezcano <[email protected]>
drivers/clocksource/timer-marco.c

index b52e1c078b9955330dda32f803a26e8fa1527ab7..7f5374dbefd933d41ae5b64333d1cc8d9b52a6ce 100644 (file)
@@ -199,7 +199,7 @@ static int sirfsoc_local_timer_setup(struct clock_event_device *ce)
 
        action->dev_id = ce;
        BUG_ON(setup_irq(ce->irq, action));
-       irq_set_affinity(action->irq, cpumask_of(cpu));
+       irq_force_affinity(action->irq, cpumask_of(cpu));
 
        clockevents_register_device(ce);
        return 0;