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 A2AE8C61DF4 for ; Fri, 24 Nov 2023 10:21:10 +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=mpdOE88F4X+oEZoFLweSRZgtbt9EBm4vf38NE5eREv4=; b=IPRsSU7ijKUKBO0NZnRKDumXCA B26NTTiuWwdYNUOrDhuLHnXib9R4tHxwg1wmT5isYgJQR2m5nxGyz8jVGclS8NyT2N6wPPb+sJjPK s0EpcozN1EdH8wOFwJILAwe4Jx7G12KQneQ2bcfLmyETibgNvtZVNygEIEAfGtYn0FE4FoyR0VVPE POJpH0NNbjylspu58WRL6zGeMku15c1ellhSkeZPd4Yt7BvtDLMARxMd9lf3VKZMxLU+6UUnmV31i Swvaol6JxNDoJsDBDYAoxpYjcGbxk+XumYD8aDHgcVx//GdM1Yntgx7v+vuViI0twc3QFfIKLd5uq xESsvhWw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r6TIj-006oes-0B; Fri, 24 Nov 2023 10:20:45 +0000 Received: from mail-yb1-xb49.google.com ([2607:f8b0:4864:20::b49]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r6TIS-006oY0-1e for linux-arm-kernel@lists.infradead.org; Fri, 24 Nov 2023 10:20:30 +0000 Received: by mail-yb1-xb49.google.com with SMTP id 3f1490d57ef6-daf702bde7eso1718058276.3 for ; Fri, 24 Nov 2023 02:20:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1700821227; x=1701426027; 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=QcyQzQvrhZSKuGh+IrENHro9WhaIhDqkoV92ZoY5+Bs=; b=co9jQiLzyAyVNvv4KrNxfE5u4nWQbaPmkFWkgTXG+UYgclye81u5mKk0zdg7efViMn JB0HAFDE7X4aoNt1M5Bzi0dozaOjKUhTuSJYxR0ssAS78t8+Zq4SfeG7ePS+1zdbyIa8 vM26JU9BtLL4LdYmiLDz/AbHzZ2XD/iT/BoJYDFai55qkJ29X8CIBdSYXZyug9IRfOUI JS5s/EhuDwETnOBOPnelM7bp7M/ABGqJUt5at/PYyPwOQtaUvJi35elvdiNK4A5EUgs7 RJaWp7DHR4sv8t3rJHVhNRxtbXPVOeb/RT2pTp+mLtHf0Ggd9m080kCCabQBdluQeESe q7nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700821227; x=1701426027; 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=QcyQzQvrhZSKuGh+IrENHro9WhaIhDqkoV92ZoY5+Bs=; b=cXGofH372oZ7Z+zi7zIjqBmCJGF4uXvvNidO/89n712NCUKo4RRhJ0vAhAyEW1EQOj vi8MULB66NogMH1avkntvgvDcBKf58EKECWvQsu15I1G7k8Hmn4+mvAKYPjLRs6VyKfX AjOD16Hfiy/uzC1ySlnFS2NGBUQRCvNyoqNyB7UYGoW8p7I5JAbE/7HOrMbhn8np4gyW xDU+A/PNgjtXZ1HmU5TmFFIHm6gg/9S7gWNvXZuPQTXAME5EkgG2ZfCcF4/C5/JVxzI7 BLL3FhjF/fU+KGjmHU4HP8Elv+leJnnyZ5iQt9LJH2c+AyYNS+HVX17ynf7oEe0qnPTL xQ1w== X-Gm-Message-State: AOJu0YwJ2md9XnKbRYkcx1CpWZyevI379DT0lxC2HsXmVHOBIpknlu+Z gLKYlNKs6N0lZCWMD+XosHSvBla2GIOetP+QIjl/nYAGj17S7ycyzy8NgGCJLrxcaK/VgR7XsS1 IZtSjCCHaRGViCKFxz3/9XhOT6FQuiAAwhF44lBiqIGl+17GWruyXephRim6i3HER+Td7Jb63Vh 8= X-Google-Smtp-Source: AGHT+IHyU9REEENips3T7qy8T/g1qUI6MTSIlvCldPGNAWqwDeKE++E6HENy7vQoiYqJuhBUO/Ij7oRy X-Received: from palermo.c.googlers.com ([fda3:e722:ac3:cc00:28:9cb1:c0a8:118a]) (user=ardb job=sendgmr) by 2002:a25:7141:0:b0:da0:c9a5:b529 with SMTP id m62-20020a257141000000b00da0c9a5b529mr49857ybc.12.1700821227216; Fri, 24 Nov 2023 02:20:27 -0800 (PST) Date: Fri, 24 Nov 2023 11:18:46 +0100 In-Reply-To: <20231124101840.944737-41-ardb@google.com> Mime-Version: 1.0 References: <20231124101840.944737-41-ardb@google.com> X-Developer-Key: i=ardb@kernel.org; a=openpgp; fpr=F43D03328115A198C90016883D200E9CA6329909 X-Developer-Signature: v=1; a=openpgp-sha256; l=3329; i=ardb@kernel.org; h=from:subject; bh=WFd4jQ912fgRJirpPKRfxk61zUoZ4kmCkhvh5bpu8Rc=; b=owGbwMvMwCFmkMcZplerG8N4Wi2JITWhov2I4/rrlxdn9EnHb9FZXsdouEtLdf3b+GM9l/7tN KxSsVrdUcrCIMbBICumyCIw+++7nacnStU6z5KFmcPKBDKEgYtTACYy/xYjwy+uS85nj1/iecIY FKb3UPOskXy6+Ia8msPRLTmTtZPadzL897NJu7Swn0+0X/qh2uaHM1K+OV96cWtJTNmPJWf4zkw s4QAA X-Mailer: git-send-email 2.43.0.rc1.413.gea7ed67945-goog Message-ID: <20231124101840.944737-47-ardb@google.com> Subject: [PATCH v5 06/39] arm64: ptdump: Allow all region boundaries to be defined at boot time 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-20231124_022028_549383_59210C6A X-CRM114-Status: GOOD ( 14.02 ) 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 Rework the way the address_markers array is populated so that we can tolerate values that are not compile time constants generally, rather than keeping track manually of the array indexes in question, and poking new values into them manually. This will be needed for VMALLOC_END, which will cease to be a compile time constant after a subsequent patch. Signed-off-by: Ard Biesheuvel --- arch/arm64/mm/ptdump.c | 54 ++++++++------------ 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/arch/arm64/mm/ptdump.c b/arch/arm64/mm/ptdump.c index 3958b008f908..bfc307890344 100644 --- a/arch/arm64/mm/ptdump.c +++ b/arch/arm64/mm/ptdump.c @@ -26,34 +26,6 @@ #include -enum address_markers_idx { - PAGE_OFFSET_NR = 0, - PAGE_END_NR, -#if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS) - KASAN_START_NR, -#endif -}; - -static struct addr_marker address_markers[] = { - { PAGE_OFFSET, "Linear Mapping start" }, - { 0 /* PAGE_END */, "Linear Mapping end" }, -#if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS) - { 0 /* KASAN_SHADOW_START */, "Kasan shadow start" }, - { KASAN_SHADOW_END, "Kasan shadow end" }, -#endif - { MODULES_VADDR, "Modules start" }, - { MODULES_END, "Modules end" }, - { VMALLOC_START, "vmalloc() area" }, - { VMALLOC_END, "vmalloc() end" }, - { VMEMMAP_START, "vmemmap start" }, - { VMEMMAP_START + VMEMMAP_SIZE, "vmemmap end" }, - { PCI_IO_START, "PCI I/O start" }, - { PCI_IO_END, "PCI I/O end" }, - { FIXADDR_TOT_START, "Fixmap start" }, - { FIXADDR_TOP, "Fixmap end" }, - { -1, NULL }, -}; - #define pt_dump_seq_printf(m, fmt, args...) \ ({ \ if (m) \ @@ -339,9 +311,8 @@ static void __init ptdump_initialize(void) pg_level[i].mask |= pg_level[i].bits[j].mask; } -static struct ptdump_info kernel_ptdump_info = { +static struct ptdump_info kernel_ptdump_info __ro_after_init = { .mm = &init_mm, - .markers = address_markers, .base_addr = PAGE_OFFSET, }; @@ -375,10 +346,29 @@ void ptdump_check_wx(void) static int __init ptdump_init(void) { - address_markers[PAGE_END_NR].start_address = PAGE_END; + struct addr_marker m[] = { + { PAGE_OFFSET, "Linear Mapping start" }, + { PAGE_END, "Linear Mapping end" }, #if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS) - address_markers[KASAN_START_NR].start_address = KASAN_SHADOW_START; + { KASAN_SHADOW_START, "Kasan shadow start" }, + { KASAN_SHADOW_END, "Kasan shadow end" }, #endif + { MODULES_VADDR, "Modules start" }, + { MODULES_END, "Modules end" }, + { VMALLOC_START, "vmalloc() area" }, + { VMALLOC_END, "vmalloc() end" }, + { VMEMMAP_START, "vmemmap start" }, + { VMEMMAP_START + VMEMMAP_SIZE, "vmemmap end" }, + { PCI_IO_START, "PCI I/O start" }, + { PCI_IO_END, "PCI I/O end" }, + { FIXADDR_TOT_START, "Fixmap start" }, + { FIXADDR_TOP, "Fixmap end" }, + { -1, NULL }, + }; + static struct addr_marker address_markers[ARRAY_SIZE(m)] __ro_after_init; + + kernel_ptdump_info.markers = memcpy(address_markers, m, sizeof(m)); + ptdump_initialize(); ptdump_debugfs_register(&kernel_ptdump_info, "kernel_page_tables"); return 0; -- 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