On Tue, 2012-08-28 at 00:05 +0800, Andrew Cooks wrote:
> There's a problem relating to DMA Remapping which affects systems with
> Marvell SATA controllers. It was first reported on 2012-01-28 on
> bugzilla.kernel.org[1] and is best described by Don Dutile: "...the
> lspci dump in the bugzilla report doesn't show a device w/BDF=0b:00.1;
> so, if the SATA device (which is 0b:00.0) is spitting out 0b:00.1 as
> the source of any of its DMA packets, the IOMMU will fault on it,
> since 0b:00.1 didn't request DMA mappings (0b:00.0 did)."[2]
> 
> Is this kind of problem caused by a missing/incorrect entry in an ACPI
> table? Is it feasible to introduce a fake device for the missing
> function using a pci quirk?

We've added pci_get_dma_source() to help with such devices, but it's
only used by the IOMMU grouping code and requires a struct pci_dev for
the actual DMA source.  I think for this device we're going to need to
run a quirk when we scan it that creates a fake device, add it to
pci_get_dma_source(), then make use of it in the dma mapping path.  I
think the only other alternative would be to disable hardware IOMMUs
when this device is found in the system.  Thanks,

Alex

_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to