On Fri, 2012-08-24 at 13:36 +0100, Will Deacon wrote:
> The open-coded mutex implementation for ARMv6+ cores suffers from a
> severe lack of barriers, so in the uncontended case we don't actually
> protect any accesses performed during the critical section.
> 
> Furthermore, the code is largely a duplication of the ARMv6+ atomic_dec
> code but optimised to remove a branch instruction, as the mutex fastpath
> was previously inlined. Now that this is executed out-of-line, we can
> reuse the atomic access code for the locking (in fact, we use the xchg
> code as this produces shorter critical sections).
> 
> This patch uses the generic xchg based implementation for mutexes on
> ARMv6+, which introduces barriers to the lock/unlock operations and also
> has the benefit of removing a fair amount of inline assembly code.
> 
> Cc: <[email protected]> : 0bce9c46: mutex: Place lock in contended...
> Cc: <[email protected]>
> Acked-by: Arnd Bergmann <[email protected]>
> Acked-by: Nicolas Pitre <[email protected]>
> Reported-by: Shan Kang <[email protected]>
> Signed-off-by: Will Deacon <[email protected]>
> Signed-off-by: Russell King <[email protected]>
> ---
> 
> Greg, Ben: Here's a re-send of this mutex patch now that the dependency
> has been merged into mainline. Although that patch also has a CC: stable,
> I added an explicit dependency here too.
[...]

I thought this had been deferred, but it actually already went into
3.2.27.  The fix you refer to is queued up for the next 3.2 update.

Ben.

-- 
Ben Hutchings
Time is nature's way of making sure that everything doesn't happen at once.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to