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

Attachment: signature.asc
Description: PGP signature

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to