Re: [PATCH 06/34] drm/i915: convert put_page() to put_user_page*()

From: John Hubbard
Date: Sat Aug 03 2019 - 16:03:10 EST


On 8/2/19 11:48 AM, John Hubbard wrote:
> On 8/2/19 2:19 AM, Joonas Lahtinen wrote:
>> Quoting john.hubbard@xxxxxxxxx (2019-08-02 05:19:37)
>>> From: John Hubbard <jhubbard@xxxxxxxxxx>
...
> In order to deal with the merge problem, I'll drop this patch from my series,
> and I'd recommend that the drm-intel-next take the following approach:

Actually, I just pulled the latest linux.git, and there are a few changes:

>
> 1) For now, s/put_page/put_user_page/ in i915_gem_userptr_put_pages(),
> and fix up the set_page_dirty() --> set_page_dirty_lock() issue, like this
> (based against linux.git):
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
> index 528b61678334..94721cc0093b 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
> @@ -664,10 +664,10 @@ i915_gem_userptr_put_pages(struct drm_i915_gem_object *obj,
>
> ÂÂÂÂÂÂÂ for_each_sgt_page(page, sgt_iter, pages) {
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ if (obj->mm.dirty)
> -ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ set_page_dirty(page);
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ set_page_dirty_lock(page);

I see you've already applied this fix to your tree, in linux.git already.

>
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ mark_page_accessed(page);
> -ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ put_page(page);
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ put_user_page(page);

But this conversion still needs doing. So I'll repost a patch that only does
this (plus the other call sites).

That can go in via either your tree, or Andrew's -mm tree, without generating
any conflicts.

thanks,
--
John Hubbard
NVIDIA