[PATCH] qemu/osdep: Remove fallback for MAP_FIXED_NOREPLACE

Richard Henderson posted 1 patch 9 months, 2 weeks ago
Failed in applying to current master (apply log)
Maintainers: Laurent Vivier <laurent@vivier.eu>
include/qemu/osdep.h | 3 ---
linux-user/elfload.c | 1 -
2 files changed, 4 deletions(-)
[PATCH] qemu/osdep: Remove fallback for MAP_FIXED_NOREPLACE
Posted by Richard Henderson 9 months, 2 weeks ago
In order for our emulation of MAP_FIXED_NOREPLACE to succeed within
linux-user target_mmap, we require a non-zero value.  This does not
require host kernel support, merely the bit being defined.

MAP_FIXED_NOREPLACE was added with glibc 2.28.  From repology.org:

                  Fedora 36: 2.35
          CentOS 8 (RHEL-8): 2.28
                  Debian 11: 2.31
         OpenSUSE Leap 15.4: 2.31
           Ubuntu LTS 20.04: 2.31

Reported-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 include/qemu/osdep.h | 3 ---
 linux-user/elfload.c | 1 -
 2 files changed, 4 deletions(-)

diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index cc61b00ba9..21ef8f1699 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -289,9 +289,6 @@ void QEMU_ERROR("code path is reachable")
 #ifndef MAP_ANONYMOUS
 #define MAP_ANONYMOUS MAP_ANON
 #endif
-#ifndef MAP_FIXED_NOREPLACE
-#define MAP_FIXED_NOREPLACE 0
-#endif
 #ifndef MAP_NORESERVE
 #define MAP_NORESERVE 0
 #endif
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 36e4026f05..9d9c79a653 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -2807,7 +2807,6 @@ static void pgb_reserved_va(const char *image_name, abi_ulong guest_loaddr,
     /* Widen the "image" to the entire reserved address space. */
     pgb_static(image_name, 0, reserved_va, align);
 
-    /* osdep.h defines this as 0 if it's missing */
     flags |= MAP_FIXED_NOREPLACE;
 
     /* Reserve the memory on the host. */
-- 
2.34.1
Re: [PATCH] qemu/osdep: Remove fallback for MAP_FIXED_NOREPLACE
Posted by Michael Tokarev 9 months, 2 weeks ago
08.08.2023 19:44, Richard Henderson пишет:
> In order for our emulation of MAP_FIXED_NOREPLACE to succeed within
> linux-user target_mmap, we require a non-zero value.  This does not
> require host kernel support, merely the bit being defined.

Hm. Should we add something like

  assert(MAP_FIXED_NOREPLACE != 0)

somewhere?

/mjt

Re: [PATCH] qemu/osdep: Remove fallback for MAP_FIXED_NOREPLACE
Posted by Richard Henderson 9 months, 2 weeks ago
On 8/8/23 20:50, Michael Tokarev wrote:
> 08.08.2023 19:44, Richard Henderson пишет:
>> In order for our emulation of MAP_FIXED_NOREPLACE to succeed within
>> linux-user target_mmap, we require a non-zero value.  This does not
>> require host kernel support, merely the bit being defined.
> 
> Hm. Should we add something like
> 
>   assert(MAP_FIXED_NOREPLACE != 0)
> 
> somewhere?

I wouldn't think so.  Where would a zero come from?


r~


Re: [PATCH] qemu/osdep: Remove fallback for MAP_FIXED_NOREPLACE
Posted by Akihiko Odaki 9 months, 2 weeks ago
On 2023/08/09 1:44, Richard Henderson wrote:
> In order for our emulation of MAP_FIXED_NOREPLACE to succeed within
> linux-user target_mmap, we require a non-zero value.  This does not
> require host kernel support, merely the bit being defined.
> 
> MAP_FIXED_NOREPLACE was added with glibc 2.28.  From repology.org:
> 
>                    Fedora 36: 2.35
>            CentOS 8 (RHEL-8): 2.28
>                    Debian 11: 2.31
>           OpenSUSE Leap 15.4: 2.31
>             Ubuntu LTS 20.04: 2.31
> 
> Reported-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Re: [PATCH] qemu/osdep: Remove fallback for MAP_FIXED_NOREPLACE
Posted by Alex Bennée 9 months, 2 weeks ago
Richard Henderson <richard.henderson@linaro.org> writes:

> In order for our emulation of MAP_FIXED_NOREPLACE to succeed within
> linux-user target_mmap, we require a non-zero value.  This does not
> require host kernel support, merely the bit being defined.
>
> MAP_FIXED_NOREPLACE was added with glibc 2.28.  From repology.org:
>
>                   Fedora 36: 2.35
>           CentOS 8 (RHEL-8): 2.28
>                   Debian 11: 2.31
>          OpenSUSE Leap 15.4: 2.31
>            Ubuntu LTS 20.04: 2.31
>
> Reported-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro