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

Commit 460dabab authored by Al Viro's avatar Al Viro
Browse files

frv: switch to generic sys_execve()



current_pt_regs() here is simply __frame

Acked-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 02ce496f
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -76,6 +76,7 @@ register struct pt_regs *__frame asm("gr28");
#define user_mode(regs)			(!((regs)->psr & PSR_S))
#define user_mode(regs)			(!((regs)->psr & PSR_S))
#define instruction_pointer(regs)	((regs)->pc)
#define instruction_pointer(regs)	((regs)->pc)
#define user_stack_pointer(regs)	((regs)->sp)
#define user_stack_pointer(regs)	((regs)->sp)
#define current_pt_regs()		(__frame)


extern unsigned long user_stack(const struct pt_regs *);
extern unsigned long user_stack(const struct pt_regs *);
#define profile_pc(regs) ((regs)->pc)
#define profile_pc(regs) ((regs)->pc)
+1 −0
Original line number Original line Diff line number Diff line
@@ -372,6 +372,7 @@
#define __ARCH_WANT_SYS_SIGPROCMASK
#define __ARCH_WANT_SYS_SIGPROCMASK
#define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
#define __ARCH_WANT_SYS_EXECVE


/*
/*
 * "Conditional" syscalls
 * "Conditional" syscalls
+0 −19
Original line number Original line Diff line number Diff line
@@ -207,25 +207,6 @@ int copy_thread(unsigned long clone_flags,
	return 0;
	return 0;
} /* end copy_thread() */
} /* end copy_thread() */


/*
 * sys_execve() executes a new program.
 */
asmlinkage int sys_execve(const char __user *name,
			  const char __user *const __user *argv,
			  const char __user *const __user *envp)
{
	int error;
	char * filename;

	filename = getname(name);
	error = PTR_ERR(filename);
	if (IS_ERR(filename))
		return error;
	error = do_execve(filename, argv, envp, __frame);
	putname(filename);
	return error;
}

unsigned long get_wchan(struct task_struct *p)
unsigned long get_wchan(struct task_struct *p)
{
{
	struct pt_regs *regs0;
	struct pt_regs *regs0;