[PATCH] ARM: locks: remove opencoded #16 for ticket shift

Will Deacon will.deacon at arm.com
Thu Jul 18 13:21:59 EDT 2013


On Wed, Jul 17, 2013 at 02:56:59PM +0100, Nicolas Pitre wrote:
> On Mon, 15 Jul 2013, Will Deacon wrote:
> 
> > The ticket width of our spinlocks is defined by TICKET_SHIFT, so remove
> > the opencoded #16 from the trylock implementation.
> > 
> > Signed-off-by: Will Deacon <will.deacon at arm.com>
> 
> This is pointless.

I disagree (see below).

> >  		"	ldrex	%0, [%3]\n"
> >  		"	mov	%2, #0\n"
> > -		"	subs	%1, %0, %0, ror #16\n"
> 
> Any value other than 16 would break that code.  You'd rather ensure it 
> never gets defined to anything else.

There are two aspects to the ticket lock:

  1. The size of each ticket
  2. The location of the next ticket within the 32-bit lock word

TICKET_SHIFT actually defines (2) and could be 0 or 16, hence why I was
making this small cosmetic change. I admit that the naming isn't very good
and I should change the commit message to reflect what's actually going on.

Cheers,

Will



More information about the linux-arm-kernel mailing list