From e875aa9556686f0bfbb5e1d49db8027a140751f4 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Tue, 29 May 2012 11:11:51 +0200 Subject: [PATCH] --- yaml --- r: 309600 b: refs/heads/master c: 1896d256d3513eafa2c2d506299b8f3951319ca2 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/s390/include/asm/cmpxchg.h | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index deb4d34110b9..55100f1455fb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bf3db85311292eeacc9a9a8f38a0a4065a43a2fc +refs/heads/master: 1896d256d3513eafa2c2d506299b8f3951319ca2 diff --git a/trunk/arch/s390/include/asm/cmpxchg.h b/trunk/arch/s390/include/asm/cmpxchg.h index 26f2cb1aa9ff..8d798e962b63 100644 --- a/trunk/arch/s390/include/asm/cmpxchg.h +++ b/trunk/arch/s390/include/asm/cmpxchg.h @@ -29,7 +29,7 @@ static inline unsigned long __xchg(unsigned long x, void *ptr, int size) " cs %0,0,%4\n" " jl 0b\n" : "=&d" (old), "=Q" (*(int *) addr) - : "d" (x << shift), "d" (~(255 << shift)), + : "d" ((x & 0xff) << shift), "d" (~(0xff << shift)), "Q" (*(int *) addr) : "memory", "cc", "0"); return old >> shift; case 2: @@ -44,7 +44,7 @@ static inline unsigned long __xchg(unsigned long x, void *ptr, int size) " cs %0,0,%4\n" " jl 0b\n" : "=&d" (old), "=Q" (*(int *) addr) - : "d" (x << shift), "d" (~(65535 << shift)), + : "d" ((x & 0xffff) << shift), "d" (~(0xffff << shift)), "Q" (*(int *) addr) : "memory", "cc", "0"); return old >> shift; case 4: @@ -114,8 +114,9 @@ static inline unsigned long __cmpxchg(void *ptr, unsigned long old, " jnz 0b\n" "1:" : "=&d" (prev), "=&d" (tmp), "+Q" (*(int *) addr) - : "d" (old << shift), "d" (new << shift), - "d" (~(255 << shift)) + : "d" ((old & 0xff) << shift), + "d" ((new & 0xff) << shift), + "d" (~(0xff << shift)) : "memory", "cc"); return prev >> shift; case 2: @@ -135,8 +136,9 @@ static inline unsigned long __cmpxchg(void *ptr, unsigned long old, " jnz 0b\n" "1:" : "=&d" (prev), "=&d" (tmp), "+Q" (*(int *) addr) - : "d" (old << shift), "d" (new << shift), - "d" (~(65535 << shift)) + : "d" ((old & 0xffff) << shift), + "d" ((new & 0xffff) << shift), + "d" (~(0xffff << shift)) : "memory", "cc"); return prev >> shift; case 4: