Message ID | 20220308123518.33800-22-xuanzhuo@linux.alibaba.com (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | virtio pci support VIRTIO_F_RING_RESET | expand |
在 2022/3/8 下午8:35, Xuan Zhuo 写道: > Introduce helper virtio_find_vqs_ctx_size() to call find_vqs and specify > the maximum size of each vq ring. > > Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> > --- > include/linux/virtio_config.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h > index 5157524d8036..921d8610db0c 100644 > --- a/include/linux/virtio_config.h > +++ b/include/linux/virtio_config.h > @@ -233,6 +233,18 @@ int virtio_find_vqs_ctx(struct virtio_device *vdev, unsigned nvqs, > desc, NULL); > } > > +static inline > +int virtio_find_vqs_ctx_size(struct virtio_device *vdev, u32 nvqs, > + struct virtqueue *vqs[], > + vq_callback_t *callbacks[], > + const char * const names[], > + const bool *ctx, struct irq_affinity *desc, > + u32 sizes[]) > +{ > + return vdev->config->find_vqs(vdev, nvqs, vqs, callbacks, names, ctx, > + desc, sizes); > +} Do we need to convert all the open coded direct call to find_vqs() other than net? Thanks > + > /** > * virtio_reset_vq - reset a queue individually > * @vq: the virtqueue
On Wed, 9 Mar 2022 17:04:12 +0800, Jason Wang <jasowang@redhat.com> wrote: > > 在 2022/3/8 下午8:35, Xuan Zhuo 写道: > > Introduce helper virtio_find_vqs_ctx_size() to call find_vqs and specify > > the maximum size of each vq ring. > > > > Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> > > --- > > include/linux/virtio_config.h | 12 ++++++++++++ > > 1 file changed, 12 insertions(+) > > > > diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h > > index 5157524d8036..921d8610db0c 100644 > > --- a/include/linux/virtio_config.h > > +++ b/include/linux/virtio_config.h > > @@ -233,6 +233,18 @@ int virtio_find_vqs_ctx(struct virtio_device *vdev, unsigned nvqs, > > desc, NULL); > > } > > > > +static inline > > +int virtio_find_vqs_ctx_size(struct virtio_device *vdev, u32 nvqs, > > + struct virtqueue *vqs[], > > + vq_callback_t *callbacks[], > > + const char * const names[], > > + const bool *ctx, struct irq_affinity *desc, > > + u32 sizes[]) > > +{ > > + return vdev->config->find_vqs(vdev, nvqs, vqs, callbacks, names, ctx, > > + desc, sizes); > > +} > > > Do we need to convert all the open coded direct call to find_vqs() other > than net? Do you mean calling find_vqs without a helper? The kernel doesn't do that anymore. Thanks. > > Thanks > > > > + > > /** > > * virtio_reset_vq - reset a queue individually > > * @vq: the virtqueue >
diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index 5157524d8036..921d8610db0c 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -233,6 +233,18 @@ int virtio_find_vqs_ctx(struct virtio_device *vdev, unsigned nvqs, desc, NULL); } +static inline +int virtio_find_vqs_ctx_size(struct virtio_device *vdev, u32 nvqs, + struct virtqueue *vqs[], + vq_callback_t *callbacks[], + const char * const names[], + const bool *ctx, struct irq_affinity *desc, + u32 sizes[]) +{ + return vdev->config->find_vqs(vdev, nvqs, vqs, callbacks, names, ctx, + desc, sizes); +} + /** * virtio_reset_vq - reset a queue individually * @vq: the virtqueue
Introduce helper virtio_find_vqs_ctx_size() to call find_vqs and specify the maximum size of each vq ring. Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> --- include/linux/virtio_config.h | 12 ++++++++++++ 1 file changed, 12 insertions(+)