Passing MAP_FIXED_NOREPLACE to host will fail if the virtual address space is reserved with mmap. Replace it with MAP_FIXED in such a case.
Signed-off-by: Akihiko Odaki <[email protected]> --- linux-user/mmap.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linux-user/mmap.c b/linux-user/mmap.c index a5dfb56545..14cd1b9feb 100644 --- a/linux-user/mmap.c +++ b/linux-user/mmap.c @@ -610,6 +610,10 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int target_prot, goto fail; } + if (reserved_va) { + flags = (flags & ~MAP_FIXED_NOREPLACE) | MAP_FIXED; + } + /* * worst case: we cannot map the file because the offset is not * aligned, so we read it -- 2.41.0
