From: Jan Kiszka <[email protected]> Prepend "atomic" so that it becomes clear that this and only this bitop works atomically.
Signed-off-by: Jan Kiszka <[email protected]> --- hypervisor/arch/arm/include/asm/bitops.h | 2 +- hypervisor/arch/arm64/include/asm/bitops.h | 2 +- hypervisor/arch/x86/include/asm/bitops.h | 2 +- hypervisor/printk.c | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/hypervisor/arch/arm/include/asm/bitops.h b/hypervisor/arch/arm/include/asm/bitops.h index 8b9c9d1f..a0c4e9dd 100644 --- a/hypervisor/arch/arm/include/asm/bitops.h +++ b/hypervisor/arch/arm/include/asm/bitops.h @@ -17,7 +17,7 @@ test_bit(unsigned int nr, const volatile unsigned long *addr) (addr[nr / BITS_PER_LONG])) != 0; } -static inline int test_and_set_bit(int nr, volatile unsigned long *addr) +static inline int atomic_test_and_set_bit(int nr, volatile unsigned long *addr) { unsigned long ret, val, test; diff --git a/hypervisor/arch/arm64/include/asm/bitops.h b/hypervisor/arch/arm64/include/asm/bitops.h index 004c3b44..3de2a24d 100644 --- a/hypervisor/arch/arm64/include/asm/bitops.h +++ b/hypervisor/arch/arm64/include/asm/bitops.h @@ -18,7 +18,7 @@ test_bit(unsigned int nr, const volatile unsigned long *addr) (addr[nr / BITS_PER_LONG])) != 0; } -static inline int test_and_set_bit(int nr, volatile unsigned long *addr) +static inline int atomic_test_and_set_bit(int nr, volatile unsigned long *addr) { u32 ret; u64 test, tmp; diff --git a/hypervisor/arch/x86/include/asm/bitops.h b/hypervisor/arch/x86/include/asm/bitops.h index 12d85fdb..6d265bca 100644 --- a/hypervisor/arch/x86/include/asm/bitops.h +++ b/hypervisor/arch/x86/include/asm/bitops.h @@ -47,7 +47,7 @@ static inline int variable_test_bit(int nr, volatile const unsigned long *addr) ? constant_test_bit((nr), (addr)) \ : variable_test_bit((nr), (addr))) -static inline int test_and_set_bit(int nr, volatile unsigned long *addr) +static inline int atomic_test_and_set_bit(int nr, volatile unsigned long *addr) { int oldbit; diff --git a/hypervisor/printk.c b/hypervisor/printk.c index 1b6151e0..c9e22b29 100644 --- a/hypervisor/printk.c +++ b/hypervisor/printk.c @@ -262,7 +262,8 @@ void panic_printk(const char *fmt, ...) unsigned long cpu_id = phys_processor_id(); va_list ap; - if (test_and_set_bit(0, &panic_in_progress) && panic_cpu != cpu_id) + if (atomic_test_and_set_bit(0, &panic_in_progress) && + panic_cpu != cpu_id) return; panic_cpu = cpu_id; -- 2.16.4 -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/84844ce64639ff86ca42d8ea2a2b7d437f6ef9be.1581930651.git.jan.kiszka%40siemens.com.
