Re: [PATCH v3 10/25] openrisc: add spinlock implementation

From: Peter Zijlstra
Date: Wed Feb 22 2017 - 07:09:38 EST


On Wed, Feb 22, 2017 at 12:41:17PM +0100, Peter Zijlstra wrote:
> On Wed, Feb 22, 2017 at 04:11:39AM +0900, Stafford Horne wrote:
> > +static inline void arch_spin_unlock(arch_spinlock_t *lock)
> > +{
> > + smp_mb();
> > + lock->tickets.owner++;
> > +}
>
> This is putting a lot of trust in the compiler, nothing is volatile so
> it can do horrible things.

Also, your architecture manual seems to not explicitly mention how
l.lwa/l.swa interact with overlapping l.sh.

In fact, I can read the text such that its done 'wrong'.