aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2013-05-14 09:00:50 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-05-13 07:59:42 -0400
commit1a43738d057559e87e0036e25c33715d6eff11ed (patch)
treeca64c950930c1b067603009ead5427e88549bb3e
parent6eed5b7500dc3754dc4d24f328f02bed118adb89 (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.S8
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
658resume_kernel_mode: 652resume_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]