mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 09:59:32 +00:00
[S390] Fix futex_atomic_cmpxchg_std inline assembly.
Add missing exception table entry so that the kernel can handle proctection exceptions as well on the cs instruction. Currently only specification exceptions are handled correctly. The missing entry allows user space to crash the kernel. Cc: stable <stable@kernel.org> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
39f73b2886
commit
d5b02b3ff1
1 changed files with 4 additions and 4 deletions
|
@ -293,10 +293,10 @@ int futex_atomic_cmpxchg_std(int __user *uaddr, int oldval, int newval)
|
|||
|
||||
asm volatile(
|
||||
" sacf 256\n"
|
||||
" cs %1,%4,0(%5)\n"
|
||||
"0: lr %0,%1\n"
|
||||
"1: sacf 0\n"
|
||||
EX_TABLE(0b,1b)
|
||||
"0: cs %1,%4,0(%5)\n"
|
||||
"1: lr %0,%1\n"
|
||||
"2: sacf 0\n"
|
||||
EX_TABLE(0b,2b) EX_TABLE(1b,2b)
|
||||
: "=d" (ret), "+d" (oldval), "=m" (*uaddr)
|
||||
: "0" (-EFAULT), "d" (newval), "a" (uaddr), "m" (*uaddr)
|
||||
: "cc", "memory" );
|
||||
|
|
Loading…
Reference in a new issue