]> Pileus Git - ~andy/linux/blobdiff - arch/blackfin/mach-bf561/secondary.S
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback
[~andy/linux] / arch / blackfin / mach-bf561 / secondary.S
index 348c9191d19f490a780b49324c8087d50056d101..01e5408620ac60f39b9d4f7e720caa74b48d4ca0 100644 (file)
@@ -76,37 +76,25 @@ ENTRY(_coreb_trampoline_start)
        SSYNC;
 
        /* in case of double faults, save a few things */
-       p0.l = _init_retx_coreb;
-       p0.h = _init_retx_coreb;
-       R0 = RETX;
-       [P0] = R0;
-
+       p1.l = _initial_pda_coreb;
+       p1.h = _initial_pda_coreb;
+       r4 = RETX;
 #ifdef CONFIG_DEBUG_DOUBLEFAULT
        /* Only save these if we are storing them,
         * This happens here, since L1 gets clobbered
         * below
         */
        GET_PDA(p0, r0);
-       r5 = [p0 + PDA_DF_RETX];
-       p1.l = _init_saved_retx_coreb;
-       p1.h = _init_saved_retx_coreb;
-       [p1] = r5;
-
-       r5 = [p0 + PDA_DF_DCPLB];
-       p1.l = _init_saved_dcplb_fault_addr_coreb;
-       p1.h = _init_saved_dcplb_fault_addr_coreb;
-       [p1] = r5;
-
-       r5 = [p0 + PDA_DF_ICPLB];
-       p1.l = _init_saved_icplb_fault_addr_coreb;
-       p1.h = _init_saved_icplb_fault_addr_coreb;
-       [p1] = r5;
-
-       r5 = [p0 + PDA_DF_SEQSTAT];
-       p1.l = _init_saved_seqstat_coreb;
-       p1.h = _init_saved_seqstat_coreb;
-       [p1] = r5;
+       r0 = [p0 + PDA_DF_RETX];
+       r1 = [p0 + PDA_DF_DCPLB];
+       r2 = [p0 + PDA_DF_ICPLB];
+       r3 = [p0 + PDA_DF_SEQSTAT];
+       [p1 + PDA_INIT_DF_RETX] = r0;
+       [p1 + PDA_INIT_DF_DCPLB] = r1;
+       [p1 + PDA_INIT_DF_ICPLB] = r2;
+       [p1 + PDA_INIT_DF_SEQSTAT] = r3;
 #endif
+       [p1 + PDA_INIT_RETX] = r4;
 
        /* Initialize stack pointer */
        sp.l = lo(INITIAL_STACK);