virtio: convert to use DMA api
commit8607f5c3072caeebbe0217df28651fffd3a79fd9
authorJason Wang <jasowang@redhat.com>
Fri, 30 Dec 2016 10:09:10 +0000 (30 18:09 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 10 Jan 2017 03:56:58 +0000 (10 05:56 +0200)
tree1510ec22428bb73d8dc8c719eee52eae33b43853
parenta08aaff811fb194950f79711d2afe5a892ae03a4
virtio: convert to use DMA api

Currently, all virtio devices bypass IOMMU completely. This is because
address_space_memory is assumed and used during DMA emulation. This
patch converts the virtio core API to use DMA API. This idea is

- introducing a new transport specific helper to query the dma address
  space. (only pci version is implemented).
- query and use this address space during virtio device guest memory
  accessing when iommu platform (VIRTIO_F_IOMMU_PLATFORM) was enabled
  for this device.

Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Amit Shah <amit.shah@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-block@nongnu.org
Signed-off-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/block/virtio-blk.c
hw/char/virtio-serial-bus.c
hw/scsi/virtio-scsi.c
hw/virtio/virtio-bus.c
hw/virtio/virtio-pci.c
hw/virtio/virtio.c
include/hw/virtio/virtio-access.h
include/hw/virtio/virtio-bus.h
include/hw/virtio/virtio.h