Skip to contentSkip to conversation

s390: fix futex_atomic_cmpxchg_inatomic

PATCH New Martin Schwidefsky 1 participant 1 message Jul 10, 2006

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 s390: fix futex_atomic_cmpxchg_inatomic

From: Martin Schwidefsky <[email protected]>

[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.

---

 include/asm-s390/futex.h |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
include/asm-s390/futex.h +3 -2
diff -urpN linux-2.6/include/asm-s390/futex.h linux-2.6-patched/include/asm-s390/futex.h
@@ -98,9 +98,10 @@ futex_atomic_cmpxchg_inatomic(int __user
 
 	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"