On Sun, Jan 20, 2013 at 12:53:20PM -0800, Linus Torvalds wrote:
> On Sat, Jan 19, 2013 at 7:12 PM, Al Viro <v...@zeniv.linux.org.uk> wrote:
> >
> > OK...  I think I understand what's going on.  We need asmlinkage_protect
> > in sys_clone() ;-/  For what it's worth, I really wonder if we ought to
> > treat that as syscall wrappers - i.e. have SYSCALL_DEFINEx on i386 add
> > a wrapper that would do asmlinkage_protect itself.  IMO it's the same kind
> > of thing as argument normalization handled by syscall wrappers - we make
> > sure that C function plays well with what asm glue is doing and expecting.
> 
> Actually, I think we should do it *unconditionally* in the syscall wrappers.

That's what I mean; sorry for bad wording - should be "use SYSCALL_DEFINEx on
i386, adding a wrapper that would do asmlinkage_protect".  And yes, i386 is
the only architecture that currently has a non-empty asmlinkage_protect(),
so all architecture dependencies would already be taken care of -
SYSCALL_DEFINEx should use asmlinkage_protect() unconditionally.

> But in the meantime, I guess I should just take the do_fork() one. Can
> I get a sign-off and a changelog?

See signal.git#for-linus; regression fixes (including this one) +
compat syscall fixes (discussed back in December) + a couple of "make
life easier for sigaltstack stuff by reducing inter-tree dependencies"
Please, pull from the usual place
git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal for-linus

Shortlog:
Al Viro (6):
      switch compat_sys_sigaltstack() to COMPAT_SYSCALL_DEFINE
      switch compat_sys_wait4() and compat_sys_waitid() to COMPAT_SYSCALL_DEFINE
      x32: fix waitid()
      x32: fix sigtimedwait
      make sure that /linuxrc has std{in,out,err}
      sys_clone() needs asmlinkage_protect

Vineet Gupta (2):
      Ensure that kernel_init_freeable() is not inlined into non __init code
      CONFIG_GENERIC_SIGALTSTACK build breakage with asm-generic/syscalls.h

Diffstat:
 include/asm-generic/syscalls.h |    2 ++
 init/do_mounts_initrd.c        |    4 ++++
 init/main.c                    |    4 ++--
 kernel/compat.c                |   23 +++++++++++++++--------
 kernel/fork.c                  |    6 ++++--
 kernel/signal.c                |    5 +++--
 6 files changed, 30 insertions(+), 14 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to