On Wed, 23 Mar 2016 22:25:11 +0000
Wei Yang <[email protected]> wrote:

> The original code forgets to remove the sysfs_link to a device in
> iommu_group/devices directory, when the creation fails or conflicts on the
> name.
> 
> This patch tries to remove the sysfs_link on the failure.
> 
> Signed-off-by: Wei Yang <[email protected]>
> ---
>  drivers/iommu/iommu.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
> index 2696a38..8f480ba 100644
> --- a/drivers/iommu/iommu.c
> +++ b/drivers/iommu/iommu.c
> @@ -403,6 +403,7 @@ rename:
>       ret = sysfs_create_link_nowarn(group->devices_kobj,
>                                      &dev->kobj, device->name);
>       if (ret) {
> +             sysfs_remove_link(group->devices_kobj, device->name);
>               kfree(device->name);
>               if (ret == -EEXIST && i >= 0) {
>                       /*

If we failed to create a link, potentially due to a conflicting link
already present, then aren't we arbitrarily removing that conflicting
link with this change?  If sysfs_create_link_nowarn() fails then we
haven't created a link of our own to remove.  This looks wrong.  Thanks,

Alex

Reply via email to