summaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/scall64-n32.S
diff options
context:
space:
mode:
authorYong Zhang <yong.zhang@windriver.com>2011-08-16 09:54:54 +0800
committerRalf Baechle <ralf@linux-mips.org>2011-09-21 17:53:44 +0200
commit1eec6cd08b4feb72a73aff468ab72bdd21e1dc61 (patch)
tree70278d81550236b2dc57ddb52b3fc3380fe0c5d9 /arch/mips/kernel/scall64-n32.S
parentb8ecf341f1b7ca7bf3cb80c48cbbae33b79947d0 (diff)
downloadlinux-stable-1eec6cd08b4feb72a73aff468ab72bdd21e1dc61.tar.gz
linux-stable-1eec6cd08b4feb72a73aff468ab72bdd21e1dc61.tar.bz2
linux-stable-1eec6cd08b4feb72a73aff468ab72bdd21e1dc61.zip
MIPS: Compat: Use 32-bit wrapper for compat_sys_futex.
We can't trust userspace to pass signed-extend arguments. Not correctly sign-extended arguments to futex-wait result in architecturally undefined operation of 32-bit arithmetic instructions. For example, if 'val' is too big and bit-31 is 1, the caller may enter endless loop at: futex_wait_setup() { ... if (uval != val) { queue_unlock(q, *hb); ret = -EWOULDBLOCK; ... } Signed-off-by: Yong Zhang <yong.zhang@windriver.com> To: linux-mips@linux-mips.org To: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/2714/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/scall64-n32.S')
-rw-r--r--arch/mips/kernel/scall64-n32.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index f9296e894e46..6de1f598346e 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -315,7 +315,7 @@ EXPORT(sysn32_call_table)
PTR sys_fremovexattr
PTR sys_tkill
PTR sys_ni_syscall
- PTR compat_sys_futex
+ PTR sys_32_futex
PTR compat_sys_sched_setaffinity /* 6195 */
PTR compat_sys_sched_getaffinity
PTR sys_cacheflush