From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1425776AbdEZItZ (ORCPT ); Fri, 26 May 2017 04:49:25 -0400 Received: from terminus.zytor.com ([65.50.211.136]:56799 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1425741AbdEZItW (ORCPT ); Fri, 26 May 2017 04:49:22 -0400 Date: Fri, 26 May 2017 01:46:46 -0700 From: tip-bot for Thomas Gleixner Message-ID: Cc: heiko.carstens@de.ibm.com, mingo@kernel.org, paulmck@linux.vnet.ibm.com, bigeasy@linutronix.de, rostedt@goodmis.org, peterz@infradead.org, linux-kernel@vger.kernel.org, hpa@zytor.com, tglx@linutronix.de, schwidefsky@de.ibm.com Reply-To: heiko.carstens@de.ibm.com, mingo@kernel.org, paulmck@linux.vnet.ibm.com, rostedt@goodmis.org, peterz@infradead.org, bigeasy@linutronix.de, linux-kernel@vger.kernel.org, hpa@zytor.com, schwidefsky@de.ibm.com, tglx@linutronix.de In-Reply-To: <20170524081549.354513406@linutronix.de> References: <20170524081549.354513406@linutronix.de> To: linux-tip-commits@vger.kernel.org Subject: [tip:smp/hotplug] s390: Prevent hotplug rwsem recursion Git-Commit-ID: 5d5dbc4ef27e72104dea6102e4d1a1bf5a8ed971 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: 5d5dbc4ef27e72104dea6102e4d1a1bf5a8ed971 Gitweb: http://git.kernel.org/tip/5d5dbc4ef27e72104dea6102e4d1a1bf5a8ed971 Author: Thomas Gleixner AuthorDate: Wed, 24 May 2017 10:15:39 +0200 Committer: Thomas Gleixner CommitDate: Fri, 26 May 2017 10:10:46 +0200 s390: Prevent hotplug rwsem recursion The text patching functions which are invoked from jump_label and kprobes code are protected against cpu hotplug at the call sites. Use stop_machine_cpuslocked() to avoid recursion on the cpu hotplug rwsem. stop_machine_cpuslocked() contains a lockdep assertion to catch any unprotected callers. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Acked-by: Heiko Carstens Cc: Paul E. McKenney Cc: linux-s390@vger.kernel.org Cc: Peter Zijlstra Cc: Sebastian Siewior Cc: Steven Rostedt Cc: Martin Schwidefsky Link: http://lkml.kernel.org/r/20170524081549.354513406@linutronix.de --- arch/s390/kernel/jump_label.c | 2 +- arch/s390/kernel/kprobes.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/s390/kernel/jump_label.c b/arch/s390/kernel/jump_label.c index 6aa630a..262506c 100644 --- a/arch/s390/kernel/jump_label.c +++ b/arch/s390/kernel/jump_label.c @@ -93,7 +93,7 @@ void arch_jump_label_transform(struct jump_entry *entry, args.entry = entry; args.type = type; - stop_machine(__sm_arch_jump_label_transform, &args, NULL); + stop_machine_cpuslocked(__sm_arch_jump_label_transform, &args, NULL); } void arch_jump_label_transform_static(struct jump_entry *entry, diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index 3d6a997..6842e45 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c @@ -196,7 +196,7 @@ void arch_arm_kprobe(struct kprobe *p) { struct swap_insn_args args = {.p = p, .arm_kprobe = 1}; - stop_machine(swap_instruction, &args, NULL); + stop_machine_cpuslocked(swap_instruction, &args, NULL); } NOKPROBE_SYMBOL(arch_arm_kprobe); @@ -204,7 +204,7 @@ void arch_disarm_kprobe(struct kprobe *p) { struct swap_insn_args args = {.p = p, .arm_kprobe = 0}; - stop_machine(swap_instruction, &args, NULL); + stop_machine_cpuslocked(swap_instruction, &args, NULL); } NOKPROBE_SYMBOL(arch_disarm_kprobe);