bb056c0f08
Convert {clear,set}_bit() to atomics as KVM's ucall implementation relies on clear_bit() being atomic, they are defined in atomic.h, and the same helpers in the kernel proper are atomic. KVM's ucall infrastructure is the only user of clear_bit() in tools/, and there are no true set_bit() users. tools/testing/nvdimm/ does make heavy use of set_bit(), but that code builds into a kernel module of sorts, i.e. pulls in all of the kernel's header and so is already getting the kernel's atomic set_bit(). Signed-off-by: Sean Christopherson <seanjc@google.com> Message-Id: <20221119013450.2643007-10-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
16 lines
481 B
C
16 lines
481 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _TOOLS_LINUX_ASM_GENERIC_BITOPS_ATOMIC_H_
|
|
#define _TOOLS_LINUX_ASM_GENERIC_BITOPS_ATOMIC_H_
|
|
|
|
#include <asm/types.h>
|
|
#include <asm/bitsperlong.h>
|
|
|
|
/*
|
|
* Just alias the test versions, all of the compiler built-in atomics "fetch",
|
|
* and optimizing compile-time constants on x86 isn't worth the complexity.
|
|
*/
|
|
#define set_bit test_and_set_bit
|
|
#define clear_bit test_and_clear_bit
|
|
|
|
#endif /* _TOOLS_LINUX_ASM_GENERIC_BITOPS_ATOMIC_H_ */
|