diff options
| -rw-r--r-- | arch/microblaze/kernel/entry.S | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S index e7abf7426c8c..4c06e1a46a25 100644 --- a/arch/microblaze/kernel/entry.S +++ b/arch/microblaze/kernel/entry.S | |||
| @@ -352,6 +352,7 @@ C_ENTRY(_user_exception): | |||
| 352 | swi r0, r1, PTO + PT_MODE; /* Was in user-mode. */ | 352 | swi r0, r1, PTO + PT_MODE; /* Was in user-mode. */ |
| 353 | lwi r11, r0, TOPHYS(PER_CPU(ENTRY_SP)); | 353 | lwi r11, r0, TOPHYS(PER_CPU(ENTRY_SP)); |
| 354 | swi r11, r1, PTO+PT_R1; /* Store user SP. */ | 354 | swi r11, r1, PTO+PT_R1; /* Store user SP. */ |
| 355 | clear_ums; | ||
| 355 | 2: lwi CURRENT_TASK, r0, TOPHYS(PER_CPU(CURRENT_SAVE)); | 356 | 2: lwi CURRENT_TASK, r0, TOPHYS(PER_CPU(CURRENT_SAVE)); |
| 356 | /* Save away the syscall number. */ | 357 | /* Save away the syscall number. */ |
| 357 | swi r12, r1, PTO+PT_R0; | 358 | swi r12, r1, PTO+PT_R0; |
| @@ -363,10 +364,8 @@ C_ENTRY(_user_exception): | |||
| 363 | * register should point to the location where | 364 | * register should point to the location where |
| 364 | * the called function should return. [note that MAKE_SYS_CALL uses label 1] */ | 365 | * the called function should return. [note that MAKE_SYS_CALL uses label 1] */ |
| 365 | 366 | ||
| 366 | # Step into virtual mode. | 367 | /* Step into virtual mode */ |
| 367 | set_vms; | 368 | rtbd r0, 3f |
| 368 | addik r11, r0, 3f | ||
| 369 | rtid r11, 0 | ||
| 370 | nop | 369 | nop |
| 371 | 3: | 370 | 3: |
| 372 | lwi r11, CURRENT_TASK, TS_THREAD_INFO /* get thread info */ | 371 | lwi r11, CURRENT_TASK, TS_THREAD_INFO /* get thread info */ |
