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?

I was thinking the letters because it triggers a large debug message.

But, what is the actual log output you see, is it -EEXIST?

If it is coming and going is it a race of some kind?

Jason

Reply via email to