From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755955AbcCBPxL (ORCPT ); Wed, 2 Mar 2016 10:53:11 -0500 Received: from mail.kernel.org ([198.145.29.136]:60960 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755451AbcCBPvQ (ORCPT ); Wed, 2 Mar 2016 10:51:16 -0500 Message-Id: <20160302155111.041944694@goodmis.org> User-Agent: quilt/0.61-1 Date: Wed, 02 Mar 2016 10:51:04 -0500 From: Steven Rostedt To: linux-kernel@vger.kernel.org, linux-rt-users Cc: Thomas Gleixner , Carsten Emde , Sebastian Andrzej Siewior , John Kacur , Paul Gortmaker Subject: [PATCH RT 04/10] kernel: migrate_disable() do fastpath in atomic & irqs-off References: <20160302155100.873557484@goodmis.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Disposition: inline; filename=0004-kernel-migrate_disable-do-fastpath-in-atomic-irqs-of.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.10.97-rt107-rc1 stable review patch. If anyone has any objections, please let me know. ------------------ From: Sebastian Andrzej Siewior With interrupts off it makes no sense to do the long path since we can't leave the CPU anyway. Also we might end up in a recursion with lockdep. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Steven Rostedt --- kernel/sched/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 6c21a28689b9..77f43eeac94a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2999,7 +2999,7 @@ void migrate_disable(void) { struct task_struct *p = current; - if (in_atomic()) { + if (in_atomic() || irqs_disabled()) { #ifdef CONFIG_SCHED_DEBUG p->migrate_disable_atomic++; #endif @@ -3034,7 +3034,7 @@ void migrate_enable(void) unsigned long flags; struct rq *rq; - if (in_atomic()) { + if (in_atomic() || irqs_disabled()) { #ifdef CONFIG_SCHED_DEBUG p->migrate_disable_atomic--; #endif -- 2.7.0