From 9bdf731fc0b22ff40c28d22fb18f5c7d3e7dafa8 Mon Sep 17 00:00:00 2001 From: gullradriel Date: Wed, 18 Dec 2024 17:01:18 +0100 Subject: [PATCH] added memory clobber to prevent memory reordering --- firmware/common/locking.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/common/locking.h b/firmware/common/locking.h index 2e0b6429..5620f2f9 100644 --- a/firmware/common/locking.h +++ b/firmware/common/locking.h @@ -40,14 +40,14 @@ #else static inline uint32_t load_exclusive(volatile uint32_t* addr) { - __asm volatile("cpsid i"); + __asm volatile("cpsid i" ::: "memory"); return *addr; } static inline uint32_t store_exclusive(uint32_t val, volatile uint32_t* addr) { *addr = val; - __asm volatile("cpsie i"); + __asm volatile("cpsie i" ::: "memory"); return 0; } #endif