virtio balloon bypasses the DMA API entirely so does not support the VIOMMU right now. It's not clear we need that support, for now let's just make sure we don't pretend to support it. Cc: stable at vger.kernel.org Cc: Wei Wang <wei.w.wang at intel.com> Fixes: 1a937693993f ("virtio: new feature to detect IOMMU device quirk") Signed-off-by: Michael S. Tsirkin <mst at redhat.com> --- drivers/virtio/virtio_balloon.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 408c174..22caf80 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -663,6 +663,12 @@ static int virtballoon_restore(struct virtio_device *vdev) } #endif +static int virtballoon_validate(struct virtio_device *vdev) +{ + __virtio_clear_bit(vdev, VIRTIO_F_IOMMU_PLATFORM); + return 0; +} + static unsigned int features[] = { VIRTIO_BALLOON_F_MUST_TELL_HOST, VIRTIO_BALLOON_F_STATS_VQ, @@ -675,6 +681,7 @@ static struct virtio_driver virtio_balloon_driver = { .driver.name = KBUILD_MODNAME, .driver.owner = THIS_MODULE, .id_table = id_table, + .validate = virtballoon_validate, .probe = virtballoon_probe, .remove = virtballoon_remove, .config_changed = virtballoon_changed, -- MST
On 2017?06?14? 02:00, Michael S. Tsirkin wrote:> virtio balloon bypasses the DMA API entirely so does not support the > VIOMMU right now. It's not clear we need that support, for now let's > just make sure we don't pretend to support it. > > Cc: stable at vger.kernel.org > Cc: Wei Wang <wei.w.wang at intel.com> > Fixes: 1a937693993f ("virtio: new feature to detect IOMMU device quirk") > Signed-off-by: Michael S. Tsirkin <mst at redhat.com> > --- > drivers/virtio/virtio_balloon.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c > index 408c174..22caf80 100644 > --- a/drivers/virtio/virtio_balloon.c > +++ b/drivers/virtio/virtio_balloon.c > @@ -663,6 +663,12 @@ static int virtballoon_restore(struct virtio_device *vdev) > } > #endif > > +static int virtballoon_validate(struct virtio_device *vdev) > +{ > + __virtio_clear_bit(vdev, VIRTIO_F_IOMMU_PLATFORM); > + return 0; > +} > + > static unsigned int features[] = { > VIRTIO_BALLOON_F_MUST_TELL_HOST, > VIRTIO_BALLOON_F_STATS_VQ, > @@ -675,6 +681,7 @@ static struct virtio_driver virtio_balloon_driver = { > .driver.name = KBUILD_MODNAME, > .driver.owner = THIS_MODULE, > .id_table = id_table, > + .validate = virtballoon_validate, > .probe = virtballoon_probe, > .remove = virtballoon_remove, > .config_changed = virtballoon_changed,Acked-by: Jason Wang <jasowang at redhat.com>
Reasonably Related Threads
- [PATCH] virtio_balloon: disable VIOMMU support
- [PATCH] virtio_balloon: clear modern features under legacy
- [PATCH] virtio_balloon: clear modern features under legacy
- [PATCH] virtio_balloon: clear modern features under legacy
- [PATCH] virtio_balloon: clear modern features under legacy