diff options
Diffstat (limited to 'src/devices')
-rw-r--r-- | src/devices/hypertransport.c | 1 | ||||
-rw-r--r-- | src/devices/pci_device.c | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/devices/hypertransport.c b/src/devices/hypertransport.c index 326f343662..ba57bc830e 100644 --- a/src/devices/hypertransport.c +++ b/src/devices/hypertransport.c @@ -14,6 +14,7 @@ static device_t ht_scan_get_devs(device_t *old_devices) first = *old_devices; last = first; while(last && last->sibling && + (last->sibling->path.type == DEVICE_PATH_PCI) && (last->sibling->path.u.pci.devfn > last->path.u.pci.devfn)) { last = last->sibling; } diff --git a/src/devices/pci_device.c b/src/devices/pci_device.c index 031d855fbf..ffa420739a 100644 --- a/src/devices/pci_device.c +++ b/src/devices/pci_device.c @@ -475,6 +475,10 @@ static struct device *pci_scan_get_dev(struct device **list, unsigned int devfn) { struct device *dev = 0; for(; *list; list = &(*list)->sibling) { + if ((*list)->path.type != DEVICE_PATH_PCI) { + printk_err("child %s not a pci device\n", dev_path(*list)); + continue; + } if ((*list)->path.u.pci.devfn == devfn) { /* Unlink from the list */ dev = *list; |