diff options
-rw-r--r-- | sys/compat/linux/linux_misc.c | 6 | ||||
-rw-r--r-- | sys/compat/linux/linux_signal.c | 4 |
2 files changed, 3 insertions, 7 deletions
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c index ff08e67..a09f691 100644 --- a/sys/compat/linux/linux_misc.c +++ b/sys/compat/linux/linux_misc.c @@ -1439,10 +1439,9 @@ linux_getpid(struct thread *td, struct linux_getpid_args *args) #endif if (linux_use26(td)) { - em = em_find(td->td_proc, EMUL_DOLOCK); + em = em_find(td->td_proc, EMUL_DONTLOCK); KASSERT(em != NULL, ("getpid: emuldata not found.\n")); td->td_retval[0] = em->shared->group_pid; - EMUL_UNLOCK(&emul_lock); } else { td->td_retval[0] = td->td_proc->p_pid; } @@ -1481,7 +1480,7 @@ linux_getppid(struct thread *td, struct linux_getppid_args *args) return (0); } - em = em_find(td->td_proc, EMUL_DOLOCK); + em = em_find(td->td_proc, EMUL_DONTLOCK); KASSERT(em != NULL, ("getppid: process emuldata not found.\n")); @@ -1508,7 +1507,6 @@ linux_getppid(struct thread *td, struct linux_getppid_args *args) } else td->td_retval[0] = pp->p_pid; - EMUL_UNLOCK(&emul_lock); PROC_UNLOCK(pp); return (0); diff --git a/sys/compat/linux/linux_signal.c b/sys/compat/linux/linux_signal.c index c9904a8..d40d9d7 100644 --- a/sys/compat/linux/linux_signal.c +++ b/sys/compat/linux/linux_signal.c @@ -561,7 +561,7 @@ linux_tgkill(struct thread *td, struct linux_tgkill_args *args) PROC_UNLOCK(p); - em = em_find(p, EMUL_DOLOCK); + em = em_find(p, EMUL_DONTLOCK); if (em == NULL) { #ifdef DEBUG @@ -573,8 +573,6 @@ linux_tgkill(struct thread *td, struct linux_tgkill_args *args) if (em->shared->group_pid != args->tgid) return ESRCH; - EMUL_UNLOCK(&emul_lock); - return linux_kill(td, &ka); } |