On Mon, Feb 11, 2019 at 9:30 AM Will Deacon <will.deacon@xxxxxxx> wrote: > > + > + 1. All readX() and writeX() accesses to the same peripheral are ordered > + with respect to each other. For example, this ensures that MMIO register > + writes by the CPU to a particular device will arrive in program order. Hmm. I'd like more people look at strengthening this one wrt across CPUs and locking. Right now we document mmiowb(), but that "documentation" is really just a fairy tale. Very *very* few drivers actually do mmiowb() on their own. IOW, we should seriously just consider making the rule be that locking will order mmio too. Because that's practically the rule anyway. Powerpc already does it. IO within a locked region will serialize with the lock. Linus