Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

rseq/selftests: powerpc code signature: generate valid instructions

Use "twui" as the guard instruction for the restartable sequence abort
handler.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Paul Mackerras <paulus@samba.org>
CC: Michael Ellerman <mpe@ellerman.id.au>
CC: Boqun Feng <boqun.feng@gmail.com>
CC: Peter Zijlstra <peterz@infradead.org>
CC: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
CC: Alan Modra <amodra@gmail.com>
CC: linuxppc-dev@lists.ozlabs.org
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>

authored by

Mathieu Desnoyers and committed by
Shuah Khan
496fd0fc 7cd4ce2e

+9 -1
+9 -1
tools/testing/selftests/rseq/rseq-ppc.h
··· 6 6 * (C) Copyright 2016-2018 - Boqun Feng <boqun.feng@gmail.com> 7 7 */ 8 8 9 - #define RSEQ_SIG 0x53053053 9 + /* 10 + * RSEQ_SIG is used with the following trap instruction: 11 + * 12 + * powerpc-be: 0f e5 00 0b twui r5,11 13 + * powerpc64-le: 0b 00 e5 0f twui r5,11 14 + * powerpc64-be: 0f e5 00 0b twui r5,11 15 + */ 16 + 17 + #define RSEQ_SIG 0x0fe5000b 10 18 11 19 #define rseq_smp_mb() __asm__ __volatile__ ("sync" ::: "memory", "cc") 12 20 #define rseq_smp_lwsync() __asm__ __volatile__ ("lwsync" ::: "memory", "cc")