powerpc: Fix boot problem due to AT_BASE_PLATFORM change
authorNathan Lynch <ntl@pobox.com>
Fri, 25 Jul 2008 22:50:30 +0000 (17:50 -0500)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 25 Jul 2008 23:02:43 +0000 (09:02 +1000)
Commit 9115d13453dee22473a1e8cacc90a8d64a9c4bc9 ("powerpc: Enable
AT_BASE_PLATFORM aux vector") broke boot on 32-bit powerpc systems; we
have to use PTRRELOC to initialize powerpc_base_platform this early in
boot.

Bug reported by Jon Smirl.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/cputable.c

index 25a052c16754349c2e5e91ffc4c3b3dac9c7e2bf..25c273c761d19855f2d8861720c24f7cb095bb2f 100644 (file)
@@ -1660,8 +1660,8 @@ struct cpu_spec * __init identify_cpu(unsigned long offset, unsigned int pvr)
                         * Set the base platform string once; assumes
                         * we're called with real pvr first.
                         */
-                       if (powerpc_base_platform == NULL)
-                               powerpc_base_platform = t->platform;
+                       if (*PTRRELOC(&powerpc_base_platform) == NULL)
+                               *PTRRELOC(&powerpc_base_platform) = t->platform;
 
 #if defined(CONFIG_PPC64) || defined(CONFIG_BOOKE)
                        /* ppc64 and booke expect identify_cpu to also call