[PATCH] clocksource: exynos_mct: Set IRQ affinity when the CPU goes online

Tomasz Figa tomasz.figa at gmail.com
Mon Aug 26 19:26:33 EDT 2013


On Monday 26 of August 2013 16:09:41 Stephen Boyd wrote:
> On 08/26, Tomasz Figa wrote:
> > Some variants of Exynos MCT, namely exynos4210-mct at the moment, use
> > normal, shared interrupts for local timers. This means that each
> > interrupt must have correct affinity set to fire only on CPU
> > corresponding to given local timer.
> > 
> > However after recent conversion of clocksource drivers to not use the
> > local timer API for local timer initialization any more, the point of
> > time when local timers get initialized changed and irq_set_affinity()
> > fails because the CPU is not marked as online yet.
> > 
> > This patch fixes this by moving the call to irq_set_affinity() to
> > CPU_ONLINE notification, so the affinity is being set when the CPU
> > goes
> > online.
> > 
> > This fixes a problem with Exynos4210 failing to boot, present since
> > commit> 
> > 	ee98d27df6 ARM: EXYNOS4: Divorce mct from local timer API
> > 
> > due to failing irq_set_affinity().
> > 
> > Signed-off-by: Tomasz Figa <t.figa at samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
> > ---
> 
> Looks good to me if you want to go this route.
> 
> Acked-by: Stephen Boyd <sboyd at codeaurora.org>

Thanks. After some testing this seems to work fine and I don't see any 
reason how the timer could be programmed to fire an interrupt before the 
CPU goes online, so it should be fine.

Anyway, we want this to be fixed for 3.12 for sure and since I don't 
really see any better solution we should take this one.

Best regards,
Tomasz




More information about the linux-arm-kernel mailing list