vhost_net: use the function qemu_get_peer

user the qemu_get_peer to replace the old process

Signed-off-by: Cindy Lu <lulu@redhat.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Message-Id: <20200701145538.22333-3-lulu@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
Cindy Lu 2020-07-01 22:55:26 +08:00 committed by Michael S. Tsirkin
parent 0165daae5c
commit 92fbc3e07e
1 changed files with 10 additions and 6 deletions

View File

@ -306,7 +306,9 @@ int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(dev))); BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(dev)));
VirtioBusState *vbus = VIRTIO_BUS(qbus); VirtioBusState *vbus = VIRTIO_BUS(qbus);
VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(vbus); VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(vbus);
struct vhost_net *net;
int r, e, i; int r, e, i;
NetClientState *peer;
if (!k->set_guest_notifiers) { if (!k->set_guest_notifiers) {
error_report("binding does not support guest notifiers"); error_report("binding does not support guest notifiers");
@ -314,9 +316,9 @@ int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
} }
for (i = 0; i < total_queues; i++) { for (i = 0; i < total_queues; i++) {
struct vhost_net *net;
net = get_vhost_net(ncs[i].peer); peer = qemu_get_peer(ncs, i);
net = get_vhost_net(peer);
vhost_net_set_vq_index(net, i * 2); vhost_net_set_vq_index(net, i * 2);
/* Suppress the masking guest notifiers on vhost user /* Suppress the masking guest notifiers on vhost user
@ -335,15 +337,16 @@ int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
} }
for (i = 0; i < total_queues; i++) { for (i = 0; i < total_queues; i++) {
r = vhost_net_start_one(get_vhost_net(ncs[i].peer), dev); peer = qemu_get_peer(ncs, i);
r = vhost_net_start_one(get_vhost_net(peer), dev);
if (r < 0) { if (r < 0) {
goto err_start; goto err_start;
} }
if (ncs[i].peer->vring_enable) { if (peer->vring_enable) {
/* restore vring enable state */ /* restore vring enable state */
r = vhost_set_vring_enable(ncs[i].peer, ncs[i].peer->vring_enable); r = vhost_set_vring_enable(peer, peer->vring_enable);
if (r < 0) { if (r < 0) {
goto err_start; goto err_start;
@ -355,7 +358,8 @@ int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
err_start: err_start:
while (--i >= 0) { while (--i >= 0) {
vhost_net_stop_one(get_vhost_net(ncs[i].peer), dev); peer = qemu_get_peer(ncs , i);
vhost_net_stop_one(get_vhost_net(peer), dev);
} }
e = k->set_guest_notifiers(qbus->parent, total_queues * 2, false); e = k->set_guest_notifiers(qbus->parent, total_queues * 2, false);
if (e < 0) { if (e < 0) {