File tree Expand file tree Collapse file tree 3 files changed +14
-19
lines changed Expand file tree Collapse file tree 3 files changed +14
-19
lines changed Original file line number Diff line number Diff line change 482
482
#define __ARCH_WANT_SYS_SIGPENDING
483
483
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
484
484
#define __ARCH_WANT_SYS_EXECVE
485
+ #define __ARCH_WANT_KERNEL_EXECVE
485
486
486
487
/* "Conditional" syscalls. What we want is
487
488
Original file line number Diff line number Diff line change @@ -626,6 +626,19 @@ ret_from_kernel_thread:
626
626
jmp $31 , sys_exit
627
627
.end ret_from_kernel_thread
628
628
629
+ .globl ret_from_kernel_execve
630
+ .align 4
631
+ .ent ret_from_kernel_execve
632
+ ret_from_kernel_execve:
633
+ mov $16 , $sp
634
+ /* Avoid the HAE being gratuitously wrong, to avoid restoring it. */
635
+ ldq $2 , alpha_mv+HAE_CACHE
636
+ stq $2 , 152 ($sp) /* HAE */
637
+ mov $31 , $19 /* to disable syscall restarts */
638
+ br $31 , ret_to_user
639
+
640
+ .end ret_from_kernel_execve
641
+
629
642
630
643
/*
631
644
* Special system calls. Most of these are special in that they either
Original file line number Diff line number Diff line change @@ -435,22 +435,3 @@ get_wchan(struct task_struct *p)
435
435
}
436
436
return pc ;
437
437
}
438
-
439
- int kernel_execve (const char * path , const char * const argv [], const char * const envp [])
440
- {
441
- /* Avoid the HAE being gratuitously wrong, which would cause us
442
- to do the whole turn off interrupts thing and restore it. */
443
- struct pt_regs regs = {.hae = alpha_mv .hae_cache };
444
- int err = do_execve (path , argv , envp , & regs );
445
- if (!err ) {
446
- struct pt_regs * p = current_pt_regs ();
447
- /* copy regs to normal position and off to userland we go... */
448
- * p = regs ;
449
- __asm__ __volatile__ (
450
- "mov %0, $sp;"
451
- "br $31, ret_from_sys_call"
452
- : : "r" (p ));
453
- }
454
- return err ;
455
- }
456
- EXPORT_SYMBOL (kernel_execve );
You can’t perform that action at this time.
0 commit comments