]> git.baikalelectronics.ru Git - kernel.git/commit
ARM: GIC: fix GIC cpumask initialization
authorRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 30 Jan 2013 23:49:57 +0000 (23:49 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 8 Feb 2013 10:17:22 +0000 (10:17 +0000)
commit6b6dfb9b69137db8e3cc1b6e90ac74968d5f88af
tree3ba104b4cf88a22f1a7e7facdb113a4664192e6d
parent770407bf7f28b6a32c409067a0c6f94c462ff018
ARM: GIC: fix GIC cpumask initialization

Punit Agrawal reports:
> I was trying to boot 3.8-rc5 on Realview EB 11MPCore using
> realview-smp_defconfig as a starting point but the kernel failed to
> progress past the log below (config attached).
>
> Pawel suggested I try reverting 3b0e3ab3d22 - "ARM: gic: use a private
> mapping for CPU target interfaces" that you've authored. With this
> commit reverted the kernel boots.
>
> I am not quite sure why the commit breaks 11MPCore but Pawel (cc'd)
> might be able to shed light on that.

Some early GIC implementations return zero for the first distributor
CPU routing register.  This means we can't rely on that telling us
which CPU interface we're connected to.  We know that these platforms
implement PPIs for IRQs 29-31 - but we shouldn't assume that these
will always be populated.

So, instead, scan for a non-zero CPU routing register in the first
32 IRQs and use that as our CPU mask.

Reported-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/common/gic.c