Hi Will, On Fri, Mar 01, 2019 at 02:03:38PM +0000, Will Deacon wrote: > The mmiowb() macro is horribly difficult to use and drivers will continue > to work most of the time if they omit a call when it is required. > > Rather than rely on driver authors getting this right, push mmiowb() into > arch_spin_unlock() for mips. If this is deemed to be a performance issue, > a subsequent optimisation could make use of ARCH_HAS_MMIOWB to elide > the barrier in cases where no I/O writes were performed inside the > critical section. > > Signed-off-by: Will Deacon <will.deacon@xxxxxxx> Cleaning up our I/O functions has been on my to-do list for a while, so I'll aim to get to that soon & get the calls to mmiowb_set_pending() in place as part of it so that we can look at that optimization & drop the custom queued_spin_unlock(). Meanwhile this looks sane & I don't want to hold it up so: Acked-by: Paul Burton <paul.burton@xxxxxxxx> Thanks, Paul