]> git.baikalelectronics.ru Git - kernel.git/commit
membarrier: Add an actual barrier before rseq_preempt()
authorAndy Lutomirski <luto@kernel.org>
Fri, 4 Dec 2020 05:07:04 +0000 (21:07 -0800)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 9 Dec 2020 08:37:43 +0000 (09:37 +0100)
commitbd3e5b56c1e7660d4aa5a3fbbfe1f11d47789c87
tree71a8e2068c97f6412dfcd8806cc42ca21099bb21
parent8b10acec74e348b62d2b2ecafebb12721f261486
membarrier: Add an actual barrier before rseq_preempt()

It seems that most RSEQ membarrier users will expect any stores done before
the membarrier() syscall to be visible to the target task(s).  While this
is extremely likely to be true in practice, nothing actually guarantees it
by a strict reading of the x86 manuals.  Rather than providing this
guarantee by accident and potentially causing a problem down the road, just
add an explicit barrier.

Fixes: be6b11d7b1c1 ("membarrier: Provide core serializing command, *_SYNC_CORE")
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/d3e7197e034fa4852afcf370ca49c30496e58e40.1607058304.git.luto@kernel.org
kernel/sched/membarrier.c