mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-30 22:03:17 +01:00
vfio/mdev: Re-order sysfs attribute creation
There exists a gap at the end of mdev_device_create() where the device is visible to userspace, but we're not yet ready to handle removal, as triggered through the 'remove' attribute. We handle this properly in mdev_device_remove() with an -EAGAIN return, but we can marginally reduce this gap by adding this attribute as a final step of our sysfs setup. Reviewed-by: Kirti Wankhede <[email protected]> Reviewed-by: Cornelia Huck <[email protected]> Acked-by: Halil Pasic <[email protected]> Signed-off-by: Alex Williamson <[email protected]>
This commit is contained in:
1 parent
002fe996f6
commit
6a62c1dfb5
1 file changed
+7
-7
@@ -257,24 +257,24 @@ int mdev_create_sysfs_files(struct device *dev, struct mdev_type *type)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = sysfs_create_files(&dev->kobj, mdev_device_attrs);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = sysfs_create_link(type->devices_kobj, &dev->kobj, dev_name(dev));
|
||||
if (ret)
|
||||
goto device_link_failed;
|
||||
return ret;
|
||||
|
||||
ret = sysfs_create_link(&dev->kobj, &type->kobj, "mdev_type");
|
||||
if (ret)
|
||||
goto type_link_failed;
|
||||
|
||||
ret = sysfs_create_files(&dev->kobj, mdev_device_attrs);
|
||||
if (ret)
|
||||
goto create_files_failed;
|
||||
|
||||
return ret;
|
||||
|
||||
create_files_failed:
|
||||
sysfs_remove_link(&dev->kobj, "mdev_type");
|
||||
type_link_failed:
|
||||
sysfs_remove_link(type->devices_kobj, dev_name(dev));
|
||||
device_link_failed:
|
||||
sysfs_remove_files(&dev->kobj, mdev_device_attrs);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user