On Wed, Dec 19, 2012 at 9:41 PM, Chu Ying <gm.ychu@xxxxxxxxx> wrote: > On 2012-12-19, at 18:58, Andrew Cooks <acooks@xxxxxxxxx> wrote: > >> This is my second attempt to make Marvell 88SE91xx SATA controllers work when IOMMU is enabled.[1][2] >> +static const struct pci_dev_dma_source_funcs { >> + u16 vendor; >> + u16 device; >> + u8 func_map; /* bit map. lsb is fn 0. */ >> +} pci_dev_dma_source_funcs[] = { >> + {0x1b4b, 0x9172, (1<<0)|(1<<1)}, >> + { 0 }, >> +}; > > Can you confirm function 0 should be marked? Per my PCIe trace, I found no function 0 involved in DMA access? > Yes. The attached patch disables function 0 for the 0x9172 device. The attached dmesg output shows the resulting change at time 1.920163 and fault at time 2.265757.
Attachment:
dmesg_iommu_on_func_1_only.gz
Description: GNU Zip compressed data
Attachment:
func_1_only.patch
Description: Binary data