lkml.org 
[lkml]   [2012]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/8] sta2x11-mfd : add apb-soc regs driver and factor out common code
On Thu, Sep 27, 2012 at 03:13:14PM +0100, Alan Cox wrote:
> > as far as I know, nested locks are fine provided that you always take them in
> > the same order and release them in the opposite order (lock A, lock B,
> > unlock B, unlock A). So my conclusion is that nested spinlocks require
> > potential regmap users of sta2x11 registers to take the sta2x11-mfd spinlock
> > first. The pattern would be (sctl registers for instance):
>
> The release order does not matter. Taking AB and releasing AB or BA is
> fine. Taking AB and dropping B and retaking B is fine. Taking AB and
> somewhere else taking BA is not. There are performance reasons in some
> cases why taking AB releasing A is best with locks, but thats generally
> with sleepable locks.
>
thanks, I'd never really thought about the release pattern actually.
In this particular case, though, B is inside the regmap code and is taken and
released when a regmap call happens, so I think AB necessarily implies BA.
For instance:

lock(A);
regmap_read(...); /* Lock/unlock B */
unlock(A);

Thanks
Davide


\
 
 \ /
  Last update: 2012-09-28 18:01    [W:0.059 / U:1.300 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site