On Fri, 2012-06-08 at 15:16 +0200, Jan Kiszka wrote: > On 2012-06-08 15:03, Michael S. Tsirkin wrote: > >> + /* set master */ > >> + pci_set_master(pdev); > >> + > >> + /* set DMA mask */ > >> + err = pci_set_dma_mask(pdev, DMA_BIT_MASK(64)); > > > > uio currently only supports devices which do not > > do DMA. > > > > DMA from uio controlled devices is a no no unless > > it's behind an IOMMU which can protect us from > > random memory corruptions this could cause. > > > > In the later case it's OK but we need some code > > to check this and program the IOMMU appropriately. > > AKA: VFIO. :) > > Dominic, maybe you want to have a look at Alex's work: > https://github.com/awilliam/linux-vfio Yes, thanks Jan. This is exactly what VFIO does. VFIO provides secure config space access, resource access, DMA mapping services, and full interrupt support to userspace. I'm currently working to get this upstream, probably targeting 3.6 at this point, and would love to have more users to help make that happen. Please take a look at the vfio-3.4 branch in the tree above. See this tree for Qemu's usage of VFIO for device assignment: https://github.com/awilliam/qemu-vfio (vfio-ng) Look forward to your feedback. Thanks, Alex -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html