On Sat, May 9, 2020 at 10:20 AM Jason Wang <jasow...@redhat.com> wrote:
>
>
> On 2020/5/9 上午12:32, Cindy Lu wrote:
> > user the qemu_get_peer to replace the old process
>
>
> The title should be "vhost_net: use the function qemu_get_peer".
>
> Thanks
>
Sure, I will fix this
>
> >
> > Signed-off-by: Cindy Lu <l...@redhat.com>
> > ---
> > hw/net/vhost_net.c | 14 +++++++++-----
> > 1 file changed, 9 insertions(+), 5 deletions(-)
> >
> > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
> > index 6b82803fa7..d1d421e3d9 100644
> > --- a/hw/net/vhost_net.c
> > +++ b/hw/net/vhost_net.c
> > @@ -306,7 +306,9 @@ int vhost_net_start(VirtIODevice *dev, NetClientState
> > *ncs,
> > BusState *qbus = BUS(qdev_get_parent_bus(DEVICE(dev)));
> > VirtioBusState *vbus = VIRTIO_BUS(qbus);
> > VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(vbus);
> > + struct vhost_net *net;
> > int r, e, i;
> > + NetClientState *peer;
> >
> > if (!k->set_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++) {
> > - 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);
> >
> > /* Suppress the masking guest notifiers on vhost user
> > @@ -335,7 +337,8 @@ int vhost_net_start(VirtIODevice *dev, NetClientState
> > *ncs,
> > }
> >
> > 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) {
> > goto err_start;
> > @@ -343,7 +346,7 @@ int vhost_net_start(VirtIODevice *dev, NetClientState
> > *ncs,
> >
> > if (ncs[i].peer->vring_enable) {
> > /* 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) {
> > goto err_start;
> > @@ -355,7 +358,8 @@ int vhost_net_start(VirtIODevice *dev, NetClientState
> > *ncs,
> >
> > err_start:
> > 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);
> > if (e < 0) {
>