[PATCH] drm/vram-helper: turn on PRIME import/export

Simon Ser contact at emersion.fr
Thu Mar 2 14:36:18 UTC 2023


On Thursday, March 2nd, 2023 at 14:45, Christian König <christian.koenig at amd.com> wrote:

> Am 02.03.23 um 14:37 schrieb Simon Ser:
> 
> > On Thursday, March 2nd, 2023 at 14:21, Christian König christian.koenig at amd.com wrote:
> > 
> > > Am 02.03.23 um 11:14 schrieb Simon Ser:
> > > 
> > > > On Thursday, March 2nd, 2023 at 08:11, Christian König christian.koenig at amd.com wrote:
> > > > 
> > > > > Am 01.03.23 um 23:29 schrieb Simon Ser:
> > > > > 
> > > > > > We don't populate gem_prime_import_sg_table so only DMA-BUFs
> > > > > > exported from our own device can be imported. Still, this is useful
> > > > > > to user-space.
> > > > > > But what happens if one of your BOs is imported into another device?
> > > > > > Is there a way to make this fail, always?
> > > > > > Well you could return an error from the attach callback if I'm not
> > > > > > completely mistaken.
> > > > > > Hmm, but with GEM helpers this is handled by drm_gem_map_attach(). That
> > > > > > function calls drm_gem_object_funcs.pin but doesn't pass along the
> > > > > > dma_buf_attachment so there no way to reject the attach based on the
> > > > > > other device there…
> > 
> > Would it be unreasonable to add a drm_driver.gem_prime_attach hook? Or
> > is there a better way to implement this?
> 
> That would be the mid layering we usually try hard to avoid.

Indeed!

> Your obj doesn't implement the obj->funcs->get_sg_table() callback
> doesn't it? In this case drm_gem_map_dma_buf() would fail just a little
> bit later anyway.
> 
> What you could do is to add a check for the get_sg_table callback a bit
> earlier in drm_gem_map_attach() and if that's not implemented reject the
> attachment.

That's a good idea, thanks for the suggestion! Done in v2.


More information about the dri-devel mailing list