This should fix intermitent KDLs (at least with console debug output).
Use the size of the struct instead of checking a pointer that is never NULL... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19935 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -14,23 +14,25 @@ get_class_info(uint8 pci_class_base_id, uint8 pci_class_sub_id, uint8 pci_class_
|
|||||||
if (pci_class_base_id == 0x80)
|
if (pci_class_base_id == 0x80)
|
||||||
snprintf(classInfo, size, " (Other)");
|
snprintf(classInfo, size, " (Other)");
|
||||||
else {
|
else {
|
||||||
PCI_CLASSCODETABLE *s = PciClassCodeTable, *foundItem = NULL;
|
PCI_CLASSCODETABLE *foundItem = NULL;
|
||||||
while (s->BaseDesc) {
|
int i;
|
||||||
if ((pci_class_base_id == s->BaseClass)
|
for (i = 0; i < (int)PCI_CLASSCODETABLE_LEN; i++) {
|
||||||
&& (pci_class_sub_id == s->SubClass)) {
|
if ((pci_class_base_id == PciClassCodeTable[i].BaseClass)
|
||||||
foundItem = s;
|
&& (pci_class_sub_id == PciClassCodeTable[i].SubClass)) {
|
||||||
if (pci_class_api_id == s->ProgIf)
|
foundItem = &PciClassCodeTable[i];
|
||||||
|
if (pci_class_api_id == PciClassCodeTable[i].ProgIf)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
s++;
|
|
||||||
}
|
}
|
||||||
if (!s->BaseDesc)
|
if (foundItem) {
|
||||||
s = foundItem;
|
if (pci_class_sub_id != 0x80)
|
||||||
if (pci_class_sub_id != 0x80)
|
snprintf(classInfo, size, "%s (%s%s%s)", foundItem->BaseDesc, foundItem->SubDesc,
|
||||||
snprintf(classInfo, size, "%s (%s%s%s)", s->BaseDesc, s->SubDesc,
|
(foundItem->ProgDesc && strcmp("", foundItem->ProgDesc)) ? ", " : "", foundItem->ProgDesc);
|
||||||
(s->ProgDesc && strcmp("", s->ProgDesc)) ? ", " : "", s->ProgDesc);
|
else
|
||||||
else
|
snprintf(classInfo, size, "%s", foundItem->BaseDesc);
|
||||||
snprintf(classInfo, size, "%s", s->BaseDesc);
|
} else
|
||||||
|
snprintf(classInfo, size, "%s (%u:%u:%u)", "(Unknown)",
|
||||||
|
pci_class_base_id, pci_class_sub_id, pci_class_api_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user