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