On Thu, Apr 20, 2017 at 02:11:42PM +0200, Joerg Roedel wrote: > On Sat, Apr 08, 2017 at 09:41:07AM +0200, Lukas Wunner wrote: > > On Fri, Apr 07, 2017 at 04:32:18PM +0200, Joerg Roedel wrote: > > > From: Joerg Roedel <jroedel@xxxxxxx> > > > > > > ATS is broken on this hardware and causes IOMMU stalls and > > > system failure. Disable ATS on these devices to make them > > > usable again with IOMMU enabled. > > > > AMD Stoney Ridge is an x86 CPU + GPU combo and this quirk pertains > > to the GPU, right? > > > > In that case the quirk should go to arch/x86. Paul Menzel (+cc) > > has just complained on linux-pci@ that final fixups are taking half > > a second, and I think that could be reduced if more efforts were > > spent to move arch-specific quirks out of the catch-all in > > drivers/pci/quirks.c. > > The affected hardware here might be x86-only, but ATS is not. If a > broken ATS-capable plug-in card appears, we need this in generic code > anyway. It could go in either arch/x86/pci/fixup.c or drivers/pci/quirks.c. It's not clear to me exactly what the hardware defect is or where it is. If it's in the CPU or in a GPU that can only be found on x86, I think arch/x86/pci/fixup.c is the appropriate place. If it's in a GPU that could be found on other arches, drivers/pci/quirks.c would be the appropriate place. I don't personally think the possibility of a plugin card with broken ATS is a real reason to put this quirk in drivers/pci/quirks.c. It's a trivial patch and easy to copy or move later if we need to. Bjorn