summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/syscall/systeminfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/syscall/systeminfo.c')
-rw-r--r--usr/src/uts/common/syscall/systeminfo.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/usr/src/uts/common/syscall/systeminfo.c b/usr/src/uts/common/syscall/systeminfo.c
index 6d7d5ae40f..dd3dade3c5 100644
--- a/usr/src/uts/common/syscall/systeminfo.c
+++ b/usr/src/uts/common/syscall/systeminfo.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -147,10 +147,20 @@ systeminfo(int command, char *buf, long count)
strcnt = 0;
} else {
/*
+ * If the interface didn't have a name (bindable
+ * driver) to begin with, it might have one now.
+ * So, re-run strplumb_get_netdev_path() to see
+ * if one can be established at this time.
+ */
+ if (netdev_path == NULL || netdev_path[0] == '\0') {
+ netdev_path = strplumb_get_netdev_path();
+ }
+ /*
* If the interface name has not yet been resolved
* (first IFNAMSIZ bytes of dhcack[]) and a valid
* netdev_path[] was stashed by loadrootmodules in
- * swapgeneric.c, resolve the interface name now.
+ * swapgeneric.c, or established above, resolve
+ * the interface name now.
*/
if (dhcack[0] == '\0' &&
netdev_path != NULL && netdev_path[0] != '\0') {