diff options
author | Alex Williamson <alex.williamson@redhat.com> | 2016-12-30 08:13:41 -0700 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2016-12-30 08:13:41 -0700 |
commit | 9372e6feaafb65d88f667ffb5b7b425f8568344f (patch) | |
tree | 2fa165cb84cc92d297d283f4fe171b045dcbeb61 /drivers/vfio | |
parent | 42930553a7c11f06351bc08b889808d0f6020f08 (diff) | |
download | linux-stable-9372e6feaafb65d88f667ffb5b7b425f8568344f.tar.gz linux-stable-9372e6feaafb65d88f667ffb5b7b425f8568344f.tar.bz2 linux-stable-9372e6feaafb65d88f667ffb5b7b425f8568344f.zip |
vfio-mdev: Make mdev_parent private
Rather than hoping for good behavior by marking some elements
internal, enforce it by making the entire structure private and
creating an accessor function for the one useful external field.
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: Alex Williamson <alex.williamson@redhat.com>
Reviewed by: Kirti Wankhede <kwankhede@nvidia.com>
Diffstat (limited to 'drivers/vfio')
-rw-r--r-- | drivers/vfio/mdev/mdev_core.c | 6 | ||||
-rw-r--r-- | drivers/vfio/mdev/mdev_private.h | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/drivers/vfio/mdev/mdev_core.c b/drivers/vfio/mdev/mdev_core.c index bf3b3b0b3d2b..30d05304241e 100644 --- a/drivers/vfio/mdev/mdev_core.c +++ b/drivers/vfio/mdev/mdev_core.c @@ -30,6 +30,12 @@ static struct class_compat *mdev_bus_compat_class; static LIST_HEAD(mdev_list); static DEFINE_MUTEX(mdev_list_lock); +struct device *mdev_parent_dev(struct mdev_device *mdev) +{ + return mdev->parent->dev; +} +EXPORT_SYMBOL(mdev_parent_dev); + static int _find_mdev_device(struct device *dev, void *data) { struct mdev_device *mdev; diff --git a/drivers/vfio/mdev/mdev_private.h b/drivers/vfio/mdev/mdev_private.h index 0b72c2d9ee40..b05dd22fc9a6 100644 --- a/drivers/vfio/mdev/mdev_private.h +++ b/drivers/vfio/mdev/mdev_private.h @@ -16,6 +16,16 @@ int mdev_bus_register(void); void mdev_bus_unregister(void); +struct mdev_parent { + struct device *dev; + const struct mdev_parent_ops *ops; + struct kref ref; + struct mutex lock; + struct list_head next; + struct kset *mdev_types_kset; + struct list_head type_list; +}; + struct mdev_type { struct kobject kobj; struct kobject *devices_kobj; |