summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/kern_exec.c')
-rw-r--r--sys/kern/kern_exec.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c
index 3fe2ab3..bbdc7eb 100644
--- a/sys/kern/kern_exec.c
+++ b/sys/kern/kern_exec.c
@@ -128,7 +128,6 @@ execve(td, uap)
struct vattr attr;
int (*img_first) __P((struct image_params *));
struct pargs *pa;
- struct execlist *ep;
imgp = &image_params;
@@ -258,9 +257,6 @@ interpret:
goto interpret;
}
- TAILQ_FOREACH(ep, &exec_list, next)
- (*ep->function)(p);
-
/*
* Copy out strings (args and env) and initialize stack base
*/
@@ -584,6 +580,7 @@ exec_new_vmspace(imgp)
struct image_params *imgp;
{
int error;
+ struct execlist *ep;
struct vmspace *vmspace = imgp->proc->p_vmspace;
vm_offset_t stack_addr = USRSTACK - maxssiz;
vm_map_t map = &vmspace->vm_map;
@@ -593,6 +590,12 @@ exec_new_vmspace(imgp)
imgp->vmspace_destroyed = 1;
/*
+ * Perform functions registered with at_exec().
+ */
+ TAILQ_FOREACH(ep, &exec_list, next)
+ (*ep->function)(imgp->proc);
+
+ /*
* Blow away entire process VM, if address space not shared,
* otherwise, create a new VM space so that other threads are
* not disrupted
OpenPOWER on IntegriCloud