[PATCH] drm/vgem: Pin our pages for dmabuf exports

Chris Wilson chris at chris-wilson.co.uk
Thu Jun 22 13:34:54 UTC 2017


Quoting Chris Wilson (2017-06-22 14:30:08)
>  static void *vgem_prime_vmap(struct drm_gem_object *obj)
>  {
> +       struct drm_vgem_gem_object *bo = to_vgem_bo(obj);
>         long n_pages = obj->size >> PAGE_SHIFT;
>         struct page **pages;
>         void *addr;
>  
> -       pages = drm_gem_get_pages(obj);
> +       pages = vgem_pin_pages(bo);
>         if (IS_ERR(pages))
>                 return NULL;
>  
>         addr = vmap(pages, n_pages, 0, pgprot_writecombine(PAGE_KERNEL));
> -       drm_gem_put_pages(obj, pages, false, false);
> +
> +       vgem_unpin_pages(bo);

Ho hum, memory says vmap() itself doesn't pin the pages, so we need to
drop the pin on prime_vunamp.
-Chris


More information about the dri-devel mailing list