@@ -348,15 +348,14 @@ do { \
348348 old__.var = _oval; \
349349 new__.var = _nval; \
350350 \
351- asm qual (ALTERNATIVE("call this_cpu_cmpxchg8b_emu", \
352- "cmpxchg8b " __percpu_arg([var]), X86_FEATURE_CX8) \
353- : [var] "+m" (__my_cpu_var(_var)), \
354- "+a" (old__.low), \
355- "+d" (old__.high) \
356- : "b" (new__.low), \
357- "c" (new__.high), \
358- "S" (&(_var)) \
359- : "memory"); \
351+ asm_inline qual ( \
352+ ALTERNATIVE("call this_cpu_cmpxchg8b_emu", \
353+ "cmpxchg8b " __percpu_arg([var]), X86_FEATURE_CX8) \
354+ : ALT_OUTPUT_SP([var] "+m" (__my_cpu_var(_var)), \
355+ "+a" (old__.low), "+d" (old__.high)) \
356+ : "b" (new__.low), "c" (new__.high), \
357+ "S" (&(_var)) \
358+ : "memory"); \
360359 \
361360 old__.var; \
362361})
@@ -378,17 +377,16 @@ do { \
378377 old__.var = *_oval; \
379378 new__.var = _nval; \
380379 \
381- asm qual (ALTERNATIVE("call this_cpu_cmpxchg8b_emu", \
382- "cmpxchg8b " __percpu_arg([var]), X86_FEATURE_CX8) \
383- CC_SET(z) \
384- : CC_OUT(z) (success), \
385- [var] "+m" (__my_cpu_var(_var)), \
386- "+a" (old__.low), \
387- "+d" (old__.high) \
388- : "b" (new__.low), \
389- "c" (new__.high), \
390- "S" (&(_var)) \
391- : "memory"); \
380+ asm_inline qual ( \
381+ ALTERNATIVE("call this_cpu_cmpxchg8b_emu", \
382+ "cmpxchg8b " __percpu_arg([var]), X86_FEATURE_CX8) \
383+ CC_SET(z) \
384+ : ALT_OUTPUT_SP(CC_OUT(z) (success), \
385+ [var] "+m" (__my_cpu_var(_var)), \
386+ "+a" (old__.low), "+d" (old__.high)) \
387+ : "b" (new__.low), "c" (new__.high), \
388+ "S" (&(_var)) \
389+ : "memory"); \
392390 if (unlikely(!success)) \
393391 *_oval = old__.var; \
394392 \
@@ -419,15 +417,14 @@ do { \
419417 old__.var = _oval; \
420418 new__.var = _nval; \
421419 \
422- asm qual (ALTERNATIVE("call this_cpu_cmpxchg16b_emu", \
423- "cmpxchg16b " __percpu_arg([var]), X86_FEATURE_CX16) \
424- : [var] "+m" (__my_cpu_var(_var)), \
425- "+a" (old__.low), \
426- "+d" (old__.high) \
427- : "b" (new__.low), \
428- "c" (new__.high), \
429- "S" (&(_var)) \
430- : "memory"); \
420+ asm_inline qual ( \
421+ ALTERNATIVE("call this_cpu_cmpxchg16b_emu", \
422+ "cmpxchg16b " __percpu_arg([var]), X86_FEATURE_CX16) \
423+ : ALT_OUTPUT_SP([var] "+m" (__my_cpu_var(_var)), \
424+ "+a" (old__.low), "+d" (old__.high)) \
425+ : "b" (new__.low), "c" (new__.high), \
426+ "S" (&(_var)) \
427+ : "memory"); \
431428 \
432429 old__.var; \
433430})
@@ -449,19 +446,19 @@ do { \
449446 old__.var = *_oval; \
450447 new__.var = _nval; \
451448 \
452- asm qual (ALTERNATIVE("call this_cpu_cmpxchg16b_emu", \
453- "cmpxchg16b " __percpu_arg([var]), X86_FEATURE_CX16) \
454- CC_SET(z) \
455- : CC_OUT(z) (success), \
456- [var] "+m" (__my_cpu_var(_var)), \
457- "+a" (old__.low), \
458- "+d" (old__.high) \
459- : "b" (new__.low), \
460- "c" (new__.high), \
461- "S" (&(_var)) \
462- : "memory"); \
449+ asm_inline qual ( \
450+ ALTERNATIVE("call this_cpu_cmpxchg16b_emu", \
451+ "cmpxchg16b " __percpu_arg([var]), X86_FEATURE_CX16) \
452+ CC_SET(z) \
453+ : ALT_OUTPUT_SP(CC_OUT(z) (success), \
454+ [var] "+m" (__my_cpu_var(_var)), \
455+ "+a" (old__.low), "+d" (old__.high)) \
456+ : "b" (new__.low), "c" (new__.high), \
457+ "S" (&(_var)) \
458+ : "memory"); \
463459 if (unlikely(!success)) \
464460 *_oval = old__.var; \
461+ \
465462 likely(success); \
466463})
467464
0 commit comments