From owner-freebsd-emulation@FreeBSD.ORG Sat Sep 16 16:46:32 2006 Return-Path: X-Original-To: emulation@FreeBSD.org Delivered-To: freebsd-emulation@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D617B16A4C8; Sat, 16 Sep 2006 16:46:32 +0000 (UTC) (envelope-from sobomax@FreeBSD.org) Received: from sippysoft.com (gk.360sip.com [72.236.70.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 576EA43D7B; Sat, 16 Sep 2006 16:46:07 +0000 (GMT) (envelope-from sobomax@FreeBSD.org) Received: from [192.168.1.47] ([204.244.149.125]) (authenticated bits=0) by sippysoft.com (8.13.6/8.13.6) with ESMTP id k8GGk14S057847 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 16 Sep 2006 09:46:03 -0700 (PDT) (envelope-from sobomax@FreeBSD.org) Message-ID: <450C2A46.9010609@FreeBSD.org> Date: Sat, 16 Sep 2006 09:45:58 -0700 From: Maxim Sobolev Organization: Sippy Software, Inc. User-Agent: Thunderbird 1.5.0.7 (Windows/20060909) MIME-Version: 1.0 To: Alexander Leidinger References: <450C0C0E.8060402@SYSTEM.PL> <20060916171840.5dd744b7@Magellan.Leidinger.net> In-Reply-To: <20060916171840.5dd744b7@Magellan.Leidinger.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: emulation@FreeBSD.org, Marcin Cieslak , Marcel Moolenaar Subject: Re: Fix for errno 2 - expected 14 (EFAULT) problems X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Sep 2006 16:46:32 -0000 Alexander, 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): $ cvs ann -r1.30 linux_machdep.c [...] 1.1 (marcel 22-Aug-00): bsd_args.prot = linux_args.prot | PROT_READ; /* always required */ So that you are better to ask marcel about why it is "always required" (if he remembers of course). -Maxim Alexander Leidinger wrote: > Quoting Marcin Cieslak (Sat, 16 Sep 2006 16:37:02 +0200): > > I CCed sobomax@, he committed the code in question. > > Maxim, do you remember why it is always required as the comment suggests? > >> LTP tests illegal memory by mmaping one-byte area region with PROT_NONE. >> Old FreeBSD (before 1.333 version of /sys/vm/vm_map.c) always silently allowed >> reada access - see http://www.freebsd.org/cgi/query-pr.cgi?pr=64573. >> Linux emulation (initial version of linux_machdep.c) always added PROT_READ >> to match FreeBSD behaviour, I think this is no longer necessary. >> >> The fix for i386 is easy: > > Maxim, Marcin noticed it isn't... some other ones (mmap and writev related) > fail now. But at least we have an idea now where to look for the error. > >> --- /usr/home/saper/b/src/sys/i386/linux/linux_machdep.c Fri Aug 5 >> 01:25:32 2005 >> +++ /sys/i386/linux/linux_machdep.c Sat Sep 16 15:13:47 2006 >> @@ -549,7 +549,7 @@ >> bsd_args.len = linux_args->len; >> } >> >> - bsd_args.prot = linux_args->prot | PROT_READ; /* always required */ >> + bsd_args.prot = linux_args->prot; >> if (linux_args->flags & LINUX_MAP_ANON) >> bsd_args.fd = -1; >> else >> >> However comment in the amd64 file indicates that for some Java applications >> PROT_EXEC should be added as well. I think we can remove PROT_READ also from >> amd64 part anyway. > > Anyone with an amd64 system out there and willing to test this (with > the LTP testsuite as described on > http://wiki.freebsd.org/linux-kernel)? Because this doesn't seems to be > the final fix, it isn't necessary to test this particular patch, but it > would be nice to know if there are some differences between the results > on i386 (as can be seen in the wiki) and amd64. > >> This fixes access03, chdir04, chmod06, chown04, chroot03 and many others. > > Bye, > Alexander. >