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