From: Longpeng <longpeng2@huawei.com>
Implements the .get_features interface.
Signed-off-by: Longpeng <longpeng2@huawei.com>
---
hw/virtio/vdpa-dev.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c
index f28d3ed5f9..9536982061 100644
--- a/hw/virtio/vdpa-dev.c
+++ b/hw/virtio/vdpa-dev.c
@@ -212,7 +212,14 @@ static uint64_t vhost_vdpa_device_get_features(VirtIODevice *vdev,
uint64_t features,
Error **errp)
{
- return (uint64_t)-1;
+ VhostVdpaDevice *s = VHOST_VDPA_DEVICE(vdev);
+ uint64_t backend_features = s->dev.features;
+
+ if (!virtio_has_feature(features, VIRTIO_F_IOMMU_PLATFORM)) {
+ virtio_clear_feature(&backend_features, VIRTIO_F_IOMMU_PLATFORM);
+ }
+
+ return backend_features;
}
static void vhost_vdpa_device_set_status(VirtIODevice *vdev, uint8_t status)
--
2.23.0