diff options
author | Michal Simek <monstr@monstr.eu> | 2010-02-22 07:24:43 -0500 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2010-03-11 08:25:54 -0500 |
commit | 8633bebc63ba5752254925f8b49a19102df1a0ff (patch) | |
tree | 3b86a4b83255a33f6a12f00974e440c414c9b284 /arch/microblaze/kernel | |
parent | b1d70c62fff3e8b6224699801c610c244882685a (diff) |
microblaze: Save current task directly
Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/kernel')
-rw-r--r-- | arch/microblaze/kernel/entry.S | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S index 772fe7415f82..cc9885d441d5 100644 --- a/arch/microblaze/kernel/entry.S +++ b/arch/microblaze/kernel/entry.S | |||
@@ -425,8 +425,7 @@ C_ENTRY(ret_from_trap): | |||
425 | lwi r4, r1, PTO + PT_R4; | 425 | lwi r4, r1, PTO + PT_R4; |
426 | 426 | ||
427 | swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ | 427 | swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ |
428 | add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ | 428 | swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */ |
429 | swi r11, r0, PER_CPU(CURRENT_SAVE); /* save current */ | ||
430 | VM_OFF; | 429 | VM_OFF; |
431 | tophys(r1,r1); | 430 | tophys(r1,r1); |
432 | RESTORE_REGS; | 431 | RESTORE_REGS; |
@@ -700,8 +699,7 @@ C_ENTRY(ret_from_exc): | |||
700 | 699 | ||
701 | /* Finally, return to user state. */ | 700 | /* Finally, return to user state. */ |
702 | 1: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ | 701 | 1: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ |
703 | add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ | 702 | swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */ |
704 | swi r11, r0, PER_CPU(CURRENT_SAVE); /* save current */ | ||
705 | VM_OFF; | 703 | VM_OFF; |
706 | tophys(r1,r1); | 704 | tophys(r1,r1); |
707 | 705 | ||
@@ -828,8 +826,7 @@ no_intr_resched: | |||
828 | /* Disable interrupts, we are now committed to the state restore */ | 826 | /* Disable interrupts, we are now committed to the state restore */ |
829 | disable_irq | 827 | disable_irq |
830 | swi r0, r0, PER_CPU(KM); /* MS: Now officially in user state. */ | 828 | swi r0, r0, PER_CPU(KM); /* MS: Now officially in user state. */ |
831 | add r11, r0, CURRENT_TASK; | 829 | swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); |
832 | swi r11, r0, PER_CPU(CURRENT_SAVE); | ||
833 | VM_OFF; | 830 | VM_OFF; |
834 | tophys(r1,r1); | 831 | tophys(r1,r1); |
835 | lwi r3, r1, PTO + PT_R3; /* MS: restore saved r3, r4 registers */ | 832 | lwi r3, r1, PTO + PT_R3; /* MS: restore saved r3, r4 registers */ |
@@ -979,8 +976,7 @@ dbtrap_call: rtbd r11, 0; | |||
979 | 976 | ||
980 | /* Finally, return to user state. */ | 977 | /* Finally, return to user state. */ |
981 | 1: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ | 978 | 1: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ |
982 | add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ | 979 | swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */ |
983 | swi r11, r0, PER_CPU(CURRENT_SAVE); /* save current */ | ||
984 | VM_OFF; | 980 | VM_OFF; |
985 | tophys(r1,r1); | 981 | tophys(r1,r1); |
986 | 982 | ||