@@ -1252,8 +1252,10 @@ static u32 get_host_features(struct kvm *kvm, void *dev)
static void set_guest_features(struct kvm *kvm, void *dev, u32 features)
{
struct p9_dev *p9dev = dev;
+ struct virtio_9p_config *conf = p9dev->config;
p9dev->features = features;
+ conf->tag_len = virtio_host_to_guest_u16(&p9dev->vdev, conf->tag_len);
}
static int init_vq(struct kvm *kvm, void *dev, u32 vq, u32 page_size, u32 align,
@@ -1272,6 +1274,7 @@ static int init_vq(struct kvm *kvm, void *dev, u32 vq, u32 page_size, u32 align,
job = &p9dev->jobs[vq];
vring_init(&queue->vring, VIRTQUEUE_NUM, p, align);
+ virtio_init_device_vq(&p9dev->vdev, queue);
*job = (struct p9_dev_job) {
.vq = queue,
Configure the queues to follow the guest endianness, and make sure the configuration space is doing the same. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> --- tools/kvm/virtio/9p.c | 3 +++ 1 file changed, 3 insertions(+)