From patchwork Wed Jul 4 07:51:02 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Per Forlin X-Patchwork-Id: 1154761 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork1.kernel.org (Postfix) with ESMTP id 4B0123FE4F for ; Wed, 4 Jul 2012 07:58:59 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1SmKQB-0004hL-55; Wed, 04 Jul 2012 07:54:47 +0000 Received: from eu1sys200aog118.obsmtp.com ([207.126.144.145]) by merlin.infradead.org with smtps (Exim 4.76 #1 (Red Hat Linux)) id 1SmKNS-0004WL-Vo for linux-arm-kernel@lists.infradead.org; Wed, 04 Jul 2012 07:52:02 +0000 Received: from beta.dmz-ap.st.com ([138.198.100.35]) (using TLSv1) by eu1sys200aob118.postini.com ([207.126.147.11]) with SMTP ID DSNKT/P1/yPS0mmu9XoJdhLZqzzEBQ+7h0Ya@postini.com; Wed, 04 Jul 2012 07:51:58 UTC Received: from zeta.dmz-ap.st.com (ns6.st.com [138.198.234.13]) by beta.dmz-ap.st.com (STMicroelectronics) with ESMTP id A21F9B9; Wed, 4 Jul 2012 07:43:06 +0000 (GMT) Received: from relay1.stm.gmessaging.net (unknown [10.230.100.17]) by zeta.dmz-ap.st.com (STMicroelectronics) with ESMTP id BABC01766; Wed, 4 Jul 2012 07:51:23 +0000 (GMT) Received: from exdcvycastm022.EQ1STM.local (alteon-source-exch [10.230.100.61]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (Client CN "exdcvycastm022", Issuer "exdcvycastm022" (not verified)) by relay1.stm.gmessaging.net (Postfix) with ESMTPS id 439B124C07C; Wed, 4 Jul 2012 09:51:18 +0200 (CEST) Received: from steludxu4076.lud.stericsson.com (10.230.100.153) by smtp.stericsson.com (10.230.100.30) with Microsoft SMTP Server (TLS) id 8.3.83.0; Wed, 4 Jul 2012 09:51:22 +0200 From: Per Forlin To: Will Deacon , Linus Walleij , Subject: [PATCH] ARM: reboot: disable nonboot CPUs Date: Wed, 4 Jul 2012 09:51:02 +0200 Message-ID: <1341388262-3801-1-git-send-email-per.forlin@stericsson.com> X-Mailer: git-send-email 1.7.10 MIME-Version: 1.0 X-Spam-Note: CRM114 invocation failed X-Spam-Score: -4.2 (----) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-4.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at http://www.dnswl.org/, medium trust [207.126.144.145 listed in list.dnswl.org] -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: Per Forlin , Russell King X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org Disable the nonboot CPUs to safely migrate tasks and interrupts to the boot CPU. This will prevent the nonboot CPUs to interfer or block the boot CPU from being able to reboot the system successfully. This reboot issue was detected on u8500 when using ab8500 to initaite a system restart. The issue happens because smp_send_stop() stops the CPUs wihouth migrating all resources. If not issuing smp_send_stop() u8500 reboots successfully. It's optional to support CONFIG_PM_SLEEP_SMP therefore smp_send_stop() can't simply be replaced by disable_nonboot_cpus() Signed-off-by: Per Forlin --- arch/arm/kernel/process.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 864580a..aab4f81 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c @@ -239,6 +239,7 @@ __setup("reboot=", reboot_setup); void machine_shutdown(void) { + disable_nonboot_cpus(); #ifdef CONFIG_SMP smp_send_stop(); #endif