From patchwork Wed Jan 28 11:32:14 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: 43891 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-wi0-f197.google.com (mail-wi0-f197.google.com [209.85.212.197]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 5A90523FFF for ; Wed, 28 Jan 2015 22:22:22 +0000 (UTC) Received: by mail-wi0-f197.google.com with SMTP id n3sf7869813wiv.0 for ; Wed, 28 Jan 2015 14:22:21 -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=7prWJ7Qv4XktdWXVtt/uGh254jRmeImG9tWzgbjeC0w=; b=U95JURuDhjx93b4W7OEa4a6usChBiOf9n2VaZ3ILIgCM6kCqcPM3spOk7iuDwSeU+o 8drmJ2f/gCcxCPZtPnTypPS6mS5gBXiXnVWU1JrYAb1KHKreh/r3fRvRjsvswfPG8a4a U+rRLkEvdZTOFotkMuaYlpg92f0HV+d9n7ddTXAkEFIypRij47MbvnmAyloQWKlX1kKG m2zMsIawG9QEWkWIllcvIWFR4Af1RoaAfS9fupwHV9WN2urDxiz2X9XhrRMN8m1U8Xei Oh61OUlTMe7PSCHLLYLndfpRCM/w8aaymXgeJsGCIOZj8a1tChzMaB+Pigyj62uRWGXg J0hg== X-Gm-Message-State: ALoCoQl6e0dnUg3iCmoqmNcLJxE/Ff9arDFuSHW4KDXkNoQqLiNJnyvJrFmaPW3m1Lj1GMJzybSp X-Received: by 10.180.108.197 with SMTP id hm5mr3705680wib.4.1422483741681; Wed, 28 Jan 2015 14:22:21 -0800 (PST) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.4.136 with SMTP id k8ls234133lak.21.gmail; Wed, 28 Jan 2015 14:22:21 -0800 (PST) X-Received: by 10.152.183.196 with SMTP id eo4mr11193722lac.0.1422483741421; Wed, 28 Jan 2015 14:22:21 -0800 (PST) Received: from mail-lb0-f179.google.com (mail-lb0-f179.google.com. [209.85.217.179]) by mx.google.com with ESMTPS id t2si5694344lal.88.2015.01.28.14.22.21 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 28 Jan 2015 14:22:21 -0800 (PST) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.179 as permitted sender) client-ip=209.85.217.179; Received: by mail-lb0-f179.google.com with SMTP id 10so22033434lbg.10 for ; Wed, 28 Jan 2015 14:22:21 -0800 (PST) X-Received: by 10.112.52.229 with SMTP id w5mr11072120lbo.52.1422483741274; Wed, 28 Jan 2015 14:22:21 -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.35.133 with SMTP id h5csp1579849lbj; Wed, 28 Jan 2015 14:22:20 -0800 (PST) X-Received: by 10.68.65.77 with SMTP id v13mr9643984pbs.56.1422483739347; Wed, 28 Jan 2015 14:22:19 -0800 (PST) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w7si7097063pdi.19.2015.01.28.14.22.17; Wed, 28 Jan 2015 14:22:19 -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 S1762018AbbA1WWO (ORCPT + 28 others); Wed, 28 Jan 2015 17:22:14 -0500 Received: from mail-ig0-f173.google.com ([209.85.213.173]:58702 "EHLO mail-ig0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752912AbbA1ULv (ORCPT ); Wed, 28 Jan 2015 15:11:51 -0500 Received: by mail-ig0-f173.google.com with SMTP id a13so12867228igq.0 for ; Wed, 28 Jan 2015 12:11:51 -0800 (PST) X-Received: by 10.66.174.165 with SMTP id bt5mr4916755pac.53.1422444850367; Wed, 28 Jan 2015 03:34:10 -0800 (PST) Received: from c-krapar-linux.qualcomm.com ([202.46.23.54]) by mx.google.com with ESMTPSA id qq6sm4461826pbb.20.2015.01.28.03.34.06 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 28 Jan 2015 03:34:09 -0800 (PST) From: Kiran Raparthy To: linux-kernel@vger.kernel.org Cc: Colin Cross , Jason Wessel , Andrew Morton , kgdb-bugreport@lists.sourceforge.net, Android Kernel Team , John Stultz , Sumit Semwal , Kiran Raparthy Subject: [PATCH] debug: prevent entering debug mode on panic/exception. Date: Wed, 28 Jan 2015 17:02:14 +0530 Message-Id: <1422444734-29510-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.179 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: Andrew Morton 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 --- PATCH: Upgraded to PATCH from RFC. v5: Updated the commit message to indicate that panic_timeout indicates that user requested machine to perform unatteneded reboot after panic. v4: As per Andrew's comment, simplified the commit message so that someone who can't understand kgdb can understand the purpose of the patch v3: As per Daniel's comment,improved the comments to indicate how we are avoiding getting stuck waiting for user input. v2: used panic_timeout instead of module params used in original android patch. Updated the comments accordingly. v1: Initial patch sent for internal review. 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();