David S. Miller writes: > This is the first time I've seen that ?mb() should order I/O > accesses. My sparc64 versions certainly don't handle that > correctly. :-) That being said, I think we're all being > educated to so me extent in this thread.
Certainly driver writers expect that the combination of a wmb() followed by a writel() will enforce ordering between any previous writes to memory and the I/O write in the writel (as in the typhoon.c example that Anton posted). On ppc64 this means that we have to use a sync instruction rather than any lighter-weight memory barrier for wmb. Paul.
