From patchwork Wed Jan 28 10:39:34 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: 43896 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-lb0-f199.google.com (mail-lb0-f199.google.com [209.85.217.199]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id EF8F72410D for ; Thu, 29 Jan 2015 02:20:47 +0000 (UTC) Received: by mail-lb0-f199.google.com with SMTP id f15sf14515520lbj.2 for ; Wed, 28 Jan 2015 18:20:46 -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=E1ptbF9t3we2NX1zo0vKiQTYl91Fb2phmDFOMiVxkXk=; b=EJDE7meYqmrVYusMlb+M+9UFC9GCI4beZpug5d0d8RJEb1NAbOOnd/1C1KH5vPiALj fpNUl319i6BYMkQXME1KUbpkMEfXSsY3IdC/3YKRHEnFXrmcKmR0nl9RuBnsRlW2dTfs 7cYoAYn6qDYI1SB7ceo75w6V89s+/y5Tg3EyO6rThFExHMpwew0/rtr1+DQF/X8ctN3/ w5V9fcqf4mzJok+mWfCoLOwqHN2Z8GbhXoS+4yIyl+cLOR535mmtQ/wKfLKfIgiSnins xb+hFiD6giDP1CmciY8/hFHHU8zbc2qDaIBkYndQqPVlovrEYzVNc2L1RrAMjwioz3Nh bFuA== X-Gm-Message-State: ALoCoQm9h/UuUkKktmxdAiyDGAK3TxM7QmoEYCU/1uFDnaYDMcGiDBuIfDreHaTjMW4InT/nzVQ6 X-Received: by 10.152.5.98 with SMTP id r2mr1418500lar.6.1422498046941; Wed, 28 Jan 2015 18:20:46 -0800 (PST) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.36.73 with SMTP id o9ls227536laj.65.gmail; Wed, 28 Jan 2015 18:20:46 -0800 (PST) X-Received: by 10.112.235.67 with SMTP id uk3mr11797596lbc.48.1422498046609; Wed, 28 Jan 2015 18:20:46 -0800 (PST) Received: from mail-lb0-f172.google.com (mail-lb0-f172.google.com. [209.85.217.172]) by mx.google.com with ESMTPS id ei2si6115399lad.39.2015.01.28.18.20.46 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 28 Jan 2015 18:20:46 -0800 (PST) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.172 as permitted sender) client-ip=209.85.217.172; Received: by mail-lb0-f172.google.com with SMTP id l4so23447338lbv.3 for ; Wed, 28 Jan 2015 18:20:46 -0800 (PST) X-Received: by 10.112.181.41 with SMTP id dt9mr11563237lbc.56.1422498046514; Wed, 28 Jan 2015 18:20:46 -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 h5csp1621981lbj; Wed, 28 Jan 2015 18:20:45 -0800 (PST) X-Received: by 10.70.53.197 with SMTP id d5mr8695289pdp.2.1422498043963; Wed, 28 Jan 2015 18:20:43 -0800 (PST) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id la4si8137284pbc.14.2015.01.28.18.20.42; Wed, 28 Jan 2015 18:20:43 -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 S1761515AbbA2CUi (ORCPT + 28 others); Wed, 28 Jan 2015 21:20:38 -0500 Received: from mail-pa0-f41.google.com ([209.85.220.41]:40513 "EHLO mail-pa0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755181AbbA2CUf (ORCPT ); Wed, 28 Jan 2015 21:20:35 -0500 Received: by mail-pa0-f41.google.com with SMTP id kq14so32750708pab.0 for ; Wed, 28 Jan 2015 18:20:35 -0800 (PST) X-Received: by 10.70.39.65 with SMTP id n1mr4485951pdk.83.1422441685818; Wed, 28 Jan 2015 02:41:25 -0800 (PST) Received: from c-krapar-linux.qualcomm.com ([202.46.23.54]) by mx.google.com with ESMTPSA id oa17sm4316967pdb.5.2015.01.28.02.41.22 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 28 Jan 2015 02:41:25 -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: [RFC v5 - RESEND] debug: prevent entering debug mode on panic/exception. Date: Wed, 28 Jan 2015 16:09:34 +0530 Message-Id: <1422441574-24005-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.172 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 --- 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();