These macros are needed to make sure the compiler does not optimize away atomic constructs such as "while (!READ_ONCE(foo))" loops that do not modify foo within the loop Also move the barrier() define where it belongs while we are here, it is needed for READ_ONCE/WRITE_ONCE and including ihk/cpu.h here causes include loops Change-Id: Ia533a849ed674719ccbc0495be47d22a3c47b8f8