summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/smplockseq.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/include/rtems/score/smplockseq.h')
-rw-r--r--cpukit/score/include/rtems/score/smplockseq.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/smplockseq.h b/cpukit/score/include/rtems/score/smplockseq.h
index 6fe7b7afa3..5daaee9c6e 100644
--- a/cpukit/score/include/rtems/score/smplockseq.h
+++ b/cpukit/score/include/rtems/score/smplockseq.h
@@ -21,6 +21,7 @@
#if defined(RTEMS_SMP)
+#include <rtems/score/assert.h>
#include <rtems/score/atomic.h>
#ifdef __cplusplus
@@ -102,6 +103,8 @@ static inline unsigned int _SMP_sequence_lock_Write_begin(
unsigned int seq;
seq = _Atomic_Load_uint( &lock->sequence, ATOMIC_ORDER_RELAXED );
+ _Assert( seq % 2 == 0 );
+
_Atomic_Store_uint( &lock->sequence, seq + 1, ATOMIC_ORDER_RELAXED );
/* There is no atomic store with acquire/release semantics */