Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1402899
| From | Catalin Marinas <catalin.marinas@arm.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 20/25] arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it |
| Date | 2016-05-18 13:30 +0200 |
| Message-ID | <rA7PP-1s3-5@gated-at.bofh.it> (permalink) |
| References | <rkHkD-2hR-23@gated-at.bofh.it> <rrSuE-1f0-45@gated-at.bofh.it> <rzubL-1me-7@gated-at.bofh.it> <rzubL-1me-5@gated-at.bofh.it> <rA7PP-1s3-7@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Tue, May 17, 2016 at 10:05:26PM +0300, Yury Norov wrote:
> On Mon, May 16, 2016 at 06:06:05PM +0100, Catalin Marinas wrote:
> > On Sat, May 14, 2016 at 06:03:52PM +0300, Yury Norov wrote:
> > > +SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len,
> > > + unsigned long, prot, unsigned long, flags, unsigned long, fd,
> > > + unsigned long, pgoff)
> >
> > To avoid the types confusion we could add __SC_WRAP to mmap2 in unistd.h
> > and use COMPAT_SYSCALL_DEFINE6 here (together with compat_ptr_t etc.).
> >
> > > +{
> > > + if (pgoff & (~PAGE_MASK >> 12))
> > > + return -EINVAL;
> > > +
> > > + return sys_mmap_pgoff((compat_uptr_t) addr, (compat_size_t) len,
> > > + (int) prot, (int) flags, (int) fd,
> > > + pgoff >> (PAGE_SHIFT-12));
> >
> > Then we wouldn't need the explicit casting here.
>
> See below
>
> > > +}
> > > +
> > > +COMPAT_SYSCALL_DEFINE4(pread64, unsigned int, fd, compat_uptr_t __user *, ubuf,
> > > + compat_size_t, count, off_t, offset)
> > > +{
> > > + return sys_pread64(fd, (char *) ubuf, count, offset);
> > > +}
> > > +
> > > +COMPAT_SYSCALL_DEFINE4(pwrite64, unsigned int, fd, compat_uptr_t __user *, ubuf,
> > > + compat_size_t, count, off_t, offset)
> > > +{
> > > + return sys_pwrite64(fd, (char *) ubuf, count, offset);
> >
> > Nitpick: no space between cast type and variable name: (char *)ubuf, ...
>
> I think it's really a matter of taste. I prefer to have a space, and
> there's no solid rule in coding style.
>
> And there are 13032 insertions of my version vs 35030 of yours:
> ~/work/linux$ git grep ' \*)[a-zA-Z]'|wc -l
> 35030
> ~/work/linux$ git grep ' \*) [a-zA-Z]'|wc -l
> 13032
>
> Of course, I will change it if you insist.
Not really, I thought it's covered by CodingStyle but it doesn't seem
to.
> > We can also make these functions static as they are not used outside
> > this file.
>
> If it's OK, we can use just compat_sys_xxx() instead of
> COMPAT_SYSCALL_DEFINEx(xxx),
I got lost in macros, what difference would COMPAT_SYSCALL_DEFINE vs
compat_sys_*() make? Is this the delouse stuff?
> and for mmap2 we'll not need to change _SYSCALL to _SC_WRAP in
> unistd.h that way.
Looking at the generic unistd.h, adding _SC_WRAP for sys_mmap2 is
indeed not easy:
#define __NR3264_mmap 222
__SC_3264(__NR3264_mmap, sys_mmap2, sys_mmap)
So defining a compat_sys_mmap2() would work but I think you'd also need:
#define sys_mmap2 compat_sys_mmap2()
--
Catalin
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
Re: [PATCH 20/25] arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it Catalin Marinas <catalin.marinas@arm.com> - 2016-05-16 19:10 +0200 Re: [PATCH 20/25] arm64:ilp32: add sys_ilp32.c and a separate table (in entry.S) to use it Catalin Marinas <catalin.marinas@arm.com> - 2016-05-18 13:30 +0200
csiph-web