[PATCH] Document Linux's memory barriers [try #4]
Michael Buesch
mbuesch at freenet.de
Fri Mar 10 10:45:09 EST 2006
On Friday 10 March 2006 00:34, you wrote:
> David Howells writes:
>
> > +On some systems, I/O writes are not strongly ordered across all CPUs, and so
> > +locking should be used, and mmiowb() should be issued prior to unlocking the
> > +critical section.
>
> I think we should say more strongly that mmiowb() is required where
> MMIO accesses are done under a spinlock, and that if your driver is
> missing them then that is a bug. I don't think it makes sense to say
> that mmiowb is required "on some systems".
So what about:
#define spin_lock_mmio(lock) spin_lock(lock)
#define spin_unlock_mmio(lock) do { spin_unlock(lock); mmiowb(); } while (0)
#define spin_lock_mmio_irqsave(lock, flags) spin_lock_irqsave(lock, flags)
#define spin_unlock_mmio_irqrestore(lock, flags) do { spin_unlock_irqrestore(lock, flags); mmiowb(); } while (0)
--
Greetings Michael.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://ozlabs.org/pipermail/linuxppc64-dev/attachments/20060310/83ab9987/attachment.pgp
More information about the Linuxppc64-dev
mailing list