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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 10A1FC07CB1 for ; Wed, 29 Nov 2023 12:31:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID: References:Mime-Version:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=mK3JVFzBvYg9OZ1Cd+BGQpHboVXWZqaU0x+d8g0SKKw=; b=a7WwBXv1Wr5cA/YWMn/AObP3Gd YCflAzYeJ8NLsv5IM/9cTn6pSKXaVZujaP0d/CYd1PVh+C/4GDIw17LLQ+e4GhZl07s9ZvbyRQJq+ bcdzNkvdAYWC8zZXpfzkAa8s0Ta7cDtPI84t1f997LJSeNEA7nu1WObcZnvleSMZQ+tF/K98V0ere HbtIWLSccbYdHfgqOjrQ0NEJ/Juz4rDTLGNNmY5Ezi3Bbfk9O672bCHfPuz18c7aBdUaDe6/R+4sw 0otFKHL1Jyc8I+jf9sLpeKYXaw5MkQDOKiNUQU67qkaNgitnfikW3qPP6Tyas5O6iCUR92QPPRF+F 4zfl40bg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r8Jio-008KNH-31; Wed, 29 Nov 2023 12:31:18 +0000 Received: from mail-yb1-f202.google.com ([209.85.219.202]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r8IaM-007zvQ-1K for linux-arm-kernel@lists.infradead.org; Wed, 29 Nov 2023 11:18:49 +0000 Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-db4038d7cfdso6650674276.2 for ; Wed, 29 Nov 2023 03:18:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1701256707; x=1701861507; darn=lists.infradead.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=RRCI6wTgDgs6zQ9NwIFImncmAA+W9fXLCfXKh6mbpP4=; b=hsFZ9oKKBlfWNPnwJG9Z4oxOGuY+rMesGySXip0HS2wQrS+hNKMxs1zN4BkoT+q8lp Jly9O3uHAcKUZHlMs4URGA/kuMXv+zbTZgFwoXf4l/RSH6zTlJxu01r4+7ezaft9uQft NjCTxb5D2P3xVtwPtCquruR518MYdOSbSTIDAa3JaPOjDWrMIX0I4L9adwY7/F3nTmvW 2ZaENQfNhMlTGnR36LhAzV02A55UntvoWg58MUUfSSaOZNLvP/LvqcyItvRyg4pyZTgz RM+5zC9hzOTS4Mm5//TOTm2M+nybNwb5gvOugWkJJMGiecfXFrBnT2dxhB8+aE/tYEe9 HOvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701256707; x=1701861507; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RRCI6wTgDgs6zQ9NwIFImncmAA+W9fXLCfXKh6mbpP4=; b=waFhC6Lt4RRBxyghJRZpsDezJeOtfziq3STHLTicJqV5+ERgH5tYug8ZCAlaITSfB3 YNgdBWGlv4Zp/5xsrpRRBcBht+jq6usckdZnu7BgDLXhNoJ/vts7bumjYfG3d9iziOe7 hC4fxvak4ybElr/i8+g71bhkTuo2Mm/0fn0kJ+v0/6Z0x1N4GiBPyF+67Hs6/kHL4wmi F6Fx4psG22+m/wSy0oWdMtwfwGrLUQ44Ughh9HFo1RvvTc6/SH85NuQvGQZg4q2RAjVR qG/Y6UUfRPXoAPbvKqTlHYoY94nNNiUaufH8sWiJZdIhZ4Kf23r0AIzBauOsqp6phpz9 K1lQ== X-Gm-Message-State: AOJu0YxF2F6gwSKouGPzIg4Ff2zBp0WoVWNMDyPrTuG9NUDJuLC/pYvS L7W/P/w1PgzxMVGx16N2f4c1ZU7fjAqaWwTF7OFjr9m3j7ESR2ENah6wuXv2xiUSsmhsWgDi6qT E4sU9Y8KrORwS6LOwUFgCnA7/BEDUQ9sM/mZHiWvEB1OQo3DumSmkinyEALEOWVNcj8Ryof0K69 c= X-Google-Smtp-Source: AGHT+IH+B8Z2mvn82PnwZNlvp5W1bok5aAj92ozOP5IU1GC8LJkJ+7wq/eRVCWMa4wAaLuxlVKHKk1BK X-Received: from palermo.c.googlers.com ([fda3:e722:ac3:cc00:28:9cb1:c0a8:118a]) (user=ardb job=sendgmr) by 2002:a25:c04f:0:b0:db4:5ec0:4cf6 with SMTP id c76-20020a25c04f000000b00db45ec04cf6mr487839ybf.5.1701256706865; Wed, 29 Nov 2023 03:18:26 -0800 (PST) Date: Wed, 29 Nov 2023 12:16:27 +0100 In-Reply-To: <20231129111555.3594833-43-ardb@google.com> Mime-Version: 1.0 References: <20231129111555.3594833-43-ardb@google.com> X-Developer-Key: i=ardb@kernel.org; a=openpgp; fpr=F43D03328115A198C90016883D200E9CA6329909 X-Developer-Signature: v=1; a=openpgp-sha256; l=1838; i=ardb@kernel.org; h=from:subject; bh=CTH3x4jA7y7C9opFImzsJKcifiJL/bHaXF8OlzVDljw=; b=owGbwMvMwCFmkMcZplerG8N4Wi2JITVdtr/lg/n/3D/r12n+fPVedGF8t2Gbc4rIb2mfaf220 18UL2vuKGVhEONgkBVTZBGY/ffdztMTpWqdZ8nCzGFlAhnCwMUpABOxm8DI8EQiw8VJ3sbI4OD/ W05h5y8vK0h56nZ0Yd2RjJL4z0tZuhj+Z/1t3FdeKLXlWf1p60fF85hvbTUviJgccU6yqvaAiWA wBwA= X-Mailer: git-send-email 2.43.0.rc1.413.gea7ed67945-goog Message-ID: <20231129111555.3594833-74-ardb@google.com> Subject: [PATCH v6 31/41] arm64: head: allocate more pages for the kernel mapping From: Ard Biesheuvel To: linux-arm-kernel@lists.infradead.org Cc: Ard Biesheuvel , Catalin Marinas , Will Deacon , Marc Zyngier , Mark Rutland , Ryan Roberts , Anshuman Khandual , Kees Cook X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231129_031830_504986_0C582A89 X-CRM114-Status: GOOD ( 14.07 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Ard Biesheuvel In preparation for switching to an early kernel mapping routine that maps each segment according to its precise boundaries, and with the correct attributes, let's allocate some extra pages for page tables for the 4k page size configuration. This is necessary because the start and end of each segment may not be aligned to the block size, and so we'll need an extra page table at each segment boundary. Signed-off-by: Ard Biesheuvel --- arch/arm64/include/asm/kernel-pgtable.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/arm64/include/asm/kernel-pgtable.h b/arch/arm64/include/asm/kernel-pgtable.h index 83ddb14b95a5..0631604995ee 100644 --- a/arch/arm64/include/asm/kernel-pgtable.h +++ b/arch/arm64/include/asm/kernel-pgtable.h @@ -68,7 +68,7 @@ + EARLY_PGDS((vstart), (vend), add) /* each PGDIR needs a next level page table */ \ + EARLY_PUDS((vstart), (vend), add) /* each PUD needs a next level page table */ \ + EARLY_PMDS((vstart), (vend), add)) /* each PMD needs a next level page table */ -#define INIT_DIR_SIZE (PAGE_SIZE * EARLY_PAGES(KIMAGE_VADDR, _end, EXTRA_PAGE)) +#define INIT_DIR_SIZE (PAGE_SIZE * (EARLY_PAGES(KIMAGE_VADDR, _end, EXTRA_PAGE) + EARLY_SEGMENT_EXTRA_PAGES)) /* the initial ID map may need two extra pages if it needs to be extended */ #if VA_BITS < 48 @@ -89,6 +89,15 @@ #define SWAPPER_TABLE_SHIFT PMD_SHIFT #endif +/* The number of segments in the kernel image (text, rodata, inittext, initdata, data+bss) */ +#define KERNEL_SEGMENT_COUNT 5 + +#if SWAPPER_BLOCK_SIZE > SEGMENT_ALIGN +#define EARLY_SEGMENT_EXTRA_PAGES (KERNEL_SEGMENT_COUNT + 1) +#else +#define EARLY_SEGMENT_EXTRA_PAGES 0 +#endif + /* * Initial memory map attributes. */ -- 2.43.0.rc1.413.gea7ed67945-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel