summaryrefslogtreecommitdiffstats
path: root/sys/dev/pccbb/pccbb.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/pccbb/pccbb.c')
-rw-r--r--sys/dev/pccbb/pccbb.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/sys/dev/pccbb/pccbb.c b/sys/dev/pccbb/pccbb.c
index a0585b0..f601185 100644
--- a/sys/dev/pccbb/pccbb.c
+++ b/sys/dev/pccbb/pccbb.c
@@ -464,14 +464,7 @@ cbb_event_thread(void *arg)
sc->flags |= CBB_KTHREAD_RUNNING;
while ((sc->flags & CBB_KTHREAD_DONE) == 0) {
mtx_unlock(&sc->mtx);
- /*
- * We take out Giant here because we need it deep,
- * down in the bowels of the vm system for mapping the
- * memory we need to read the CIS. In addition, since
- * we are adding/deleting devices from the dev tree,
- * and that code isn't MP safe, we have to hold Giant.
- */
- mtx_lock(&Giant);
+ newbus_xlock();
status = cbb_get(sc, CBB_SOCKET_STATE);
DPRINTF(("Status is 0x%x\n", status));
if (!CBB_CARD_PRESENT(status)) {
@@ -497,7 +490,7 @@ cbb_event_thread(void *arg)
not_a_card = 0; /* We know card type */
cbb_insert(sc);
}
- mtx_unlock(&Giant);
+ newbus_xunlock();
/*
* First time through we need to tell mountroot that we're
OpenPOWER on IntegriCloud