Skip to content
Snippets Groups Projects
  • Michael Ellerman's avatar
    Revert "powerpc/tm: Abort syscalls in active transactions" · 68fc378c
    Michael Ellerman authored
    
    This reverts commit feba4036.
    
    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: feba4036 ("powerpc/tm: Abort syscalls in active transactions")
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    68fc378c
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
tm.h 689 B
#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