diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-09-26 19:44:26 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-16 19:03:12 -0400 |
commit | eb48ffcf0e55e511ae87e9d99117d5e2b9e27153 (patch) | |
tree | 44c36daed6184943ecb740af487d80e8870924d6 /arch/sparc/kernel/process_64.c | |
parent | 2f12af35a988082700373acdebe049dfebaf49b6 (diff) |
sparc64: convert to generic execve
We still have wrappers, but nowhere near as scary as they used to be.
I'm not sure how necessary that flushw is now, TBH...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/sparc/kernel/process_64.c')
-rw-r--r-- | arch/sparc/kernel/process_64.c | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c index 55aa68da213b..6b36e879b2a0 100644 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c | |||
@@ -667,35 +667,6 @@ int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs) | |||
667 | } | 667 | } |
668 | EXPORT_SYMBOL(dump_fpu); | 668 | EXPORT_SYMBOL(dump_fpu); |
669 | 669 | ||
670 | /* | ||
671 | * sparc_execve() executes a new program after the asm stub has set | ||
672 | * things up for us. This should basically do what I want it to. | ||
673 | */ | ||
674 | asmlinkage int sparc_execve(struct pt_regs *regs) | ||
675 | { | ||
676 | int error, base = 0; | ||
677 | struct filename *filename; | ||
678 | |||
679 | /* User register window flush is done by entry.S */ | ||
680 | |||
681 | /* Check for indirect call. */ | ||
682 | if (regs->u_regs[UREG_G1] == 0) | ||
683 | base = 1; | ||
684 | |||
685 | filename = getname((char __user *)regs->u_regs[base + UREG_I0]); | ||
686 | error = PTR_ERR(filename); | ||
687 | if (IS_ERR(filename)) | ||
688 | goto out; | ||
689 | error = do_execve(filename->name, | ||
690 | (const char __user *const __user *) | ||
691 | regs->u_regs[base + UREG_I1], | ||
692 | (const char __user *const __user *) | ||
693 | regs->u_regs[base + UREG_I2], regs); | ||
694 | putname(filename); | ||
695 | out: | ||
696 | return error; | ||
697 | } | ||
698 | |||
699 | unsigned long get_wchan(struct task_struct *task) | 670 | unsigned long get_wchan(struct task_struct *task) |
700 | { | 671 | { |
701 | unsigned long pc, fp, bias = 0; | 672 | unsigned long pc, fp, bias = 0; |