David S. Miller <[EMAIL PROTECTED]> wrote:

> > I don't think these actually exist at the moment. My suggestion was that we
> > rename {r,w,}mb() to io_{r,w,}mb().
> 
> 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.

The FRV CPUs have a MEMBAR instruction; it takes no parameters and acts as a
mb().

You need this when accessing memory-mapped I/O (which is all I/O). Otherwise
reads and writes to peripherals may cross under some circumstances.

We've implemented the logic of when to insert MEMBAR into the FRV compiler,
using __builtin_read8/16/32() and __builtin_write8/16/32().

David

Reply via email to