diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2015-03-27 20:59:34 +0530 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2015-06-19 18:09:39 +0530 |
commit | c80417b61200072968225e2bed71ed699859a4a3 (patch) | |
tree | dff19d1c1a958d875be660220e3e32113c003be2 /arch/arc/kernel | |
parent | 62fb64034d30293448de10a48c7ee47ee978e338 (diff) |
ARC: entry.S: use single EXCEPTION_PROLOGUE
Returning from pure kernel mode and exception mode use the same code
anyways. Remove one the duplicate blocks
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/kernel')
-rw-r--r-- | arch/arc/kernel/entry-compact.S | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/arch/arc/kernel/entry-compact.S b/arch/arc/kernel/entry-compact.S index abc62cd10a8c..15d457b4403a 100644 --- a/arch/arc/kernel/entry-compact.S +++ b/arch/arc/kernel/entry-compact.S @@ -321,14 +321,11 @@ END(call_do_page_fault) ; decide that. ; if Returning from Exception - bbit0 r10, STATUS_AE_BIT, not_exception - EXCEPTION_EPILOGUE - rtie + btst r10, STATUS_AE_BIT + bnz .Lexcep_ret ; Not Exception so maybe Interrupts (Level 1 or 2) -not_exception: - #ifdef CONFIG_ARC_COMPACT_IRQ_LEVELS ; Level 2 interrupt return Path - from hardware standpoint @@ -377,16 +374,17 @@ not_level2_interrupt: #endif - bbit0 r10, STATUS_A1_BIT, not_level1_interrupt + bbit0 r10, STATUS_A1_BIT, .Lpure_k_mode_ret ;return from level 1 INTERRUPT_EPILOGUE 1 debug_marker_l1: rtie -not_level1_interrupt: +.Lexcep_ret: +.Lpure_k_mode_ret: - ;this case is for syscalls or Exceptions (with fake rtie) + ;this case is for syscalls or Exceptions or pure kernel mode EXCEPTION_EPILOGUE debug_marker_syscall: |