From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/10635 Path: news.gmane.org!.POSTED!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: [PATCH 1/7] fix preadv2 and pwritev2 syscall numbers on x32 for linux v4.8 Date: Fri, 14 Oct 2016 17:13:59 +0200 Message-ID: <20161014151359.GR28065@port70.net> References: <20161009165810.GC28065@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: blaine.gmane.org 1476458063 8112 195.159.176.226 (14 Oct 2016 15:14:23 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 14 Oct 2016 15:14:23 +0000 (UTC) User-Agent: Mutt/1.6.0 (2016-04-01) To: musl@lists.openwall.com Original-X-From: musl-return-10648-gllmg-musl=m.gmane.org@lists.openwall.com Fri Oct 14 17:14:14 2016 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1bv4BY-0000t3-2T for gllmg-musl@m.gmane.org; Fri, 14 Oct 2016 17:14:12 +0200 Original-Received: (qmail 15375 invoked by uid 550); 14 Oct 2016 15:14:11 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 14333 invoked from network); 14 Oct 2016 15:14:11 -0000 Mail-Followup-To: musl@lists.openwall.com Content-Disposition: inline In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:10635 Archived-At: * Khem Raj [2016-10-14 14:09:10 +0200]: > On Sun, Oct 9, 2016 at 6:58 PM, Szabolcs Nagy wrote: > > the numbers were wrong in musl, but they were also wrong in the kernel > > and got fixed in v4.8 commit 3ebfd81f7fb3e81a754e37283b7f38c62244641a > > what happens if we now build musl trunk with linux kernel 3.7 ? > on v3.7 a raw syscall(__NR_preadv2,..) should return -ENOSYS. these syscalls appeared in v4.6 (with wrong numbers: they overlap with existing x32 numbers), but by accident i added them using the x86_64 numbers to musl (most x32 syscalls are mapped to x86_64 numbers), which means there is no overlap in musl. with >=v4.6 kernel musl would try to use the x86_64 syscalls from x32 which is wrong and i don't know how that plays out in practice. this affects musl >=v1.1.15 linux v4.8 fixed the numbers, so we should fix them too. > > --- > > arch/x32/bits/syscall.h.in | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/arch/x32/bits/syscall.h.in b/arch/x32/bits/syscall.h.in > > index cf2b4f1..e94dcb2 100644 > > --- a/arch/x32/bits/syscall.h.in > > +++ b/arch/x32/bits/syscall.h.in > > @@ -280,8 +280,6 @@ > > #define __NR_membarrier (0x40000000 + 324) > > #define __NR_mlock2 (0x40000000 + 325) > > #define __NR_copy_file_range (0x40000000 + 326) > > -#define __NR_preadv2 (0x40000000 + 327) > > -#define __NR_pwritev2 (0x40000000 + 328) > > > > #define __NR_rt_sigaction (0x40000000 + 512) > > #define __NR_rt_sigreturn (0x40000000 + 513) > > @@ -317,4 +315,6 @@ > > #define __NR_io_setup (0x40000000 + 543) > > #define __NR_io_submit (0x40000000 + 544) > > #define __NR_execveat (0x40000000 + 545) > > +#define __NR_preadv2 (0x40000000 + 546) > > +#define __NR_pwritev2 (0x40000000 + 547) > > > > -- > > 2.10.0 > >