|
@@ -273,34 +273,34 @@ do { \
|
|
|
typeof(var) pxo_new__ = (nval); \
|
|
|
switch (sizeof(var)) { \
|
|
|
case 1: \
|
|
|
- asm("\n1:mov "__percpu_arg(1)",%%al" \
|
|
|
- "\n\tcmpxchgb %2, "__percpu_arg(1) \
|
|
|
+ asm("\n\tmov "__percpu_arg(1)",%%al" \
|
|
|
+ "\n1:\tcmpxchgb %2, "__percpu_arg(1) \
|
|
|
"\n\tjnz 1b" \
|
|
|
- : "=a" (pxo_ret__), "+m" (var) \
|
|
|
+ : "=&a" (pxo_ret__), "+m" (var) \
|
|
|
: "q" (pxo_new__) \
|
|
|
: "memory"); \
|
|
|
break; \
|
|
|
case 2: \
|
|
|
- asm("\n1:mov "__percpu_arg(1)",%%ax" \
|
|
|
- "\n\tcmpxchgw %2, "__percpu_arg(1) \
|
|
|
+ asm("\n\tmov "__percpu_arg(1)",%%ax" \
|
|
|
+ "\n1:\tcmpxchgw %2, "__percpu_arg(1) \
|
|
|
"\n\tjnz 1b" \
|
|
|
- : "=a" (pxo_ret__), "+m" (var) \
|
|
|
+ : "=&a" (pxo_ret__), "+m" (var) \
|
|
|
: "r" (pxo_new__) \
|
|
|
: "memory"); \
|
|
|
break; \
|
|
|
case 4: \
|
|
|
- asm("\n1:mov "__percpu_arg(1)",%%eax" \
|
|
|
- "\n\tcmpxchgl %2, "__percpu_arg(1) \
|
|
|
+ asm("\n\tmov "__percpu_arg(1)",%%eax" \
|
|
|
+ "\n1:\tcmpxchgl %2, "__percpu_arg(1) \
|
|
|
"\n\tjnz 1b" \
|
|
|
- : "=a" (pxo_ret__), "+m" (var) \
|
|
|
+ : "=&a" (pxo_ret__), "+m" (var) \
|
|
|
: "r" (pxo_new__) \
|
|
|
: "memory"); \
|
|
|
break; \
|
|
|
case 8: \
|
|
|
- asm("\n1:mov "__percpu_arg(1)",%%rax" \
|
|
|
- "\n\tcmpxchgq %2, "__percpu_arg(1) \
|
|
|
+ asm("\n\tmov "__percpu_arg(1)",%%rax" \
|
|
|
+ "\n1:\tcmpxchgq %2, "__percpu_arg(1) \
|
|
|
"\n\tjnz 1b" \
|
|
|
- : "=a" (pxo_ret__), "+m" (var) \
|
|
|
+ : "=&a" (pxo_ret__), "+m" (var) \
|
|
|
: "r" (pxo_new__) \
|
|
|
: "memory"); \
|
|
|
break; \
|