]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/tm: P9 disable transactionally suspended sigcontexts
authorMichael Neuling <mikey@neuling.org>
Thu, 12 Oct 2017 10:17:19 +0000 (21:17 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 20 Oct 2017 22:36:28 +0000 (09:36 +1100)
commit690d76bdbde804bc948023163f448cae8cf8d97a
tree22a6b0e98a096b34dd91adb60f505106a97078f5
parent128afce3be2892eb67450e771bc491662c704fcf
powerpc/tm: P9 disable transactionally suspended sigcontexts

Unfortunately userspace can construct a sigcontext which enables
suspend. Thus userspace can force Linux into a path where trechkpt is
executed.

This patch blocks this from happening on POWER9 by sanity checking
sigcontexts passed in.

ptrace doesn't have this problem as only MSR SE and BE can be changed
via ptrace.

This patch also adds a number of WARN_ON()s in case we ever enter
suspend when we shouldn't. This should not happen, but if it does the
symptoms are soft lockup warnings which are not obviously TM related,
so the WARN_ON()s should make it obvious what's happening.

Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Cyril Bur <cyrilbur@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/process.c
arch/powerpc/kernel/signal_32.c
arch/powerpc/kernel/signal_64.c