[POWERPC] Fix interrupt distribution in ppc970
commit7ccb4a662462616f6be5053e26b79580e02f1529
authorMohan Kumar M <mohan@in.ibm.com>
Tue, 12 Jun 2007 14:51:57 +0000 (13 00:51 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 25 Jun 2007 07:03:31 +0000 (25 17:03 +1000)
tree02ca012f01a5e426a17d34f68c70473941f4386a
parent5a26f6bbb767d7ad23311a1e81cfdd2bebefb855
[POWERPC] Fix interrupt distribution in ppc970

In some of the PPC970 based systems, interrupt would be distributed to
offline cpus also even when booted with "maxcpus=1".  So check whether
cpu online map and cpu present map are equal or not.  If they are equal
default_distrib_server is used as interrupt server otherwise boot cpu
(default_server) used as interrupt server.

In addition to this, if an interrupt is assigned to a specific cpu (ie
smp affinity) and if that cpu is not online, the earlier code used to
return the default_distrib_server as interrupt server.  This
introduces an additional parameter to the get_irq function, called
strict_check.  Based on this parameter, if the cpu is not online
either default_distrib_server or -1 is returned.

Signed-off-by: Mohan Kumar M <mohan@in.ibm.com>
Cc: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/pseries/xics.c