From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752994AbcAPVUr (ORCPT ); Sat, 16 Jan 2016 16:20:47 -0500 Received: from terminus.zytor.com ([198.137.202.10]:56680 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752935AbcAPVUo (ORCPT ); Sat, 16 Jan 2016 16:20:44 -0500 Date: Sat, 16 Jan 2016 13:19:38 -0800 From: tip-bot for Thomas Gleixner Message-ID: Cc: jiang.liu@linux.intel.com, jmmahler@gmail.com, mingo@kernel.org, tglx@linutronix.de, linux@roeck-us.net, hpa@zytor.com, linux-kernel@vger.kernel.org, joe.lawrence@stratus.com, bp@alien8.de Reply-To: bp@alien8.de, joe.lawrence@stratus.com, linux-kernel@vger.kernel.org, hpa@zytor.com, linux@roeck-us.net, tglx@linutronix.de, mingo@kernel.org, jmmahler@gmail.com, jiang.liu@linux.intel.com In-Reply-To: <20151231160106.967993932@linutronix.de> References: <20151231160106.967993932@linutronix.de> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/urgent] x86/irq: Remove the cpumask allocation from send_cleanup_vector() Git-Commit-ID: 5da0c1217f05d2ccc9a8ed6e6e5c23a8a1d24dd6 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: 5da0c1217f05d2ccc9a8ed6e6e5c23a8a1d24dd6 Gitweb: http://git.kernel.org/tip/5da0c1217f05d2ccc9a8ed6e6e5c23a8a1d24dd6 Author: Thomas Gleixner AuthorDate: Thu, 31 Dec 2015 16:30:52 +0000 Committer: Thomas Gleixner CommitDate: Fri, 15 Jan 2016 13:44:01 +0100 x86/irq: Remove the cpumask allocation from send_cleanup_vector() There is no need to allocate a new cpumask for sending the cleanup vector. The old_domain mask is now protected by the vector_lock, so we can safely remove the offline cpus from it and send the IPI with the resulting mask. Signed-off-by: Thomas Gleixner Tested-by: Borislav Petkov Tested-by: Joe Lawrence Cc: Jiang Liu Cc: Jeremiah Mahler Cc: andy.shevchenko@gmail.com Cc: Guenter Roeck Cc: stable@vger.kernel.org #4.3+ Link: http://lkml.kernel.org/r/20151231160106.967993932@linutronix.de Signed-off-by: Thomas Gleixner --- arch/x86/kernel/apic/vector.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c index ed62f9c..91dc274 100644 --- a/arch/x86/kernel/apic/vector.c +++ b/arch/x86/kernel/apic/vector.c @@ -530,21 +530,11 @@ static struct irq_chip lapic_controller = { #ifdef CONFIG_SMP static void __send_cleanup_vector(struct apic_chip_data *data) { - cpumask_var_t cleanup_mask; - raw_spin_lock(&vector_lock); + cpumask_and(data->old_domain, data->old_domain, cpu_online_mask); data->move_in_progress = 0; - if (unlikely(!alloc_cpumask_var(&cleanup_mask, GFP_ATOMIC))) { - unsigned int i; - - for_each_cpu_and(i, data->old_domain, cpu_online_mask) - apic->send_IPI_mask(cpumask_of(i), - IRQ_MOVE_CLEANUP_VECTOR); - } else { - cpumask_and(cleanup_mask, data->old_domain, cpu_online_mask); - apic->send_IPI_mask(cleanup_mask, IRQ_MOVE_CLEANUP_VECTOR); - free_cpumask_var(cleanup_mask); - } + if (!cpumask_empty(data->old_domain)) + apic->send_IPI_mask(data->old_domain, IRQ_MOVE_CLEANUP_VECTOR); raw_spin_unlock(&vector_lock); }