Re: linux-next: build failure after merge of the hmm tree

From: Jason Gunthorpe
Date: Tue Oct 06 2020 - 12:41:29 EST


On Tue, Oct 06, 2020 at 08:35:08PM +1100, Stephen Rothwell wrote:
> Hi all,
>
> After merging the hmm tree, today's linux-next build (arm
> multi_v7_defconfig) failed like this:
>
>
> Caused by commit
>
> 07da1223ec93 ("lib/scatterlist: Add support in dynamic allocation of SG table from pages")
>
> interacting with commit
>
> 707d561f77b5 ("drm: allow limiting the scatter list size.")
>
> from the drm tree.
>
> I have added the following merge fix patch
>
> From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> Date: Tue, 6 Oct 2020 20:22:51 +1100
> Subject: [PATCH] lib/scatterlist: merge fix for "drm: allow limiting the
> scatter list size."
>
> Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> drivers/gpu/drm/drm_prime.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c
> index 11fe9ff76fd5..83ac901b65a2 100644
> +++ b/drivers/gpu/drm/drm_prime.c
> @@ -807,6 +807,7 @@ struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
> struct page **pages, unsigned int nr_pages)
> {
> struct sg_table *sg = NULL;
> + struct scatterlist *sl;
> size_t max_segment = 0;
> int ret;
>
> @@ -820,11 +821,13 @@ struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
> max_segment = dma_max_mapping_size(dev->dev);
> if (max_segment == 0 || max_segment > SCATTERLIST_MAX_SEGMENT)
> max_segment = SCATTERLIST_MAX_SEGMENT;
> - ret = __sg_alloc_table_from_pages(sg, pages, nr_pages, 0,
> + sl = __sg_alloc_table_from_pages(sg, pages, nr_pages, 0,
> nr_pages << PAGE_SHIFT,
> - max_segment, GFP_KERNEL);
> - if (ret)
> + max_segment, NULL, 0, GFP_KERNEL);
> + if (IS_ERR(sl)) {
> + ret = PTR_ERR(sl);
> goto out;
> + }
>
> return sg;
> out:

This looks OK to me, thanks

Jason