Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754047Ab3EMKQW (ORCPT ); Mon, 13 May 2013 06:16:22 -0400 Received: from mail-bk0-f48.google.com ([209.85.214.48]:40022 "EHLO mail-bk0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751419Ab3EMKQU (ORCPT ); Mon, 13 May 2013 06:16:20 -0400 Message-ID: <5190BD5D.1000507@gmail.com> Date: Mon, 13 May 2013 12:15:57 +0200 From: Wladislav Wiebe User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130308 Thunderbird/17.0.4 MIME-Version: 1.0 To: Ralf Baechle , david.daney@cavium.com CC: paul.gortmaker@windriver.com, borislav.petkov@amd.com, muvarov@gmail.com, linux-kernel@vger.kernel.org Subject: [PATCH 1/1] MIPS: Octeon: fix for held reboot_mutex lock at task exit time Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2862 Lines: 75 From: Wladislav Wiebe When kernel halt's will reboot_mutex lock still hold at exit. It will issue with 'halt' command: $ halt .. Sent SIGKILL to all processes Requesting system halt [66.729373] System halted. [66.733244] [66.734761] ===================================== [66.739473] [ BUG: lock held at task exit time! ] [66.744188] 3.8.7-0-sampleversion-fct #49 Tainted: G O [66.750202] ------------------------------------- [66.754913] init/21479 is exiting with locks still held! [66.760234] 1 lock held by init/21479: [66.763990] #0: (reboot_mutex){+.+...}, at: [] SyS_reboot+0xe0/0x218 [66.772165] [66.772165] stack backtrace: [66.776532] Call Trace: [66.778992] [] dump_stack+0x8/0x34 [66.783972] [] do_exit+0x610/0xa70 [66.788948] [] SyS_reboot+0x1c0/0x218 [66.794186] [] handle_sys64+0x44/0x64 With this commit we will still have a proper halt sequence and the reboot_mutex held bug is gone: (added printk's to affected functions) $ halt .. ent SIGKILL to all processes Requesting system halt [70.258665] DBG: kernel/sys.c, 486, SYSC_reboot: (case LINUX_REBOOT_CMD_HALT:) [70.268953] DBG: kernel/sys.c, 396, kernel_halt: (kernel_shutdown_prepare(..);) [70.284069] DBG: kernel/sys.c, 398, kernel_halt: (syscore_shutdown();) [70.294364] DBG: kernel/sys.c, 400, kernel_halt: (kmsg_dump(KMSG_DUMP_HALT);) [70.304640] System halted. [70.307363] DBG: kernel/sys.c, 403, kernel_halt: (machine_halt();) [70.317640] DBG: arch/mips/cavium-octeon/setup.c, 502, octeon_halt: [70.329582] DBG: arch/mips/cavium-octeon/setup.c, 485, octeon_kill_core: (core1) [70.329588] DBG: arch/mips/cavium-octeon/setup.c, 485, octeon_kill_core: (core2) [70.329594] DBG: arch/mips/cavium-octeon/setup.c, 485, octeon_kill_core: (core3) [70.329600] DBG: arch/mips/cavium-octeon/setup.c, 485, octeon_kill_core: (core4) [70.329607] DBG: arch/mips/cavium-octeon/setup.c, 485, octeon_kill_core: (core5) [70.329614] DBG: arch/mips/cavium-octeon/setup.c, 485, octeon_kill_core: (core6) In this case on a 6 Core Cavium Octeon board. Signed-off-by: Wladislav Wiebe --- arch/mips/cavium-octeon/setup.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c index b0baa29..04ce396 100644 --- a/arch/mips/cavium-octeon/setup.c +++ b/arch/mips/cavium-octeon/setup.c @@ -457,6 +457,10 @@ static void octeon_halt(void) } octeon_kill_core(NULL); + + /* We stop here */ + while (1) + ; } /** -- 1.7.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/