summaryrefslogtreecommitdiff
path: root/arch/mips/kernel/scall32-o32.S
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2017-05-31 16:19:48 +0100
committerRalf Baechle <ralf@linux-mips.org>2017-06-28 12:22:40 +0200
commit49955d84cd9ccdca5a16a495e448e1a06fad9e49 (patch)
tree6079d40979a3343c3d93e69e665e7f06176f8676 /arch/mips/kernel/scall32-o32.S
parent2ec420b26f7b6ff332393f0bb5a7d245f7ad87f0 (diff)
MIPS: Save static registers before sysmips
The MIPS sysmips system call handler may return directly from the MIPS_ATOMIC_SET case (mips_atomic_set()) to syscall_exit. This path restores the static (callee saved) registers, however they won't have been saved on entry to the system call. Use the save_static_function() macro to create a __sys_sysmips wrapper function which saves the static registers before calling sys_sysmips, so that the correct static register state is restored by syscall_exit. Fixes: f1e39a4a616c ("MIPS: Rewrite sysmips(MIPS_ATOMIC_SET, ...) in C with inline assembler") Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: linux-mips@linux-mips.org Cc: stable@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/16149/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/scall32-o32.S')
-rw-r--r--arch/mips/kernel/scall32-o32.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index 80ed68b2c95e..27c2f90eeb21 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -371,7 +371,7 @@ EXPORT(sys_call_table)
PTR sys_writev
PTR sys_cacheflush
PTR sys_cachectl
- PTR sys_sysmips
+ PTR __sys_sysmips
PTR sys_ni_syscall /* 4150 */
PTR sys_getsid
PTR sys_fdatasync