diff options
Diffstat (limited to 'arch/s390/include/asm/cmpxchg.h')
| -rw-r--r-- | arch/s390/include/asm/cmpxchg.h | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/s390/include/asm/cmpxchg.h b/arch/s390/include/asm/cmpxchg.h index 0f636cbdf34..4236408070e 100644 --- a/arch/s390/include/asm/cmpxchg.h +++ b/arch/s390/include/asm/cmpxchg.h @@ -185,11 +185,12 @@ static inline unsigned long long __cmpxchg64(void *ptr,  {  	register_pair rp_old = {.pair = old};  	register_pair rp_new = {.pair = new}; +	unsigned long long *ullptr = ptr;  	asm volatile(  		"	cds	%0,%2,%1" -		: "+&d" (rp_old), "=Q" (ptr) -		: "d" (rp_new), "Q" (ptr) +		: "+d" (rp_old), "+Q" (*ullptr) +		: "d" (rp_new)  		: "memory", "cc");  	return rp_old.pair;  }  | 
