MIPS: O32: Do not handle require 32 bytes from the stack to be readable.
authorRalf Baechle <ralf@linux-mips.org>
Wed, 8 Jul 2015 02:49:10 +0000 (04:49 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 8 Jul 2015 03:03:30 +0000 (05:03 +0200)
commit7928eb0370d1133d0d8cd2f5ddfca19c309079d5
tree0302124558fbad7327630babc1804aa5977e8c2f
parent0bb383a2d8f51e32ecc156f3f84067420ffe6d20
MIPS: O32: Do not handle require 32 bytes from the stack to be readable.

Commit 46e12c07b3b9603c60fc1d421ff18618241cb081 (MIPS: O32 / 32-bit:
Always copy 4 stack arguments.) change the O32 syscall handler to always
load four arguments from the userspace stack even for syscalls that
require fewer or no arguments to be copied.  This removes a large table
from kernel space and need to maintain it.  It appeared that it was ok
the implementation chosen requires 16 bytes of readable stack space
above the user stack pointer.

Turned out a few threading implementations munmap the user stack before
the thread exits resulting in errors due to the unreadable stack.

We now treat any failed load as a if the loaded value was zero and let
the actual syscall deal with the situation.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/scall32-o32.S
arch/mips/kernel/scall64-o32.S