Re: [PATCH 4.19 27/38] iommu/exynos: add missing put_device() call in exynos_iommu_of_xlate()

From: Marek Szyprowski
Date: Tue Oct 13 2020 - 04:54:36 EST


Hi Pavel,

On 07.10.2020 11:47, Pavel Machek wrote:
>> From: Yu Kuai <yukuai3@xxxxxxxxxx>
>>
>> [ Upstream commit 1a26044954a6d1f4d375d5e62392446af663be7a ]
>>
>> if of_find_device_by_node() succeed, exynos_iommu_of_xlate() doesn't have
>> a corresponding put_device(). Thus add put_device() to fix the exception
>> handling for this function implementation.
> Okay, this looks reasonable, but...
>
> Do we miss put_device() in normal path, too? I'd expect another
> put_device at end of exynos_iommu_of_xlate() or perhaps in release
> path somewhere...

Frankly, there is no release path, so there is no need for put_device.
Once initialized, Exynos IOMMU stays in the system forever. There is no
point to remove IOMMU nor the API for that. Keeping increased refcount
for its device just matches this behavior.

If the missing put_device() is really a problem, then we can move it
from the error path just after data = platform_get_drvdata(sysmmu)
assignment. Feel free to send a patch if you think this is a more
appropriate approach.

Best regards

--
Marek Szyprowski, PhD
Samsung R&D Institute Poland