Fix PCI enumeration
diff --git a/src/kernel/dri/pci/pci.c b/src/kernel/dri/pci/pci.c
index 39622a5..67355a0 100644
--- a/src/kernel/dri/pci/pci.c
+++ b/src/kernel/dri/pci/pci.c
@@ -14,13 +14,13 @@
struct pci_vendor *pci_check_vendor(uchar bus, uchar slot, uchar func, uint *v)
{
- uint vendor;
+ uint vendor = pci_config_readd(bus, slot, func, 0);
- if ((vendor = pci_config_readd(bus, slot, func, 0) != ~0))
+ if (v)
+ *v = vendor;
+
+ if (vendor != ~0)
{
- if (v)
- *v = vendor;
-
return pci_vendor_by_id(vendor);
}
return NULL;