Re: x86/PCI: Scan all functions during probing

From: Thomas Gleixner
Date: Wed Aug 24 2016 - 04:42:59 EST


On Thu, 18 Aug 2016, Bjorn Helgaas wrote:
> I looked up the spec: PCI (not PCIe) r3.0, sec 3.2.2.3.4, says:
>
> A single-function device may optionally respond to all function
> numbers as the same function or may ... respond only to function 0
> and not respond to the other function numbers.
>
> I'm concerned that a single-function device that responds to all
> function numbers might break with this patch.
>
> [multi-function devices] are also required to always implement
> function 0 in the device.
>
> Here's the reason we can advance by 8 in the "Go find them" loop.
>
> If a single function device is detected (i.e., bit 7 in the Header
> Type register of function 0 is 0), no more functions for that Device
> Number will be checked. If a multi-function device is detected
> (i.e., bit 7 in the Header Type register of function 0 is 1), then
> all remaining Function Numbers will be checked.
>
> This patch does the opposite of what the first sentence recommends.

Fair enough. We'll need to find a way to deal with that in jailhouse then.

Thanks,

tglx