summaryrefslogtreecommitdiff
path: root/usr/src/uts/common
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common')
-rw-r--r--usr/src/uts/common/io/strplumb.c9
-rw-r--r--usr/src/uts/common/syscall/systeminfo.c14
2 files changed, 21 insertions, 2 deletions
diff --git a/usr/src/uts/common/io/strplumb.c b/usr/src/uts/common/io/strplumb.c
index 7da86a44bb..0c7d6d50f2 100644
--- a/usr/src/uts/common/io/strplumb.c
+++ b/usr/src/uts/common/io/strplumb.c
@@ -667,9 +667,12 @@ int dl_bind(ldi_handle_t lh, uint_t sap, uint_t max_conn,
uint_t service, uint_t conn_mgmt);
int dl_phys_addr(ldi_handle_t lh, struct ether_addr *eaddr);
+#endif /* !__sparc */
+
char *
strplumb_get_netdev_path(void)
{
+#ifndef __sparc
char *macstr, *devpath = NULL;
uchar_t *bootp;
uint_t bootp_len, len;
@@ -710,8 +713,14 @@ strplumb_get_netdev_path(void)
ddi_walk_devs(ddi_root_node(), matchmac, (void *)&devpath);
return (devpath);
+
+#else
+ return (NULL);
+#endif /* !__sparc */
}
+#ifndef __sparc
+
/*
* Get boot path from the boot_mac address
*/
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') {