Skip to content

Commit

Permalink
vdpa: Add vhost_vdpa_net_load_mq
Browse files Browse the repository at this point in the history
Same way as with the MAC, restore the expected number of queues at
device's start.

Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
  • Loading branch information
eugpermar authored and jasowang committed Sep 27, 2022
1 parent f73c0c4 commit f64c7cd
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions net/vhost-vdpa.c
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,28 @@ static int vhost_vdpa_net_load_mac(VhostVDPAState *s, const VirtIONet *n)
return 0;
}

static int vhost_vdpa_net_load_mq(VhostVDPAState *s,
const VirtIONet *n)
{
struct virtio_net_ctrl_mq mq;
uint64_t features = n->parent_obj.guest_features;
ssize_t dev_written;

if (!(features & BIT_ULL(VIRTIO_NET_F_MQ))) {
return 0;
}

mq.virtqueue_pairs = cpu_to_le16(n->curr_queue_pairs);
dev_written = vhost_vdpa_net_load_cmd(s, VIRTIO_NET_CTRL_MQ,
VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET, &mq,
sizeof(mq));
if (unlikely(dev_written < 0)) {
return dev_written;
}

return *s->status != VIRTIO_NET_OK;
}

static int vhost_vdpa_net_load(NetClientState *nc)
{
VhostVDPAState *s = DO_UPCAST(VhostVDPAState, nc, nc);
Expand All @@ -418,6 +440,10 @@ static int vhost_vdpa_net_load(NetClientState *nc)
if (unlikely(r < 0)) {
return r;
}
r = vhost_vdpa_net_load_mq(s, n);
if (unlikely(r)) {
return r;
}

return 0;
}
Expand Down

0 comments on commit f64c7cd

Please sign in to comment.