changeset 3997:acd5a5a557ce

6518672 pci enumerator shouldn't assume the platform name in "SUNW,xxx" format
author zx143588
date Mon, 09 Apr 2007 14:01:48 -0700
parents 82246a4b06ef
children e0575d2275f8
files usr/src/lib/fm/topo/modules/common/pcibus/pcibus_labels.c
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/lib/fm/topo/modules/common/pcibus/pcibus_labels.c	Mon Apr 09 11:39:46 2007 -0700
+++ b/usr/src/lib/fm/topo/modules/common/pcibus/pcibus_labels.c	Mon Apr 09 14:01:48 2007 -0700
@@ -46,7 +46,8 @@
 	const char *rlabel = NULL;
 	int n, p, i;
 
-	if ((n = did_physslot(dp)) < 0 || Physlot_Names == NULL)
+	if ((n = did_physslot(dp)) < 0 || Physlot_Names == NULL ||
+	    platform == NULL)
 		return (NULL);
 
 	for (p = 0; p < Physlot_Names->psn_nplats; p++) {
@@ -149,7 +150,10 @@
 	 * Trim SUNW, from the platform name
 	 */
 	pp = strchr(plat, ',');
-	++pp;
+	if (pp == NULL)
+		pp = plat;
+	else
+		++pp;
 
 	did_BDF(dp, NULL, &d, NULL);
 	if ((l = pci_physslot_name_lookup(pp, dp)) == NULL)