]> git.itanic.dy.fi Git - linux-stable/commit
powerpc: Fix data-corrupting bug in __futex_atomic_op
authorPaul Mackerras <paulus@samba.org>
Wed, 15 Apr 2009 17:25:05 +0000 (17:25 +0000)
committerChris Wright <chrisw@sous-sol.org>
Mon, 27 Apr 2009 17:37:01 +0000 (10:37 -0700)
commit6c6737beae9981a707c1a4e1e9f1baf7cc47ce5f
tree78c49ceb108150eeb9adb529965e14b03ded746b
parentedc9c87244b85102863440a9fd84024414fdc179
powerpc: Fix data-corrupting bug in __futex_atomic_op

upstream commit: 306a82881b14d950d59e0b59a55093a07d82aa9a

Richard Henderson pointed out that the powerpc __futex_atomic_op has a
bug: it will write the wrong value if the stwcx. fails and it has to
retry the lwarx/stwcx. loop, since 'oparg' will have been overwritten
by the result from the first time around the loop.  This happens
because it uses the same register for 'oparg' (an input) as it uses
for the result.

This fixes it by using separate registers for 'oparg' and 'ret'.

Cc: stable@kernel.org
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
arch/powerpc/include/asm/futex.h