aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/entry.S
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-05-05 16:11:35 -0400
committerRalf Baechle <ralf@linux-mips.org>2012-09-22 09:47:31 -0400
commit02f884ed46b38c5c386709b2619730ba7a8d200c (patch)
tree9be3af63e825bce7e8175c9bc4956c7ad26b1c1b /arch/mips/kernel/entry.S
parent0b894bd8e462644fceb290adf5b349ef834d761b (diff)
MIPS: Merge the identical "return from syscall" per-ABI code
No need to keep 4 copies of that stuff; merged and taken to entry.S, unused public symbols there killed off. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/entry.S')
-rw-r--r--arch/mips/kernel/entry.S12
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S
index 4b0937f19862..a6c133212003 100644
--- a/arch/mips/kernel/entry.S
+++ b/arch/mips/kernel/entry.S
@@ -77,7 +77,7 @@ FEXPORT(syscall_exit)
77 and t0, a2, t0 77 and t0, a2, t0
78 bnez t0, syscall_exit_work 78 bnez t0, syscall_exit_work
79 79
80FEXPORT(restore_all) # restore full frame 80restore_all: # restore full frame
81#ifdef CONFIG_MIPS_MT_SMTC 81#ifdef CONFIG_MIPS_MT_SMTC
82#ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP 82#ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP
83/* Re-arm any temporarily masked interrupts not explicitly "acked" */ 83/* Re-arm any temporarily masked interrupts not explicitly "acked" */
@@ -117,7 +117,7 @@ FEXPORT(restore_all) # restore full frame
117 RESTORE_TEMP 117 RESTORE_TEMP
118 RESTORE_AT 118 RESTORE_AT
119 RESTORE_STATIC 119 RESTORE_STATIC
120FEXPORT(restore_partial) # restore partial frame 120restore_partial: # restore partial frame
121#ifdef CONFIG_TRACE_IRQFLAGS 121#ifdef CONFIG_TRACE_IRQFLAGS
122 SAVE_STATIC 122 SAVE_STATIC
123 SAVE_AT 123 SAVE_AT
@@ -164,7 +164,13 @@ work_notifysig: # deal with pending signals and
164 jal do_notify_resume # a2 already loaded 164 jal do_notify_resume # a2 already loaded
165 j resume_userspace 165 j resume_userspace
166 166
167FEXPORT(syscall_exit_work_partial) 167FEXPORT(syscall_exit_partial)
168 local_irq_disable # make sure need_resched doesn't
169 # change between and return
170 LONG_L a2, TI_FLAGS($28) # current->work
171 li t0, _TIF_ALLWORK_MASK
172 and t0, a2
173 beqz t0, restore_partial
168 SAVE_STATIC 174 SAVE_STATIC
169syscall_exit_work: 175syscall_exit_work:
170 LONG_L t0, PT_STATUS(sp) # returning to kernel mode? 176 LONG_L t0, PT_STATUS(sp) # returning to kernel mode?