]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
microblaze: Save current task directly
authorMichal Simek <monstr@monstr.eu>
Mon, 22 Feb 2010 12:24:43 +0000 (13:24 +0100)
committerMichal Simek <monstr@monstr.eu>
Mon, 22 Feb 2010 12:25:02 +0000 (13:25 +0100)
Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/kernel/entry.S

index f860210e6c4d8ea651ef53653b7f57cf64036b95..2766c3c704132d82b8fd203eb04da094e14f2755 100644 (file)
@@ -423,8 +423,7 @@ C_ENTRY(ret_from_trap):
        lwi     r4, r1, PTO + PT_R4;
 
        swi     r0, r0, PER_CPU(KM);    /* Now officially in user state. */
-       add     r11, r0, CURRENT_TASK;  /* Get current task ptr into r11 */
-       swi     r11, r0, PER_CPU(CURRENT_SAVE); /* save current */
+       swi     CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */
        VM_OFF;
        tophys(r1,r1);
        RESTORE_REGS;
@@ -698,8 +697,7 @@ C_ENTRY(ret_from_exc):
 
 /* Finally, return to user state.  */
 1:     swi     r0, r0, PER_CPU(KM);    /* Now officially in user state. */
-       add     r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */
-       swi     r11, r0, PER_CPU(CURRENT_SAVE); /* save current */
+       swi     CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */
        VM_OFF;
        tophys(r1,r1);
 
@@ -826,8 +824,7 @@ no_intr_resched:
     /* Disable interrupts, we are now committed to the state restore */
        disable_irq
        swi     r0, r0, PER_CPU(KM); /* MS: Now officially in user state. */
-       add     r11, r0, CURRENT_TASK;
-       swi     r11, r0, PER_CPU(CURRENT_SAVE);
+       swi     CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE);
        VM_OFF;
        tophys(r1,r1);
        lwi     r3, r1, PTO + PT_R3; /* MS: restore saved r3, r4 registers */
@@ -976,8 +973,7 @@ dbtrap_call:        rtbd    r11, 0;
 
 /* Finally, return to user state.  */
 1:     swi     r0, r0, PER_CPU(KM);    /* Now officially in user state. */
-       add     r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */
-       swi     r11, r0, PER_CPU(CURRENT_SAVE); /* save current */
+       swi     CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */
        VM_OFF;
        tophys(r1,r1);