Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2207156imu; Fri, 14 Dec 2018 07:25:42 -0800 (PST) X-Google-Smtp-Source: AFSGD/UxNtOP71R79wAufenp1Nhj2MMBgFSr0Fgr1Kdg+bf07qwegJhhW3y2PHL4T/d5qrdnEY5R X-Received: by 2002:a62:848d:: with SMTP id k135mr3210360pfd.47.1544801142561; Fri, 14 Dec 2018 07:25:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544801142; cv=none; d=google.com; s=arc-20160816; b=X3IPcdk7AKeLl3hs3tRgEzpBASzACKqinzIRWW/uN3HCr3RIMSysjpEK/s2EuqC5WK EFgyODXKOragtsMKRQwi4KP/B9IpvVPhLwq1CePUXF4efnjqZMBjJ8X6sftRFGiX0MCY 47jLWysxxPnC7QMewcyXfs1SvlVC3pzGXa46tLsIJimaano6W8KHzmfIFOMA2vPSFqZb oyiNHhqOt++WvtEyn3VpzF9MfQgDbd+q+BEiRjT0HH8QvZyaDtYPgnVQ5xz/36/roMgZ Q9js7bz9nwWZNYFChWfA7CXhckT0Sb3v9rmH/9saX2lfQRjYCA0swEbO2jlNHk6gwDz8 bsWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:cc:to:subject:from:message-id; bh=YyslT38oSiQ0n73g/FoDLfAaQwmh+BnmyKPNFqqWm3A=; b=NAqhaiqSsrQzlZOPjmTGwFNVTDcyBuKEyfSjjrfi+LsMg2FXz8Uk/nrslnGgyJ2Nog Ii/h9SYP0P0dUg9YQR7u/BnFPmysbPItVJx+Ul12OTvb2TOcHgrHrsE9zMVTUN3xDo4E fVylT88bMqm0+qss5Er7m/L+0bCZ+EtBVvLBdZF2M9CfP9pB6u4JmRfS5UYrlYXMjhfi D4sBj7IK/7gTDdS+3lHYkU3mtNtJhNJztm7rS/af+YgT/b6jx8iz2qsrZ1b8DA3F+Shh HD5MsICypS/mRCyAXM8L5OuU/fpVc8goINgTorsGaew0/CDBX3x3Qxzuf+IGggdA/Hwf xgoA== ARC-Authentication-Results: i=1; mx.google.com; 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 2si4118866pgj.104.2018.12.14.07.25.09; Fri, 14 Dec 2018 07:25:42 -0800 (PST) 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; 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 S1730263AbeLNPXf (ORCPT + 99 others); Fri, 14 Dec 2018 10:23:35 -0500 Received: from pegase1.c-s.fr ([93.17.236.30]:31981 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726344AbeLNPXf (ORCPT ); Fri, 14 Dec 2018 10:23:35 -0500 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 43GZ7m40WZz9v18b; Fri, 14 Dec 2018 16:23:32 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id CHM39Rs7AmHg; Fri, 14 Dec 2018 16:23:32 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 43GZ7m3P5mz9v18Z; Fri, 14 Dec 2018 16:23:32 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id F35018B8EB; Fri, 14 Dec 2018 16:23:33 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id YdRd5yRaKs_d; Fri, 14 Dec 2018 16:23:33 +0100 (CET) Received: from po14163vm.idsi0.si.c-s.fr (po15451.idsi0.si.c-s.fr [172.25.231.2]) by messagerie.si.c-s.fr (Postfix) with ESMTP id DC7428B8EA; Fri, 14 Dec 2018 16:23:33 +0100 (CET) Received: by po14163vm.idsi0.si.c-s.fr (Postfix, from userid 0) id B22D871710; Fri, 14 Dec 2018 15:23:33 +0000 (UTC) Message-Id: <46e2533084dc3255a1d67553b682bd4b9642b176.1544800765.git.christophe.leroy@c-s.fr> From: Christophe Leroy Subject: [PATCH v2] powerpc/mm: make NULL pointer deferences explicit on bad page faults. To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Date: Fri, 14 Dec 2018 15:23:33 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As several other arches including x86, this patch makes it explicit that a bad page fault is a NULL pointer dereference when the fault address is lower than PAGE_SIZE In the mean time, this page makes all bad_page_fault() messages shorter so that they remain on one single line. And it prefixes them by "BUG: " so that they get easily greped. Signed-off-by: Christophe Leroy --- v2: Taking into account comments from Michael arch/powerpc/mm/fault.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c index 01b9bcc7fa85..3398291f4785 100644 --- a/arch/powerpc/mm/fault.c +++ b/arch/powerpc/mm/fault.c @@ -636,21 +636,24 @@ void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig) switch (TRAP(regs)) { case 0x300: case 0x380: - printk(KERN_ALERT "Unable to handle kernel paging request for " - "data at address 0x%08lx\n", regs->dar); + if (regs->dar < PAGE_SIZE) + pr_alert("BUG: Kernel NULL pointer dereference"); + else + pr_alert("BUG: Unable to handle kernel data access"); + pr_cont(" at 0x%08lx\n", regs->dar); break; case 0x400: case 0x480: - printk(KERN_ALERT "Unable to handle kernel paging request for " - "instruction fetch\n"); + pr_alert("BUG: Unable to handle kernel instruction fetch%s", + regs->nip < PAGE_SIZE ? " (NULL pointer ?)\n" : "\n"); break; case 0x600: - printk(KERN_ALERT "Unable to handle kernel paging request for " - "unaligned access at address 0x%08lx\n", regs->dar); + pr_alert("BUG: Unable to handle kernel unaligned access at 0x%08lx\n", + regs->dar); break; default: - printk(KERN_ALERT "Unable to handle kernel paging request for " - "unknown fault\n"); + pr_alert("BUG: Unable to handle unknown paging fault at 0x%08lx\n", + regs->dar); break; } printk(KERN_ALERT "Faulting instruction address: 0x%08lx\n", -- 2.13.3