On Thu, Sep 16, 2021 at 8:56 PM Warner Losh <i...@bsdimp.com> wrote: > From: Guy Yur <guy...@ngmail.com> >
I need to fix this email address in the next round or for the pull request. It's gmail.com, not ngmail.com. Switch checks for !(flags & MAP_ANONYMOUS) with checks for fd != -1. > MAP_STACK and MAP_GUARD also force fd == -1 and they don't require > mapping the fd either. > > Signed-off-by: Guy Yur <guy...@gmail.com> > [ partially merged before, finishing the job and documenting origin] > Signed-off-by: Warner Losh <i...@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 > >