Re: [PATCH v4 2/2] vfio/type1: Prune vfio_pin_page_external()
From: Alex Williamson
Date: Mon Apr 17 2017 - 13:20:55 EST
On Mon, 17 Apr 2017 14:54:21 +0800
Peter Xu <peterx@xxxxxxxxxx> wrote:
> On Sun, Apr 16, 2017 at 07:42:39PM -0600, Alex Williamson wrote:
> > With vfio_lock_acct() testing the locked memory limit under mmap_sem,
> > it's redundant to do it here for a single page. We can also reorder
> > our tests such that we can avoid testing for reserved pages if we're
> > not doing accounting, and test the process CAP_IPC_LOCK only if we
> > are doing accounting. Finally, this function oddly returns 1 on
> > success. Update to return zero on success, -errno on error. Since
> > the function only pins a single page, there's no need to return the
> > number of pages pinned.
> >
> > N.B. vfio_pin_pages_remote() can pin a large contiguous range of pages
> > before calling vfio_lock_acct(). If we were to similarly remove the
> > extra test there, a user could temporarily pin far more pages than
> > they're allowed.
> >
> > Suggested-by: Kirti Wankhede <kwankhede@xxxxxxxxxx>
> > Suggested-by: Peter Xu <peterx@xxxxxxxxxx>
>
> Maybe this suggested-by honor should be for Kirti only? :)
Sorry, I mis-attributed this, Eric suggested that
vfio_pin_page_external() should have a standard return value. I'll
change the Suggested-by.
> For the patch, I think it's good to me as long as we have the
> accounting check in vfio_lock_acct() which is just introduced in
> previous patch, so:
>
> Reviewed-by: Peter Xu <peterx@xxxxxxxxxx>
Thanks!