Commit 42930553 authored by Alex Williamson's avatar Alex Williamson
Browse files

vfio-mdev: de-polute the namespace, rename parent_device & parent_ops



Add an mdev_ prefix so we're not poluting the namespace so much.

Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Zhi Wang <zhi.a.wang@intel.com>
Cc: Jike Song <jike.song@intel.com>
Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
Reviewed by: Kirti Wankhede <kwankhede@nvidia.com>
parent 49550787
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -127,22 +127,22 @@ the VFIO when devices are unbound from the driver.
Physical Device Driver Interface
--------------------------------

The physical device driver interface provides the parent_ops[3] structure to
define the APIs to manage work in the mediated core driver that is related to
the physical device.
The physical device driver interface provides the mdev_parent_ops[3] structure
to define the APIs to manage work in the mediated core driver that is related
to the physical device.

The structures in the parent_ops structure are as follows:
The structures in the mdev_parent_ops structure are as follows:

* dev_attr_groups: attributes of the parent device
* mdev_attr_groups: attributes of the mediated device
* supported_config: attributes to define supported configurations

The functions in the parent_ops structure are as follows:
The functions in the mdev_parent_ops structure are as follows:

* create: allocate basic resources in a driver for a mediated device
* remove: free resources in a driver when a mediated device is destroyed

The callbacks in the parent_ops structure are as follows:
The callbacks in the mdev_parent_ops structure are as follows:

* open: open callback of mediated device
* close: close callback of mediated device
@@ -151,14 +151,14 @@ The callbacks in the parent_ops structure are as follows:
* write: write emulation callback
* mmap: mmap emulation callback

A driver should use the parent_ops structure in the function call to register
itself with the mdev core driver:
A driver should use the mdev_parent_ops structure in the function call to
register itself with the mdev core driver:

extern int  mdev_register_device(struct device *dev,
                                 const struct parent_ops *ops);
                                 const struct mdev_parent_ops *ops);

However, the parent_ops structure is not required in the function call that a
driver should use to unregister itself with the mdev core driver:
However, the mdev_parent_ops structure is not required in the function call
that a driver should use to unregister itself with the mdev core driver:

extern void mdev_unregister_device(struct device *dev);

@@ -394,5 +394,5 @@ References

[1] See Documentation/vfio.txt for more information on VFIO.
[2] struct mdev_driver in include/linux/mdev.h
[3] struct parent_ops in include/linux/mdev.h
[3] struct mdev_parent_ops in include/linux/mdev.h
[4] struct vfio_iommu_driver_ops in include/linux/vfio.h
+1 −1
Original line number Diff line number Diff line
@@ -1089,7 +1089,7 @@ static long intel_vgpu_ioctl(struct mdev_device *mdev, unsigned int cmd,
	return 0;
}

static const struct parent_ops intel_vgpu_ops = {
static const struct mdev_parent_ops intel_vgpu_ops = {
	.supported_type_groups	= intel_vgpu_type_groups,
	.create			= intel_vgpu_create,
	.remove			= intel_vgpu_remove,
+14 −14
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ static int _find_mdev_device(struct device *dev, void *data)
	return 0;
}

static bool mdev_device_exist(struct parent_device *parent, uuid_le uuid)
static bool mdev_device_exist(struct mdev_parent *parent, uuid_le uuid)
{
	struct device *dev;

@@ -59,9 +59,9 @@ static bool mdev_device_exist(struct parent_device *parent, uuid_le uuid)
}

/* Should be called holding parent_list_lock */
static struct parent_device *__find_parent_device(struct device *dev)
static struct mdev_parent *__find_parent_device(struct device *dev)
{
	struct parent_device *parent;
	struct mdev_parent *parent;

	list_for_each_entry(parent, &parent_list, next) {
		if (parent->dev == dev)
@@ -72,7 +72,7 @@ static struct parent_device *__find_parent_device(struct device *dev)

static void mdev_release_parent(struct kref *kref)
{
	struct parent_device *parent = container_of(kref, struct parent_device,
	struct mdev_parent *parent = container_of(kref, struct mdev_parent,
						  ref);
	struct device *dev = parent->dev;

@@ -81,7 +81,7 @@ static void mdev_release_parent(struct kref *kref)
}

static
inline struct parent_device *mdev_get_parent(struct parent_device *parent)
inline struct mdev_parent *mdev_get_parent(struct mdev_parent *parent)
{
	if (parent)
		kref_get(&parent->ref);
@@ -89,7 +89,7 @@ inline struct parent_device *mdev_get_parent(struct parent_device *parent)
	return parent;
}

static inline void mdev_put_parent(struct parent_device *parent)
static inline void mdev_put_parent(struct mdev_parent *parent)
{
	if (parent)
		kref_put(&parent->ref, mdev_release_parent);
@@ -98,7 +98,7 @@ static inline void mdev_put_parent(struct parent_device *parent)
static int mdev_device_create_ops(struct kobject *kobj,
				  struct mdev_device *mdev)
{
	struct parent_device *parent = mdev->parent;
	struct mdev_parent *parent = mdev->parent;
	int ret;

	ret = parent->ops->create(kobj, mdev);
@@ -125,7 +125,7 @@ static int mdev_device_create_ops(struct kobject *kobj,
 */
static int mdev_device_remove_ops(struct mdev_device *mdev, bool force_remove)
{
	struct parent_device *parent = mdev->parent;
	struct mdev_parent *parent = mdev->parent;
	int ret;

	/*
@@ -156,10 +156,10 @@ static int mdev_device_remove_cb(struct device *dev, void *data)
 * Add device to list of registered parent devices.
 * Returns a negative value on error, otherwise 0.
 */
int mdev_register_device(struct device *dev, const struct parent_ops *ops)
int mdev_register_device(struct device *dev, const struct mdev_parent_ops *ops)
{
	int ret;
	struct parent_device *parent;
	struct mdev_parent *parent;

	/* check for mandatory ops */
	if (!ops || !ops->create || !ops->remove || !ops->supported_type_groups)
@@ -232,7 +232,7 @@ EXPORT_SYMBOL(mdev_register_device);

void mdev_unregister_device(struct device *dev)
{
	struct parent_device *parent;
	struct mdev_parent *parent;
	bool force_remove = true;

	mutex_lock(&parent_list_lock);
@@ -269,7 +269,7 @@ int mdev_device_create(struct kobject *kobj, struct device *dev, uuid_le uuid)
{
	int ret;
	struct mdev_device *mdev;
	struct parent_device *parent;
	struct mdev_parent *parent;
	struct mdev_type *type = to_mdev_type(kobj);

	parent = mdev_get_parent(type->parent);
@@ -338,7 +338,7 @@ create_err:
int mdev_device_remove(struct device *dev, bool force_remove)
{
	struct mdev_device *mdev, *tmp;
	struct parent_device *parent;
	struct mdev_parent *parent;
	struct mdev_type *type;
	int ret;
	bool found = false;
+3 −3
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ void mdev_bus_unregister(void);
struct mdev_type {
	struct kobject kobj;
	struct kobject *devices_kobj;
	struct parent_device *parent;
	struct mdev_parent *parent;
	struct list_head next;
	struct attribute_group *group;
};
@@ -29,8 +29,8 @@ struct mdev_type {
#define to_mdev_type(_kobj)		\
	container_of(_kobj, struct mdev_type, kobj)

int  parent_create_sysfs_files(struct parent_device *parent);
void parent_remove_sysfs_files(struct parent_device *parent);
int  parent_create_sysfs_files(struct mdev_parent *parent);
void parent_remove_sysfs_files(struct mdev_parent *parent);

int  mdev_create_sysfs_files(struct device *dev, struct mdev_type *type);
void mdev_remove_sysfs_files(struct device *dev, struct mdev_type *type);
+4 −4
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ static struct kobj_type mdev_type_ktype = {
	.release = mdev_type_release,
};

struct mdev_type *add_mdev_supported_type(struct parent_device *parent,
struct mdev_type *add_mdev_supported_type(struct mdev_parent *parent,
					  struct attribute_group *group)
{
	struct mdev_type *type;
@@ -158,7 +158,7 @@ static void remove_mdev_supported_type(struct mdev_type *type)
	kobject_put(&type->kobj);
}

static int add_mdev_supported_type_groups(struct parent_device *parent)
static int add_mdev_supported_type_groups(struct mdev_parent *parent)
{
	int i;

@@ -183,7 +183,7 @@ static int add_mdev_supported_type_groups(struct parent_device *parent)
}

/* mdev sysfs functions */
void parent_remove_sysfs_files(struct parent_device *parent)
void parent_remove_sysfs_files(struct mdev_parent *parent)
{
	struct mdev_type *type, *tmp;

@@ -196,7 +196,7 @@ void parent_remove_sysfs_files(struct parent_device *parent)
	kset_unregister(parent->mdev_types_kset);
}

int parent_create_sysfs_files(struct parent_device *parent)
int parent_create_sysfs_files(struct mdev_parent *parent)
{
	int ret;

Loading