summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/syscall/systeminfo.c
diff options
context:
space:
mode:
authorsetje <none@none>2007-05-04 14:25:21 -0700
committersetje <none@none>2007-05-04 14:25:21 -0700
commita9ddc71cf44cc99898f13a788230a7f50977d628 (patch)
treebbbbf51d195b58ab6119c0fb96b75170a3ea6b80 /usr/src/uts/common/syscall/systeminfo.c
parentfee38f6fd6a6fbebea04db28cf9e4d351fb48311 (diff)
downloadillumos-gate-a9ddc71cf44cc99898f13a788230a7f50977d628.tar.gz
6490981 netstrategy continues to report empty strings for dhcp'd interfaces even after a driver is added
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') {