[PATCH] drm/tegra: Remove of_dma_configure() from host1x_device_add()
Jon Hunter
jonathanh at nvidia.com
Fri Feb 2 10:40:36 UTC 2024
On 01/02/2024 20:02, Jason Gunthorpe wrote:
> On Thu, Feb 01, 2024 at 07:35:24PM +0000, Jon Hunter wrote:
>>> You mean this sequence?
>>>
>>> err = device_add(&ctx->dev);
>>> if (err) {
>>> dev_err(host1x->dev, "could not add context device %d: %d\n", i, err);
>>> put_device(&ctx->dev);
>>> goto unreg_devices;
>>> }
>>>
>>> err = of_dma_configure_id(&ctx->dev, node, true, &i);
>>> if (err) {
>>> dev_err(host1x->dev, "IOMMU configuration failed for context device %d: %d\n",
>>> i, err);
>>> device_unregister(&ctx->dev);
>>> goto unreg_devices;
>>> }
>>
>> Yes this sequence.
>>
>>> I didn't seem an obvious place that this would get fixed up later?
>>>
>>> device_add() was done before so the iommu_device_link() shouldn't be
>>> failing? Are you hitting a duplicate link (ie remove the nowarn from
>>> iommu_device_link())
>>
>>
>> Removing the '_nowarn' does appear to fix it, although it is not clear to me
>> why?
>
> What did you do to remove? Just the letters or the whole line?
Yes sorry, to be clear I made the following change ...
diff --git a/drivers/iommu/iommu-sysfs.c b/drivers/iommu/iommu-sysfs.c
index cbe378c34ba3..7bc9c6d2baab 100644
--- a/drivers/iommu/iommu-sysfs.c
+++ b/drivers/iommu/iommu-sysfs.c
@@ -112,7 +112,7 @@ int iommu_device_link(struct iommu_device *iommu, struct device *link)
if (ret)
return ret;
- ret = sysfs_create_link_nowarn(&link->kobj, &iommu->dev->kobj, "iommu");
+ ret = sysfs_create_link(&link->kobj, &iommu->dev->kobj, "iommu");
if (ret)
> I was thinking the letters because it triggers a large debug message.
>
> But, what is the actual log output you see, is it -EEXIST?
I see ...
ERR KERN host1x drm: iommu configuration for device failed with -ENOENT
> If it is coming and going is it a race of some kind?
It is consistent without the above. However, I did not think that the
above change would change the returning on -ENOENT? I will add more
debug.
Jon
--
nvpublic
More information about the dri-devel
mailing list