diff options
| author | Ingo Molnar <mingo@elte.hu> | 2011-03-18 10:38:53 +0100 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2011-03-18 10:39:00 +0100 |
| commit | 8dd8997d2c56c9f248294805e129e1fc69444380 (patch) | |
| tree | 3b030a04295fc031db98746c4074c2df1ed6a19f /arch/s390/lib/uaccess_std.c | |
| parent | 1eda75c131ea42ec173323b6c34aeed78ae637c1 (diff) | |
| parent | 016aa2ed1cc9cf704cf76d8df07751b6daa9750f (diff) | |
| download | linux-8dd8997d2c56c9f248294805e129e1fc69444380.tar.gz linux-8dd8997d2c56c9f248294805e129e1fc69444380.tar.bz2 linux-8dd8997d2c56c9f248294805e129e1fc69444380.zip | |
Merge branch 'linus' into x86/urgent
Merge reason: Merge upstream commits to avoid conflicts in upcoming patches.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/s390/lib/uaccess_std.c')
| -rw-r--r-- | arch/s390/lib/uaccess_std.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/s390/lib/uaccess_std.c b/arch/s390/lib/uaccess_std.c index a6c4f7ed24a4..bb1a7eed42ce 100644 --- a/arch/s390/lib/uaccess_std.c +++ b/arch/s390/lib/uaccess_std.c @@ -255,7 +255,7 @@ size_t strncpy_from_user_std(size_t size, const char __user *src, char *dst) : "0" (-EFAULT), "d" (oparg), "a" (uaddr), \ "m" (*uaddr) : "cc"); -int futex_atomic_op_std(int op, int __user *uaddr, int oparg, int *old) +int futex_atomic_op_std(int op, u32 __user *uaddr, int oparg, int *old) { int oldval = 0, newval, ret; @@ -287,19 +287,21 @@ int futex_atomic_op_std(int op, int __user *uaddr, int oparg, int *old) return ret; } -int futex_atomic_cmpxchg_std(int __user *uaddr, int oldval, int newval) +int futex_atomic_cmpxchg_std(u32 *uval, u32 __user *uaddr, + u32 oldval, u32 newval) { int ret; asm volatile( " sacf 256\n" "0: cs %1,%4,0(%5)\n" - "1: lr %0,%1\n" + "1: la %0,0\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" ); + *uval = oldval; return ret; } |
