mbox series

[V4,0/4] arch: patch_text: Fixup last cpu should be master

Message ID 20220407073323.743224-1-guoren@kernel.org (mailing list archive)
Headers show
Series arch: patch_text: Fixup last cpu should be master | expand

Message

Guo Ren April 7, 2022, 7:33 a.m. UTC
From: Guo Ren <guoren@linux.alibaba.com>

These patch_text implementations are using stop_machine_cpuslocked
infrastructure with atomic cpu_count. The original idea: When the
master CPU patch_text, the others should wait for it. But current
implementation is using the first CPU as master, which couldn't
guarantee the remaining CPUs are waiting. This patch changes the
last CPU as the master to solve the potential risk.

Changes in v4:
 - Add "Fixes:" for stable fixup
 - Add cover letter for the patch series

Changes in v3:
 - Separate the patch for different arch.

Changes in v2:
 - Fixup num_online_cpus() - 1 is not last cpu

Guo Ren (4):
  arm64: patch_text: Fixup last cpu should be master
  riscv: patch_text: Fixup last cpu should be master
  xtensa: patch_text: Fixup last cpu should be master
  csky: patch_text: Fixup last cpu should be master

 arch/arm64/kernel/patching.c      | 4 ++--
 arch/csky/kernel/probes/kprobes.c | 2 +-
 arch/riscv/kernel/patch.c         | 2 +-
 arch/xtensa/kernel/jump_label.c   | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

Comments

Will Deacon April 8, 2022, 1:58 p.m. UTC | #1
On Thu, 7 Apr 2022 15:33:19 +0800, guoren@kernel.org wrote:
> From: Guo Ren <guoren@linux.alibaba.com>
> 
> These patch_text implementations are using stop_machine_cpuslocked
> infrastructure with atomic cpu_count. The original idea: When the
> master CPU patch_text, the others should wait for it. But current
> implementation is using the first CPU as master, which couldn't
> guarantee the remaining CPUs are waiting. This patch changes the
> last CPU as the master to solve the potential risk.
> 
> [...]

Applied first patch only to arm64 (for-next/fixes), thanks!

[1/4] arm64: patch_text: Fixup last cpu should be master
      https://git.kernel.org/arm64/c/31a099dbd91e

Cheers,