Module Name: src
Committed By: riastradh
Date: Sun Dec 19 11:02:38 UTC 2021
Modified Files:
src/sys/external/bsd/drm2/include/linux: atomic.h
Log Message:
Linux clear_bit_unlock
To generate a diff of this commit:
cvs rdiff -u -r1.31 -r1.32 src/sys/external/bsd/drm2/include/linux/atomic.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm2/include/linux/atomic.h
diff -u src/sys/external/bsd/drm2/include/linux/atomic.h:1.31 src/sys/external/bsd/drm2/include/linux/atomic.h:1.32
--- src/sys/external/bsd/drm2/include/linux/atomic.h:1.31 Sun Dec 19 11:01:44 2021
+++ src/sys/external/bsd/drm2/include/linux/atomic.h Sun Dec 19 11:02:38 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: atomic.h,v 1.31 2021/12/19 11:01:44 riastradh Exp $ */
+/* $NetBSD: atomic.h,v 1.32 2021/12/19 11:02:38 riastradh Exp $ */
/*-
* Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -475,6 +475,16 @@ clear_bit(unsigned int bit, volatile uns
}
static inline void
+clear_bit_unlock(unsigned int bit, volatile unsigned long *ptr)
+{
+ const unsigned int units = (sizeof(*ptr) * CHAR_BIT);
+
+ /* store-release */
+ smp_mb__before_atomic();
+ atomic_and_ulong(&ptr[bit / units], ~(1UL << (bit % units)));
+}
+
+static inline void
change_bit(unsigned int bit, volatile unsigned long *ptr)
{
const unsigned int units = (sizeof(*ptr) * CHAR_BIT);