Re: [Patch V2 2/2] iommu: remove sysfs_link to device in iommu_group/devices when failed

From: Wei Yang
Date: Thu Mar 24 2016 - 10:51:45 EST


On Wed, Mar 23, 2016 at 05:04:15PM -0600, Alex Williamson wrote:
>On Wed, 23 Mar 2016 22:25:11 +0000
>Wei Yang <richard.weiyang@xxxxxxxxx> 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 <richard.weiyang@xxxxxxxxx>
>> ---
>> 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,
>

Hmm... you are right, that's my bad.

Do you have comments on the first patch?

>Alex

--
Wei Yang
Help you, Help me