diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-05 16:11:35 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2012-09-22 09:47:31 -0400 |
commit | 02f884ed46b38c5c386709b2619730ba7a8d200c (patch) | |
tree | 9be3af63e825bce7e8175c9bc4956c7ad26b1c1b /arch/mips/kernel/entry.S | |
parent | 0b894bd8e462644fceb290adf5b349ef834d761b (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.S | 12 |
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 | ||
80 | FEXPORT(restore_all) # restore full frame | 80 | restore_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 |
120 | FEXPORT(restore_partial) # restore partial frame | 120 | restore_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 | ||
167 | FEXPORT(syscall_exit_work_partial) | 167 | FEXPORT(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 |
169 | syscall_exit_work: | 175 | syscall_exit_work: |
170 | LONG_L t0, PT_STATUS(sp) # returning to kernel mode? | 176 | LONG_L t0, PT_STATUS(sp) # returning to kernel mode? |