summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_witness.c
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2007-05-29 18:55:41 +0000
committerattilio <attilio@FreeBSD.org>2007-05-29 18:55:41 +0000
commitd5b0dfc29b2a69d2c6ca059947f3aa366b444f61 (patch)
tree1cf8f92c0776f673efd5bd941767177a609b46b7 /sys/kern/subr_witness.c
parent410f244e4f5e3ce03031bdfbe54f9e567619511a (diff)
downloadFreeBSD-src-d5b0dfc29b2a69d2c6ca059947f3aa366b444f61.zip
FreeBSD-src-d5b0dfc29b2a69d2c6ca059947f3aa366b444f61.tar.gz
Fix some problems introduced with the last descriptors tables locking
patch: - Do the correct test for ldt allocation - Drop dt_lock just before to call kmem_free (since it acquires blocking locks inside) - Solve a deadlock with smp_rendezvous() where other CPU will wait undefinitively for dt_lock acquisition. - Add dt_lock in the WITNESS list of spinlocks While applying these modifies, change the requirement for user_ldt_free() making that returning without dt_lock held. Tested by: marcus, tegge Reviewed by: tegge Approved by: jeff (mentor)
Diffstat (limited to 'sys/kern/subr_witness.c')
-rw-r--r--sys/kern/subr_witness.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c
index 1f750e5..6069870 100644
--- a/sys/kern/subr_witness.c
+++ b/sys/kern/subr_witness.c
@@ -394,6 +394,7 @@ static struct witness_order_list_entry order_lists[] = {
{ "sio", &lock_class_mtx_spin },
#ifdef __i386__
{ "cy", &lock_class_mtx_spin },
+ { "descriptor tables", &lock_class_mtx_spin },
#endif
{ "scc_hwmtx", &lock_class_mtx_spin },
{ "uart_hwmtx", &lock_class_mtx_spin },
OpenPOWER on IntegriCloud