On Fri, May 30, 2014 at 4:27 PM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: > On Fri, May 30, 2014 at 5:06 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: >> + /* Intel current only support "real" hotplug event with CC */ >> + if (pdev->vendor == PCI_VENDOR_ID_INTEL) >> + ctrl->real_cmd_complete = 1; > > Do you have information that says this Intel erratum will never be > fixed, even in future hardware? If it ever is fixed, this code will > stop working. non-real hotplug should be done very fast as it is within chipset. Do you want to add device id checking? > > And of course, this only helps Intel hardware, and you said the AMD > and Nvidia have similar issues. If we're going to make a change here, > we should try to deal with all of this hardware. Would add them later if needed. Also remember those systems only have two hotplug slots. I don't have access those systems anymore. > > I'd like to know what happens if you use the v4 patch but just change > the test to: > > if (!ctrl->no_cmd_complete && !(slot_status & PCI_EXP_SLTSTA_CC) && ... > > I think that should fix the boot delay. I think there will still be a > timeout when the first "real" hotplug operation happens, but that's a > rare event with a human involved, so I doubt it's a big problem. And > if it is a problem, I suggested a simple way to deal with it. that will cause wrong delay before any cmd write (including real hotplug) that is just after non-real command as the non-real command will keep cmd_busy, and CC is not set. Thanks Yinghai -- 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