mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
vdpa: reorder vhost_vdpa_set_backend_cap
It will be used directly by vhost_vdpa_init. Tested-by: Lei Yang <leiyang@redhat.com> Reviewed-by: Si-Wei Liu <si-wei.liu@oracle.com> Acked-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Signed-off-by: Jonah Palmer <jonah.palmer@oracle.com> Message-Id: <20250522145839.59974-3-jonah.palmer@oracle.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
committed by
Michael S. Tsirkin
parent
55cf1d4f10
commit
3312e6c8c9
+30
-30
@@ -594,6 +594,36 @@ static void vhost_vdpa_init_svq(struct vhost_dev *hdev, struct vhost_vdpa *v)
|
||||
v->shadow_vqs = g_steal_pointer(&shadow_vqs);
|
||||
}
|
||||
|
||||
static int vhost_vdpa_set_backend_cap(struct vhost_dev *dev)
|
||||
{
|
||||
struct vhost_vdpa *v = dev->opaque;
|
||||
|
||||
uint64_t features;
|
||||
uint64_t f = 0x1ULL << VHOST_BACKEND_F_IOTLB_MSG_V2 |
|
||||
0x1ULL << VHOST_BACKEND_F_IOTLB_BATCH |
|
||||
0x1ULL << VHOST_BACKEND_F_IOTLB_ASID |
|
||||
0x1ULL << VHOST_BACKEND_F_SUSPEND;
|
||||
int r;
|
||||
|
||||
if (vhost_vdpa_call(dev, VHOST_GET_BACKEND_FEATURES, &features)) {
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
features &= f;
|
||||
|
||||
if (vhost_vdpa_first_dev(dev)) {
|
||||
r = vhost_vdpa_call(dev, VHOST_SET_BACKEND_FEATURES, &features);
|
||||
if (r) {
|
||||
return -EFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
dev->backend_cap = features;
|
||||
v->shared->backend_cap = features;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int vhost_vdpa_init(struct vhost_dev *dev, void *opaque, Error **errp)
|
||||
{
|
||||
struct vhost_vdpa *v = opaque;
|
||||
@@ -841,36 +871,6 @@ static int vhost_vdpa_set_features(struct vhost_dev *dev,
|
||||
return vhost_vdpa_add_status(dev, VIRTIO_CONFIG_S_FEATURES_OK);
|
||||
}
|
||||
|
||||
static int vhost_vdpa_set_backend_cap(struct vhost_dev *dev)
|
||||
{
|
||||
struct vhost_vdpa *v = dev->opaque;
|
||||
|
||||
uint64_t features;
|
||||
uint64_t f = 0x1ULL << VHOST_BACKEND_F_IOTLB_MSG_V2 |
|
||||
0x1ULL << VHOST_BACKEND_F_IOTLB_BATCH |
|
||||
0x1ULL << VHOST_BACKEND_F_IOTLB_ASID |
|
||||
0x1ULL << VHOST_BACKEND_F_SUSPEND;
|
||||
int r;
|
||||
|
||||
if (vhost_vdpa_call(dev, VHOST_GET_BACKEND_FEATURES, &features)) {
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
features &= f;
|
||||
|
||||
if (vhost_vdpa_first_dev(dev)) {
|
||||
r = vhost_vdpa_call(dev, VHOST_SET_BACKEND_FEATURES, &features);
|
||||
if (r) {
|
||||
return -EFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
dev->backend_cap = features;
|
||||
v->shared->backend_cap = features;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int vhost_vdpa_get_device_id(struct vhost_dev *dev,
|
||||
uint32_t *device_id)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user