[PATCH v5] drm: Use USB controller's DMA mask when importing dmabufs
Pavel Machek
pavel at ucw.cz
Fri Feb 26 20:33:12 UTC 2021
Hi!
> > + struct device *dmadev;
> > + struct drm_gem_object *obj;
> > +
> > + if (!dev_is_usb(dev->dev))
> > + return ERR_PTR(-ENODEV);
> > +
> > + dmadev = usb_intf_get_dma_device(to_usb_interface(dev->dev));
> > + if (drm_WARN_ONCE(dev, !dmadev, "buffer sharing not supported"))
> > + return ERR_PTR(-ENODEV);
> > +
> > + obj = drm_gem_prime_import_dev(dev, dma_buf, dmadev);
> > +
> > + put_device(dmadev);
>
> Just realized there's another can of worms here because dma_buf_attach
> does not refcount the struct device. But the dma_buf can easily outlive
> the underlying device, at least right now.
>
> We should probably require that devices get rid of all their mappings in
> their hotunplug code.
>
> Ofc now that we pick some random other device struct this gets kinda
> worse.
>
> Anyway, also just another pre-existing condition that we should worry
> about here. It's all still a very bad hack.
This is actually regression fix if I understand this correctly. Bug
means udl is unusable, so that's kind of bad.
Should we revert the original commit causing this while this get
sorted out?
Best regards,
Pavel
--
http://www.livejournal.com/~pavelmachek
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20210226/06635698/attachment.sig>
More information about the dri-devel
mailing list