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

Commit 71b4ecc3 authored by Al Viro's avatar Al Viro
Browse files

ia64: switch to generic sys_execve()

parent 54d496c3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@

#define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
#define __ARCH_WANT_SYS_EXECVE

#if !defined(__ASSEMBLY__) && !defined(ASSEMBLER)

+1 −3
Original line number Diff line number Diff line
@@ -61,14 +61,13 @@ ENTRY(ia64_execve)
	 * Allocate 8 input registers since ptrace() may clobber them
	 */
	.prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(8)
	alloc loc1=ar.pfs,8,2,4,0
	alloc loc1=ar.pfs,8,2,3,0
	mov loc0=rp
	.body
	mov out0=in0			// filename
	;;				// stop bit between alloc and call
	mov out1=in1			// argv
	mov out2=in2			// envp
	add out3=16,sp			// regs
	br.call.sptk.many rp=sys_execve
.ret0:
	cmp4.ge p6,p7=r8,r0
@@ -76,7 +75,6 @@ ENTRY(ia64_execve)
	sxt4 r8=r8			// return 64-bit result
	;;
	stf.spill [sp]=f0
(p6)	cmp.ne pKStk,pUStk=r0,r0	// a successful execve() lands us in user-mode...
	mov rp=loc0
(p6)	mov ar.pfs=r0			// clear ar.pfs on success
(p7)	br.ret.sptk.many rp
+0 −19
Original line number Diff line number Diff line
@@ -617,25 +617,6 @@ dump_fpu (struct pt_regs *pt, elf_fpregset_t dst)
	return 1;	/* f0-f31 are always valid so we always return 1 */
}

long
sys_execve (const char __user *filename,
	    const char __user *const __user *argv,
	    const char __user *const __user *envp,
	    struct pt_regs *regs)
{
	struct filename *fname;
	int error;

	fname = getname(filename);
	error = PTR_ERR(fname);
	if (IS_ERR(fname))
		goto out;
	error = do_execve(fname->name, argv, envp, regs);
	putname(fname);
out:
	return error;
}

/*
 * Flush thread state.  This is called when a thread does an execve().
 */