genode/repos/base-okl4/patches/read_write_lock_volatile.patch
Christian Prochaska ac6c4682f3 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" ---
2014-11-20 16:39:16 +01:00

14 lines
365 B
Diff

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
};