Re: [RFC PATCH v2 3/6] drm/shmem: Implement sparse allocation of pages for shmem objects

From: Dmitry Osipenko
Date: Wed Mar 26 2025 - 15:55:22 EST


On 3/26/25 05:14, Adrián Larumbe wrote:
> +static struct sg_table *
> +drm_gem_shmem_sparse_get_sgt_range(struct drm_gem_shmem_object *shmem,
> + unsigned int n_pages, pgoff_t page_offset,
> + gfp_t gfp)
> +{
> + struct drm_gem_object *obj = &shmem->base;
> + struct sg_table *sgt;
> + int ret;
> +
> + if (drm_WARN_ON(obj->dev, !shmem->sparse))
> + return ERR_PTR(-EINVAL);
> +
> + /* If the page range wasn't allocated, then bail out immediately */
> + if (xa_load(&shmem->xapages, page_offset) == NULL)
> + return ERR_PTR(-EINVAL);
> +
> + sgt = kzalloc(sizeof(*sgt), GFP_NOWAIT);

You likely meant to use the gfp arg here.

--
Best regards,
Dmitry