From 74d3a63559e0ab55db91e8a67171917a4f0fb3ea Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Tue, 11 Aug 2020 12:41:40 +0000 Subject: [PATCH] Use atomic_clear_rel_long() to implement clear_bit_unlock() in the LinuxKPI after r363842. Suggested by: alc@ MFC after: 1 week Sponsored by: Mellanox Technologies --- sys/compat/linuxkpi/common/include/linux/bitops.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/bitops.h b/sys/compat/linuxkpi/common/include/linux/bitops.h index 7e259760f7c..1bcbd681203 100644 --- a/sys/compat/linuxkpi/common/include/linux/bitops.h +++ b/sys/compat/linuxkpi/common/include/linux/bitops.h @@ -272,16 +272,12 @@ find_next_zero_bit(const unsigned long *addr, unsigned long size, #define clear_bit(i, a) \ atomic_clear_long(&((volatile unsigned long *)(a))[BIT_WORD(i)], BIT_MASK(i)) +#define clear_bit_unlock(i, a) \ + atomic_clear_rel_long(&((volatile unsigned long *)(a))[BIT_WORD(i)], BIT_MASK(i)) + #define test_bit(i, a) \ !!(READ_ONCE(((volatile const unsigned long *)(a))[BIT_WORD(i)]) & BIT_MASK(i)) -static inline void -clear_bit_unlock(long bit, volatile unsigned long *var) -{ - clear_bit(bit, var); - wmb(); -} - static inline int test_and_clear_bit(long bit, volatile unsigned long *var) {