Ok, so it at least boots on x86-32. Thus probably on x86-64 too (since the
code is now shared). I didn't look at whether it generates much bigger
code due to the potential extra serialization, but some of the code
generation I looked at looked fine.
IOW, it doesn't at least create any _obviously_ worse code, and it should
be arguably safer than assuming the compiler does volatile accesses the
way we want it to.
Linus
--