riscv: Use text_mutex instead of patch_lock
authorZong Li <zong.li@sifive.com>
Tue, 21 Apr 2020 07:30:01 +0000 (15:30 +0800)
committerPalmer Dabbelt <palmerdabbelt@google.com>
Mon, 18 May 2020 18:38:16 +0000 (11:38 -0700)
commit0ff7c3b331276f584bde3ae9a16bacd8fa3d01e6
tree24a3643591160902f453747ebc0d8f457ad86673
parent5303df244cbf2d9e5d37816c91c595a7afb7649a
riscv: Use text_mutex instead of patch_lock

We don't need the additional lock protection when patching the text.

There are two patching interfaces here:
 - patch_text: patch code and always synchronize with stop_machine()
 - patch_text_nosync: patch code without synchronization, it's caller's
                      responsibility to synchronize all CPUs if needed.

For the first one, stop_machine() is protected by its own mutex, and
also the irq is already disabled here.

For the second one, in risc-v real case now, it would be used to ftrace
patching the mcount function, since it already running under
kstop_machine(), no other thread will run, so we could use text_mutex
on ftrace side.

Signed-off-by: Zong Li <zong.li@sifive.com>
Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
arch/riscv/kernel/ftrace.c
arch/riscv/kernel/patch.c