The return value of __invalid_xchg_size() is assigned to tmp instead of the return variable x. Assign it to x instead.
Unified · Split
| @@ -32,7 +32,7 @@ static inline unsigned long __arch_xchg(unsigned long x, volatile void * ptr, in · 31 unmodified lines | ||
| 32 | 32 | x = tmp; |
| 33 | 33 | break; |
| 34 | 34 | default: |
| 35 | − tmp = __invalid_xchg_size(x, ptr, size); | |
| 35 | + x = __invalid_xchg_size(x, ptr, size); | |
| 36 | 36 | break; |
| 37 | 37 | } |
| 38 | 38 | |