Skip to content

Commit ee69d4b

Browse files
guoren83jcmvbkbc
authored andcommitted
xtensa: patch_text: Fixup last cpu should be master
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. Fixes: 64711f9 ("xtensa: implement jump_label support") Signed-off-by: Guo Ren <guoren@linux.alibaba.com> Signed-off-by: Guo Ren <guoren@kernel.org> Reviewed-by: Max Filippov <jcmvbkbc@gmail.com> Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org> Cc: <stable@vger.kernel.org> Message-Id: <20220407073323.743224-4-guoren@kernel.org> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
1 parent ce522ba commit ee69d4b

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

arch/xtensa/kernel/jump_label.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ static int patch_text_stop_machine(void *data)
4040
{
4141
struct patch *patch = data;
4242

43-
if (atomic_inc_return(&patch->cpu_count) == 1) {
43+
if (atomic_inc_return(&patch->cpu_count) == num_online_cpus()) {
4444
local_patch_text(patch->addr, patch->data, patch->sz);
4545
atomic_inc(&patch->cpu_count);
4646
} else {

0 commit comments

Comments
 (0)