Re: [RFC][PATCH] mips: Fix arch_spin_unlock()

From: Will Deacon
Date: Tue Feb 02 2016 - 12:37:41 EST


On Tue, Feb 02, 2016 at 09:12:37AM -0800, Paul E. McKenney wrote:
> On Tue, Feb 02, 2016 at 12:20:25PM +0000, Will Deacon wrote:
> > On Tue, Feb 02, 2016 at 08:12:30PM +0800, Boqun Feng wrote:
> > > On Tue, Feb 02, 2016 at 11:45:59AM +0000, Will Deacon wrote:
> > > > Well, the following ISA2 test is permitted on ARM:
> > > >
> > > >
> > > > P0:
> > > > Wx=1
> > > > WyRel=1 // rcu_assign_pointer
> > > >
> > > > P1:
> > > > Ry=1 // rcu_dereference
> > >
> > > What if a <addr> dependency is added here? Same result?
> >
> > Right, that fixes it. So if we're only considering things like:
> >
> > rcu_dereference
> > <addr>
> > RELEASE
> >
> > then local transitivity should be preserved.
>
> Whew!!! ;-)
>
> > I think the same applies to <ctrl>, which seems to match your later
> > example.
>
> Could you please check?

I should've been more concrete here: it does indeed apply if you replace
the <addr> with a <ctrl> in the snippet above, I just hadn't got Boqun's
example paged in and didn't want to commit on the examples being identical.

Will