Re: warn_slowpath_common in drivers/pci/search.c:44 on linux-3.4.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> 

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


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux