• Mathieu Desnoyers's avatar
    rseq/selftests: Clarify rseq_prepare_unload() helper requirements · 2a1f40ad
    Mathieu Desnoyers authored
    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: default avatarFlorian Weimer <fw@deneb.enyo.de>
    Signed-off-by: default avatarMathieu 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: default avatarShuah Khan <skhan@linuxfoundation.org>
    2a1f40ad
rseq.h 4.3 KB