Module Name: src Committed By: riastradh Date: Fri Aug 12 11:21:44 UTC 2022
Modified Files: src/tests/lib/libc/membar: t_spinlock.c Log Message: membar(3): Fix t_spinlock for machines with hash-locked atomics. Regular stores don't participate in the hash-locking scheme, so use atomic_swap instead of a regular store here. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/tests/lib/libc/membar/t_spinlock.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/lib/libc/membar/t_spinlock.c diff -u src/tests/lib/libc/membar/t_spinlock.c:1.3 src/tests/lib/libc/membar/t_spinlock.c:1.4 --- src/tests/lib/libc/membar/t_spinlock.c:1.3 Sun Apr 10 11:36:32 2022 +++ src/tests/lib/libc/membar/t_spinlock.c Fri Aug 12 11:21:44 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: t_spinlock.c,v 1.3 2022/04/10 11:36:32 riastradh Exp $ */ +/* $NetBSD: t_spinlock.c,v 1.4 2022/08/12 11:21:44 riastradh Exp $ */ /*- * Copyright (c) 2022 The NetBSD Foundation, Inc. @@ -27,7 +27,9 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: t_spinlock.c,v 1.3 2022/04/10 11:36:32 riastradh Exp $"); +__RCSID("$NetBSD: t_spinlock.c,v 1.4 2022/08/12 11:21:44 riastradh Exp $"); + +#include <sys/types.h> #include <sys/atomic.h> #include <sys/param.h> @@ -76,7 +78,11 @@ unlock(void) { membar_release(); +#ifdef __HAVE_HASHLOCKED_ATOMICS + (void)atomic_cas_uint(&lockbit, 1, 0); +#else lockbit = 0; +#endif } static void *