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

Reply via email to