forked from Minki/linux
vfio/mdev: Remove kobj from mdev_parent_ops->create()
The kobj here is a type-erased version of mdev_type, which is already stored in the struct mdev_device being passed in. It was only ever used to compute the type_group_id, which is now extracted directly from the mdev. Reviewed-by: Kevin Tian <kevin.tian@intel.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> Message-Id: <17-v2-d36939638fc6+d54-vfio2_jgg@nvidia.com> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
parent
383987fd15
commit
c2ef2f50ad
@ -689,7 +689,7 @@ static void kvmgt_put_vfio_device(void *vgpu)
|
||||
vfio_device_put(vdev->vfio_device);
|
||||
}
|
||||
|
||||
static int intel_vgpu_create(struct kobject *kobj, struct mdev_device *mdev)
|
||||
static int intel_vgpu_create(struct mdev_device *mdev)
|
||||
{
|
||||
struct intel_vgpu *vgpu = NULL;
|
||||
struct intel_vgpu_type *type;
|
||||
|
@ -110,7 +110,7 @@ static struct attribute_group *mdev_type_groups[] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
static int vfio_ccw_mdev_create(struct kobject *kobj, struct mdev_device *mdev)
|
||||
static int vfio_ccw_mdev_create(struct mdev_device *mdev)
|
||||
{
|
||||
struct vfio_ccw_private *private =
|
||||
dev_get_drvdata(mdev_parent_dev(mdev));
|
||||
|
@ -322,7 +322,7 @@ static void vfio_ap_matrix_init(struct ap_config_info *info,
|
||||
matrix->adm_max = info->apxa ? info->Nd : 15;
|
||||
}
|
||||
|
||||
static int vfio_ap_mdev_create(struct kobject *kobj, struct mdev_device *mdev)
|
||||
static int vfio_ap_mdev_create(struct mdev_device *mdev)
|
||||
{
|
||||
struct ap_matrix_mdev *matrix_mdev;
|
||||
|
||||
|
@ -286,7 +286,7 @@ int mdev_device_create(struct mdev_type *type, const guid_t *uuid)
|
||||
goto out_put_device;
|
||||
}
|
||||
|
||||
ret = parent->ops->create(&type->kobj, mdev);
|
||||
ret = parent->ops->create(mdev);
|
||||
if (ret)
|
||||
goto out_unlock;
|
||||
|
||||
|
@ -61,7 +61,6 @@ unsigned int mtype_get_type_group_id(struct kobject *mtype_kobj);
|
||||
* @create: Called to allocate basic resources in parent device's
|
||||
* driver for a particular mediated device. It is
|
||||
* mandatory to provide create ops.
|
||||
* @kobj: kobject of type for which 'create' is called.
|
||||
* @mdev: mdev_device structure on of mediated device
|
||||
* that is being created
|
||||
* Returns integer: success (0) or error (< 0)
|
||||
@ -107,7 +106,7 @@ struct mdev_parent_ops {
|
||||
const struct attribute_group **mdev_attr_groups;
|
||||
struct attribute_group **supported_type_groups;
|
||||
|
||||
int (*create)(struct kobject *kobj, struct mdev_device *mdev);
|
||||
int (*create)(struct mdev_device *mdev);
|
||||
int (*remove)(struct mdev_device *mdev);
|
||||
int (*open)(struct mdev_device *mdev);
|
||||
void (*release)(struct mdev_device *mdev);
|
||||
|
@ -506,7 +506,7 @@ static int mbochs_reset(struct mdev_device *mdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mbochs_create(struct kobject *kobj, struct mdev_device *mdev)
|
||||
static int mbochs_create(struct mdev_device *mdev)
|
||||
{
|
||||
const struct mbochs_type *type =
|
||||
&mbochs_types[mdev_get_type_group_id(mdev)];
|
||||
|
@ -216,7 +216,7 @@ static int mdpy_reset(struct mdev_device *mdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mdpy_create(struct kobject *kobj, struct mdev_device *mdev)
|
||||
static int mdpy_create(struct mdev_device *mdev)
|
||||
{
|
||||
const struct mdpy_type *type =
|
||||
&mdpy_types[mdev_get_type_group_id(mdev)];
|
||||
|
@ -708,7 +708,7 @@ accessfailed:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int mtty_create(struct kobject *kobj, struct mdev_device *mdev)
|
||||
static int mtty_create(struct mdev_device *mdev)
|
||||
{
|
||||
struct mdev_state *mdev_state;
|
||||
int nr_ports = mdev_get_type_group_id(mdev) + 1;
|
||||
|
Loading…
Reference in New Issue
Block a user