Re: [PATCH] x86, pci: Fix all early PCI scans to check the vendorID first

From: Khalid Aziz
Date: Sun Aug 12 2012 - 23:23:00 EST


On 08/10/2012 05:57 PM, H. Peter Anvin wrote:
On 08/09/2012 03:34 PM, Betty Dall wrote:
I thought this should be a break instead of a continue since the code
does a break if the class is 0xffffffff. If the function does not have a
valid VENDOR_ID, then the remaining function numbers do not have to be
scanned because functions are required to be implemented in order (no
skipping a function number.)

Is that true? This is certainly not true in PCI in general: there is
required to be a function 0, but there is no guarantee that functions
1-7 don't have gaps.

If that is the case, there is a problem in the original code in
arch/x86/kernel/aperture_64.c.The original code already stops scanning
functions the first time it finds an invalid PCI class:

206 for (func = 0; func < 8; func++) {
207 u32 class, cap;
208 u8 type;
209 class = read_pci_config(bus, slot, func,
210 PCI_CLASS_REVISION);
211 if (class == 0xffffffff)
212 break;

--
====================================================================
Khalid Aziz
khalid.aziz@xxxxxx

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/