On Mon, Sep 09, 2024 at 10:57:01AM +0800, WangYuli wrote: > From: Andrea Parri <parri.andrea@xxxxxxxxx> > > [ Upstream commit d6cfd1770f20392d7009ae1fdb04733794514fa9 ] > > The membarrier system call requires a full memory barrier after storing > to rq->curr, before going back to user-space. The barrier is only > needed when switching between processes: the barrier is implied by > mmdrop() when switching from kernel to userspace, and it's not needed > when switching from userspace to kernel. > > Rely on the feature/mechanism ARCH_HAS_MEMBARRIER_CALLBACKS and on the > primitive membarrier_arch_switch_mm(), already adopted by the PowerPC > architecture, to insert the required barrier. > > Fixes: fab957c11efe2f ("RISC-V: Atomic and Locking Code") > Signed-off-by: Andrea Parri <parri.andrea@xxxxxxxxx> > Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> > Link: https://lore.kernel.org/r/20240131144936.29190-2-parri.andrea@xxxxxxxxx > Signed-off-by: Palmer Dabbelt <palmer@xxxxxxxxxxxx> > Signed-off-by: WangYuli <wangyuli@xxxxxxxxxxxxx> > --- > MAINTAINERS | 2 +- > arch/riscv/Kconfig | 1 + > arch/riscv/include/asm/membarrier.h | 31 +++++++++++++++++++++++++++++ > arch/riscv/mm/context.c | 2 ++ > kernel/sched/core.c | 5 +++-- > 5 files changed, 38 insertions(+), 3 deletions(-) > create mode 100644 arch/riscv/include/asm/membarrier.h Now queued up, thanks. greg k-h