diff options
Diffstat (limited to 'include/asm-frv/system.h')
| -rw-r--r-- | include/asm-frv/system.h | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/include/asm-frv/system.h b/include/asm-frv/system.h index 6931af525da..9f5663ba19f 100644 --- a/include/asm-frv/system.h +++ b/include/asm-frv/system.h @@ -253,7 +253,10 @@ extern uint32_t __cmpxchg_32(uint32_t *v, uint32_t test, uint32_t new);  	__typeof__(*(ptr)) __xg_new = (new);					\  										\  	switch (sizeof(__xg_orig)) {						\ -	case 4: __xg_orig = __cmpxchg_32(__xg_ptr, __xg_test, __xg_new); break;	\ +	case 4: __xg_orig = (__force __typeof__(*ptr))				\ +			__cmpxchg_32((__force uint32_t *)__xg_ptr,		\ +					 (__force uint32_t)__xg_test,		\ +					 (__force uint32_t)__xg_new); break;	\  	default:								\  		__xg_orig = 0;							\  		asm volatile("break");						\  |