Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp879001ybe; Fri, 13 Sep 2019 07:42:53 -0700 (PDT) X-Google-Smtp-Source: APXvYqyomw2tNs7yYsRQq6ypCfq/YfrfABmlf52hLOd/2w4vFjxqeOYetKc8AxInDI4lNF42tZId X-Received: by 2002:a17:906:414:: with SMTP id d20mr40023905eja.165.1568385773829; Fri, 13 Sep 2019 07:42:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568385773; cv=none; d=google.com; s=arc-20160816; b=SlOA3UeBT4Z6v2muxr/pgttw6LJSWRY/PfI3giiFLGx+uoKqKJO+jTd7Zes4YTQiVF F05ACv5+sG6DgxsRbIQR+4H3WJcLk04pNdbrGSst4VjM1dfAb8TRATZv7vWXBTRDiRMD KnkNP0eyorQrKt7RVu6m00hb8yqSHQHYLw4Vl5VdWFuYLCnkBJjd9PdhkFYmSdI/eVAn sSXwMetJLb1UX54ytMNyHzMtIBhNlpNSKqg4KJo8bKkf0+DFbvBtPek3eS6ktZE3pxNm r66L6TO80ZTykZMdTr/XudpBuDggwS4zWD2ATkqBSGZEAsUWzVgVPvJozq2QHFDSszFn NzAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=IB0V+ExDRSB9Z+mEbib62IDEHXa1t/3YSrPAuI0YXQ0=; b=bPKsnhNP5Y85ZzbBy6+4vOuWQfd5Cd0Goi5sak39ZC3ibJRwLpafjD+A889+bqAstZ Sbk5nMN52i/Ef08WWigaUBWyy2V5sUOtOXyLHeM23OZ3Nm2RCS+Y7eubJLHkIR//CjtK SxVCCD4mwx6U6M/7LuSMGzwPJ7hdhOOaNy54z6FsMJSWo74zIFCRYTImSZ5/gaIrbOu/ Irbk0OWbAf/JkKZ5IkvVl5UDkQc8QvXrOYpFMguEccW05FG8nAJM4FRgfJyiyE1X+sv5 hJ+RZrN5zakFrJ4zVwngD/7AemuP3imcry43DKs7O9Auh0KPqEcF8pAmTqCNt5NlBmq3 Wdlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ETjCqoim; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e36si19525365edd.143.2019.09.13.07.42.30; Fri, 13 Sep 2019 07:42:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ETjCqoim; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389720AbfIMNPf (ORCPT + 99 others); Fri, 13 Sep 2019 09:15:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:41822 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389705AbfIMNPb (ORCPT ); Fri, 13 Sep 2019 09:15:31 -0400 Received: from localhost (unknown [104.132.45.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 96B50208C2; Fri, 13 Sep 2019 13:15:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1568380531; bh=8Ox/twdNfWzBqCkBllPrnqUO/zXdBQaBeO8Y1SruOrU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ETjCqoimZmYlhnkrmu8Qgrnc1zjq0QOpzyqHf4uz/rIEa9jzDCu0I5jRFdJAlqvCX k+hO2I8/iiu78J3GtESbWt/C+b2iepw28dQAdT6GmUBMY23SEkDrDx+epybBPgSaQ8 A3BL6BgbKCplGNil8DvBAalk/gM1jdQf9fXJT/qI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vineet Gupta , Sasha Levin Subject: [PATCH 4.19 076/190] ARC: show_regs: lockdep: re-enable preemption Date: Fri, 13 Sep 2019 14:05:31 +0100 Message-Id: <20190913130605.618520939@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190913130559.669563815@linuxfoundation.org> References: <20190913130559.669563815@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit f731a8e89f8c78985707c626680f3e24c7a60772 ] signal handling core calls show_regs() with preemption disabled which on ARC takes mmap_sem for mm/vma access, causing lockdep splat. | [ARCLinux]# ./segv-null-ptr | potentially unexpected fatal signal 11. | BUG: sleeping function called from invalid context at kernel/fork.c:1011 | in_atomic(): 1, irqs_disabled(): 0, pid: 70, name: segv-null-ptr | no locks held by segv-null-ptr/70. | CPU: 0 PID: 70 Comm: segv-null-ptr Not tainted 4.18.0+ #69 | | Stack Trace: | arc_unwind_core+0xcc/0x100 | ___might_sleep+0x17a/0x190 | mmput+0x16/0xb8 | show_regs+0x52/0x310 | get_signal+0x5ee/0x610 | do_signal+0x2c/0x218 | resume_user_mode_begin+0x90/0xd8 Workaround by re-enabling preemption temporarily. Note that the preemption disabling in core code around show_regs() was introduced by commit 3a9f84d354ce ("signals, debug: fix BUG: using smp_processor_id() in preemptible code in print_fatal_signal()") to silence a differnt lockdep seen on x86 bakc in 2009. Cc: Signed-off-by: Vineet Gupta Signed-off-by: Sasha Levin --- arch/arc/kernel/troubleshoot.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arc/kernel/troubleshoot.c b/arch/arc/kernel/troubleshoot.c index 5c6663321e873..215f515442e03 100644 --- a/arch/arc/kernel/troubleshoot.c +++ b/arch/arc/kernel/troubleshoot.c @@ -179,6 +179,12 @@ void show_regs(struct pt_regs *regs) struct task_struct *tsk = current; struct callee_regs *cregs; + /* + * generic code calls us with preemption disabled, but some calls + * here could sleep, so re-enable to avoid lockdep splat + */ + preempt_enable(); + print_task_path_n_nm(tsk); show_regs_print_info(KERN_INFO); @@ -221,6 +227,8 @@ void show_regs(struct pt_regs *regs) cregs = (struct callee_regs *)current->thread.callee_reg; if (cregs) show_callee_regs(cregs); + + preempt_disable(); } void show_kernel_fault_diag(const char *str, struct pt_regs *regs, -- 2.20.1