mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-26 01:50:54 +07:00
h8300: generic kernel_execve()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
557e1995a9
commit
5fae1b6645
@ -9,6 +9,7 @@ config H8300
|
||||
select GENERIC_CPU_DEVICES
|
||||
select MODULES_USE_ELF_RELA
|
||||
select GENERIC_KERNEL_THREAD
|
||||
select GENERIC_KERNEL_EXECVE
|
||||
|
||||
config SYMBOL_PREFIX
|
||||
string
|
||||
|
@ -337,8 +337,7 @@ SYMBOL_NAME_LABEL(ret_from_kernel_thread)
|
||||
mov.l @(LER4:16,sp),er0
|
||||
mov.l @(LER5:16,sp),er1
|
||||
jsr @er1
|
||||
sub.l @er0,@er0
|
||||
jsr @SYMBOL_NAME(sys_exit)
|
||||
jmp @SYMBOL_NAME(ret_from_exception)
|
||||
|
||||
SYMBOL_NAME_LABEL(resume)
|
||||
/*
|
||||
|
@ -46,29 +46,3 @@ asmlinkage void syscall_print(void *dummy,...)
|
||||
((regs->pc)&0xffffff)-2,regs->orig_er0,regs->er1,regs->er2,regs->er3,regs->er0);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Do a system call from kernel instead of calling sys_execve so we
|
||||
* end up with proper pt_regs.
|
||||
*/
|
||||
asmlinkage
|
||||
int kernel_execve(const char *filename,
|
||||
const char *const argv[],
|
||||
const char *const envp[])
|
||||
{
|
||||
register long res __asm__("er0");
|
||||
register const char *const *_c __asm__("er3") = envp;
|
||||
register const char *const *_b __asm__("er2") = argv;
|
||||
register const char * _a __asm__("er1") = filename;
|
||||
__asm__ __volatile__ ("mov.l %1,er0\n\t"
|
||||
"trapa #0\n\t"
|
||||
: "=r" (res)
|
||||
: "g" (__NR_execve),
|
||||
"g" (_a),
|
||||
"g" (_b),
|
||||
"g" (_c)
|
||||
: "cc", "memory");
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user