-#define cmpxchg(addr, old, _new) \
- (__typeof__(*(addr))) _atomic_cmpxchg((addr), (old), (_new), \
- sizeof(*(addr)))
+
+#define cmpxchg(addr, old, _new) \
+ ((__typeof__(*(addr))) _atomic_cmpxchg((addr), (unsigned long)(old),\
+ (unsigned long)(_new), \
+ sizeof(*(addr))))