From e8e7d1f97785be2fd81fc520e0c7b9d228c10a56 Mon Sep 17 00:00:00 2001 From: Bingwu Zhang Date: Sat, 28 Feb 2026 00:46:31 +0800 Subject: [PATCH] bsd-user: Deal with mmap where start > reserved_va Fixes: f12294b5bd21 ("bsd-user: Use page_find_range_empty for mmap_find_vma_reserved") Signed-off-by: Bingwu Zhang Reviewed-by: Helge Deller Reviewed-by: Warner Losh Signed-off-by: Helge Deller --- bsd-user/mmap.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c index 24ba1728eb..fe77eceb48 100644 --- a/bsd-user/mmap.c +++ b/bsd-user/mmap.c @@ -258,12 +258,14 @@ abi_ulong mmap_next_start = TASK_UNMAPPED_BASE; static abi_ulong mmap_find_vma_reserved(abi_ulong start, abi_ulong size, abi_ulong alignment) { - abi_ulong ret; + abi_ulong ret = -1; - ret = page_find_range_empty(start, reserved_va, size, alignment); + if (start <= reserved_va) { + ret = page_find_range_empty(start, reserved_va, size, alignment); + } if (ret == -1 && start > TARGET_PAGE_SIZE) { /* Restart at the beginning of the address space. */ - ret = page_find_range_empty(TARGET_PAGE_SIZE, start - 1, + ret = page_find_range_empty(TARGET_PAGE_SIZE, MIN(start - 1, reserved_va), size, alignment); }