[PATCH] Fix apparent code overlap in ppc64 head.S
authorDavid Gibson <david@gibson.dropbear.id.au>
Fri, 19 Aug 2005 04:52:32 +0000 (14:52 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 29 Aug 2005 00:53:34 +0000 (10:53 +1000)
An #if/#else construct near the top of ppc64's head.S appears to
create overlapping sections of code for iSeries and pSeries (i.e. one
thing on iSeries and something different in the same place on
pSeries).  In fact, checking the various absolute offsets, it doesn't.
This patch unravels the #ifdefs to make it more obvious what's going
on.  This accomplishes another microstep towards a single kernel image
which can boot both iSeries and pSeries.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/ppc64/kernel/head.S

index 70e1040..1cc9f20 100644 (file)
@@ -93,6 +93,7 @@ END_FTR_SECTION(0, 1)
 
        /* Catch branch to 0 in real mode */
        trap
+
 #ifdef CONFIG_PPC_ISERIES
        /*
         * At offset 0x20, there is a pointer to iSeries LPAR data.
@@ -119,7 +120,7 @@ embedded_sysmap_start:
 embedded_sysmap_end:
        .llong  0
 
-#else /* CONFIG_PPC_ISERIES */
+#endif /* CONFIG_PPC_ISERIES */
 
        /* Secondary processors spin on this value until it goes to 1. */
        .globl  __secondary_hold_spinloop
@@ -169,7 +170,6 @@ _GLOBAL(__secondary_hold)
        BUG_OPCODE
 #endif
 #endif
-#endif
 
 /* This value is used to mark exception frames on the stack. */
        .section ".toc","aw"