All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Ira Weiny <ira.weiny@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>, <linux-mm@kvack.org>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	Claudio Imbrenda <imbrenda@linux.ibm.com>,
	Jan Kara <jack@suse.cz>, John Hubbard <jhubbard@nvidia.com>
Subject: Re: [PATCH rc] mm/gup: use unpin_user_pages() in check_and_migrate_cma_pages()
Date: Fri, 30 Oct 2020 20:58:25 -0300	[thread overview]
Message-ID: <20201030235825.GR2620339@nvidia.com> (raw)
In-Reply-To: <20201030205026.GC971338@iweiny-DESK2.sc.intel.com>

On Fri, Oct 30, 2020 at 01:50:26PM -0700, Ira Weiny wrote:
> On Fri, Oct 30, 2020 at 01:32:28PM -0300, Jason Gunthorpe wrote:
> > When FOLL_PIN is passed to __get_user_pages() the page list must be put
> > back using unpin_user_pages() otherwise the page pin reference persists in
> > a corrupted state.
> > 
> > Cc: <stable@kernel.org>
> > Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
> > Fixes: 3faa52c03f44 ("mm/gup: track FOLL_PIN pages")
> > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
> >  mm/gup.c | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > I don't have any way to test CMA stuff, this was noticed by inspection.
> > 
> > diff --git a/mm/gup.c b/mm/gup.c
> > index 1bb349e5ed212a..2e26757f3c9276 100644
> > +++ b/mm/gup.c
> > @@ -1630,8 +1630,11 @@ static long check_and_migrate_cma_pages(struct mm_struct *mm,
> >  		/*
> >  		 * drop the above get_user_pages reference.
> >  		 */
> 
> I wonder if that comment should be deleted/modified?  It does not seem to apply
> any longer.

It is still basically right, the 'above' is just a bit vauge.. Don't
want to touch extra stuff for a stable patch.

> Also, looks like there is another place this occurs right before the call to
> check_and_migrate_cma_pages() in __gup_longterm_locked()
> 
> 1730                 if (check_dax_vmas(vmas_tmp, rc)) {
> 1731                         for (i = 0; i < rc; i++)
> 1732                                 put_page(pages[i]);
> 1733                         rc = -EOPNOTSUPP;
> 1734                         goto out;
> 1735                 }

Oh, yes! I will update this in v2 - good eyes
 
> And since we now have 2 places should this be a helper?

I have another patch that deletes check_dax_vmas() and this code

https://github.com/jgunthorpe/linux/commit/48ee608271e124e4a89353b9694502372c1b2df0

Does it look OK to you? I was going to check it again and post next
week

Thus for this stable patch let's just leave it simple?

Thanks,
Jason


  parent reply	other threads:[~2020-10-30 23:58 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-30 16:32 [PATCH rc] mm/gup: use unpin_user_pages() in check_and_migrate_cma_pages() Jason Gunthorpe
2020-10-30 20:50 ` Ira Weiny
2020-10-30 21:39   ` John Hubbard
2020-10-30 23:58   ` Jason Gunthorpe [this message]
2020-11-02 18:54     ` Ira Weiny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201030235825.GR2620339@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=ira.weiny@intel.com \
    --cc=jack@suse.cz \
    --cc=jhubbard@nvidia.com \
    --cc=linux-mm@kvack.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.