summaryrefslogtreecommitdiff
path: root/usr/src/cmd/picl
diff options
context:
space:
mode:
authorarutz <none@none>2007-11-19 11:35:30 -0800
committerarutz <none@none>2007-11-19 11:35:30 -0800
commitad1592816585b2f21f25dcc07a8626676a7cec20 (patch)
treea6556c737dfd8303b7358eefae721788fe37d6f8 /usr/src/cmd/picl
parent24dd95375a09d43fe4f6b55f6d5188f4bac4f68d (diff)
downloadillumos-joyent-ad1592816585b2f21f25dcc07a8626676a7cec20.tar.gz
6243759 picl is blind to devices/instances attached after boot
Diffstat (limited to 'usr/src/cmd/picl')
-rw-r--r--usr/src/cmd/picl/picld/picl.xml1
-rw-r--r--usr/src/cmd/picl/plugins/common/devtree/picldevtree.c10
2 files changed, 9 insertions, 2 deletions
diff --git a/usr/src/cmd/picl/picld/picl.xml b/usr/src/cmd/picl/picld/picl.xml
index f09368fb5c..5a8f38d988 100644
--- a/usr/src/cmd/picl/picld/picl.xml
+++ b/usr/src/cmd/picl/picld/picl.xml
@@ -48,6 +48,7 @@
grouping='require_all'
restart_on='none'>
<service_fmri value='svc:/system/filesystem/minimal' />
+ <service_fmri value='svc:/system/sysevent' />
</dependency>
<dependency
diff --git a/usr/src/cmd/picl/plugins/common/devtree/picldevtree.c b/usr/src/cmd/picl/plugins/common/devtree/picldevtree.c
index 61435cd0fd..6ae36fed36 100644
--- a/usr/src/cmd/picl/plugins/common/devtree/picldevtree.c
+++ b/usr/src/cmd/picl/plugins/common/devtree/picldevtree.c
@@ -1517,8 +1517,14 @@ libdevinfo_init(picl_nodehdl_t rooth)
picl_nodehdl_t obph;
int err;
-
- if ((di_root = di_init("/", DINFOCPYALL)) == DI_NODE_NIL)
+ /*
+ * Use DINFOCACHE so that we obtain all attributes for all
+ * device instances (without necessarily doing a load/attach
+ * of all drivers). Once the (on-disk) cache file is built, it
+ * exists over a reboot and can be read into memory at a very
+ * low cost.
+ */
+ if ((di_root = di_init("/", DINFOCACHE)) == DI_NODE_NIL)
return (PICL_FAILURE);
if ((ph = di_prom_init()) == NULL)