From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3309B606A321 for ; Wed, 11 Nov 2026 11:37:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=w703Bf6a; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.a=rsa-sha256 header.s=20260707 header.b=IHajk8lO DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:Cc:To:From: Subject:Message-ID:References:Mime-Version:In-Reply-To:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Unsubscribe-Post:List-Owner; bh=Pd2LkXH74KyjkxP8lUXKvl1JOnJh/9hivuqWG2OIXns=; b=w703Bf6acNLnsBWxXLSu2JV1YM InBskH4QUoe2npLBUIUPsC44aUPGsX+wubSz2EwXR6BEsgbzZ+/ZYnCkTX0y7Hg9HdOE2Puwl4c8e PuMoyqQHAueYAB/lfzlXprxKFo5xeq78VnlBH3T9DmmkaveAwHw2Smg9Y9qztT8NzzINGD8NnxQLi 4tx/Rz0A+x7I9PZ13oxjqpaGOsOmXPr27IFUKQKUzasXL/dFsQgQ+2Bf1Fy843TVpBpulD0WQQc/N C5u/4k7hAaQmXIlWFY8kyazutvEeUhD0cheZjji8CbYxZz9/VXLFWlgtE91Vk62+bmb5sqiXx7bqv 4AJgj6gw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xR6Bw-00000006QpZ-0T8X; Wed, 11 Nov 2026 11:08:36 +0000 Received: from mail-wm1-x345.google.com ([2a00:1450:4864:20::345]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xR6Bn-00000006QlL-1Xe2 for linux-arm-kernel@lists.infradead.org; Wed, 11 Nov 2026 11:08:28 +0000 Received: by mail-wm1-x345.google.com with SMTP id 5b1f17b1804b1-4b8b3cd61a5so17935465e9.1 for ; Wed, 11 Nov 2026 03:08:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20260707; t=1794395305; x=1795000105; darn=lists.infradead.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Pd2LkXH74KyjkxP8lUXKvl1JOnJh/9hivuqWG2OIXns=; b=IHajk8lOVFKX/HGuECXMUysaGFvQS+wXxmQM1H+wL5oGp0naynAsm1B/+yp7qjS+oo JLuVToTp8fMm5rcP82j0KbxvwDuTYvQkdL95wTV60+dv+Tqb79qUafa52ys1pfFzVGnA WWtF4I5kOIcwdyRpihsblmwmKBdz8rpGsEnU1A0c5KyMAIp8/Ne1KmKrwlfneLSBzLDL +VhXMwJBa/3B11JvL2rsTH0iyFnEBo5JmI80M9l2nEqzA3davTwHa+6AcWV0MG1H1Ash 878NdAARcnz0GhTbmjoa1EDLtSZtZVkYoZadICBCkBb1tnszYw16yVykrTtXAkSaCtJa cQEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794395305; x=1795000105; h=content-type: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:content-type; bh=Pd2LkXH74KyjkxP8lUXKvl1JOnJh/9hivuqWG2OIXns=; b=IAwLnA0V+TiuBND7wHCZ+tAPt9hK97XM13pBW3aa1R025yphyilF+Agk5DPJ3Oqc+O Ja7D93NcxgkyrpdcKFYDAl7iwWfIK2Dx8fyc0zX3dEa0X+TE/h6GA6FkJpRamhY7dZ59 UMlSI5pmOpvqZByjYmOQkEP7N7ouSBY9/3qu8fU3ag/mAXO+G43+6hp0TRghL041kg2a iThtWvkGHbWMBGhHzQnnhkfYLy03LVXHJn5MjgZk1fdMY7VqWP0jpLc3B3wzXCsiDn+Q zJjDUa/hNGCqi5xGDBgng7aCvhFdFaHv+IjtDz88vFMU+tVHM7SbHS3pvpQHLKD1hudA 1nfw== X-Forwarded-Encrypted: i=1; AL+hErHaxFsNqOl4rzpkW7PZ6xE5gqP6g3aiiAY62DoJBjz6O+HOJl6KVlVcaacJ96PnvWqS7MTtC00ckMcF7UT+Rtfz@lists.infradead.org X-Gm-Message-State: APuU4Z8+npecCsaFZroYJi5cx27T1c9un2n5HImYgkou3KxnDIIkw40V 5EdqXGyhqtwY05pSlnaMIDnQG62RCxgA8QgR9H+C5cE3ubwiOdKiGgwPzvro6vkllFiW+dwNczT 5AGb3fVXK8E7PE6QszcukYA== X-Received: from wman16.prod.google.com ([2002:a05:600c:6c50:b0:4a1:e44e:ffd0]) (user=vdonnefort job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:c08b:b0:4ba:4928:8aec with SMTP id 5b1f17b1804b1-4ba49288bdemr21813875e9.9.1794395304668; Wed, 11 Nov 2026 03:08:24 -0800 (PST) Date: Wed, 11 Nov 2026 11:07:32 +0000 In-Reply-To: <20261111110738.872947-1-vdonnefort@google.com> X-Archived-By: Mime-Version: 1.0 References: <20261111110738.872947-1-vdonnefort@google.com> X-Mailer: git-send-email 2.56.0.542.g3ef89b7020-goog Message-ID: <20261111110738.872947-3-vdonnefort@google.com> Subject: [PATCH v3 2/8] arm64: Add support for MEMBLOCK_PTEMAP From: Vincent Donnefort To: catalin.marinas@arm.com, will@kernel.org, rppt@kernel.org, akpm@linux-foundation.org, m.szyprowski@samsung.com, jenswi@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mark.rutland@arm.com, robin.murphy@arm.com, hch@lst.de, ryan.roberts@arm.com, sumit.garg@kernel.org, sudeep.holla@kernel.org, ardb@kernel.org, thierry.reding@kernel.org, david@kernel.org, danielmentz@google.com, linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, iommu@lists.linux.dev, op-tee@lists.trustedfirmware.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Vincent Donnefort Content-Type: text/plain; charset="UTF-8" X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261111_030827_421587_1D9CC53B X-CRM114-Status: GOOD ( 14.66 ) X-Spam-Score: -9.5 (---------) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" X-Spam-Status: No, score=-26.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIMWL_WL_MED,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT, USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 With the MEMBLOCK_PTEMAP flag, force a PTE-level mapping. This also disables contiguous PTEs to make sure any page from the memblock can be safely unmapped from the linear map. Signed-off-by: Vincent Donnefort --- arch/arm64/mm/mmu.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index 140520b351e2..a4cafafa1d82 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -1184,9 +1184,8 @@ static void __init map_mem(void) phys_addr_t init_begin = __pa_symbol(__init_begin); phys_addr_t init_end = __pa_symbol(__init_end); phys_addr_t kernel_end = __pa_symbol(__bss_stop); - phys_addr_t start, end; int flags = NO_EXEC_MAPPINGS; - u64 i; + struct memblock_region *r; /* * Setting hierarchical PXNTable attributes on table entries covering @@ -1226,9 +1225,14 @@ static void __init map_mem(void) flags); /* map all the memory banks */ - for_each_mem_range(i, &start, &end) { + for_each_mem_region(r) { + phys_addr_t start, end; + int rflags = flags; + + if (memblock_is_nomap(r)) + continue; /* - * for_each_mem_range may return sub-page-aligned boundaries + * for_each_mem_region may return sub-page-aligned boundaries * after memblock_mark_nomap() splits regions at byte precision. * __create_pgd_mapping_locked aligns phys down to PAGE_MASK, * which could accidentally map no-map memory on the boundary. @@ -1237,17 +1241,21 @@ static void __init map_mem(void) * regions. The cost is at most one page of unmapped gap at * each boundary. */ - start = PAGE_ALIGN(start); - end = end & PAGE_MASK; + start = PAGE_ALIGN(r->base); + end = (r->base + r->size) & PAGE_MASK; if (start >= end) continue; + + if (memblock_is_ptemap(r)) + rflags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS; + /* * The linear map must allow allocation tags reading/writing * if MTE is present. Otherwise, it has the same attributes as * PAGE_KERNEL. */ __map_memblock(start, end, pgprot_tagged(PAGE_KERNEL), - flags); + rflags); } } -- 2.56.0.542.g3ef89b7020-goog