Loading arch/mn10300/include/asm/frame.inc +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ ############################################################################### .macro RESTORE_ALL # peel back the stack to the calling frame # - this permits execve() to discard extra frames due to kernel syscalls # - we need that when returning from interrupts to kernel mode GET_THREAD_INFO a0 mov (TI_frame,a0),fp mov fp,sp Loading arch/mn10300/include/asm/processor.h +3 −10 Original line number Diff line number Diff line Loading @@ -119,20 +119,13 @@ struct thread_struct { /* * do necessary setup to start up a newly executed thread * - need to discard the frame stacked by the kernel thread invoking the execve * syscall (see RESTORE_ALL macro) */ static inline void start_thread(struct pt_regs *regs, unsigned long new_pc, unsigned long new_sp) { struct thread_info *ti = current_thread_info(); struct pt_regs *frame0; frame0 = thread_info_to_uregs(ti); frame0->epsw = EPSW_nSL | EPSW_IE | EPSW_IM; frame0->pc = new_pc; frame0->sp = new_sp; ti->frame = frame0; regs->epsw = EPSW_nSL | EPSW_IE | EPSW_IM; regs->pc = new_pc; regs->sp = new_sp; } Loading arch/mn10300/include/asm/unistd.h +1 −0 Original line number Diff line number Diff line Loading @@ -383,6 +383,7 @@ #define __ARCH_WANT_SYS_RT_SIGACTION #define __ARCH_WANT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_KERNEL_EXECVE /* * "Conditional" syscalls Loading arch/mn10300/kernel/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ fpu-obj-$(CONFIG_FPU) := fpu.o fpu-low.o obj-y := process.o signal.o entry.o traps.o irq.o \ ptrace.o setup.o time.o sys_mn10300.o io.o \ switch_to.o mn10300_ksyms.o kernel_execve.o $(fpu-obj-y) \ switch_to.o mn10300_ksyms.o $(fpu-obj-y) \ csrc-mn10300.o cevt-mn10300.o obj-$(CONFIG_SMP) += smp.o smp-low.o Loading arch/mn10300/kernel/entry.S +7 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,13 @@ ENTRY(ret_from_kernel_thread) calls (a0) jmp sys_exit ENTRY(ret_from_kernel_execve) add -12,d0 /* pt_regs -> frame */ mov d0,sp GET_THREAD_INFO a2 clr d0 jmp syscall_exit ############################################################################### # # system call handler Loading Loading
arch/mn10300/include/asm/frame.inc +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ ############################################################################### .macro RESTORE_ALL # peel back the stack to the calling frame # - this permits execve() to discard extra frames due to kernel syscalls # - we need that when returning from interrupts to kernel mode GET_THREAD_INFO a0 mov (TI_frame,a0),fp mov fp,sp Loading
arch/mn10300/include/asm/processor.h +3 −10 Original line number Diff line number Diff line Loading @@ -119,20 +119,13 @@ struct thread_struct { /* * do necessary setup to start up a newly executed thread * - need to discard the frame stacked by the kernel thread invoking the execve * syscall (see RESTORE_ALL macro) */ static inline void start_thread(struct pt_regs *regs, unsigned long new_pc, unsigned long new_sp) { struct thread_info *ti = current_thread_info(); struct pt_regs *frame0; frame0 = thread_info_to_uregs(ti); frame0->epsw = EPSW_nSL | EPSW_IE | EPSW_IM; frame0->pc = new_pc; frame0->sp = new_sp; ti->frame = frame0; regs->epsw = EPSW_nSL | EPSW_IE | EPSW_IM; regs->pc = new_pc; regs->sp = new_sp; } Loading
arch/mn10300/include/asm/unistd.h +1 −0 Original line number Diff line number Diff line Loading @@ -383,6 +383,7 @@ #define __ARCH_WANT_SYS_RT_SIGACTION #define __ARCH_WANT_SYS_RT_SIGSUSPEND #define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_KERNEL_EXECVE /* * "Conditional" syscalls Loading
arch/mn10300/kernel/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ fpu-obj-$(CONFIG_FPU) := fpu.o fpu-low.o obj-y := process.o signal.o entry.o traps.o irq.o \ ptrace.o setup.o time.o sys_mn10300.o io.o \ switch_to.o mn10300_ksyms.o kernel_execve.o $(fpu-obj-y) \ switch_to.o mn10300_ksyms.o $(fpu-obj-y) \ csrc-mn10300.o cevt-mn10300.o obj-$(CONFIG_SMP) += smp.o smp-low.o Loading
arch/mn10300/kernel/entry.S +7 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,13 @@ ENTRY(ret_from_kernel_thread) calls (a0) jmp sys_exit ENTRY(ret_from_kernel_execve) add -12,d0 /* pt_regs -> frame */ mov d0,sp GET_THREAD_INFO a2 clr d0 jmp syscall_exit ############################################################################### # # system call handler Loading