vfio/mdev: consolidate all the available_instance sysfs into the core code
Every driver just print a number, simply add a method to the mdev_driver to return it and provide a standard sysfs show function. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Reviewed-by: Kirti Wankhede <kwankhede@nvidia.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Link: https://lore.kernel.org/r/20220923092652.100656-13-hch@lst.de Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
committed by
Alex Williamson
parent
0bc79069cc
commit
f2fbc72e6d
@@ -1361,21 +1361,16 @@ static ssize_t description_show(struct mdev_type *mtype,
|
||||
}
|
||||
static MDEV_TYPE_ATTR_RO(description);
|
||||
|
||||
static ssize_t available_instances_show(struct mdev_type *mtype,
|
||||
struct mdev_type_attribute *attr,
|
||||
char *buf)
|
||||
static unsigned int mbochs_get_available(struct mdev_type *mtype)
|
||||
{
|
||||
struct mbochs_type *type =
|
||||
container_of(mtype, struct mbochs_type, type);
|
||||
int count = atomic_read(&mbochs_avail_mbytes) / type->mbytes;
|
||||
|
||||
return sprintf(buf, "%d\n", count);
|
||||
return atomic_read(&mbochs_avail_mbytes) / type->mbytes;
|
||||
}
|
||||
static MDEV_TYPE_ATTR_RO(available_instances);
|
||||
|
||||
static const struct attribute *mdev_types_attrs[] = {
|
||||
&mdev_type_attr_description.attr,
|
||||
&mdev_type_attr_available_instances.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
@@ -1399,6 +1394,7 @@ static struct mdev_driver mbochs_driver = {
|
||||
},
|
||||
.probe = mbochs_probe,
|
||||
.remove = mbochs_remove,
|
||||
.get_available = mbochs_get_available,
|
||||
.types_attrs = mdev_types_attrs,
|
||||
};
|
||||
|
||||
|
||||
@@ -671,17 +671,13 @@ static ssize_t description_show(struct mdev_type *mtype,
|
||||
}
|
||||
static MDEV_TYPE_ATTR_RO(description);
|
||||
|
||||
static ssize_t available_instances_show(struct mdev_type *mtype,
|
||||
struct mdev_type_attribute *attr,
|
||||
char *buf)
|
||||
static unsigned int mdpy_get_available(struct mdev_type *mtype)
|
||||
{
|
||||
return sprintf(buf, "%d\n", max_devices - mdpy_count);
|
||||
return max_devices - mdpy_count;
|
||||
}
|
||||
static MDEV_TYPE_ATTR_RO(available_instances);
|
||||
|
||||
static const struct attribute *mdev_types_attrs[] = {
|
||||
&mdev_type_attr_description.attr,
|
||||
&mdev_type_attr_available_instances.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
@@ -704,6 +700,7 @@ static struct mdev_driver mdpy_driver = {
|
||||
},
|
||||
.probe = mdpy_probe,
|
||||
.remove = mdpy_remove,
|
||||
.get_available = mdpy_get_available,
|
||||
.types_attrs = mdev_types_attrs,
|
||||
};
|
||||
|
||||
|
||||
@@ -1256,23 +1256,13 @@ static const struct attribute_group *mdev_dev_groups[] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
static ssize_t available_instances_show(struct mdev_type *mtype,
|
||||
struct mdev_type_attribute *attr,
|
||||
char *buf)
|
||||
static unsigned int mtty_get_available(struct mdev_type *mtype)
|
||||
{
|
||||
struct mtty_type *type = container_of(mtype, struct mtty_type, type);
|
||||
|
||||
return sprintf(buf, "%d\n", atomic_read(&mdev_avail_ports) /
|
||||
type->nr_ports);
|
||||
return atomic_read(&mdev_avail_ports) / type->nr_ports;
|
||||
}
|
||||
|
||||
static MDEV_TYPE_ATTR_RO(available_instances);
|
||||
|
||||
static const struct attribute *mdev_types_attrs[] = {
|
||||
&mdev_type_attr_available_instances.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
static const struct vfio_device_ops mtty_dev_ops = {
|
||||
.name = "vfio-mtty",
|
||||
.init = mtty_init_dev,
|
||||
@@ -1292,7 +1282,7 @@ static struct mdev_driver mtty_driver = {
|
||||
},
|
||||
.probe = mtty_probe,
|
||||
.remove = mtty_remove,
|
||||
.types_attrs = mdev_types_attrs,
|
||||
.get_available = mtty_get_available,
|
||||
};
|
||||
|
||||
static void mtty_device_release(struct device *dev)
|
||||
|
||||
Reference in New Issue
Block a user