Loading arch/score/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ config SCORE select MODULES_USE_ELF_REL select GENERIC_KERNEL_THREAD select GENERIC_KERNEL_EXECVE select CLONE_BACKWARDS choice prompt "System type" Loading arch/score/include/asm/syscalls.h +0 −1 Original line number Diff line number Diff line #ifndef _ASM_SCORE_SYSCALLS_H #define _ASM_SCORE_SYSCALLS_H asmlinkage long score_clone(struct pt_regs *regs); asmlinkage long score_sigaltstack(struct pt_regs *regs); asmlinkage long score_rt_sigreturn(struct pt_regs *regs); Loading arch/score/include/asm/unistd.h +3 −0 Original line number Diff line number Diff line Loading @@ -5,5 +5,8 @@ #define __ARCH_WANT_SYSCALL_OFF_T #define __ARCH_WANT_SYSCALL_DEPRECATED #define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_SYS_CLONE #define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_VFORK #include <asm-generic/unistd.h> arch/score/kernel/entry.S +0 −18 Original line number Diff line number Diff line Loading @@ -487,11 +487,6 @@ illegal_syscall: sw r9, [r0, PT_R7] j syscall_return ENTRY(sys_clone) mv r4, r0 la r8, score_clone br r8 ENTRY(sys_rt_sigreturn) mv r4, r0 la r8, score_rt_sigreturn Loading @@ -501,16 +496,3 @@ ENTRY(sys_sigaltstack) mv r4, r0 la r8, score_sigaltstack br r8 #ifdef __ARCH_WANT_SYSCALL_DEPRECATED ENTRY(sys_fork) mv r4, r0 la r8, score_fork br r8 ENTRY(sys_vfork) mv r4, r0 la r8, score_vfork br r8 #endif /* __ARCH_WANT_SYSCALL_DEPRECATED */ arch/score/kernel/process.c +4 −4 Original line number Diff line number Diff line Loading @@ -94,17 +94,17 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, struct pt_regs *childregs = task_pt_regs(p); p->thread.reg0 = (unsigned long) childregs; if (unlikely(!regs)) { if (unlikely(p->flags & PF_KTHREAD)) { memset(childregs, 0, sizeof(struct pt_regs)); p->thread->reg12 = usp; p->thread->reg13 = arg; p->thread.reg3 = (unsigned long) ret_from_kernel_thread; } else { *childregs = *regs; *childregs = *current_pt_regs(); childregs->regs[7] = 0; /* Clear error flag */ childregs->regs[4] = 0; /* Child gets zero as return value */ if (usp) childregs->regs[0] = usp; /* user fork */ regs->regs[4] = p->pid; /* WTF? */ p->thread.reg3 = (unsigned long) ret_from_fork; } Loading Loading
arch/score/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ config SCORE select MODULES_USE_ELF_REL select GENERIC_KERNEL_THREAD select GENERIC_KERNEL_EXECVE select CLONE_BACKWARDS choice prompt "System type" Loading
arch/score/include/asm/syscalls.h +0 −1 Original line number Diff line number Diff line #ifndef _ASM_SCORE_SYSCALLS_H #define _ASM_SCORE_SYSCALLS_H asmlinkage long score_clone(struct pt_regs *regs); asmlinkage long score_sigaltstack(struct pt_regs *regs); asmlinkage long score_rt_sigreturn(struct pt_regs *regs); Loading
arch/score/include/asm/unistd.h +3 −0 Original line number Diff line number Diff line Loading @@ -5,5 +5,8 @@ #define __ARCH_WANT_SYSCALL_OFF_T #define __ARCH_WANT_SYSCALL_DEPRECATED #define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_SYS_CLONE #define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_VFORK #include <asm-generic/unistd.h>
arch/score/kernel/entry.S +0 −18 Original line number Diff line number Diff line Loading @@ -487,11 +487,6 @@ illegal_syscall: sw r9, [r0, PT_R7] j syscall_return ENTRY(sys_clone) mv r4, r0 la r8, score_clone br r8 ENTRY(sys_rt_sigreturn) mv r4, r0 la r8, score_rt_sigreturn Loading @@ -501,16 +496,3 @@ ENTRY(sys_sigaltstack) mv r4, r0 la r8, score_sigaltstack br r8 #ifdef __ARCH_WANT_SYSCALL_DEPRECATED ENTRY(sys_fork) mv r4, r0 la r8, score_fork br r8 ENTRY(sys_vfork) mv r4, r0 la r8, score_vfork br r8 #endif /* __ARCH_WANT_SYSCALL_DEPRECATED */
arch/score/kernel/process.c +4 −4 Original line number Diff line number Diff line Loading @@ -94,17 +94,17 @@ int copy_thread(unsigned long clone_flags, unsigned long usp, struct pt_regs *childregs = task_pt_regs(p); p->thread.reg0 = (unsigned long) childregs; if (unlikely(!regs)) { if (unlikely(p->flags & PF_KTHREAD)) { memset(childregs, 0, sizeof(struct pt_regs)); p->thread->reg12 = usp; p->thread->reg13 = arg; p->thread.reg3 = (unsigned long) ret_from_kernel_thread; } else { *childregs = *regs; *childregs = *current_pt_regs(); childregs->regs[7] = 0; /* Clear error flag */ childregs->regs[4] = 0; /* Child gets zero as return value */ if (usp) childregs->regs[0] = usp; /* user fork */ regs->regs[4] = p->pid; /* WTF? */ p->thread.reg3 = (unsigned long) ret_from_fork; } Loading