linux-stable/tools/testing/selftests/rseq
Mathieu Desnoyers 2a1f40adfb rseq/selftests: Clarify rseq_prepare_unload() helper requirements
The rseq.h UAPI now documents that the rseq_cs field must be cleared
before reclaiming memory that contains the targeted struct rseq_cs, but
also that the rseq_cs field must be cleared before reclaiming memory of
the code pointed to by the rseq_cs start_ip and post_commit_offset
fields.

While we can expect that use of dlclose(3) will typically unmap
both struct rseq_cs and its associated code at once, nothing would
theoretically prevent a JIT from reclaiming the code without
reclaiming the struct rseq_cs, which would erroneously allow the
kernel to consider new code which is not a rseq critical section
as a rseq critical section following a code reclaim.

Suggested-by: Florian Weimer <fw@deneb.enyo.de>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Shuah Khan <skhan@linuxfoundation.org>
Cc: Florian Weimer <fw@deneb.enyo.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: "Paul E. McKenney" <paulmck@linux.ibm.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>
Cc: Paul Turner <pjt@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2019-12-23 10:52:41 -07:00
..
.gitignore rseq/selftests: Provide Makefile, scripts, gitignore 2018-06-06 11:58:35 +02:00
basic_percpu_ops_test.c rseq/selftests: Provide basic percpu ops test 2018-06-06 11:58:35 +02:00
basic_test.c
Makefile rseq/selftests: add -no-integrated-as for clang 2019-05-07 15:33:17 -06:00
param_test.c rseq/selftests: Fix: Namespace gettid() for compatibility with glibc 2.30 2019-12-23 10:52:41 -07:00
rseq-arm.h rseq/selftests: Fix Thumb mode build failure on arm32 2019-07-08 13:00:41 -06:00
rseq-arm64.h rseq/selftests: aarch64 code signature: handle big-endian environment 2019-05-07 15:32:51 -06:00
rseq-mips.h rseq/selftests: mips: use break instruction for RSEQ_SIG 2019-05-07 15:33:09 -06:00
rseq-ppc.h rseq/selftests: powerpc code signature: generate valid instructions 2019-05-07 15:33:00 -06:00
rseq-s390.h linux-kselftest-5.2-rc1-2 2019-05-16 18:57:58 -07:00
rseq-skip.h
rseq-x86.h rseq/selftests: x86: use ud1 instruction as RSEQ_SIG opcode 2019-05-07 15:32:05 -06:00
rseq.c rseq/selftests: Use __rseq_handled symbol to coexist with glibc 2019-05-07 15:31:46 -06:00
rseq.h rseq/selftests: Clarify rseq_prepare_unload() helper requirements 2019-12-23 10:52:41 -07:00
run_param_test.sh rseq/selftests: Adapt number of threads to the number of detected cpus 2019-04-08 16:44:21 -06:00
settings rseq/selftests: Turn off timeout setting 2019-12-23 10:52:41 -07:00