diff options
author | 2019-04-29 11:28:01 -0400 | |
---|---|---|
committer | 2019-05-07 15:33:00 -0600 | |
commit | 496fd0fc9f5c4c187e69e8697387a7604ab7141d (patch) | |
tree | c02c54efaa613849568fc55cee765f6e15ef6d66 /tools/testing/selftests/rseq | |
parent | rseq/selftests: aarch64 code signature: handle big-endian environment (diff) | |
download | linux-496fd0fc9f5c4c187e69e8697387a7604ab7141d.tar.gz linux-496fd0fc9f5c4c187e69e8697387a7604ab7141d.tar.bz2 linux-496fd0fc9f5c4c187e69e8697387a7604ab7141d.zip |
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>
Diffstat (limited to 'tools/testing/selftests/rseq')
-rw-r--r-- | tools/testing/selftests/rseq/rseq-ppc.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/tools/testing/selftests/rseq/rseq-ppc.h b/tools/testing/selftests/rseq/rseq-ppc.h index 9df18487fa9f..76be90196fe4 100644 --- a/tools/testing/selftests/rseq/rseq-ppc.h +++ b/tools/testing/selftests/rseq/rseq-ppc.h @@ -6,7 +6,15 @@ * (C) Copyright 2016-2018 - Boqun Feng <boqun.feng@gmail.com> */ -#define RSEQ_SIG 0x53053053 +/* + * RSEQ_SIG is used with the following trap instruction: + * + * powerpc-be: 0f e5 00 0b twui r5,11 + * powerpc64-le: 0b 00 e5 0f twui r5,11 + * powerpc64-be: 0f e5 00 0b twui r5,11 + */ + +#define RSEQ_SIG 0x0fe5000b #define rseq_smp_mb() __asm__ __volatile__ ("sync" ::: "memory", "cc") #define rseq_smp_lwsync() __asm__ __volatile__ ("lwsync" ::: "memory", "cc") |