[Intel-gfx] [PATCH 1/2] drm/i915: don't assume struct page in i915_sg_trim

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Thu Sep 20 14:49:46 UTC 2018


On 20/09/2018 15:27, Matthew Auld wrote:
> Which means we can now also put it to work in fake_get_huge_pages.
> 
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
>   drivers/gpu/drm/i915/i915_gem.c             | 4 +++-
>   drivers/gpu/drm/i915/selftests/huge_pages.c | 2 ++
>   2 files changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index a94d5a308c4d..b79362bbd97b 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -2506,7 +2506,9 @@ static bool i915_sg_trim(struct sg_table *orig_st)
>   	new_sg = new_st.sgl;
>   	for_each_sg(orig_st->sgl, sg, orig_st->nents, i) {
>   		sg_set_page(new_sg, sg_page(sg), sg->length, 0);
> -		/* called before being DMA mapped, no need to copy sg->dma_* */
> +		sg_dma_address(new_sg) = sg_dma_address(sg);
> +		sg_dma_len(new_sg) = sg_dma_len(sg);
> +
>   		new_sg = sg_next(new_sg);
>   	}
>   	GEM_BUG_ON(new_sg); /* Should walk exactly nents and hit the end */
> diff --git a/drivers/gpu/drm/i915/selftests/huge_pages.c b/drivers/gpu/drm/i915/selftests/huge_pages.c
> index e272127783fe..8d03f64eabd7 100644
> --- a/drivers/gpu/drm/i915/selftests/huge_pages.c
> +++ b/drivers/gpu/drm/i915/selftests/huge_pages.c
> @@ -235,6 +235,8 @@ static int fake_get_huge_pages(struct drm_i915_gem_object *obj)
>   		sg = sg_next(sg);
>   	} while (1);
>   
> +	i915_sg_trim(st);
> +
>   	obj->mm.madv = I915_MADV_DONTNEED;
>   
>   	__i915_gem_object_set_pages(obj, st, sg_page_sizes);
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Regards,

Tvrtko


More information about the Intel-gfx mailing list