diff options
author | Brian Gerst <brgerst@gmail.com> | 2009-12-09 19:01:56 -0500 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-12-09 19:29:42 -0500 |
commit | f839bbc5c81b1c92ff8e81c360e9564f7b961b2e (patch) | |
tree | 038fef1b902db9ec43b1ab6b82861ebf2d56eef5 /arch/x86/kernel/entry_32.S | |
parent | f1382f157fb1175bba008abad0907310a1e459ce (diff) |
x86: Merge sys_clone
Change 32-bit sys_clone to new PTREGSCALL stub, and merge with 64-bit.
Signed-off-by: Brian Gerst <brgerst@gmail.com>
LKML-Reference: <1260403316-5679-7-git-send-email-brgerst@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/kernel/entry_32.S')
-rw-r--r-- | arch/x86/kernel/entry_32.S | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index 6c2f25d9b9d5..6492555d123d 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S | |||
@@ -760,7 +760,6 @@ ptregs_##name: \ | |||
760 | 760 | ||
761 | PTREGSCALL1(iopl) | 761 | PTREGSCALL1(iopl) |
762 | PTREGSCALL0(fork) | 762 | PTREGSCALL0(fork) |
763 | PTREGSCALL0(clone) | ||
764 | PTREGSCALL0(vfork) | 763 | PTREGSCALL0(vfork) |
765 | PTREGSCALL3(execve) | 764 | PTREGSCALL3(execve) |
766 | PTREGSCALL2(sigaltstack) | 765 | PTREGSCALL2(sigaltstack) |
@@ -769,6 +768,19 @@ PTREGSCALL0(rt_sigreturn) | |||
769 | PTREGSCALL2(vm86) | 768 | PTREGSCALL2(vm86) |
770 | PTREGSCALL1(vm86old) | 769 | PTREGSCALL1(vm86old) |
771 | 770 | ||
771 | /* Clone is an oddball. The 4th arg is in %edi */ | ||
772 | ALIGN; | ||
773 | ptregs_clone: | ||
774 | leal 4(%esp),%eax | ||
775 | pushl %eax | ||
776 | pushl PT_EDI(%eax) | ||
777 | movl PT_EDX(%eax),%ecx | ||
778 | movl PT_ECX(%eax),%edx | ||
779 | movl PT_EBX(%eax),%eax | ||
780 | call sys_clone | ||
781 | addl $8,%esp | ||
782 | ret | ||
783 | |||
772 | .macro FIXUP_ESPFIX_STACK | 784 | .macro FIXUP_ESPFIX_STACK |
773 | /* | 785 | /* |
774 | * Switch back for ESPFIX stack to the normal zerobased stack | 786 | * Switch back for ESPFIX stack to the normal zerobased stack |