summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2007-02-01 13:33:33 +0000
committerkib <kib@FreeBSD.org>2007-02-01 13:33:33 +0000
commit3f2b6c010a7e8108cc1c386fb716b119a3fdd692 (patch)
tree12612c88ab9da21d9a2cf1bbe238e8c1526923a1 /sys/compat
parent02650398d18b3b63edf1117aae8d34ee6d28c729 (diff)
downloadFreeBSD-src-3f2b6c010a7e8108cc1c386fb716b119a3fdd692.zip
FreeBSD-src-3f2b6c010a7e8108cc1c386fb716b119a3fdd692.tar.gz
No need to lock emul_lock in exit_group() because em->shared
cannot change (because its referenced by curthread). This fixes a LOR caused by acquiring emul_shared_lock while holding emul_lock. Fix typo in comment. Submitted by: rdivacky
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/linux/linux_misc.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c
index e3e837e..02d86f9 100644
--- a/sys/compat/linux/linux_misc.c
+++ b/sys/compat/linux/linux_misc.c
@@ -1606,7 +1606,7 @@ linux_exit_group(struct thread *td, struct linux_exit_group_args *args)
#endif
if (linux_use26(td)) {
- td_em = em_find(td->td_proc, EMUL_DOLOCK);
+ td_em = em_find(td->td_proc, EMUL_DONTLOCK);
KASSERT(td_em != NULL, ("exit_group: emuldata not found.\n"));
@@ -1624,11 +1624,10 @@ linux_exit_group(struct thread *td, struct linux_exit_group_args *args)
}
EMUL_SHARED_RUNLOCK(&emul_shared_lock);
- EMUL_UNLOCK(&emul_lock);
}
/*
* XXX: we should send a signal to the parent if
- * SIGNAL_EXIT_GROUP is set. We ignore that (temporrarily?)
+ * SIGNAL_EXIT_GROUP is set. We ignore that (temporarily?)
* as it doesnt occur often.
*/
exit1(td, W_EXITCODE(args->error_code, 0));
OpenPOWER on IntegriCloud