okl4: declare read-write-lock as volatile

GCC 4.7.4 and newer seems to optimize the lock-variable accesses more
radically, which uncovered the missing volatile qualifier and resulted
in:

Assertion "(int)locked >= 0" failed in file '.../okl4_x86/kernel/include/kernel/read_write_lock.h', line 151 (fn=f0104771)
--- "KD# assert" ---
This commit is contained in:
Christian Prochaska 2014-11-18 14:51:54 +01:00 committed by Christian Helmuth
parent 97d117c89d
commit ac6c4682f3
1 changed files with 13 additions and 0 deletions

View File

@ -0,0 +1,13 @@
diff --git a/pistachio/include/read_write_lock.h b/pistachio/include/read_write_lock.h
index d667451..49f7f30 100644
--- a/pistachio/include/read_write_lock.h
+++ b/pistachio/include/read_write_lock.h
@@ -123,7 +123,7 @@ struct read_write_lock_t
bool is_locked(void);
#if defined(CONFIG_DEBUG)
- word_t locked;
+ word_t volatile locked;
#endif
};