On Wed, Jul 12, 2017 at 09:07:14AM -0400, Sinan Kaya wrote: > Hi Bjorn, > > On 7/11/2017 4:39 PM, Bjorn Helgaas wrote: > > My proposal handles endpoints, too. The pci_walk_bus() in the quirk > > handles all devices we've already enumerated, and all devices we'll > > enumerate in the future are handled in pci_configure_device(). > > Code clears the endpoint's extended tag capability only if a quirky host > bridge is found. > > The question here was > > "what if you have an endpoint, it may declare extended tags capability > and has a bug even though the host bridge is just fine" > > Code will enable extended tags on both the host bridge and endpoint > if it is supported. > > The host bridge will start generating 256 tags towards the endpoint > but endpoint is unable to catch up with it. > > Same thing is possible with two endpoints that try to do peer-to-peer > communication. The first endpoint may generate 256 requests, second > endpoint may not handle it. > > Again, this is a hypothetical condition with no known endpoints. I > suggest we deal with this when time comes. Jike's question (at least, the one I saw via email) was this: Jike> Maybe checking the version of this endpoint at first? Do you expect a Jike> v1 endpoint Jike> to be working under v2+ ports? This has nothing to do with whether a device is v1 or v2. All PCIe devices are expected to handle 8-bit tags as completers. If we find defective endpoints, we'll have to add quirks for them just like you did for the HT2100 root port. There's nothing we can do until we find them. Bjorn