Commit 6e27d936 authored by Paul Mackerras's avatar Paul Mackerras Committed by Linus Torvalds

[PATCH] ppc64: make UP kernel run on POWER4 logical partition

Recently I tried booting a UP kernel on a 1-processor logical partition on
a POWER4 system.  It failed because the CPU we happened to be running on
was CPU 2, but hard_smp_processor_id() is defined to 0 for !CONFIG_SMP. 
(Note that this code runs quite early, as part of init_IRQ, so
hard_smp_processor_id() should be the physical ID of the boot cpu.)

This patch does a minimal fix to make it work.  I think this patch should
go in 2.6.10.  Ultimately I think the hard_smp_processor_id() definition
should be removed from include/linux/smp.h, but that carries a risk of
breaking other architectures and probably shouldn't be done pre 2.6.10.
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 48b28cc7
...@@ -504,7 +504,7 @@ void xics_init_IRQ(void) ...@@ -504,7 +504,7 @@ void xics_init_IRQ(void)
np; np;
np = of_find_node_by_type(np, "cpu")) { np = of_find_node_by_type(np, "cpu")) {
ireg = (uint *)get_property(np, "reg", &ilen); ireg = (uint *)get_property(np, "reg", &ilen);
if (ireg && ireg[0] == hard_smp_processor_id()) { if (ireg && ireg[0] == boot_cpuid_phys) {
ireg = (uint *)get_property(np, "ibm,ppc-interrupt-gserver#s", ireg = (uint *)get_property(np, "ibm,ppc-interrupt-gserver#s",
&ilen); &ilen);
i = ilen / sizeof(int); i = ilen / sizeof(int);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment