[PATCH v2] ARM: mmu: skip cacheable page flushes for empty ranges

Ahmad Fatoum a.fatoum at barebox.org
Fri Jun 19 22:04:56 PDT 2026


If we end here with a size of zero, region_end will become -1 and
is a sure way to lead into confusing issues.

__arch_remap_range() skips 0-sized regions, so do likewise here, so
all of arch_remap_range() is 0-size-region safe.

Reported-by: Ben Pye # Matrix
Fixes: b71103970c9b ("ARM: mmu: skip TLB invalidation if remapping zero bytes")
Signed-off-by: Ahmad Fatoum <a.fatoum at barebox.org>
---
v1 -> v2:
  - early exit instead of panic
  - Add Fixes: tag
---
 arch/arm/cpu/flush_cacheable_pages.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/cpu/flush_cacheable_pages.h b/arch/arm/cpu/flush_cacheable_pages.h
index a03e10810dc7..a5c54864d446 100644
--- a/arch/arm/cpu/flush_cacheable_pages.h
+++ b/arch/arm/cpu/flush_cacheable_pages.h
@@ -28,6 +28,9 @@ static void flush_cacheable_pages(void *start, size_t size)
 	size_t block_size;
 	mmu_addr_t *ttb;
 
+	if (!size)
+		return;
+
 	region_start = PAGE_ALIGN_DOWN((ulong)start);
 	region_end = PAGE_ALIGN(region_start + size) - 1;
 
-- 
2.47.3




More information about the barebox mailing list