Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13492c50 authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

[S390] fix futex_atomic_cmpxchg_inatomic



futex_atomic_cmpxchg_inatomic has the same bug as the other
atomic futex operations: the operation needs to be done in the
user address space, not the kernel address space. Add the missing
sacf 256 & sacf 0.

Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 6ab4879a
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -98,9 +98,10 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)

	if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int)))
		return -EFAULT;
	asm volatile("   cs   %1,%4,0(%5)\n"
	asm volatile("   sacf 256\n"
		     "   cs   %1,%4,0(%5)\n"
		     "0: lr   %0,%1\n"
		     "1:\n"
		     "1: sacf 0\n"
#ifndef __s390x__
		     ".section __ex_table,\"a\"\n"
		     "   .align 4\n"