From: Ahmad Fatoum <a.fatoum@barebox.org>
To: barebox@lists.infradead.org
Cc: Ahmad Fatoum <a.fatoum@barebox.org>
Subject: [PATCH master 3/8] ARM: mmu: skip TLB invalidation if remapping zero bytes
Date: Tue, 5 Aug 2025 19:45:36 +0200 [thread overview]
Message-ID: <20250805174541.2606267-4-a.fatoum@barebox.org> (raw)
In-Reply-To: <20250805174541.2606267-1-a.fatoum@barebox.org>
The loop that remaps memory banks can end up calling remap_range with
zero size, when a reserved region is at the very start of the memory
bank.
This is handled correctly by the code, but does an unnecessary
invalidation of the whole TLB. Let's early exit instead to skip that.
Signed-off-by: Ahmad Fatoum <a.fatoum@barebox.org>
---
arch/arm/cpu/mmu_32.c | 2 ++
arch/arm/cpu/mmu_64.c | 2 ++
2 files changed, 4 insertions(+)
diff --git a/arch/arm/cpu/mmu_32.c b/arch/arm/cpu/mmu_32.c
index 89a18d342b80..5f303ae1dc87 100644
--- a/arch/arm/cpu/mmu_32.c
+++ b/arch/arm/cpu/mmu_32.c
@@ -283,6 +283,8 @@ static void __arch_remap_range(void *_virt_addr, phys_addr_t phys_addr, size_t s
pr_debug("%s: 0x%08x 0x%08x type %d\n", __func__, virt_addr, size, map_type);
size = PAGE_ALIGN(size);
+ if (!size)
+ return;
while (size) {
const bool pgdir_size_aligned = IS_ALIGNED(virt_addr, PGDIR_SIZE);
diff --git a/arch/arm/cpu/mmu_64.c b/arch/arm/cpu/mmu_64.c
index a229e4cb5526..91b3cd76c24f 100644
--- a/arch/arm/cpu/mmu_64.c
+++ b/arch/arm/cpu/mmu_64.c
@@ -146,6 +146,8 @@ static void create_sections(uint64_t virt, uint64_t phys, uint64_t size,
attr &= ~PTE_TYPE_MASK;
size = PAGE_ALIGN(size);
+ if (!size)
+ return;
while (size) {
table = ttb;
--
2.39.5
next prev parent reply other threads:[~2025-08-05 18:37 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-05 17:45 [PATCH master 0/8] ARM: mmu: fix hang reserving memory after text area Ahmad Fatoum
2025-08-05 17:45 ` [PATCH master 1/8] partition: rename region_overlap_end to region_overlap_end_inclusive Ahmad Fatoum
2025-08-05 17:45 ` [PATCH master 2/8] partition: define new region_overlap_end_exclusive helper Ahmad Fatoum
2025-08-05 17:45 ` Ahmad Fatoum [this message]
2025-08-05 17:45 ` [PATCH master 4/8] ARM64: mmu: pass map type not PTE flags to early_remap_range Ahmad Fatoum
2025-08-05 17:45 ` [PATCH master 5/8] ARM: mmu: provide setup_trap_pages for both 32- and 64-bit Ahmad Fatoum
2025-08-05 17:45 ` [PATCH master 6/8] ARM: mmu: setup trap pages before remapping R/O Ahmad Fatoum
2025-08-05 17:45 ` [PATCH master 7/8] ARM: mmu: share common memory bank remapping code Ahmad Fatoum
2025-08-05 17:45 ` [PATCH master 8/8] ARM: mmu: fix hang reserving memory after text area Ahmad Fatoum
2025-08-06 6:31 ` [PATCH master 0/8] " Sascha Hauer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250805174541.2606267-4-a.fatoum@barebox.org \
--to=a.fatoum@barebox.org \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox