> From: Jason Wang <jasow...@redhat.com>
> Sent: Wednesday, April 7, 2021 8:48 AM
[..]
> > +/**
> > + * vdpa_set_features - Set vDPA device features
> > + * @vdev: vdpa device whose features to set
> > + * @features: features of the vdpa device to enable/disable
> > + *
> > + * Return: Returns 0 on success or error code.
> > + */
> > +int vdpa_set_features(struct vdpa_device *vdev, u64 features) {
> > +   const struct vdpa_config_ops *ops = vdev->config;
> > +
> > +   vdev->features_valid = true;
> > +   return ops->set_features(vdev, features); }
> > +EXPORT_SYMBOL_GPL(vdpa_set_features);
> > +
> 
> 
> Let's add a doc for this function?
Kdoc comment is added above the function in this patch.

> > --- a/drivers/vhost/vdpa.c
> > +++ b/drivers/vhost/vdpa.c
> 
> 
> We probably need to convert drivers/virtio/vdpa.c as well.
Yes, will do.

> 
> 
> > @@ -236,7 +236,6 @@ static long vhost_vdpa_set_config(struct
> vhost_vdpa *v,
> >                               struct vhost_vdpa_config __user *c)
> >   {
> >     struct vdpa_device *vdpa = v->vdpa;
> > -   const struct vdpa_config_ops *ops = vdpa->config;
> >     struct vhost_vdpa_config config;
> >     unsigned long size = offsetof(struct vhost_vdpa_config, buf);
> >     u8 *buf;
> > @@ -250,7 +249,7 @@ static long vhost_vdpa_set_config(struct
> vhost_vdpa *v,
> >     if (IS_ERR(buf))
> >             return PTR_ERR(buf);
> >
> > -   ops->set_config(vdpa, config.off, buf, config.len);
> > +   vdpa_set_config(vdpa, config.off, buf, config.len);
> >
> >     kvfree(buf);
> >     return 0;
> > @@ -259,10 +258,9 @@ static long vhost_vdpa_set_config(struct
> vhost_vdpa *v,
> >   static long vhost_vdpa_get_features(struct vhost_vdpa *v, u64 __user
> *featurep)
> >   {
> >     struct vdpa_device *vdpa = v->vdpa;
> > -   const struct vdpa_config_ops *ops = vdpa->config;
> >     u64 features;
> >
> > -   features = ops->get_features(vdpa);
> > +   features = vdpa_get_features(vdpa);
> >
> >     if (copy_to_user(featurep, &features, sizeof(features)))
> >             return -EFAULT;
> > diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h index
> > 37b65ca940cf..62e68ccc4c96 100644
> > --- a/include/linux/vdpa.h
> > +++ b/include/linux/vdpa.h
> > @@ -320,28 +320,12 @@ static inline void vdpa_reset(struct vdpa_device
> *vdev)
> >           ops->set_status(vdev, 0);
> >   }
> >
> > -static inline int vdpa_set_features(struct vdpa_device *vdev, u64
> > features) -{
> > -        const struct vdpa_config_ops *ops = vdev->config;
> > -
> > -   vdev->features_valid = true;
> > -        return ops->set_features(vdev, features);
> > -}
> > -
> > -
> > -static inline void vdpa_get_config(struct vdpa_device *vdev, unsigned
> offset,
> > -                              void *buf, unsigned int len)
> > -{
> > -        const struct vdpa_config_ops *ops = vdev->config;
> > -
> > -   /*
> > -    * Config accesses aren't supposed to trigger before features are set.
> > -    * If it does happen we assume a legacy guest.
> > -    */
> > -   if (!vdev->features_valid)
> > -           vdpa_set_features(vdev, 0);
> > -   ops->get_config(vdev, offset, buf, len);
> > -}
> > +u64 vdpa_get_features(struct vdpa_device *vdev); int
> > +vdpa_set_features(struct vdpa_device *vdev, u64 features); void
> > +vdpa_get_config(struct vdpa_device *vdev, unsigned int offset,
> > +                void *buf, unsigned int len);
> > +void vdpa_set_config(struct vdpa_device *dev, unsigned int offset,
> > +                void *buf, unsigned int length);
> 
> 
> I think it's better to use a separate patch for this moving.
> 
Ok. will have prepatch to this one for movement.
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to