Re: [PATCH V4 1/1] Intel Sky Lake-E host root ports check.

From: Bjorn Helgaas
Date: Wed Mar 30 2022 - 15:12:01 EST


On Wed, Mar 30, 2022 at 12:37:20PM -0300, Jason Gunthorpe wrote:
> On Wed, Mar 30, 2022 at 05:08:23PM +0300, Shlomo Pongratz wrote:
> > @@ -350,7 +353,10 @@ static struct pci_dev *pci_host_bridge_dev(struct pci_host_bridge *host)
> >
> > if (!root)
> > return NULL;
> > - if (root->devfn != PCI_DEVFN(0, 0))
> > +
> > + /* Is it a host bridge or a root port? */
>
> This is a better comment:
>
> /* host bridges must have a 0 devfn, but some of the entries in the
> whilelist are root ports that can have any devfn */

Is this something in the spec or is it just common practice? The PCIe
spec says very little about "host bridges" and I don't remember
anything about them having to be devfn 0 or even that they have to be
materialized as PCI devices.

> > + if (root->devfn != PCI_DEVFN(0, 0) &&
> > + pci_pcie_type(root) != PCI_EXP_TYPE_ROOT_PORT)
> > return NULL;
>
> Indentation is wrong
>
> Jason