68fc378ce3
This reverts commitfeba40362b
. 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:feba40362b
("powerpc/tm: Abort syscalls in active transactions") Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
21 lines
689 B
C
21 lines
689 B
C
#ifndef _ASM_POWERPC_TM_H
|
|
#define _ASM_POWERPC_TM_H
|
|
|
|
/* Reason codes describing kernel causes for transaction aborts. By
|
|
* convention, bit0 is copied to TEXASR[56] (IBM bit 7) which is set if
|
|
* the failure is persistent. PAPR saves 0xff-0xe0 for the hypervisor.
|
|
*/
|
|
#define TM_CAUSE_PERSISTENT 0x01
|
|
#define TM_CAUSE_KVM_RESCHED 0xe0 /* From PAPR */
|
|
#define TM_CAUSE_KVM_FAC_UNAV 0xe2 /* From PAPR */
|
|
#define TM_CAUSE_RESCHED 0xde
|
|
#define TM_CAUSE_TLBI 0xdc
|
|
#define TM_CAUSE_FAC_UNAV 0xda
|
|
#define TM_CAUSE_SYSCALL 0xd8 /* future use */
|
|
#define TM_CAUSE_MISC 0xd6 /* future use */
|
|
#define TM_CAUSE_SIGNAL 0xd4
|
|
#define TM_CAUSE_ALIGNMENT 0xd2
|
|
#define TM_CAUSE_EMULATE 0xd0
|
|
|
|
#endif
|