]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "powerpc/tm: Abort syscalls in active transactions"
authorMichael Ellerman <mpe@ellerman.id.au>
Thu, 30 Apr 2015 05:13:14 +0000 (15:13 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 30 Apr 2015 05:24:58 +0000 (15:24 +1000)
commit7eb9dda9330bbd710ff79b4bc7234f887f4ce647
tree5a539c138cad206146296eaf0c6e0ea81655d4ee
parent5b46ec2293db3162d902c78d159c307d127bb0a4
Revert "powerpc/tm: Abort syscalls in active transactions"

This reverts commit 428a6d3ff0b9f8d826d49df61cd2780005f43e71.

Although the principle of this change is good, the implementation has a
few issues.

Firstly we can sometimes fail to abort a syscall because r12 may have
been clobbered by C code if we went down the virtual CPU accounting
path, or if syscall tracing was enabled.

Secondly we have decided that it is safer to abort the syscall even
earlier in the syscall entry path, so that we avoid the syscall tracing
path when we are transactional.

So that we have time to thoroughly test those changes we have decided to
revert this for this merge window and will merge the fixed version in
the next window.

NB. Rather than reverting the selftest we just drop tm-syscall from
TEST_PROGS so that it's not run by default.

Fixes: 428a6d3ff0b9 ("powerpc/tm: Abort syscalls in active transactions")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Documentation/powerpc/transactional_memory.txt
arch/powerpc/include/uapi/asm/tm.h
arch/powerpc/kernel/entry_64.S
tools/testing/selftests/powerpc/tm/Makefile