From: Yong Zhang <yong.zhang@windriver.com>
To: David Daney <david.daney@cavium.com>
Cc: <linux-mips@linux-mips.org>, <linux-kernel@vger.kernel.org>,
Ralf Baechle <ralf@linux-mips.org>
Subject: Re: [PATCH] MIPS: use 32-bit wrapper for compat_sys_futex
Date: Thu, 18 Aug 2011 10:44:22 +0800 [thread overview]
Message-ID: <20110818024422.GB3750@windriver.com> (raw)
In-Reply-To: <4E4BF7C0.80703@cavium.com>
On Wed, Aug 17, 2011 at 10:17:52AM -0700, David Daney wrote:
> > PTR compat_sys_sched_setaffinity
> > PTR compat_sys_sched_getaffinity /* 4240 */
> > PTR compat_sys_io_setup
>
> But really I think this patch fixes things at the wrong level. Each
> architecture potentially needs a similar patch. What would happen if
> we did something like:
I have thought about it but finally I decide to keep it under arch code;
because sparc64 and s390 have the same issue and they all smooth the
concern by themselves.
For sparc64:
arch/sparc/kernel/sys32.S:
91: SIGN3(sys32_futex, compat_sys_futex, %o1, %o2, %o5)
For s390:
arch/s390/kernel/compat_wrapper.S
ENTRY(compat_sys_futex_wrapper)
llgtr %r2,%r2 # u32 *
lgfr %r3,%r3 # int
lgfr %r4,%r4 # int
llgtr %r5,%r5 # struct compat_timespec *
llgtr %r6,%r6 # u32 *
lgf %r0,164(%r15) # int
stg %r0,160(%r15)
jg compat_sys_futex # branch to system call
Maybe we can consolidate all of this like your patch in the future,
but it's a different issue.
Thanks,
Yong
>
>
> diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
> index 5f9e689..74ada65 100644
> --- a/kernel/futex_compat.c
> +++ b/kernel/futex_compat.c
> @@ -180,9 +180,9 @@ err_unlock:
> return ret;
> }
>
> -asmlinkage long compat_sys_futex(u32 __user *uaddr, int op, u32 val,
> - struct compat_timespec __user *utime, u32 __user *uaddr2,
> - u32 val3)
> +SYSCALL_DEFINE6(compat_sys_futex, u32 __user *, uaddr, int , op, u32, val,
> + struct compat_timespec __user *, utime, u32 __user *, uaddr2,
> + u32, val3)
> {
> struct timespec ts;
> ktime_t t, *tp = NULL;
>
> Obviously the function name is wrong, but a varient of
> SYSCALL_DEFINE*() could be created so the proper function names are
> produced.
>
> David Daney
WARNING: multiple messages have this Message-ID (diff)
From: Yong Zhang <yong.zhang@windriver.com>
To: David Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org, linux-kernel@vger.kernel.org,
Ralf Baechle <ralf@linux-mips.org>
Subject: Re: [PATCH] MIPS: use 32-bit wrapper for compat_sys_futex
Date: Thu, 18 Aug 2011 10:44:22 +0800 [thread overview]
Message-ID: <20110818024422.GB3750@windriver.com> (raw)
Message-ID: <20110818024422.ldPoxIcZ3s9qgQk8h5hKe6_zg9_W9922f3jT87j8WiY@z> (raw)
In-Reply-To: <4E4BF7C0.80703@cavium.com>
On Wed, Aug 17, 2011 at 10:17:52AM -0700, David Daney wrote:
> > PTR compat_sys_sched_setaffinity
> > PTR compat_sys_sched_getaffinity /* 4240 */
> > PTR compat_sys_io_setup
>
> But really I think this patch fixes things at the wrong level. Each
> architecture potentially needs a similar patch. What would happen if
> we did something like:
I have thought about it but finally I decide to keep it under arch code;
because sparc64 and s390 have the same issue and they all smooth the
concern by themselves.
For sparc64:
arch/sparc/kernel/sys32.S:
91: SIGN3(sys32_futex, compat_sys_futex, %o1, %o2, %o5)
For s390:
arch/s390/kernel/compat_wrapper.S
ENTRY(compat_sys_futex_wrapper)
llgtr %r2,%r2 # u32 *
lgfr %r3,%r3 # int
lgfr %r4,%r4 # int
llgtr %r5,%r5 # struct compat_timespec *
llgtr %r6,%r6 # u32 *
lgf %r0,164(%r15) # int
stg %r0,160(%r15)
jg compat_sys_futex # branch to system call
Maybe we can consolidate all of this like your patch in the future,
but it's a different issue.
Thanks,
Yong
>
>
> diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
> index 5f9e689..74ada65 100644
> --- a/kernel/futex_compat.c
> +++ b/kernel/futex_compat.c
> @@ -180,9 +180,9 @@ err_unlock:
> return ret;
> }
>
> -asmlinkage long compat_sys_futex(u32 __user *uaddr, int op, u32 val,
> - struct compat_timespec __user *utime, u32 __user *uaddr2,
> - u32 val3)
> +SYSCALL_DEFINE6(compat_sys_futex, u32 __user *, uaddr, int , op, u32, val,
> + struct compat_timespec __user *, utime, u32 __user *, uaddr2,
> + u32, val3)
> {
> struct timespec ts;
> ktime_t t, *tp = NULL;
>
> Obviously the function name is wrong, but a varient of
> SYSCALL_DEFINE*() could be created so the proper function names are
> produced.
>
> David Daney
next prev parent reply other threads:[~2011-08-18 2:44 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-17 1:54 [PATCH] MIPS: use 32-bit wrapper for compat_sys_futex Yong Zhang
2011-08-17 1:54 ` Yong Zhang
2011-08-17 12:43 ` Ralf Baechle
2011-08-17 17:17 ` David Daney
2011-08-18 2:32 ` Yong Zhang
2011-08-18 2:32 ` Yong Zhang
2011-08-18 16:23 ` David Daney
2011-08-19 1:56 ` Yong Zhang
2011-08-19 1:56 ` Yong Zhang
2011-08-18 2:44 ` Yong Zhang [this message]
2011-08-18 2:44 ` Yong Zhang
2011-08-18 20:19 ` Ralf Baechle
2011-08-19 3:49 ` How to trace compat syscalls? [Was Re: [PATCH] MIPS: use 32-bit wrapper for compat_sys_futex] Yong Zhang
2011-08-19 3:49 ` Yong Zhang
2011-08-19 4:15 ` Yong Zhang
2011-08-19 4:15 ` Yong Zhang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110818024422.GB3750@windriver.com \
--to=yong.zhang@windriver.com \
--cc=david.daney@cavium.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.