mirror of https://github.com/torvalds/linux.git
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> |
||
|---|---|---|
| .. | ||
| android | ||
| arm64 | ||
| bpf | ||
| breakpoints | ||
| capabilities | ||
| cgroup | ||
| clone3 | ||
| cpu-hotplug | ||
| cpufreq | ||
| drivers | ||
| efivarfs | ||
| exec | ||
| filesystems | ||
| firmware | ||
| ftrace | ||
| futex | ||
| gpio | ||
| ia64 | ||
| intel_pstate | ||
| ipc | ||
| ir | ||
| kcmp | ||
| kexec | ||
| kmod | ||
| kselftest | ||
| kvm | ||
| lib | ||
| livepatch | ||
| locking | ||
| media_tests | ||
| membarrier | ||
| memfd | ||
| memory-hotplug | ||
| mount | ||
| mqueue | ||
| net | ||
| netfilter | ||
| networking/timestamping | ||
| nsfs | ||
| ntb | ||
| pidfd | ||
| powerpc | ||
| prctl | ||
| proc | ||
| pstore | ||
| ptp | ||
| ptrace | ||
| rcutorture | ||
| rseq | ||
| rtc | ||
| safesetid | ||
| seccomp | ||
| sigaltstack | ||
| size | ||
| sparc64 | ||
| splice | ||
| static_keys | ||
| sync | ||
| sysctl | ||
| tc-testing | ||
| timers | ||
| tmpfs | ||
| tpm2 | ||
| uevent | ||
| user | ||
| vDSO | ||
| vm | ||
| watchdog | ||
| x86 | ||
| zram | ||
| .gitignore | ||
| Makefile | ||
| gen_kselftest_tar.sh | ||
| kselftest.h | ||
| kselftest_harness.h | ||
| kselftest_install.sh | ||
| kselftest_module.h | ||
| lib.mk | ||