summaryrefslogtreecommitdiff
path: root/usr/src/cmd/picl/plugins/common/devtree/picldevtree.c
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/plugins/common/devtree/picldevtree.c
parent24dd95375a09d43fe4f6b55f6d5188f4bac4f68d (diff)
downloadillumos-gate-ad1592816585b2f21f25dcc07a8626676a7cec20.tar.gz
6243759 picl is blind to devices/instances attached after boot
Diffstat (limited to 'usr/src/cmd/picl/plugins/common/devtree/picldevtree.c')
-rw-r--r--usr/src/cmd/picl/plugins/common/devtree/picldevtree.c10
1 files changed, 8 insertions, 2 deletions
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)