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);

Reply via email to