From patchwork Tue Dec 23 12:38:29 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kiran Kumar Raparthy X-Patchwork-Id: 42567 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-la0-f72.google.com (mail-la0-f72.google.com [209.85.215.72]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id AC85726CA7 for ; Tue, 23 Dec 2014 12:39:33 +0000 (UTC) Received: by mail-la0-f72.google.com with SMTP id gq15sf4005320lab.11 for ; Tue, 23 Dec 2014 04:39:32 -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=nQa8pnQKNdCIo3azexU6sR2n8ujnJMrQ/W+G8OPHbtA=; b=Jz41l0vrhKXEJaGxGrC2Ov4PhisnSwyafSy9L7k0AOjAkOQtv/1LuqHPEOC4qPuZDz xVp+r35h8z1cdUpGEwxOaa1X5OUT7YDNFW9x1EwfI+6YaBprw9EjMC6fBhIMgcW4aJvj +JVFDc/GjT2BHqG8nkuU9paiEYZYToQHiJacCvayiRmZq5oxFUJ9YAe4JPTeC0BEBTIv KqaStUdTh+aNv0KMefX/6MgrtUDmzmR935QIlAcVLVnXHosWvvAg++q+B3loVRSb+9is L6L1T9Ap3+KFzsXFVj86e36jHbXEYDN8hwYdwsF2oZCmkrDxsfFC8RoEVHA4dofA8ThK pIiQ== X-Gm-Message-State: ALoCoQmVKslYH5KueSpKQg42rZK9cx5amJCoiku4e0AfZ1wZ+JI6d45dJQ5YhTTr96Nn4IcxN8eR X-Received: by 10.152.6.202 with SMTP id d10mr11098laa.10.1419338372688; Tue, 23 Dec 2014 04:39:32 -0800 (PST) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.204.1 with SMTP id ku1ls393846lac.80.gmail; Tue, 23 Dec 2014 04:39:32 -0800 (PST) X-Received: by 10.152.87.12 with SMTP id t12mr27441848laz.31.1419338372510; Tue, 23 Dec 2014 04:39:32 -0800 (PST) Received: from mail-lb0-f170.google.com (mail-lb0-f170.google.com. [209.85.217.170]) by mx.google.com with ESMTPS id rz1si21572525lbb.42.2014.12.23.04.39.32 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 23 Dec 2014 04:39:32 -0800 (PST) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.170 as permitted sender) client-ip=209.85.217.170; Received: by mail-lb0-f170.google.com with SMTP id 10so5352044lbg.15 for ; Tue, 23 Dec 2014 04:39:32 -0800 (PST) X-Received: by 10.112.135.6 with SMTP id po6mr27415461lbb.69.1419338372377; Tue, 23 Dec 2014 04:39:32 -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.142.69 with SMTP id ru5csp1316682lbb; Tue, 23 Dec 2014 04:39:31 -0800 (PST) X-Received: by 10.68.69.66 with SMTP id c2mr42856957pbu.81.1419338370335; Tue, 23 Dec 2014 04:39:30 -0800 (PST) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id tl7si29029756pbc.203.2014.12.23.04.39.29; Tue, 23 Dec 2014 04:39:30 -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 S932251AbaLWMj2 (ORCPT + 27 others); Tue, 23 Dec 2014 07:39:28 -0500 Received: from mail-pd0-f176.google.com ([209.85.192.176]:63449 "EHLO mail-pd0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932215AbaLWMjY (ORCPT ); Tue, 23 Dec 2014 07:39:24 -0500 Received: by mail-pd0-f176.google.com with SMTP id r10so7756063pdi.7 for ; Tue, 23 Dec 2014 04:39:24 -0800 (PST) X-Received: by 10.68.255.227 with SMTP id at3mr43843204pbd.40.1419338364051; Tue, 23 Dec 2014 04:39:24 -0800 (PST) Received: from c-krapar-linux.qualcomm.com ([202.46.23.54]) by mx.google.com with ESMTPSA id wt4sm20055426pab.4.2014.12.23.04.39.20 (version=TLSv1 cipher=RC4-SHA bits=128/128); Tue, 23 Dec 2014 04:39:23 -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 v4] debug: prevent entering debug mode on panic/exception. Date: Tue, 23 Dec 2014 18:08:29 +0530 Message-Id: <1419338309-16729-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.170 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. 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 --- 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();