From 7355c7590bfd55f5bb15a5ca06acd841ece3b24a Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Fri, 2 Apr 2010 16:30:25 +0000 Subject: [PATCH] The error message is misleading, even for a SPEW, because the slot is empty, it's NOT a bad ID (and the message is more confusing than helpful even in SPEW) Signed-off-by: Stefan Reinauer Acked-by: Ronald G. Minnich Acked-by: Myles Watson git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5345 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/devices/pci_device.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/devices/pci_device.c b/src/devices/pci_device.c index fbe8b335af..b85ee53a72 100644 --- a/src/devices/pci_device.c +++ b/src/devices/pci_device.c @@ -910,10 +910,14 @@ device_t pci_probe_dev(device_t dev, struct bus * bus, unsigned devfn) dummy.path.pci.devfn = devfn; id = pci_read_config32(&dummy, PCI_VENDOR_ID); /* Have we found something? - * Some broken boards return 0 if a slot is empty. + * Some broken boards return 0 if a slot is empty, but + * the expected answer is 0xffffffff */ - if ((id == 0xffffffff) || (id == 0x00000000) || - (id == 0x0000ffff) || (id == 0xffff0000)) { + if (id == 0xffffffff) { + return NULL; + } + if ((id == 0x00000000) || (id == 0x0000ffff) || + (id == 0xffff0000)) { printk(BIOS_SPEW, "%s, bad id 0x%x\n", dev_path(&dummy), id); return NULL; }