On Mon, 26 Nov 2018 18:12:00 -0200 Breno Leitao <leitao@xxxxxxxxxx> wrote: > There is a TM Bad Thing bug that can be caused when you return from a > signal context in a suspended transaction but with ucontext MSR[TS] unset. > > This forces regs->msr[TS] to be set at syscall entrance (since the CPU > state is transactional). It also calls treclaim() to flush the transaction > state, which is done based on the live (mfmsr) MSR state. > > Since user context MSR[TS] is not set, then restore_tm_sigcontexts() is not > called, thus, not executing recheckpoint, keeping the CPU state as not > transactional. When calling rfid, SRR1 will have MSR[TS] set, but the CPU > state is non transactional, causing the TM Bad Thing with the following > stack: > Works for me on Linux 4.4 and 4.12 Tested-by: Michal Suchánek <msuchanek@xxxxxxx> Thanks