]> 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)
commitbd13acfe6b4ac4587086169e00c153f914b9d5f7
tree3ba104b4cf88a22f1a7e7facdb113a4664192e6d
parent4bcef794c53660c544eaf850f64ba85d4a61e2a9
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 6ab83457452 - "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