Message ID | 20221211172042.3969410-9-lulu@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vhost-vdpa: add support for configure interrupt | expand |
On Mon, Dec 12, 2022 at 01:20:40AM +0800, Cindy Lu wrote: > Add functions to support configure interrupt in virtio_net > Add the functions to support vhost_net_config_pending > and vhost_net_config_mask. > > Signed-off-by: Cindy Lu <lulu@redhat.com> Causes a bunch of failures including mingw. See: https://gitlab.com/mstredhat/qemu/-/pipelines/728492799/failures lots of: /builds/mstredhat/qemu/build/../hw/net/virtio-net.c:3366: undefined reference to `vhost_net_config_mask' Pls fix and repost. > --- > hw/net/vhost_net.c | 9 +++++++++ > hw/net/virtio-net.c | 4 ++-- > include/net/vhost_net.h | 2 ++ > 3 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c > index 043058ff43..6a55f5a473 100644 > --- a/hw/net/vhost_net.c > +++ b/hw/net/vhost_net.c > @@ -478,6 +478,15 @@ void vhost_net_virtqueue_mask(VHostNetState *net, VirtIODevice *dev, > vhost_virtqueue_mask(&net->dev, dev, idx, mask); > } > > +bool vhost_net_config_pending(VHostNetState *net) > +{ > + return vhost_config_pending(&net->dev); > +} > + > +void vhost_net_config_mask(VHostNetState *net, VirtIODevice *dev, bool mask) > +{ > + vhost_config_mask(&net->dev, dev, mask); > +} > VHostNetState *get_vhost_net(NetClientState *nc) > { > VHostNetState *vhost_net = 0; > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > index bee35d6f9f..ec974f7a76 100644 > --- a/hw/net/virtio-net.c > +++ b/hw/net/virtio-net.c > @@ -3323,7 +3323,7 @@ static bool virtio_net_guest_notifier_pending(VirtIODevice *vdev, int idx) > */ > > if (idx == VIRTIO_CONFIG_IRQ_IDX) { > - return false; > + return vhost_net_config_pending(get_vhost_net(nc->peer)); > } > return vhost_net_virtqueue_pending(get_vhost_net(nc->peer), idx); > } > @@ -3355,9 +3355,9 @@ static void virtio_net_guest_notifier_mask(VirtIODevice *vdev, int idx, > */ > > if (idx == VIRTIO_CONFIG_IRQ_IDX) { > + vhost_net_config_mask(get_vhost_net(nc->peer), vdev, mask); > return; > } > - > vhost_net_virtqueue_mask(get_vhost_net(nc->peer), vdev, idx, mask); > } > > diff --git a/include/net/vhost_net.h b/include/net/vhost_net.h > index 40b9a40074..dbbd0dc04e 100644 > --- a/include/net/vhost_net.h > +++ b/include/net/vhost_net.h > @@ -39,6 +39,8 @@ int vhost_net_set_config(struct vhost_net *net, const uint8_t *data, > bool vhost_net_virtqueue_pending(VHostNetState *net, int n); > void vhost_net_virtqueue_mask(VHostNetState *net, VirtIODevice *dev, > int idx, bool mask); > +bool vhost_net_config_pending(VHostNetState *net); > +void vhost_net_config_mask(VHostNetState *net, VirtIODevice *dev, bool mask); > int vhost_net_notify_migration_done(VHostNetState *net, char* mac_addr); > VHostNetState *get_vhost_net(NetClientState *nc); > > -- > 2.34.3
On Wed, 21 Dec 2022 at 19:25, Michael S. Tsirkin <mst@redhat.com> wrote: > > On Mon, Dec 12, 2022 at 01:20:40AM +0800, Cindy Lu wrote: > > Add functions to support configure interrupt in virtio_net > > Add the functions to support vhost_net_config_pending > > and vhost_net_config_mask. > > > > Signed-off-by: Cindy Lu <lulu@redhat.com> > > > > Causes a bunch of failures including mingw. > See: > https://gitlab.com/mstredhat/qemu/-/pipelines/728492799/failures > > lots of: > /builds/mstredhat/qemu/build/../hw/net/virtio-net.c:3366: undefined reference to `vhost_net_config_mask' > > Pls fix and repost. > Sorry, Michael, will post a new version soon > > > --- > > hw/net/vhost_net.c | 9 +++++++++ > > hw/net/virtio-net.c | 4 ++-- > > include/net/vhost_net.h | 2 ++ > > 3 files changed, 13 insertions(+), 2 deletions(-) > > > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c > > index 043058ff43..6a55f5a473 100644 > > --- a/hw/net/vhost_net.c > > +++ b/hw/net/vhost_net.c > > @@ -478,6 +478,15 @@ void vhost_net_virtqueue_mask(VHostNetState *net, VirtIODevice *dev, > > vhost_virtqueue_mask(&net->dev, dev, idx, mask); > > } > > > > +bool vhost_net_config_pending(VHostNetState *net) > > +{ > > + return vhost_config_pending(&net->dev); > > +} > > + > > +void vhost_net_config_mask(VHostNetState *net, VirtIODevice *dev, bool mask) > > +{ > > + vhost_config_mask(&net->dev, dev, mask); > > +} > > VHostNetState *get_vhost_net(NetClientState *nc) > > { > > VHostNetState *vhost_net = 0; > > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > > index bee35d6f9f..ec974f7a76 100644 > > --- a/hw/net/virtio-net.c > > +++ b/hw/net/virtio-net.c > > @@ -3323,7 +3323,7 @@ static bool virtio_net_guest_notifier_pending(VirtIODevice *vdev, int idx) > > */ > > > > if (idx == VIRTIO_CONFIG_IRQ_IDX) { > > - return false; > > + return vhost_net_config_pending(get_vhost_net(nc->peer)); > > } > > return vhost_net_virtqueue_pending(get_vhost_net(nc->peer), idx); > > } > > @@ -3355,9 +3355,9 @@ static void virtio_net_guest_notifier_mask(VirtIODevice *vdev, int idx, > > */ > > > > if (idx == VIRTIO_CONFIG_IRQ_IDX) { > > + vhost_net_config_mask(get_vhost_net(nc->peer), vdev, mask); > > return; > > } > > - > > vhost_net_virtqueue_mask(get_vhost_net(nc->peer), vdev, idx, mask); > > } > > > > diff --git a/include/net/vhost_net.h b/include/net/vhost_net.h > > index 40b9a40074..dbbd0dc04e 100644 > > --- a/include/net/vhost_net.h > > +++ b/include/net/vhost_net.h > > @@ -39,6 +39,8 @@ int vhost_net_set_config(struct vhost_net *net, const uint8_t *data, > > bool vhost_net_virtqueue_pending(VHostNetState *net, int n); > > void vhost_net_virtqueue_mask(VHostNetState *net, VirtIODevice *dev, > > int idx, bool mask); > > +bool vhost_net_config_pending(VHostNetState *net); > > +void vhost_net_config_mask(VHostNetState *net, VirtIODevice *dev, bool mask); > > int vhost_net_notify_migration_done(VHostNetState *net, char* mac_addr); > > VHostNetState *get_vhost_net(NetClientState *nc); > > > > -- > > 2.34.3 >
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index 043058ff43..6a55f5a473 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -478,6 +478,15 @@ void vhost_net_virtqueue_mask(VHostNetState *net, VirtIODevice *dev, vhost_virtqueue_mask(&net->dev, dev, idx, mask); } +bool vhost_net_config_pending(VHostNetState *net) +{ + return vhost_config_pending(&net->dev); +} + +void vhost_net_config_mask(VHostNetState *net, VirtIODevice *dev, bool mask) +{ + vhost_config_mask(&net->dev, dev, mask); +} VHostNetState *get_vhost_net(NetClientState *nc) { VHostNetState *vhost_net = 0; diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index bee35d6f9f..ec974f7a76 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -3323,7 +3323,7 @@ static bool virtio_net_guest_notifier_pending(VirtIODevice *vdev, int idx) */ if (idx == VIRTIO_CONFIG_IRQ_IDX) { - return false; + return vhost_net_config_pending(get_vhost_net(nc->peer)); } return vhost_net_virtqueue_pending(get_vhost_net(nc->peer), idx); } @@ -3355,9 +3355,9 @@ static void virtio_net_guest_notifier_mask(VirtIODevice *vdev, int idx, */ if (idx == VIRTIO_CONFIG_IRQ_IDX) { + vhost_net_config_mask(get_vhost_net(nc->peer), vdev, mask); return; } - vhost_net_virtqueue_mask(get_vhost_net(nc->peer), vdev, idx, mask); } diff --git a/include/net/vhost_net.h b/include/net/vhost_net.h index 40b9a40074..dbbd0dc04e 100644 --- a/include/net/vhost_net.h +++ b/include/net/vhost_net.h @@ -39,6 +39,8 @@ int vhost_net_set_config(struct vhost_net *net, const uint8_t *data, bool vhost_net_virtqueue_pending(VHostNetState *net, int n); void vhost_net_virtqueue_mask(VHostNetState *net, VirtIODevice *dev, int idx, bool mask); +bool vhost_net_config_pending(VHostNetState *net); +void vhost_net_config_mask(VHostNetState *net, VirtIODevice *dev, bool mask); int vhost_net_notify_migration_done(VHostNetState *net, char* mac_addr); VHostNetState *get_vhost_net(NetClientState *nc);
Add functions to support configure interrupt in virtio_net Add the functions to support vhost_net_config_pending and vhost_net_config_mask. Signed-off-by: Cindy Lu <lulu@redhat.com> --- hw/net/vhost_net.c | 9 +++++++++ hw/net/virtio-net.c | 4 ++-- include/net/vhost_net.h | 2 ++ 3 files changed, 13 insertions(+), 2 deletions(-)