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