aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/pccbb/pccbb.c
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2009-02-17 02:14:04 +0000
committerWarner Losh <imp@FreeBSD.org>2009-02-17 02:14:04 +0000
commit993b1ae273ed98b91bb463e7a00f9a67aae6e16f (patch)
tree6ac8b563bf305788932cdd41519650a62b31d18c /sys/dev/pccbb/pccbb.c
parent2e46610e212f61727a23309b1a5a0267d6a538b1 (diff)
downloadsrc-993b1ae273ed98b91bb463e7a00f9a67aae6e16f.tar.gz
src-993b1ae273ed98b91bb463e7a00f9a67aae6e16f.zip
Hold off root mounting until we've gone through the loop of our thread
almost once. After we've configured the devices that were present the first time through, then we know that we're done. If the device has other devices that are deferred, then it must do a similar dance. This catches both PC Cards and CardBus cards.
Notes
Notes: svn path=/head/; revision=188701
Diffstat (limited to 'sys/dev/pccbb/pccbb.c')
-rw-r--r--sys/dev/pccbb/pccbb.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/pccbb/pccbb.c b/sys/dev/pccbb/pccbb.c
index 861352e1648d..008aa8a4ee7e 100644
--- a/sys/dev/pccbb/pccbb.c
+++ b/sys/dev/pccbb/pccbb.c
@@ -500,6 +500,15 @@ cbb_event_thread(void *arg)
mtx_unlock(&Giant);
/*
+ * First time through we need to tell mountroot that we're
+ * done.
+ */
+ if (sc->sc_root_token) {
+ root_mount_rel(sc->sc_root_token);
+ sc->sc_root_token = NULL;
+ }
+
+ /*
* Wait until it has been 250ms since the last time we
* get an interrupt. We handle the rest of the interrupt
* at the top of the loop. Although we clear the bit in the