diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-05-14 09:00:50 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-05-13 07:59:42 -0400 |
commit | 1a43738d057559e87e0036e25c33715d6eff11ed (patch) | |
tree | ca64c950930c1b067603009ead5427e88549bb3e | |
parent | 6eed5b7500dc3754dc4d24f328f02bed118adb89 (diff) |
ARC: Entry Handler tweaks: Simplify branch for in-kernel preemption
commit 147aece29b15051173eb1e767018135361cdba89 upstream.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | arch/arc/kernel/entry.S | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/arch/arc/kernel/entry.S b/arch/arc/kernel/entry.S index 6dbe359c760d..922150e153ea 100644 --- a/arch/arc/kernel/entry.S +++ b/arch/arc/kernel/entry.S | |||
@@ -589,11 +589,7 @@ ARC_ENTRY ret_from_exception | |||
589 | ; Pre-{IRQ,Trap,Exception} K/U mode from pt_regs->status32 | 589 | ; Pre-{IRQ,Trap,Exception} K/U mode from pt_regs->status32 |
590 | ld r8, [sp, PT_status32] ; returning to User/Kernel Mode | 590 | ld r8, [sp, PT_status32] ; returning to User/Kernel Mode |
591 | 591 | ||
592 | #ifdef CONFIG_PREEMPT | ||
593 | bbit0 r8, STATUS_U_BIT, resume_kernel_mode | 592 | bbit0 r8, STATUS_U_BIT, resume_kernel_mode |
594 | #else | ||
595 | bbit0 r8, STATUS_U_BIT, restore_regs | ||
596 | #endif | ||
597 | 593 | ||
598 | ; Before returning to User mode check-for-and-complete any pending work | 594 | ; Before returning to User mode check-for-and-complete any pending work |
599 | ; such as rescheduling/signal-delivery etc. | 595 | ; such as rescheduling/signal-delivery etc. |
@@ -653,10 +649,10 @@ resume_user_mode_begin: | |||
653 | b resume_user_mode_begin ; unconditionally back to U mode ret chks | 649 | b resume_user_mode_begin ; unconditionally back to U mode ret chks |
654 | ; for single exit point from this block | 650 | ; for single exit point from this block |
655 | 651 | ||
656 | #ifdef CONFIG_PREEMPT | ||
657 | |||
658 | resume_kernel_mode: | 652 | resume_kernel_mode: |
659 | 653 | ||
654 | #ifdef CONFIG_PREEMPT | ||
655 | |||
660 | ; Can't preempt if preemption disabled | 656 | ; Can't preempt if preemption disabled |
661 | GET_CURR_THR_INFO_FROM_SP r10 | 657 | GET_CURR_THR_INFO_FROM_SP r10 |
662 | ld r8, [r10, THREAD_INFO_PREEMPT_COUNT] | 658 | ld r8, [r10, THREAD_INFO_PREEMPT_COUNT] |