]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/powerpc/kernel/head_32.S
Pull extend-notify-die into release branch
[linux-2.6-omap-h63xx.git] / arch / powerpc / kernel / head_32.S
index cd51fe585fcd10b14a7203940867cf3df5b2d6eb..b102e3a2415e1fe339324745e4c3a6df75530a8d 100644 (file)
@@ -207,7 +207,7 @@ turn_on_mmu:
        .globl  __secondary_hold
 __secondary_hold:
        /* tell the master we're here */
-       stw     r3,4(0)
+       stw     r3,__secondary_hold_acknowledge@l(0)
 #ifdef CONFIG_SMP
 100:   lwz     r4,0(0)
        /* wait until we're told to start */
@@ -220,6 +220,13 @@ __secondary_hold:
        b       .
 #endif /* CONFIG_SMP */
 
+       .globl  __secondary_hold_spinloop
+__secondary_hold_spinloop:
+       .long   0
+       .globl  __secondary_hold_acknowledge
+__secondary_hold_acknowledge:
+       .long   -1
+
 /*
  * Exception entry code.  This code runs with address translation
  * turned off, i.e. using physical addresses.
@@ -264,6 +271,9 @@ __secondary_hold:
        li      r10,MSR_KERNEL & ~(MSR_IR|MSR_DR); /* can take exceptions */ \
        MTMSRD(r10);                    /* (except for mach check in rtas) */ \
        stw     r0,GPR0(r11);   \
+       lis     r10,0x7265;             /* put exception frame marker */ \
+       addi    r10,r10,0x6773; \
+       stw     r10,8(r11);     \
        SAVE_4GPRS(3, r11);     \
        SAVE_2GPRS(7, r11)
 
@@ -287,7 +297,7 @@ label:                                              \
 
 #define EXC_XFER_TEMPLATE(n, hdlr, trap, copyee, tfer, ret)    \
        li      r10,trap;                                       \
-       stw     r10,TRAP(r11);                                  \
+       stw     r10,_TRAP(r11);                                 \
        li      r10,MSR_KERNEL;                                 \
        copyee(r10, r9);                                        \
        bl      tfer;                                           \