Michael> kernel code does rmb rather than mb there. OK, but that's an optimization rather than a correctness issue: mb is stronger than rmb. The reason I did it that way was because I wasn't sure it was worth defining mb, rmb and wmb for userspace. - R.