Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Sep 2006 19:10:19 +0200
From:      Marcin Cieslak <saper@SYSTEM.PL>
To:        Maxim Sobolev <sobomax@FreeBSD.org>, Marcel Moolenaar <marcel@FreeBSD.org>
Cc:        emulation@FreeBSD.org, Alexander Leidinger <Alexander@Leidinger.net>, Tim Robins <tjr@FreeBSD.org>
Subject:   Re: fixing linux mmap()
Message-ID:  <450C2FFB.3050209@SYSTEM.PL>
In-Reply-To: <450C2A46.9010609@FreeBSD.org>
References:  <450C0C0E.8060402@SYSTEM.PL> <20060916171840.5dd744b7@Magellan.Leidinger.net> <450C2A46.9010609@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Maxim Sobolev wrote:

> Actually it's confusion on your part. This code was there since version 
> 1.1 and long before 1.31 (my change that touched this line):

Yes, the code is very old. However things has changed in the FreeBSD
mmap() in the meantime, but Linux emulator code was left as it was.

I just wondered if we need this PROT_READ thing at all.

amd64 code illustrates this confusion even better:

/sys/amd64/linux32/linux32_machdep.c

1.1          (tjr      16-Aug-04):      /*
1.1          (tjr      16-Aug-04):       * XXX i386 Linux always emulator forces 
PROT_READ on (why?)
1.1          (tjr      16-Aug-04):       * so we do the same. We add PROT_EXEC 
to work around buggy
1.1          (tjr      16-Aug-04):       * applications (e.g. Java) that take 
advantage of the fact
1.1          (tjr      16-Aug-04):       * that execute permissions are not 
enforced by x86 CPUs.
1.1          (tjr      16-Aug-04):       */
1.1          (tjr      16-Aug-04):      bsd_args.prot = linux_args->prot | 
PROT_EXEC | PROT_READ;

I *guess* adding PROT_READ is no longer necessary (at least since 1.333 version 
of /sys/vm/vm_map.c). PROT_EXEC also wonders me, but I lack amd64 hardware and
mmap() clue to check this...

-- 
               << Marcin Cieslak // saper@system.pl >>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?450C2FFB.3050209>