[Intel-gfx] [PATCH 18/18] vfio/mdev: Correct the function signatures for the mdev_type_attributes
Christoph Hellwig
hch at lst.de
Tue Mar 23 19:31:03 UTC 2021
On Tue, Mar 23, 2021 at 02:55:35PM -0300, Jason Gunthorpe wrote:
> The driver core standard is to pass in the properly typed object, the
> properly typed attribute and the buffer data. It stems from the root
> kobject method:
>
> ssize_t (*show)(struct kobject *kobj, struct kobj_attribute *attr,..)
>
> Each subclass of kobject should provide their own function with the same
> signature but more specific types, eg struct device uses:
>
> ssize_t (*show)(struct device *dev, struct device_attribute *attr,..)
>
> In this case the existing signature is:
>
> ssize_t (*show)(struct kobject *kobj, struct device *dev,..)
>
> Where kobj is a 'struct mdev_type *' and dev is 'mdev_type->parent->dev'.
>
> Change the mdev_type related sysfs attribute functions to:
>
> ssize_t (*show)(struct mdev_type *mtype, struct mdev_type_attribute *attr,..)
>
> In order to restore type safety and match the driver core standard
>
> There are no current users of 'attr', but if it is ever needed it would be
> hard to add in retroactively, so do it now.
>
> Signed-off-by: Jason Gunthorpe <jgg at nvidia.com>
> ---
> drivers/gpu/drm/i915/gvt/gvt.c | 21 +++++++++++----------
> drivers/s390/cio/vfio_ccw_ops.c | 15 +++++++++------
> drivers/s390/crypto/vfio_ap_ops.c | 12 +++++++-----
> drivers/vfio/mdev/mdev_core.c | 14 ++++++++++++--
> drivers/vfio/mdev/mdev_sysfs.c | 11 ++++++-----
> include/linux/mdev.h | 11 +++++++----
> samples/vfio-mdev/mbochs.c | 26 +++++++++++++++-----------
> samples/vfio-mdev/mdpy.c | 24 ++++++++++++++----------
> samples/vfio-mdev/mtty.c | 18 +++++++++---------
> 9 files changed, 90 insertions(+), 62 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c
> index 4b47a18e9dfa0f..3703814a669b46 100644
> --- a/drivers/gpu/drm/i915/gvt/gvt.c
> +++ b/drivers/gpu/drm/i915/gvt/gvt.c
> @@ -54,14 +54,15 @@ intel_gvt_find_vgpu_type(struct intel_gvt *gvt, unsigned int type_group_id)
> return &gvt->types[type_group_id];
> }
>
> -static ssize_t available_instances_show(struct kobject *kobj,
> - struct device *dev, char *buf)
> +static ssize_t available_instances_show(struct mdev_type *mtype,
> + struct mdev_type_attribute *attr,
> + char *buf)
> {
> struct intel_vgpu_type *type;
> unsigned int num = 0;
> - void *gvt = kdev_to_i915(dev)->gvt;
> + void *gvt = kdev_to_i915(mtype_get_parent_dev(mtype))->gvt;
>
> - type = intel_gvt_find_vgpu_type(gvt, mtype_get_type_group_id(kobj));
> + type = intel_gvt_find_vgpu_type(gvt, mtype_get_type_group_id(mtype));
Somewhere in this series you should probably
switch intel_gvt_find_vgpu_type to only get the mtype, as it can trivially
deduct the gvt from it (which also seems to have lost its type somewhere..)
Otherwise looks good:
Reviewed-by: Christoph Hellwig <hch at lst.de>
More information about the Intel-gfx
mailing list