Skip to content

Commit

Permalink
linux-user: Use do_munmap for target_mmap failure
Browse files Browse the repository at this point in the history
For the cases for which the host mmap succeeds, but does
not yield the desired address, use do_munmap to restore
the reserved_va memory reservation.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
  • Loading branch information
rth7680 committed Feb 29, 2024
1 parent 2952b64 commit 3bfa271
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions linux-user/mmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ static bool mmap_frag(abi_ulong real_start, abi_ulong start, abi_ulong last,
flags | MAP_ANONYMOUS, -1, 0);
if (p != host_start) {
if (p != MAP_FAILED) {
munmap(p, host_page_size);
do_munmap(p, host_page_size);
errno = EEXIST;
}
return false;
Expand Down Expand Up @@ -622,7 +622,7 @@ static abi_long target_mmap__locked(abi_ulong start, abi_ulong len,
p = mmap(g2h_untagged(start), len, host_prot,
flags | MAP_FIXED, fd, host_offset);
if (p == MAP_FAILED) {
munmap(g2h_untagged(start), host_len);
do_munmap(g2h_untagged(start), host_len);
return -1;
}
host_start += offset - host_offset;
Expand Down Expand Up @@ -735,7 +735,7 @@ static abi_long target_mmap__locked(abi_ulong start, abi_ulong len,
flags, fd, offset1);
if (p != want_p) {
if (p != MAP_FAILED) {
munmap(p, len1);
do_munmap(p, len1);
errno = EEXIST;
}
return -1;
Expand Down

0 comments on commit 3bfa271

Please sign in to comment.