aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/linuxkpi/common/include/linux/bitops.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/linuxkpi/common/include/linux/bitops.h')
-rw-r--r--sys/compat/linuxkpi/common/include/linux/bitops.h10
1 files 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 7e259760f7c3..1bcbd681203c 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)
{