From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 159EFC433EF for ; Fri, 24 Sep 2021 06:42:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E3B1F60F48 for ; Fri, 24 Sep 2021 06:42:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244222AbhIXGnf (ORCPT ); Fri, 24 Sep 2021 02:43:35 -0400 Received: from pegase2.c-s.fr ([93.17.235.10]:33293 "EHLO pegase2.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244182AbhIXGnd (ORCPT ); Fri, 24 Sep 2021 02:43:33 -0400 Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67]) by localhost (Postfix) with ESMTP id 4HG2WW501Sz9sTt; Fri, 24 Sep 2021 08:41:59 +0200 (CEST) X-Virus-Scanned: amavisd-new at c-s.fr Received: from pegase2.c-s.fr ([172.26.127.65]) by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JTviW7YgVGAC; Fri, 24 Sep 2021 08:41:59 +0200 (CEST) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase2.c-s.fr (Postfix) with ESMTP id 4HG2WW2Rssz9sTq; Fri, 24 Sep 2021 08:41:59 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 3DF3D8B77B; Fri, 24 Sep 2021 08:41:59 +0200 (CEST) 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 QnfXEWwF-9YL; Fri, 24 Sep 2021 08:41:59 +0200 (CEST) Received: from PO20335.IDSI0.si.c-s.fr (unknown [192.168.202.215]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 92E488B763; Fri, 24 Sep 2021 08:41:58 +0200 (CEST) Subject: Re: [PATCH] powerpc: don't select KFENCE on platform PPC_FSL_BOOK3E To: Liu Shixin , Marco Elver , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org References: <20210924063927.1341241-1-liushixin2@huawei.com> From: Christophe Leroy Message-ID: Date: Fri, 24 Sep 2021 08:41:57 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210924063927.1341241-1-liushixin2@huawei.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr-FR Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 24/09/2021 à 08:39, Liu Shixin a écrit : > On platform PPC_FSL_BOOK3E, all lowmem is managed by tlbcam. That means > we didn't really map the kfence pool with page granularity. Therefore, > if KFENCE is enabled, the system will hit the following panic: Could you please explain a bit more what the problem is ? KFENCE has been implemented with the same logic as DEBUG_PAGEALLOC. DEBUG_PAGEALLOC is enabled on FSL_BOOK3E. In MMU_setup(), __map_without_ltlbs is set to 1 when KFENCE is enabled. __map_without_ltlbs should disable the use of tlbcam. So what's wrong really ? Does DEBUG_PAGEALLOC work on FSL_BOOK3E ? Thanks Christophe > > BUG: Kernel NULL pointer dereference on read at 0x00000000 > Faulting instruction address: 0xc01de598 > Oops: Kernel access of bad area, sig: 11 [#1] > BE PAGE_SIZE=4K SMP NR_CPUS=4 MPC8544 DS > Dumping ftrace buffer: > (ftrace buffer empty) > Modules linked in: > CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.12.0-rc3+ #298 > NIP: c01de598 LR: c08ae9c4 CTR: 00000000 > REGS: c0b4bea0 TRAP: 0300 Not tainted (5.12.0-rc3+) > MSR: 00021000 CR: 24000228 XER: 20000000 > DEAR: 00000000 ESR: 00000000 > GPR00: c08ae9c4 c0b4bf60 c0ad64e0 ef720000 00021000 00000000 00000000 00000200 > GPR08: c0ad5000 00000000 00000000 00000004 00000000 008fbb30 00000000 00000000 > GPR16: 00000000 00000000 00000000 00000000 c0000000 00000000 00000000 00000000 > GPR24: c08ca004 c08ca004 c0b6a0e0 c0b60000 c0b58f00 c0850000 c08ca000 ef720000 > NIP [c01de598] kfence_protect+0x44/0x6c > LR [c08ae9c4] kfence_init+0xfc/0x2a4 > Call Trace: > [c0b4bf60] [efffe160] 0xefffe160 (unreliable) > [c0b4bf70] [c08ae9c4] kfence_init+0xfc/0x2a4 > [c0b4bfb0] [c0894d3c] start_kernel+0x3bc/0x574 > [c0b4bff0] [c0000470] set_ivor+0x14c/0x188 > Instruction dump: > 7c0802a6 8109d594 546a653a 90010014 54630026 39200000 7d48502e 2c0a0000 > 41820010 554a0026 5469b53a 7d295214 <81490000> 38831000 554a003c 91490000 > random: get_random_bytes called from print_oops_end_marker+0x40/0x78 with crng_init=0 > ---[ end trace 0000000000000000 ]--- > > Signed-off-by: Liu Shixin > --- > arch/powerpc/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig > index d46db0bfb998..cffd57bcb5e4 100644 > --- a/arch/powerpc/Kconfig > +++ b/arch/powerpc/Kconfig > @@ -185,7 +185,7 @@ config PPC > select HAVE_ARCH_KASAN if PPC32 && PPC_PAGE_SHIFT <= 14 > select HAVE_ARCH_KASAN_VMALLOC if PPC32 && PPC_PAGE_SHIFT <= 14 > select HAVE_ARCH_KGDB > - select HAVE_ARCH_KFENCE if PPC32 > + select HAVE_ARCH_KFENCE if PPC32 && !PPC_FSL_BOOK3E > select HAVE_ARCH_MMAP_RND_BITS > select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT > select HAVE_ARCH_NVRAM_OPS >