On Thu, Aug 8, 2013 at 2:09 PM, Alex Williamson <alex.williamson@xxxxxxxxxx> wrote: > v5: Increase length of time we assert reset in the final common > secondary bus reset function to 2ms and document that this is > to ensure that reset on the bus is seen for at least a full > 1ms (per converstation with Alex Duyck) > > Thanks, > Alex > > This series adds PCI bus and slot reset interfaces to the already > existing function reset interface. I need this for two reasons, the > first is that not all devices support function level reset. Even > some of those that we detect as supporting a PM reset on D3hot->D0 > transition actually don't do any reset. Others have no reset > capability at all. We currently implement a secondary bus reset > escalation from the function reset path, but only when there is a > single devfn on the bus. Drivers like vfio can have ownership of > all of the devices on a bus and should therefore have a path to > initiate a secondary bus reset with multiple devices. This is > particularly required for use of GPUs by userspace, where none of > the predominant GPUs implement a useful function level reset. > > The second reason is that even the current function reset escalating > to a secondary bus reset can cause problems with hotplug controllers. > If a root port supports PCIe HP with suprise removal, a bus reset > can trigger a presence detection change, which results in an attempt > to remove the struct device. By having a slot reset interface, we > can involve the hotplug controllers to allow for a controlled bus > reset and avoid this spurious removal attempt. > > --- > > Alex Williamson (9): > pci: Create pci_reset_bridge_secondary_bus() > pci: Add hotplug_slot_ops.reset_slot() > pci: Implement reset_slot for pciehp > pci: Add slot reset option to pci_dev_reset > pci: Split out pci_dev lock/unlock and save/restore > pci: Add slot and bus reset interfaces > pci: Wake-up devices before save for reset > pci: Tune secondary bus reset timing > pci: Remove aer_do_secondary_bus_reset() > > > drivers/pci/hotplug/pciehp.h | 1 > drivers/pci/hotplug/pciehp_core.c | 12 + > drivers/pci/hotplug/pciehp_hpc.c | 31 +++ > drivers/pci/pci.c | 349 +++++++++++++++++++++++++++++++++--- > drivers/pci/pcie/aer/aerdrv.c | 2 > drivers/pci/pcie/aer/aerdrv.h | 1 > drivers/pci/pcie/aer/aerdrv_core.c | 35 ---- > include/linux/pci.h | 3 > include/linux/pci_hotplug.h | 4 > 9 files changed, 376 insertions(+), 62 deletions(-) Merged to the PCI "next" branch for v3.12, thanks! -- 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