On Mon, Jul 11, 2016 at 05:25:29PM +0800, Wan Zongshun wrote: > Okay, this patch should also better to general case not only unity-mapping. > > How about the interrupt remap function? Do we need same considering > for IV bit enable for interrupt remap? No, there are no unity mappings for irqs, so we are not running into the same race here. > Sorry, why you still say this 'init_device_table_dma' can block DMA? > I just think this function will enable DMA transfer, since we set > the V and TV bits, right? or I misunderstand what "block DMA" mean? When the V and TV bits are not set, it means that all DMA from that device-id is forwared untranslated by the IOMMU. But if we set V and TV it means that there is translation information, and the IOMMU translates the requests using the rest of the DTE information. As all other bits are 0, this means that page-table-level is 0 (== no page-table) and that the global IW and IR bits are 0 too (== no read and write permissions). So all requests are blocked. Joerg -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html