diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h index 273d595f4..6850a4871 100644 --- a/arch/x86/include/asm/atomic.h +++ b/arch/x86/include/asm/atomic.h @@ -26,9 +26,9 @@ typedef struct { ret__; \ }) -#define atomic_inc(mem) \ +#define atomic_add(mem, val) \ ({ \ - u32 ret__ = 1; \ + u32 ret__ = (val); \ asm volatile ("lock xadd %0, %1\n" \ : "+r" (ret__), "+m" ((mem)->counter) \ : \ @@ -36,6 +36,8 @@ typedef struct { ret__; \ }) +#define atomic_inc(mem) atomic_add(mem, 1) + #define atomic_dec(mem) \ ({ \ u32 ret__ = -1; \