Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp3242371ybk; Mon, 18 May 2020 22:54:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzzEgZDjMLPwmN2MVjMobipsVxzeNh+ZJ+3vXU2vttHT9CS1ArVZwn3mzoR6EW5dI9go1mx X-Received: by 2002:a17:906:4dcc:: with SMTP id f12mr18508960ejw.272.1589867656114; Mon, 18 May 2020 22:54:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589867656; cv=none; d=google.com; s=arc-20160816; b=K9RrJMmxGJwCrHyFIpnDKrXB9l1wC1/THwKaEe0BoDfvSO1J1SacqQrMETH8tFDoQd KNKlSrGowSllXVrN3g9Z5KOs4S1MRanwUt2bXkXp3aPtgWben06+zZ8sGgWYe2UefVpi hYKl/EyPgxXSOXyGdxsx4dqv+E9O+KtSb/6MZIpFHtW98BsnCEyxOc5H4VwXRQ0CaRQ1 3QwRxoRP7UWkpsNNH1ctk3JbvEp6CgWlGNVA8M4KSDO28HbX1D0WLJE5mveAJyA6zTj/ VABdwSvhRnH/DdZ+Dqm0hik43oIwuycxIvaKJAXzIAFjj9TboZO9CFjj05vHsMcPxVbd UYqw== 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:references :in-reply-to:message-id; bh=nxU/SK0U9kNk1EMGK7WqUDNQpdQLdrC0rhHd0omxmiE=; b=q1USfT8axhVYLSrR/iij9TxdjYynmrTESl6TUtJTF46p4vSLbrL7bqH/ZIuO8Wf50k BHIxFf7SV2BP0vJdZQUN5OvhL5YlA3v0ilFW0B1LpImXvH66FsTzo8gCDH4/r3y0vQPy Hl6OrEJBycwv8vr/yGQkUTw0R5lpy05aQ4kszkLcaGQSz0nOB41S55SSesCb0r24MvkE WUvsgbrQRcE1PY6VPaLIf3iqp1Etsq/TP5k86vIU3fw4/cBiTKo1cfung9zy8/a52In7 tQH/2nIQx9mXExPBY7GPfT4e5CaNm+83EyCkVdwUW9w5FUs8qLtl4DXcQsRGDo/AmUZT fgjA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n6si4548348eda.5.2020.05.18.22.53.54; Mon, 18 May 2020 22:54:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728816AbgESFt4 (ORCPT + 99 others); Tue, 19 May 2020 01:49:56 -0400 Received: from pegase1.c-s.fr ([93.17.236.30]:61897 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728720AbgESFtb (ORCPT ); Tue, 19 May 2020 01:49:31 -0400 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 49R4hR5WtNz9txm3; Tue, 19 May 2020 07:49:27 +0200 (CEST) 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 9n07nKVs9_se; Tue, 19 May 2020 07:49:27 +0200 (CEST) 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 49R4hR4c3Fz9txlx; Tue, 19 May 2020 07:49:27 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id AA5A58B7A7; Tue, 19 May 2020 07:49:28 +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 lkG67oJut-Xd; Tue, 19 May 2020 07:49:28 +0200 (CEST) Received: from pc16570vm.idsi0.si.c-s.fr (unknown [192.168.4.90]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 72C928B767; Tue, 19 May 2020 07:49:28 +0200 (CEST) Received: by pc16570vm.idsi0.si.c-s.fr (Postfix, from userid 0) id 4E80565A4A; Tue, 19 May 2020 05:49:28 +0000 (UTC) Message-Id: In-Reply-To: References: From: Christophe Leroy Subject: [PATCH v4 44/45] powerpc/32s: Allow mapping with BATs with DEBUG_PAGEALLOC To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Date: Tue, 19 May 2020 05:49:28 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DEBUG_PAGEALLOC only manages RW data. Text and RO data can still be mapped with BATs. In order to map with BATs, also enforce data alignment. Set by default to 256M which is a good compromise for keeping enough BATs for also KASAN and IMMR. Signed-off-by: Christophe Leroy --- arch/powerpc/Kconfig | 1 + arch/powerpc/mm/book3s32/mmu.c | 6 ++++++ arch/powerpc/mm/init_32.c | 5 ++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index fcb0a9ae9872..752deddc9ed9 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -797,6 +797,7 @@ config DATA_SHIFT range 17 28 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC) && PPC_BOOK3S_32 range 19 23 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC) && PPC_8xx default 22 if STRICT_KERNEL_RWX && PPC_BOOK3S_32 + default 18 if DEBUG_PAGEALLOC && PPC_BOOK3S_32 default 23 if STRICT_KERNEL_RWX && PPC_8xx default 23 if DEBUG_PAGEALLOC && PPC_8xx && PIN_TLB_DATA default 19 if DEBUG_PAGEALLOC && PPC_8xx diff --git a/arch/powerpc/mm/book3s32/mmu.c b/arch/powerpc/mm/book3s32/mmu.c index a9b2cbc74797..a6dcc708eee3 100644 --- a/arch/powerpc/mm/book3s32/mmu.c +++ b/arch/powerpc/mm/book3s32/mmu.c @@ -170,6 +170,12 @@ unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top) pr_debug("RAM mapped without BATs\n"); return base; } + if (debug_pagealloc_enabled()) { + if (base >= border) + return base; + if (top >= border) + top = border; + } if (!strict_kernel_rwx_enabled() || base >= border || top <= border) return __mmu_mapin_ram(base, top); diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c index 8977a7c2543d..36c39bd37256 100644 --- a/arch/powerpc/mm/init_32.c +++ b/arch/powerpc/mm/init_32.c @@ -99,10 +99,9 @@ static void __init MMU_setup(void) if (IS_ENABLED(CONFIG_PPC_8xx)) return; - if (debug_pagealloc_enabled()) { - __map_without_bats = 1; + if (debug_pagealloc_enabled()) __map_without_ltlbs = 1; - } + if (strict_kernel_rwx_enabled()) __map_without_ltlbs = 1; } -- 2.25.0