Alan Cox <alan at redhat.com> wrote: > spin_lock(&foo->lock); > writel(0, &foo->regnum); I presume there only needs to be an mmiowb() here if you've got the appropriate CPU's I/O memory window set up to be weakly ordered. > writel(1, &foo->data); > mmiowb(); > spin_unlock(&foo->lock); David