microblaze: fix clone syscall
authorMichal Simek <michal.simek@xilinx.com>
Tue, 13 Aug 2013 23:00:53 +0000 (16:00 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 20 Aug 2013 15:43:02 +0000 (08:43 -0700)
commit4f01c72ef36d3305d6273fe7f1f6670c52745c3d
treeab71ffb7a755c453f84a2aaf37fe285d0bcdcd31
parent0dcf19b4fb41449de4d1f953f86aa6a90accdff5
microblaze: fix clone syscall

commit dfa9771a7c4784bafd0673bc7abcee3813088b77 upstream.

Fix inadvertent breakage in the clone syscall ABI for Microblaze that
was introduced in commit f3268edbe6fe ("microblaze: switch to generic
fork/vfork/clone").

The Microblaze syscall ABI for clone takes the parent tid address in the
4th argument; the third argument slot is used for the stack size.  The
incorrectly-used CLONE_BACKWARDS type assigned parent tid to the 3rd
slot.

This commit restores the original ABI so that existing userspace libc
code will work correctly.

All kernel versions from v3.8-rc1 were affected.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/Kconfig
arch/microblaze/Kconfig
include/linux/syscalls.h
kernel/fork.c