Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e754210 authored by Al Viro's avatar Al Viro
Browse files

mn10300: switch to generic kernel_execve()



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 8f1597e9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+3 −10
Original line number Diff line number Diff line
@@ -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;
}


+1 −0
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
+7 −0
Original line number Diff line number Diff line
@@ -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