On Wed, Jul 29, 2015 at 9:07 AM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: > On Mon, Jul 20, 2015 at 07:13:49PM -0500, Bjorn Helgaas wrote: >> Gregor reported a deadlock [1] when enabling a VF that supports ATS. >> This series is intended to fix that. The second patch should be enough to >> fix the deadlock; the rest are simplification and cleanup. >> >> These are based on v4.2-rc2. >> >> [1] http://permalink.gmane.org/gmane.linux.kernel.iommu/9433 >> >> Changes between v1 and v2: >> - Remove use of pci_ats_enabled() (intel-iommu.c) >> - Call pci_ats_queue_depth() only once per device and cache result >> (intel-iommu.c) >> - Remove pci_ats_enabled() interface >> - Stop caching queue depth in pci_dev to save space >> - Add PF refcount of how many associated VFs have ATS enabled >> - Add comment that ATS must be enabled on PF before on VFs >> - Require ATS to be disabled on all VFs and PF before changing STU >> >> >> --- >> >> Bjorn Helgaas (11): >> iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth >> PCI: Allocate ATS struct during enumeration >> PCI: Embed ATS info directly into struct pci_dev >> PCI: Reduce size of ATS structure elements >> PCI: Rationalize pci_ats_queue_depth() error checking >> PCI: Inline the ATS setup code into pci_ats_init() >> PCI: Use pci_physfn() rather than looking up physfn by hand >> PCI: Clean up ATS error handling >> PCI: Move ATS declarations to linux/pci.h so they're all together >> PCI: Stop caching ATS Invalidate Queue Depth >> PCI: Remove pci_ats_enabled() > > I applied these to a pci/iommu branch for v4.3. Let me know if you see any > issues. looks like this branch causes hang on system with qlogic/emulex cards. exclude the branch, will make kernel work again. 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