From: Warner Losh <imp@bsdimp.com>
To: qemu-devel@nongnu.org
Cc: kevans@freebsd.org, Guy Yur <guyyur@gmail.com>,
richard.henderson@linaro.org, f4bug@amsat.org,
Warner Losh <imp@bsdimp.com>
Subject: [PATCH v2 7/9] bsd-user/mmap.c: Don't mmap fd == -1 independently from MAP_ANON flag
Date: Tue, 21 Sep 2021 22:56:34 -0600 [thread overview]
Message-ID: <20210922045636.25206-8-imp@bsdimp.com> (raw)
In-Reply-To: <20210922045636.25206-1-imp@bsdimp.com>
From: Guy Yur <guyyur@gmail.com>
Switch checks for !(flags & MAP_ANONYMOUS) with checks for fd != -1.
MAP_STACK and MAP_GUARD both require fd == -1 and don't require mapping
the fd either.
Signed-off-by: Guy Yur <guyyur@gmail.com>
[ partially merged before, finishing the job and documenting origin]
Signed-off-by: Warner Losh <imp@bsdimp.com>
---
bsd-user/mmap.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c
index 8b763fffc3..347d314aa9 100644
--- a/bsd-user/mmap.c
+++ b/bsd-user/mmap.c
@@ -154,7 +154,7 @@ static int mmap_frag(abi_ulong real_start,
if (prot1 == 0) {
/* no page was there, so we allocate one */
void *p = mmap(host_start, qemu_host_page_size, prot,
- flags | MAP_ANON, -1, 0);
+ flags | ((fd != -1) ? MAP_ANON : 0), -1, 0);
if (p == MAP_FAILED)
return -1;
prot1 = prot;
@@ -162,7 +162,7 @@ static int mmap_frag(abi_ulong real_start,
prot1 &= PAGE_BITS;
prot_new = prot | prot1;
- if (!(flags & MAP_ANON)) {
+ if (fd != -1) {
/* msync() won't work here, so we return an error if write is
possible while it is a shared mapping */
if ((flags & TARGET_BSD_MAP_FLAGMASK) == MAP_SHARED &&
@@ -571,7 +571,7 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
* worst case: we cannot map the file because the offset is not
* aligned, so we read it
*/
- if (!(flags & MAP_ANON) &&
+ if (fd != -1 &&
(offset & ~qemu_host_page_mask) != (start & ~qemu_host_page_mask)) {
/*
* msync() won't work here, so we return an error if write is
--
2.32.0
next prev parent reply other threads:[~2021-09-22 5:05 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-22 4:56 [PATCH v2 0/9] bsd-user mmap fixes Warner Losh
2021-09-22 4:56 ` [PATCH v2 1/9] bsd-user/mmap.c: Always zero MAP_ANONYMOUS memory in mmap_frag() Warner Losh
2021-09-23 17:35 ` Richard Henderson
2021-09-22 4:56 ` [PATCH v2 2/9] bsd-user/mmap.c: check pread's return value to fix warnings with _FORTIFY_SOURCE Warner Losh
2021-09-23 17:36 ` Richard Henderson
2021-09-24 15:07 ` Warner Losh
2021-09-25 10:54 ` Philippe Mathieu-Daudé
2021-09-22 4:56 ` [PATCH v2 3/9] bsd-user/mmap.c: MAP_ symbols are defined, so no need for ifdefs Warner Losh
2021-09-23 17:37 ` Richard Henderson
2021-09-22 4:56 ` [PATCH v2 4/9] bsd-user/mmap.c: mmap return ENOMEM on overflow Warner Losh
2021-09-23 17:38 ` Richard Henderson
2021-09-25 10:55 ` Philippe Mathieu-Daudé
2021-09-22 4:56 ` [PATCH v2 5/9] bsd-user/mmap.c: mmap prefer MAP_ANON for BSD Warner Losh
2021-09-23 17:38 ` Richard Henderson
2021-09-22 4:56 ` [PATCH v2 6/9] bsd-user/mmap.c: line wrap change Warner Losh
2021-09-23 17:41 ` Richard Henderson
2021-09-26 16:46 ` Warner Losh
2021-09-22 4:56 ` Warner Losh [this message]
2021-09-23 17:43 ` [PATCH v2 7/9] bsd-user/mmap.c: Don't mmap fd == -1 independently from MAP_ANON flag Richard Henderson
2021-09-26 17:08 ` Warner Losh
2021-09-26 19:07 ` Guy Yur
2021-09-27 0:17 ` Warner Losh
2021-09-22 4:56 ` [PATCH v2 8/9] bsd-user/mmap.c: Implement MAP_EXCL, required by jemalloc in head Warner Losh
2021-09-23 17:52 ` Richard Henderson
2021-09-26 18:38 ` Warner Losh
2021-09-22 4:56 ` [PATCH v2 9/9] bsd-user/mmap.c: assert that target_mprotect cannot fail Warner Losh
2021-09-23 17:53 ` Richard Henderson
2021-09-25 10:58 ` Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210922045636.25206-8-imp@bsdimp.com \
--to=imp@bsdimp.com \
--cc=f4bug@amsat.org \
--cc=guyyur@gmail.com \
--cc=kevans@freebsd.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.