From fa9b4635f0874eedc3d908f2cd21746680c8c2ed Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Tue, 17 Dec 2019 03:20:37 +0000 Subject: [PATCH] Two minor issues: (1) Don't define load/store 64 atomics for o32. They aren't atomic there. (2) Add comment about why we need 64 atomic define on n32 only. --- sys/mips/include/atomic.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sys/mips/include/atomic.h b/sys/mips/include/atomic.h index 407de5adeae..2745b9662ea 100644 --- a/sys/mips/include/atomic.h +++ b/sys/mips/include/atomic.h @@ -345,10 +345,16 @@ atomic_store_rel_##WIDTH(__volatile uint##WIDTH##_t *p, uint##WIDTH##_t v)\ } ATOMIC_STORE_LOAD(32) +#if defined(__mips_n64) || defined(__mips_n32) ATOMIC_STORE_LOAD(64) +#endif #undef ATOMIC_STORE_LOAD -#ifdef __mips_n32 +/* + * MIPS n32 is not a LP64 API, so atomic_load_64 isn't defined there. Define it + * here since n32 is an oddball !LP64 but that can do 64-bit atomics. + */ +#if defined(__mips_n32) #define atomic_load_64 atomic_load_acq_64 #endif