[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 17/17] virtio: force VIRTIO_F_IOMMU_PLATFORM
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL 17/17] virtio: force VIRTIO_F_IOMMU_PLATFORM |
Date: |
Thu, 19 Jan 2017 23:10:00 +0200 |
From: Jason Wang <address@hidden>
We allow vhost to clear VIRITO_F_IOMMU_PLATFORM which is wrong since
VIRTIO_F_IOMMU_PLATFORM is mandatory for security. Fixing this by
enforce it after vdc->get_features().
Signed-off-by: Jason Wang <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
hw/virtio/virtio-bus.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/hw/virtio/virtio-bus.c b/hw/virtio/virtio-bus.c
index d31cc00..a886011 100644
--- a/hw/virtio/virtio-bus.c
+++ b/hw/virtio/virtio-bus.c
@@ -47,6 +47,7 @@ void virtio_bus_device_plugged(VirtIODevice *vdev, Error
**errp)
VirtioBusState *bus = VIRTIO_BUS(qbus);
VirtioBusClass *klass = VIRTIO_BUS_GET_CLASS(bus);
VirtioDeviceClass *vdc = VIRTIO_DEVICE_GET_CLASS(vdev);
+ bool has_iommu = virtio_host_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM);
DPRINTF("%s: plug device.\n", qbus->name);
@@ -63,8 +64,8 @@ void virtio_bus_device_plugged(VirtIODevice *vdev, Error
**errp)
klass->device_plugged(qbus->parent, errp);
}
- if (klass->get_dma_as != NULL &&
- virtio_host_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM)) {
+ if (klass->get_dma_as != NULL && has_iommu) {
+ virtio_add_feature(&vdev->host_features, VIRTIO_F_IOMMU_PLATFORM);
vdev->dma_as = klass->get_dma_as(qbus->parent);
} else {
vdev->dma_as = &address_space_memory;
--
MST
- [Qemu-devel] [PULL 05/17] fw-cfg: support writeable blobs, (continued)
- [Qemu-devel] [PULL 05/17] fw-cfg: support writeable blobs, Michael S. Tsirkin, 2017/01/19
- [Qemu-devel] [PULL 08/17] fw-cfg: bump "x-file-slots" to 0x20 for 2.9+ machine types, Michael S. Tsirkin, 2017/01/19
- [Qemu-devel] [PULL 09/17] virtio: drop an obsolete comment, Michael S. Tsirkin, 2017/01/19
- [Qemu-devel] [PULL 10/17] virtio_mmio: add standard header file, Michael S. Tsirkin, 2017/01/19
- [Qemu-devel] [PULL 11/17] virtio-mmio: switch to linux headers, Michael S. Tsirkin, 2017/01/19
- [Qemu-devel] [PULL 12/17] pci_regs: update to latest linux, Michael S. Tsirkin, 2017/01/19
- [Qemu-devel] [PULL 14/17] update-linux-headers.sh: support __bitwise, Michael S. Tsirkin, 2017/01/19
- [Qemu-devel] [PULL 13/17] virtio_crypto: header update, Michael S. Tsirkin, 2017/01/19
- [Qemu-devel] [PULL 15/17] vhost: drop VHOST_F_DEVICE_IOTLB, Michael S. Tsirkin, 2017/01/19
- [Qemu-devel] [PULL 16/17] virtio: fix up max size checks, Michael S. Tsirkin, 2017/01/19
- [Qemu-devel] [PULL 17/17] virtio: force VIRTIO_F_IOMMU_PLATFORM,
Michael S. Tsirkin <=
- Re: [Qemu-devel] [PULL 00/17] virtio, vhost, pc: fixes, features, Peter Maydell, 2017/01/20