Re: [PATCH 10/20] mips/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()

From: Paul Burton
Date: Fri Mar 01 2019 - 17:16:25 EST


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