diff --git a/src/graph/xml.cc b/src/graph/xml.cc index c72d6c94f1..c14b538ae1 100644 --- a/src/graph/xml.cc +++ b/src/graph/xml.cc @@ -598,8 +598,8 @@ ncclResult_t ncclTopoGetXmlFromSys(struct ncclXmlNode* pciNode, struct ncclXml* NCCLCHECK(xmlGetAttrStr(pciNode, "busid", &newBusId)); for (int s=0; snSubs; s++) { const char* busId; - NCCLCHECK(xmlGetAttrStr(parent->subs[s], "busid", &busId)); - if (strcmp(newBusId, busId) < 0) { subIndex = s; break; } + NCCLCHECK(xmlGetAttr(parent->subs[s], "busid", &busId)); + if (busId != NULL && strcmp(newBusId, busId) < 0) { subIndex = s; break; } } for (int s = parent->nSubs; s > subIndex; s--) parent->subs[s] = parent->subs[s-1]; parent->subs[subIndex] = pciNode;