qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH for-9.1] linux-user: Preserve NULL hit in target_mmap subrout


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH for-9.1] linux-user: Preserve NULL hit in target_mmap subroutines
Date: Tue, 13 Aug 2024 12:38:29 +0200
User-agent: Mozilla Thunderbird

On 13/8/24 11:46, Richard Henderson wrote:
Do not pass guest_base to the host mmap instead of zero hint.

Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2353
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
  linux-user/mmap.c | 18 +++++++++++++++---
  1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 4d09a72fad..6418e811f6 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -560,9 +560,13 @@ static abi_long mmap_h_eq_g(abi_ulong start, abi_ulong len,
                              int host_prot, int flags, int page_flags,
                              int fd, off_t offset)
  {
-    void *p, *want_p = g2h_untagged(start);
+    void *p, *want_p = NULL;
      abi_ulong last;
+ if (start || (flags & (MAP_FIXED | MAP_FIXED_NOREPLACE))) {
+        want_p = g2h_untagged(start);
+    }
+
      p = mmap(want_p, len, host_prot, flags, fd, offset);
      if (p == MAP_FAILED) {
          return -1;
@@ -610,11 +614,15 @@ static abi_long mmap_h_lt_g(abi_ulong start, abi_ulong 
len, int host_prot,
                              int mmap_flags, int page_flags, int fd,
                              off_t offset, int host_page_size)
  {
-    void *p, *want_p = g2h_untagged(start);
> +    void *p, *want_p = NULL;

Maybe extract as static helper?

      void *p, *want_p = g2h_untagged_FOO(start, flags);

      off_t fileend_adj = 0;
      int flags = mmap_flags;
      abi_ulong last, pass_last;
+ if (start || (flags & (MAP_FIXED | MAP_FIXED_NOREPLACE))) {
+        want_p = g2h_untagged(start);
+    }

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]