diff options
| -rw-r--r-- | arch/microblaze/kernel/entry-nommu.S | 3 | ||||
| -rw-r--r-- | arch/microblaze/kernel/signal.c | 9 |
2 files changed, 3 insertions, 9 deletions
diff --git a/arch/microblaze/kernel/entry-nommu.S b/arch/microblaze/kernel/entry-nommu.S index 70da83a49670..29a05d62ec1a 100644 --- a/arch/microblaze/kernel/entry-nommu.S +++ b/arch/microblaze/kernel/entry-nommu.S | |||
| @@ -482,6 +482,8 @@ ENTRY(ret_from_kernel_thread) | |||
| 482 | addk r3, r0, r0 | 482 | addk r3, r0, r0 |
| 483 | 483 | ||
| 484 | work_pending: | 484 | work_pending: |
| 485 | lwi r11, r1, PT_MODE | ||
| 486 | bneid r11, 2f | ||
| 485 | enable_irq | 487 | enable_irq |
| 486 | 488 | ||
| 487 | andi r11, r19, _TIF_NEED_RESCHED | 489 | andi r11, r19, _TIF_NEED_RESCHED |
| @@ -507,6 +509,7 @@ ENTRY(ret_to_user) | |||
| 507 | no_work_pending: | 509 | no_work_pending: |
| 508 | disable_irq | 510 | disable_irq |
| 509 | 511 | ||
| 512 | 2: | ||
| 510 | /* save r31 */ | 513 | /* save r31 */ |
| 511 | swi r31, r0, PER_CPU(CURRENT_SAVE) | 514 | swi r31, r0, PER_CPU(CURRENT_SAVE) |
| 512 | /* save mode indicator */ | 515 | /* save mode indicator */ |
diff --git a/arch/microblaze/kernel/signal.c b/arch/microblaze/kernel/signal.c index dfd61e2f1189..9f7a8bde0686 100644 --- a/arch/microblaze/kernel/signal.c +++ b/arch/microblaze/kernel/signal.c | |||
| @@ -343,15 +343,6 @@ static void do_signal(struct pt_regs *regs, int in_syscall) | |||
| 343 | 343 | ||
| 344 | asmlinkage void do_notify_resume(struct pt_regs *regs, int in_syscall) | 344 | asmlinkage void do_notify_resume(struct pt_regs *regs, int in_syscall) |
| 345 | { | 345 | { |
| 346 | /* | ||
| 347 | * We want the common case to go fast, which | ||
| 348 | * is why we may in certain cases get here from | ||
| 349 | * kernel mode. Just return without doing anything | ||
| 350 | * if so. | ||
| 351 | */ | ||
| 352 | if (kernel_mode(regs)) | ||
| 353 | return; | ||
| 354 | |||
| 355 | if (test_thread_flag(TIF_SIGPENDING)) | 346 | if (test_thread_flag(TIF_SIGPENDING)) |
| 356 | do_signal(regs, in_syscall); | 347 | do_signal(regs, in_syscall); |
| 357 | 348 | ||
