mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 08:58:07 +00:00
x86/asm: Use CC_SET()/CC_OUT() in __cmpxchg_double()
Replace open-coded use of the SETcc instruction with CC_SET()/CC_OUT() in __cmpxchg_double(). Signed-off-by: Uros Bizjak <ubizjak@gmail.com> Signed-off-by: Borislav Petkov <bp@suse.de> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@kernel.org> Cc: "H. Peter Anvin" <hpa@zytor.com> Link: https://lkml.kernel.org/r/CAFULd4YdvwwhXWHqqPsGk5+TLG71ozgSscTZNsqmrm+Jzg941w@mail.gmail.com
This commit is contained in:
parent
02101c45ec
commit
c808c09b52
1 changed files with 6 additions and 4 deletions
|
@ -242,10 +242,12 @@ extern void __add_wrong_size(void)
|
|||
BUILD_BUG_ON(sizeof(*(p2)) != sizeof(long)); \
|
||||
VM_BUG_ON((unsigned long)(p1) % (2 * sizeof(long))); \
|
||||
VM_BUG_ON((unsigned long)((p1) + 1) != (unsigned long)(p2)); \
|
||||
asm volatile(pfx "cmpxchg%c4b %2; sete %0" \
|
||||
: "=a" (__ret), "+d" (__old2), \
|
||||
"+m" (*(p1)), "+m" (*(p2)) \
|
||||
: "i" (2 * sizeof(long)), "a" (__old1), \
|
||||
asm volatile(pfx "cmpxchg%c5b %1" \
|
||||
CC_SET(e) \
|
||||
: CC_OUT(e) (__ret), \
|
||||
"+m" (*(p1)), "+m" (*(p2)), \
|
||||
"+a" (__old1), "+d" (__old2) \
|
||||
: "i" (2 * sizeof(long)), \
|
||||
"b" (__new1), "c" (__new2)); \
|
||||
__ret; \
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue