[PATCH] drm/prime: Allow internal imports without import_sg_table

Daniel Vetter daniel at ffwll.ch
Fri May 8 01:44:34 PDT 2015


On Fri, May 08, 2015 at 05:13:45PM +0900, Tomasz Figa wrote:
> Currently drm_gem_prime_import() checks if gem_prime_import_sg_table()
> is implemented in DRM driver ops. However it is not necessary for
> internal imports (i.e. dma_buf->ops == &drm_gem_prime_dmabuf_ops
> and obj->dev == dev), which only increment reference count on respective
> GEM objects.
> 
> This patch makes the helper check this condition only in case of
> external imports fo rwhich importing sg table is indeed needed.
> 
> Signed-off-by: Tomasz Figa <tfiga at chromium.org>

Makes sense, applied to drm-misc.

Thanks, Daniel
> ---
>  drivers/gpu/drm/drm_prime.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c
> index 7fec191..162dd29 100644
> --- a/drivers/gpu/drm/drm_prime.c
> +++ b/drivers/gpu/drm/drm_prime.c
> @@ -502,9 +502,6 @@ struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
>  	struct drm_gem_object *obj;
>  	int ret;
>  
> -	if (!dev->driver->gem_prime_import_sg_table)
> -		return ERR_PTR(-EINVAL);
> -
>  	if (dma_buf->ops == &drm_gem_prime_dmabuf_ops) {
>  		obj = dma_buf->priv;
>  		if (obj->dev == dev) {
> @@ -517,6 +514,9 @@ struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
>  		}
>  	}
>  
> +	if (!dev->driver->gem_prime_import_sg_table)
> +		return ERR_PTR(-EINVAL);
> +
>  	attach = dma_buf_attach(dma_buf, dev->dev);
>  	if (IS_ERR(attach))
>  		return ERR_CAST(attach);
> -- 
> 2.2.0.rc0.207.ga3a616c
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list