Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1398792 > unrolled thread

[PATCH] x86: use compat version for preadv2 and pwritev2

Started by"Dmitry V. Levin" <ldv@altlinux.org>
First post2016-05-11 10:50 +0200
Last post2016-05-12 13:00 +0200
Articles 7 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] x86: use compat version for preadv2 and pwritev2 "Dmitry V. Levin" <ldv@altlinux.org> - 2016-05-11 10:50 +0200
    Re: [PATCH] x86: use compat version for preadv2 and pwritev2 Thomas Gleixner <tglx@linutronix.de> - 2016-05-11 12:20 +0200
      Re: [PATCH] x86: use compat version for preadv2 and pwritev2 "Dmitry V. Levin" <ldv@altlinux.org> - 2016-05-11 12:30 +0200
        Re: [PATCH] x86: use compat version for preadv2 and pwritev2 Thomas Gleixner <tglx@linutronix.de> - 2016-05-11 13:10 +0200
      Re: [PATCH] x86: use compat version for preadv2 and pwritev2 Christoph Hellwig <hch@lst.de> - 2016-05-12 09:40 +0200
    Re: [PATCH] x86: use compat version for preadv2 and pwritev2 Christoph Hellwig <hch@lst.de> - 2016-05-12 09:40 +0200
      Re: [PATCH] x86: use compat version for preadv2 and pwritev2 "Dmitry V. Levin" <ldv@altlinux.org> - 2016-05-12 13:00 +0200

#1398792 — [PATCH] x86: use compat version for preadv2 and pwritev2

From"Dmitry V. Levin" <ldv@altlinux.org>
Date2016-05-11 10:50 +0200
Subject[PATCH] x86: use compat version for preadv2 and pwritev2
Message-ID<rxy09-4vB-3@gated-at.bofh.it>
Similar to preadv and pwritev, preadv2 and pwritev2 need compat entries
in the 32-bit syscall table.

This bug was found by strace test suite.

Fixes: 4babf2c5efb7 ("x86: wire up preadv2 and pwritev2")
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
---
 arch/x86/entry/syscalls/syscall_32.tbl | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl
index b30dd81..4cddd17 100644
--- a/arch/x86/entry/syscalls/syscall_32.tbl
+++ b/arch/x86/entry/syscalls/syscall_32.tbl
@@ -384,5 +384,5 @@
 375	i386	membarrier		sys_membarrier
 376	i386	mlock2			sys_mlock2
 377	i386	copy_file_range		sys_copy_file_range
-378	i386	preadv2			sys_preadv2
-379	i386	pwritev2		sys_pwritev2
+378	i386	preadv2			sys_preadv2			compat_sys_preadv2
+379	i386	pwritev2		sys_pwritev2			compat_sys_pwritev2
-- 
ldv

[toc] | [next] | [standalone]


#1398898

FromThomas Gleixner <tglx@linutronix.de>
Date2016-05-11 12:20 +0200
Message-ID<rxzpg-6fl-23@gated-at.bofh.it>
In reply to#1398792
On Wed, 11 May 2016, Dmitry V. Levin wrote:
> Similar to preadv and pwritev, preadv2 and pwritev2 need compat entries
> in the 32-bit syscall table.

So this is 2016 and we added a syscalls which require compat support. What's
wrong here?
 
Thanks,

	tglx

[toc] | [prev] | [next] | [standalone]


#1398910

From"Dmitry V. Levin" <ldv@altlinux.org>
Date2016-05-11 12:30 +0200
Message-ID<rxzyX-6m4-19@gated-at.bofh.it>
In reply to#1398898
On Wed, May 11, 2016 at 12:14:11PM +0200, Thomas Gleixner wrote:
> On Wed, 11 May 2016, Dmitry V. Levin wrote:
> > Similar to preadv and pwritev, preadv2 and pwritev2 need compat entries
> > in the 32-bit syscall table.
> 
> So this is 2016 and we added a syscalls which require compat support. What's
> wrong here?

I'm not sure I understand your question, it looks to me as "why do we add
syscalls that require compat support".  If that's what you are asking,
I have no idea, I'm a strace man.


-- 
ldv

[toc] | [prev] | [next] | [standalone]


#1398947

FromThomas Gleixner <tglx@linutronix.de>
Date2016-05-11 13:10 +0200
Message-ID<rxAbD-77O-7@gated-at.bofh.it>
In reply to#1398910
On Wed, 11 May 2016, Dmitry V. Levin wrote:
> On Wed, May 11, 2016 at 12:14:11PM +0200, Thomas Gleixner wrote:
> > On Wed, 11 May 2016, Dmitry V. Levin wrote:
> > > Similar to preadv and pwritev, preadv2 and pwritev2 need compat entries
> > > in the 32-bit syscall table.
> > 
> > So this is 2016 and we added a syscalls which require compat support. What's
> > wrong here?
> 
> I'm not sure I understand your question, it looks to me as "why do we add
> syscalls that require compat support".  If that's what you are asking,

Yes, that question was directed at the people who added this in the first
place.

> I have no idea, I'm a strace man.

I know, you are just the messenger :)

Thanks,

	tglx

[toc] | [prev] | [next] | [standalone]


#1399717

FromChristoph Hellwig <hch@lst.de>
Date2016-05-12 09:40 +0200
Message-ID<rxTnY-13D-23@gated-at.bofh.it>
In reply to#1398898
On Wed, May 11, 2016 at 12:14:11PM +0200, Thomas Gleixner wrote:
> On Wed, 11 May 2016, Dmitry V. Levin wrote:
> > Similar to preadv and pwritev, preadv2 and pwritev2 need compat entries
> > in the 32-bit syscall table.
> 
> So this is 2016 and we added a syscalls which require compat support. What's
> wrong here?

Nothing.  It's and extension of readv/writev and uses struct iovec,
which is different for compat vs native.  We have efficient infrastructure
to deal with that in the kernel, while in userspace people would have
to copy around all the iovecs for every I/O, which would be a nightmare.

[toc] | [prev] | [next] | [standalone]


#1399715

FromChristoph Hellwig <hch@lst.de>
Date2016-05-12 09:40 +0200
Message-ID<rxTnX-13D-7@gated-at.bofh.it>
In reply to#1398792
On Wed, May 11, 2016 at 11:48:17AM +0300, Dmitry V. Levin wrote:
> Similar to preadv and pwritev, preadv2 and pwritev2 need compat entries
> in the 32-bit syscall table.
> 
> This bug was found by strace test suite.

Looks fine, thanks.

Btw, can we have a sensible format for the syscalls list that explicitly
requires adding _something_ for the compat entry so that errors by
ommision like this can't happen?

Reviewed-by: Christoph Hellwig <hch@lst.de>

[toc] | [prev] | [next] | [standalone]


#1399917

From"Dmitry V. Levin" <ldv@altlinux.org>
Date2016-05-12 13:00 +0200
Message-ID<rxWvx-3Ty-13@gated-at.bofh.it>
In reply to#1399715
On Thu, May 12, 2016 at 09:30:37AM +0200, Christoph Hellwig wrote:
> On Wed, May 11, 2016 at 11:48:17AM +0300, Dmitry V. Levin wrote:
> > Similar to preadv and pwritev, preadv2 and pwritev2 need compat entries
> > in the 32-bit syscall table.
> > 
> > This bug was found by strace test suite.
> 
> Looks fine, thanks.

BTW, x32 hasn't got entries for preadv2/pwritev2 at all.
Not a problem, just a reminder.


-- 
ldv

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web