diff options
Diffstat (limited to 'usr/src/lib')
| -rw-r--r-- | usr/src/lib/fm/topo/modules/common/pcibus/pcibus_labels.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/usr/src/lib/fm/topo/modules/common/pcibus/pcibus_labels.c b/usr/src/lib/fm/topo/modules/common/pcibus/pcibus_labels.c index 9dd528c7a7..c91da59582 100644 --- a/usr/src/lib/fm/topo/modules/common/pcibus/pcibus_labels.c +++ b/usr/src/lib/fm/topo/modules/common/pcibus/pcibus_labels.c @@ -46,7 +46,8 @@ pci_physslot_name_lookup(char *platform, did_t *dp) 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 @@ pci_slotname_lookup(topo_mod_t *mod, tnode_t *node, did_t *dp) * 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) |
