diff options
author | Michal Simek <michal.simek@xilinx.com> | 2016-02-24 05:31:14 -0500 |
---|---|---|
committer | Michal Simek <michal.simek@xilinx.com> | 2017-06-22 09:36:59 -0400 |
commit | faf154cd49ba99b24f45a65b18b0deca0bfed8ee (patch) | |
tree | 4b6569115e34087049ee2f44da03fa6b4179f763 | |
parent | e16f1ad442e2f0f1b36e0372ca84aa3c2a923ae7 (diff) |
microblaze: Separate GP registers from MSR handling
Separate general purpose register restoring from MSR handling.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
-rw-r--r-- | arch/microblaze/kernel/entry.S | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S index ef548510b951..285e8880e274 100644 --- a/arch/microblaze/kernel/entry.S +++ b/arch/microblaze/kernel/entry.S | |||
@@ -208,9 +208,7 @@ syscall_debug_table: | |||
208 | mfs r11, rmsr; /* save MSR */ \ | 208 | mfs r11, rmsr; /* save MSR */ \ |
209 | swi r11, r1, PT_MSR; | 209 | swi r11, r1, PT_MSR; |
210 | 210 | ||
211 | #define RESTORE_REGS \ | 211 | #define RESTORE_REGS_GP \ |
212 | lwi r11, r1, PT_MSR; \ | ||
213 | mts rmsr , r11; \ | ||
214 | lwi r2, r1, PT_R2; /* restore SDA */ \ | 212 | lwi r2, r1, PT_R2; /* restore SDA */ \ |
215 | lwi r3, r1, PT_R3; \ | 213 | lwi r3, r1, PT_R3; \ |
216 | lwi r4, r1, PT_R4; \ | 214 | lwi r4, r1, PT_R4; \ |
@@ -242,6 +240,11 @@ syscall_debug_table: | |||
242 | lwi r30, r1, PT_R30; \ | 240 | lwi r30, r1, PT_R30; \ |
243 | lwi r31, r1, PT_R31; /* Restore cur task reg */ | 241 | lwi r31, r1, PT_R31; /* Restore cur task reg */ |
244 | 242 | ||
243 | #define RESTORE_REGS \ | ||
244 | lwi r11, r1, PT_MSR; \ | ||
245 | mts rmsr , r11; \ | ||
246 | RESTORE_REGS_GP | ||
247 | |||
245 | #define SAVE_STATE \ | 248 | #define SAVE_STATE \ |
246 | swi r1, r0, TOPHYS(PER_CPU(ENTRY_SP)); /* save stack */ \ | 249 | swi r1, r0, TOPHYS(PER_CPU(ENTRY_SP)); /* save stack */ \ |
247 | /* See if already in kernel mode.*/ \ | 250 | /* See if already in kernel mode.*/ \ |