The mdev_type already holds a reference to the parent through mdev_types_kset, so drop the extra reference. Suggested-by: Kirti Wankhede <kwankhede@xxxxxxxxxx> Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- drivers/vfio/mdev/mdev_sysfs.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/vfio/mdev/mdev_sysfs.c b/drivers/vfio/mdev/mdev_sysfs.c index c5cd035d591d0..e2087cac1c859 100644 --- a/drivers/vfio/mdev/mdev_sysfs.c +++ b/drivers/vfio/mdev/mdev_sysfs.c @@ -153,8 +153,6 @@ static void mdev_type_release(struct kobject *kobj) struct mdev_type *type = to_mdev_type(kobj); pr_debug("Releasing group %s\n", kobj->name); - /* Pairs with the get in add_mdev_supported_type() */ - put_device(type->parent->dev); kfree(type); } @@ -170,16 +168,12 @@ static int mdev_type_add(struct mdev_parent *parent, struct mdev_type *type) type->kobj.kset = parent->mdev_types_kset; type->parent = parent; - /* Pairs with the put in mdev_type_release() */ - get_device(parent->dev); ret = kobject_init_and_add(&type->kobj, &mdev_type_ktype, NULL, "%s-%s", dev_driver_string(parent->dev), type->sysfs_name); - if (ret) { - kobject_put(&type->kobj); + if (ret) return ret; - } type->devices_kobj = kobject_create_and_add("devices", &type->kobj); if (!type->devices_kobj) { @@ -191,7 +185,6 @@ static int mdev_type_add(struct mdev_parent *parent, struct mdev_type *type) attr_devices_failed: kobject_del(&type->kobj); - kobject_put(&type->kobj); return ret; } -- 2.30.2