From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755005AbcKUPyl (ORCPT ); Mon, 21 Nov 2016 10:54:41 -0500 Received: from terminus.zytor.com ([198.137.202.10]:40632 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754250AbcKUPyk (ORCPT ); Mon, 21 Nov 2016 10:54:40 -0500 Date: Mon, 21 Nov 2016 07:54:34 -0800 From: tip-bot for Anna-Maria Gleixner Message-ID: Cc: rric@kernel.org, hpa@zytor.com, mingo@kernel.org, linux-kernel@vger.kernel.org, bigeasy@linutronix.de, anna-maria@linutronix.de, tglx@linutronix.de Reply-To: linux-kernel@vger.kernel.org, tglx@linutronix.de, anna-maria@linutronix.de, bigeasy@linutronix.de, rric@kernel.org, mingo@kernel.org, hpa@zytor.com In-Reply-To: <20161117183541.8588-19-bigeasy@linutronix.de> References: <20161117183541.8588-19-bigeasy@linutronix.de> To: linux-tip-commits@vger.kernel.org Subject: [tip:smp/hotplug] x86/oprofile/nmi: Remove superfluous smp_function_call_single() Git-Commit-ID: 9cb37ce65de7a6c645de2ab536807a4ba244c83a 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: 9cb37ce65de7a6c645de2ab536807a4ba244c83a Gitweb: http://git.kernel.org/tip/9cb37ce65de7a6c645de2ab536807a4ba244c83a Author: Anna-Maria Gleixner AuthorDate: Thu, 17 Nov 2016 19:35:39 +0100 Committer: Thomas Gleixner CommitDate: Mon, 21 Nov 2016 16:37:09 +0100 x86/oprofile/nmi: Remove superfluous smp_function_call_single() Since commit 1cf4f629d9d2 ("cpu/hotplug: Move online calls to hotplugged cpu") the CPU_ONLINE and CPU_DOWN_PREPARE notifiers are always run on the hot plugged CPU, and as of commit 3b9d6da67e11 ("cpu/hotplug: Fix rollback during error-out in __cpu_disable()") the CPU_DOWN_FAILED notifier also runs on the hot plugged CPU. This patch converts the SMP functional calls into direct calls. smp_call_function_single() executes the function with interrupts disabled. This calling convention is preserved. Signed-off-by: Anna-Maria Gleixner Signed-off-by: Sebastian Andrzej Siewior Cc: Robert Richter Cc: rt@linuxtronix.de Cc: oprofile-list@lists.sf.net Link: http://lkml.kernel.org/r/20161117183541.8588-19-bigeasy@linutronix.de Signed-off-by: Thomas Gleixner --- arch/x86/oprofile/nmi_int.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index 28c0412..c39172c 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c @@ -387,20 +387,24 @@ static void nmi_cpu_shutdown(void *dummy) nmi_cpu_restore_registers(msrs); } -static void nmi_cpu_up(void *dummy) +static void nmi_cpu_up(void) { + local_irq_disable(); if (nmi_enabled) - nmi_cpu_setup(dummy); + nmi_cpu_setup(NULL); if (ctr_running) - nmi_cpu_start(dummy); + nmi_cpu_start(NULL); + local_irq_enable(); } -static void nmi_cpu_down(void *dummy) +static void nmi_cpu_down(void) { + local_irq_disable(); if (ctr_running) - nmi_cpu_stop(dummy); + nmi_cpu_stop(NULL); if (nmi_enabled) - nmi_cpu_shutdown(dummy); + nmi_cpu_shutdown(NULL); + local_irq_enable(); } static int nmi_create_files(struct dentry *root) @@ -436,15 +440,13 @@ static int nmi_create_files(struct dentry *root) static int oprofile_cpu_notifier(struct notifier_block *b, unsigned long action, void *data) { - int cpu = (unsigned long)data; - switch (action & ~CPU_TASKS_FROZEN) { case CPU_DOWN_FAILED: case CPU_ONLINE: - smp_call_function_single(cpu, nmi_cpu_up, NULL, 0); + nmi_cpu_up(); break; case CPU_DOWN_PREPARE: - smp_call_function_single(cpu, nmi_cpu_down, NULL, 1); + nmi_cpu_down(); break; } return NOTIFY_DONE;