aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2016-02-24 05:31:14 -0500
committerMichal Simek <michal.simek@xilinx.com>2017-06-22 09:36:59 -0400
commitfaf154cd49ba99b24f45a65b18b0deca0bfed8ee (patch)
tree4b6569115e34087049ee2f44da03fa6b4179f763
parente16f1ad442e2f0f1b36e0372ca84aa3c2a923ae7 (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.S9
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.*/ \