From patchwork Fri Sep 1 11:39:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jose Abreu X-Patchwork-Id: 808653 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="kosqEL+e"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xkHNw2Tgrz9sRV for ; Fri, 1 Sep 2017 21:40:32 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=1/dXjpwrS+3pM5hjpMvMHg2oTBcE4zKgMxKh2xK7wZQ=; b=kos qEL+e+IsF8+vIHQb9DRSltHFHIPNDdiUmbD7Gbz7QC3/un/zchIhGmXsZ1kdwLcttq9Hw1c6oaL3w gQmiHFFE84rDB8/TaUPYwvkpp+YDNvT+218uNH9JZcShVPUxUZMlkHvhlmhiHGkxD5YXZ2ecHq1C1 9SOKW95IjjCyaEXhQm0R9uEz08J8+UjJQoDoYIY3sd4PO7FuvIlEH0ji585uPJxfujPlEAW00HTKR rH5SgEq2iRF/rVqpdU0Jqglnl+uqtaMb4iQzdZbcIFgRvN3UUeYmnvxnRzczzMZ1dzkaDMsEMog99 a+haI79jCxcclNF25cE0lceMa6zpQQw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dnkJK-0001Xv-Vy; Fri, 01 Sep 2017 11:40:31 +0000 Received: from smtprelay4.synopsys.com ([198.182.47.9] helo=smtprelay.synopsys.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dnkJI-0001Dd-9r for linux-snps-arc@lists.infradead.org; Fri, 01 Sep 2017 11:40:29 +0000 Received: from mailhost.synopsys.com (mailhost1.synopsys.com [10.12.238.239]) by smtprelay.synopsys.com (Postfix) with ESMTP id 8A09D24E0E0A for ; Fri, 1 Sep 2017 04:40:05 -0700 (PDT) Received: from mailhost.synopsys.com (localhost [127.0.0.1]) by mailhost.synopsys.com (Postfix) with ESMTP id 70809CB9; Fri, 1 Sep 2017 04:40:05 -0700 (PDT) Received: from joabreu-VirtualBox.internal.synopsys.com (joabreu-e7440.internal.synopsys.com [10.107.19.75]) by mailhost.synopsys.com (Postfix) with ESMTP id 4C84DC9B; Fri, 1 Sep 2017 04:40:04 -0700 (PDT) From: Jose Abreu To: linux-snps-arc@lists.infradead.org Subject: [PATCH] arc: Re-enable MMU upon die() Date: Fri, 1 Sep 2017 12:39:57 +0100 Message-Id: X-Mailer: git-send-email 1.9.1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170901_044028_356723_93DE8E1E X-CRM114-Status: UNSURE ( 7.82 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [198.182.47.9 listed in list.dnswl.org] -0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jose Abreu , Vineet Gupta , Alexey Brodkin MIME-Version: 1.0 Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org I recently came upon a scenario where I would get a double fault after a machine check error. It turns out that for Ksymbol lookup to work with modules we need to have MMU enabled because module address is mapped in the cached space. This patch re-enables the MMU before start printing the stacktrace making stacktracing of modules work upon a fatal exception. Signed-off-by: Jose Abreu Cc: Vineet Gupta Cc: Alexey Brodkin --- arch/arc/kernel/traps.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/arc/kernel/traps.c b/arch/arc/kernel/traps.c index ff83e78..9533e06 100644 --- a/arch/arc/kernel/traps.c +++ b/arch/arc/kernel/traps.c @@ -19,6 +19,8 @@ #include #include #include +#include +#include #include #include #include @@ -30,6 +32,9 @@ void __init trap_init(void) void die(const char *str, struct pt_regs *regs, unsigned long address) { + /* MMU must be enabled for Ksymbol lookup in modules */ + write_aux_reg(ARC_REG_PID, MMU_ENABLE | read_aux_reg(ARC_REG_PID)); + show_kernel_fault_diag(str, regs, address); /* DEAD END */