diff options
author | dchagin <dchagin@FreeBSD.org> | 2016-01-09 17:02:35 +0000 |
---|---|---|
committer | dchagin <dchagin@FreeBSD.org> | 2016-01-09 17:02:35 +0000 |
commit | 79ce2b00ac000adbe79077eb7e3cdf12c963e455 (patch) | |
tree | 46945eab576c7dc47ece971d51d38b42512ab1b1 | |
parent | 198b8af89868cb270b9c060cc225850fe35b3f4f (diff) | |
download | FreeBSD-src-79ce2b00ac000adbe79077eb7e3cdf12c963e455.zip FreeBSD-src-79ce2b00ac000adbe79077eb7e3cdf12c963e455.tar.gz |
MFC r283454:
Avoid unnecessary em zeroing in non-exec path
as it already zeroed by malloc with M_ZERO flag
and move zeroing to the proper place in exec path.
-rw-r--r-- | sys/compat/linux/linux_emul.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/compat/linux/linux_emul.c b/sys/compat/linux/linux_emul.c index 912baaf..2102c41 100644 --- a/sys/compat/linux/linux_emul.c +++ b/sys/compat/linux/linux_emul.c @@ -89,8 +89,6 @@ linux_proc_init(struct thread *td, struct thread *newtd, int flags) if (newtd != NULL) { /* non-exec call */ em = malloc(sizeof(*em), M_TEMP, M_WAITOK | M_ZERO); - em->pdeath_signal = 0; - em->robust_futexes = NULL; if (flags & LINUX_CLONE_THREAD) { LINUX_CTR1(proc_init, "thread newtd(%d)", newtd->td_tid); @@ -117,6 +115,11 @@ linux_proc_init(struct thread *td, struct thread *newtd, int flags) KASSERT(em != NULL, ("proc_init: emuldata not found in exec case.\n")); em->em_tid = td->td_proc->p_pid; + em->flags = 0; + em->pdeath_signal = 0; + em->robust_futexes = NULL; + em->child_clear_tid = NULL; + em->child_set_tid = NULL; /* epoll should be destroyed in a case of exec. */ pem = pem_find(td->td_proc); @@ -129,8 +132,6 @@ linux_proc_init(struct thread *td, struct thread *newtd, int flags) } } - em->child_clear_tid = NULL; - em->child_set_tid = NULL; } void |