On 05/29/2012 06:16 PM, Joerg Roedel wrote:
> On Tue, May 29, 2012 at 10:56:50AM +0200, Antonio Quartulli wrote:
>> attached!
>> Some days ago I tried to put some printk in the code and, as far as I can
>> understand, you are right.
> 
> Hmm, looks like device 03:00.0 is a 32bit PCI device attached to device
> 00:1c.2 which calls itself a Root Port instead of a PCI Bridge. I am
> not sure if the check in search.c is really necessary. As I see it there
> are also other possible pcie_types like PCI_EXP_TYPE_PCIE_BRIDGE.
> Putting Anil Keshavamurthy on Cc.
> 
> Anil, is this check in pci_find_upstream_pcie_bridge() really
> necessary:
> 
>         /* PCI device should connect to a PCIe bridge */
>         if (pdev->pcie_type != PCI_EXP_TYPE_PCI_BRIDGE) {
>                 /* Busted hardware? */
>                 WARN_ON_ONCE(1);
>                 return NULL;
>         }
> 
> ? In the warning that triggers for Antonio the value of pcie_type seems
> to be PCI_EXP_TYPE_ROOT_PORT and from the available types I think that
> PCI_EXP_TYPE_PCIE_BRIDGE is also possible.
It seems that device 00:1c.2 is a real PCIe root port, and device 03:00.0
is a CardBus bridge. Should we call device 03:00.0 as Legacy Endpoint here?
Could a PCIe legacy endpoint be directly connected to root port and downstream
port? If the answer is yes, the assumption in pci_find_upstream_pcie_bridge()

BTW, does PCI_EXP_TYPE_PCIE_BRIDGE mean PCI/PCI-X to PCIe bridge? Do we
really have such chipsets?

Thanks
Gerry
> 
> Thanks,
> 
>       Joerg
> 

_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to