Commit a9f8111d authored by Jason Gunthorpe's avatar Jason Gunthorpe Committed by Alex Williamson
Browse files

vfio/mdev: Expose mdev_get/put_parent to mdev_private.h



The next patch will use these in mdev_sysfs.c

While here remove the now dead code checks for NULL, a mdev_type can never
have a NULL parent.

Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarKevin Tian <kevin.tian@intel.com>
Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Message-Id: <6-v2-d36939638fc6+d54-vfio2_jgg@nvidia.com>
Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
parent 417fd5bf
Loading
Loading
Loading
Loading
+3 −20
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ static struct mdev_parent *__find_parent_device(struct device *dev)
	return NULL;
}

static void mdev_release_parent(struct kref *kref)
void mdev_release_parent(struct kref *kref)
{
	struct mdev_parent *parent = container_of(kref, struct mdev_parent,
						  ref);
@@ -55,20 +55,6 @@ static void mdev_release_parent(struct kref *kref)
	put_device(dev);
}

static struct mdev_parent *mdev_get_parent(struct mdev_parent *parent)
{
	if (parent)
		kref_get(&parent->ref);

	return parent;
}

static void mdev_put_parent(struct mdev_parent *parent)
{
	if (parent)
		kref_put(&parent->ref, mdev_release_parent);
}

/* Caller must hold parent unreg_sem read or write lock */
static void mdev_device_remove_common(struct mdev_device *mdev)
{
@@ -243,12 +229,9 @@ int mdev_device_create(struct mdev_type *type, const guid_t *uuid)
{
	int ret;
	struct mdev_device *mdev, *tmp;
	struct mdev_parent *parent;

	parent = mdev_get_parent(type->parent);
	if (!parent)
		return -EINVAL;
	struct mdev_parent *parent = type->parent;

	mdev_get_parent(parent);
	mutex_lock(&mdev_list_lock);

	/* Check for duplicate */
+12 −0
Original line number Diff line number Diff line
@@ -46,4 +46,16 @@ void mdev_remove_sysfs_files(struct mdev_device *mdev);
int mdev_device_create(struct mdev_type *kobj, const guid_t *uuid);
int  mdev_device_remove(struct mdev_device *dev);

void mdev_release_parent(struct kref *kref);

static inline void mdev_get_parent(struct mdev_parent *parent)
{
	kref_get(&parent->ref);
}

static inline void mdev_put_parent(struct mdev_parent *parent)
{
	kref_put(&parent->ref, mdev_release_parent);
}

#endif /* MDEV_PRIVATE_H */