From patchwork Tue Jan 13 10:25:46 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kiran Kumar Raparthy X-Patchwork-Id: 42981 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-la0-f69.google.com (mail-la0-f69.google.com [209.85.215.69]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 7EA4320DE8 for ; Tue, 13 Jan 2015 10:26:34 +0000 (UTC) Received: by mail-la0-f69.google.com with SMTP id gd6sf1203052lab.0 for ; Tue, 13 Jan 2015 02:26:33 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:sender:precedence:list-id:x-original-sender :x-original-authentication-results:mailing-list:list-post:list-help :list-archive:list-unsubscribe; bh=DPtP+OrbOyN0msC4O66oK1tsly81FYJQCM/qZpzqT68=; b=SINEA31YfVanFtoYG+pZOCEqmimU9H9k+BYYQ0VJv1UvpHdd1PQ5GYATvmcEYoZNlQ COz/EB7b94ga+FZOSYDoTvm0AYsHt6TDJWM+g+gSQTXHazMnVA1Ml2uVaM1Q05Z1m83E usGKp+flzzR80bRaeyxIKDjMEH+KfQVC5ZFhHql4AmX1YfeK6bYZhdWCDEpvq5l7SEoC rzbGa1PFMql9zhn9HLoOJFfyIiM7O2jFd/VKDyMHTFOH09CZtvn4HBWbWgU5T/weccph Gm31XSKv4TNyPl04/8C2caxAflAHRpk6Bbit7wWKrt/4bKxApO6VtKLsnNwOE2jD80l2 gcCQ== X-Gm-Message-State: ALoCoQm+ckkc4ZO1hH7qhfgWhB0cVl4kSlmZq3GhP18sbeYki1W66pisKx3VDMpjlISuRWO++XTp X-Received: by 10.180.77.167 with SMTP id t7mr2740249wiw.6.1421144793430; Tue, 13 Jan 2015 02:26:33 -0800 (PST) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.42.133 with SMTP id o5ls650495lal.78.gmail; Tue, 13 Jan 2015 02:26:33 -0800 (PST) X-Received: by 10.152.120.97 with SMTP id lb1mr41606527lab.76.1421144793240; Tue, 13 Jan 2015 02:26:33 -0800 (PST) Received: from mail-lb0-f181.google.com (mail-lb0-f181.google.com. [209.85.217.181]) by mx.google.com with ESMTPS id wx1si23843723lbb.50.2015.01.13.02.26.33 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 13 Jan 2015 02:26:33 -0800 (PST) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.181 as permitted sender) client-ip=209.85.217.181; Received: by mail-lb0-f181.google.com with SMTP id l4so1769526lbv.12 for ; Tue, 13 Jan 2015 02:26:33 -0800 (PST) X-Received: by 10.112.52.229 with SMTP id w5mr41406931lbo.52.1421144793123; Tue, 13 Jan 2015 02:26:33 -0800 (PST) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.9.200 with SMTP id c8csp1337657lbb; Tue, 13 Jan 2015 02:26:32 -0800 (PST) X-Received: by 10.66.100.166 with SMTP id ez6mr51303596pab.83.1421144791244; Tue, 13 Jan 2015 02:26:31 -0800 (PST) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id io10si26338124pbc.246.2015.01.13.02.26.30; Tue, 13 Jan 2015 02:26:31 -0800 (PST) Received-SPF: none (google.com: linux-kernel-owner@vger.kernel.org does not designate permitted sender hosts) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752438AbbAMK0Y (ORCPT + 27 others); Tue, 13 Jan 2015 05:26:24 -0500 Received: from mail-pd0-f171.google.com ([209.85.192.171]:34953 "EHLO mail-pd0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752401AbbAMK0T (ORCPT ); Tue, 13 Jan 2015 05:26:19 -0500 Received: by mail-pd0-f171.google.com with SMTP id y13so2762516pdi.2 for ; Tue, 13 Jan 2015 02:26:18 -0800 (PST) X-Received: by 10.68.193.135 with SMTP id ho7mr50594928pbc.103.1421144778611; Tue, 13 Jan 2015 02:26:18 -0800 (PST) Received: from c-krapar-linux.qualcomm.com ([202.46.23.54]) by mx.google.com with ESMTPSA id a6sm16572971pbu.64.2015.01.13.02.26.15 (version=TLSv1 cipher=RC4-SHA bits=128/128); Tue, 13 Jan 2015 02:26:17 -0800 (PST) From: Kiran Raparthy To: linux-kernel@vger.kernel.org Cc: Colin Cross , Jason Wessel , kgdb-bugreport@lists.sourceforge.net, Android Kernel Team , John Stultz , Sumit Semwal , Kiran Raparthy Subject: [RFC v5] debug: prevent entering debug mode on panic/exception. Date: Tue, 13 Jan 2015 15:55:46 +0530 Message-Id: <1421144746-23845-1-git-send-email-kiran.kumar@linaro.org> X-Mailer: git-send-email 1.8.2.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: kiran.kumar@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.181 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , From: Colin Cross debug: prevent entering debug mode on panic/exception. On non-developer devices, kgdb prevents the device from rebooting after a panic. Incase of panics and exceptions, to allow the device to reboot, prevent entering debug mode to avoid getting stuck waiting for the user to interact with debugger. To avoid entering the debugger on panic/exception without any extra configuration, panic_timeout is being used which can be set via /proc/sys/kernel/panic at run time and CONFIG_PANIC_TIMEOUT sets the default value. Setting panic_timeout indicates that the user requested machine to perform unattended reboot after panic. We dont want to get stuck waiting for the user input incase of panic. Cc: Jason Wessel Cc: kgdb-bugreport@lists.sourceforge.net Cc: linux-kernel@vger.kernel.org Cc: Android Kernel Team Cc: John Stultz Cc: Sumit Semwal Signed-off-by: Colin Cross [Kiran: Added context to commit message. panic_timeout is used instead of break_on_panic and break_on_exception to honor CONFIG_PANIC_TIMEOUT Modified the commit as per community feedback] Signed-off-by: Kiran Raparthy Reviewed-by: Daniel Thompson --- kernel/debug/debug_core.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c index 1adf62b..0012a1f 100644 --- a/kernel/debug/debug_core.c +++ b/kernel/debug/debug_core.c @@ -689,6 +689,14 @@ kgdb_handle_exception(int evector, int signo, int ecode, struct pt_regs *regs) if (arch_kgdb_ops.enable_nmi) arch_kgdb_ops.enable_nmi(0); + /* + * Avoid entering the debugger if we were triggered due to an oops + * but panic_timeout indicates the system should automatically + * reboot on panic. We don't want to get stuck waiting for input + * on such systems, especially if its "just" an oops. + */ + if (signo != SIGTRAP && panic_timeout) + return 1; memset(ks, 0, sizeof(struct kgdb_state)); ks->cpu = raw_smp_processor_id(); @@ -821,6 +829,15 @@ static int kgdb_panic_event(struct notifier_block *self, unsigned long val, void *data) { + /* + * Avoid entering the debugger if we were triggered due to a panic + * We don't want to get stuck waiting for input from user in such case. + * panic_timeout indicates the system should automatically + * reboot on panic. + */ + if (panic_timeout) + return NOTIFY_DONE; + if (dbg_kdb_mode) kdb_printf("PANIC: %s\n", (char *)data); kgdb_breakpoint();