All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: John Hubbard <jhubbard@nvidia.com>
Cc: Souptick Joarder <jrdr.linux@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	alex.bou9@gmail.com, gustavoars@kernel.org,
	Ira Weiny <ira.weiny@intel.com>,
	linux-kernel@vger.kernel.org, madhuparnabhowmik10@gmail.com,
	mporter@kernel.crashing.org, Matthew Wilcox <willy@infradead.org>
Subject: Re: [PATCH] mm/gup: protect unpin_user_pages() against npages==-ERRNO
Date: Mon, 21 Sep 2020 12:34:05 +0300	[thread overview]
Message-ID: <20200921093405.GV18329@kadam> (raw)
In-Reply-To: <7812dfc5-698d-e765-ad62-abf23d19d3cf@nvidia.com>

On Sat, Sep 19, 2020 at 09:13:17PM -0700, John Hubbard wrote:
> On 9/19/20 8:03 PM, Souptick Joarder wrote:
> > On Thu, Sep 17, 2020 at 1:11 PM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> > > On Wed, Sep 16, 2020 at 11:57:06PM -0700, John Hubbard wrote:
> > > > As suggested by Dan Carpenter, fortify unpin_user_pages() just a bit,
> > > > against a typical caller mistake: check if the npages arg is really a
> > > > -ERRNO value, which would blow up the unpinning loop: WARN and return.
> > > > 
> > > > If this new WARN_ON() fires, then the system *might* be leaking pages
> > > > (by leaving them pinned), but probably not. More likely, gup/pup
> > > > returned a hard -ERRNO error to the caller, who erroneously passed it
> > > > here.
> ...
> > 
> > Do we need a similar check inside unpin_user_pages_dirty_lock(),
> > when make_dirty set to false ?
> 
> 
> Maybe not. This call is rarely if ever used for error handling, but
> rather, for finishing up a successful use of the pages.
> 
> There is a balance between protecting against buggy callers and just
> fixing any buggy callers. There is also a limit to how much code one can
> write in hopes of avoiding bugs in...code that one writes. :)  Which is
> why static analysis, unit and regression tests, code reviews are
> important too.
> 
> Here, I submit that that we're about to cross the line and go too far.
> But if you have any examples of buggy callers for
> unpin_user_pages_dirty_lock(), that might shift the line.

I checked for buggy uses of unpin_user_pages_dirty_lock() using Smatch
and didn't find anything.  (Which doesn't mean that there aren't any).

regards,
dan carpenter


  reply	other threads:[~2020-09-21  9:34 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-16  3:42 [linux-next PATCH] rapidio: Fix error handling path Souptick Joarder
2020-09-16  6:37 ` John Hubbard
2020-09-16 10:02 ` Dan Carpenter
2020-09-16 10:07   ` Dan Carpenter
2020-09-16 15:16   ` Ira Weiny
2020-09-16 15:27     ` Dan Carpenter
2020-09-17  6:57   ` [PATCH] mm/gup: protect unpin_user_pages() against npages==-ERRNO John Hubbard
2020-09-17  7:40     ` Dan Carpenter
2020-09-20  3:03       ` Souptick Joarder
2020-09-20  4:13         ` John Hubbard
2020-09-21  9:34           ` Dan Carpenter [this message]
2020-09-17 12:39   ` [linux-next PATCH] rapidio: Fix error handling path Dan Carpenter
2020-09-17 17:34     ` Ira Weiny
2020-09-17 17:47       ` John Hubbard
2020-09-18  2:21         ` Souptick Joarder
2020-09-18  6:33           ` John Hubbard
2020-09-18  2:25     ` Souptick Joarder
2020-09-18  6:15       ` Dan Carpenter
2020-09-16 15:20 ` 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=20200921093405.GV18329@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=alex.bou9@gmail.com \
    --cc=gustavoars@kernel.org \
    --cc=ira.weiny@intel.com \
    --cc=jhubbard@nvidia.com \
    --cc=jrdr.linux@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=madhuparnabhowmik10@gmail.com \
    --cc=mporter@kernel.crashing.org \
    --cc=willy@infradead.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.