Re: [PATCH 1/9] mm: Introduce new vm_insert_range API

From: Mike Rapoport
Date: Mon Nov 19 2018 - 11:27:01 EST


On Mon, Nov 19, 2018 at 08:43:09PM +0530, Souptick Joarder wrote:
> Hi Mike,
>
> On Sat, Nov 17, 2018 at 8:07 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
> >
> > On Sat, Nov 17, 2018 at 12:26:38PM +0530, Souptick Joarder wrote:
> > > On Fri, Nov 16, 2018 at 11:59 PM Mike Rapoport <rppt@xxxxxxxxxxxxx> wrote:
> > > > > + * vm_insert_range - insert range of kernel pages into user vma
> > > > > + * @vma: user vma to map to
> > > > > + * @addr: target user address of this page
> > > > > + * @pages: pointer to array of source kernel pages
> > > > > + * @page_count: no. of pages need to insert into user vma
> > > > > + *
> > > > > + * This allows drivers to insert range of kernel pages they've allocated
> > > > > + * into a user vma. This is a generic function which drivers can use
> > > > > + * rather than using their own way of mapping range of kernel pages into
> > > > > + * user vma.
> > > >
> > > > Please add the return value and context descriptions.
> > > >
> > >
> > > Sure I will wait for some time to get additional review comments and
> > > add all of those requested changes in v2.
> >
> > You could send your proposed wording now which might remove the need
> > for a v3 if we end up arguing about the wording.
>
> Does this description looks good ?
>
> /**
> * vm_insert_range - insert range of kernel pages into user vma
> * @vma: user vma to map to
> * @addr: target user address of this page
> * @pages: pointer to array of source kernel pages
> * @page_count: number of pages need to insert into user vma
> *
> * This allows drivers to insert range of kernel pages they've allocated
> * into a user vma. This is a generic function which drivers can use
> * rather than using their own way of mapping range of kernel pages into
> * user vma.
> *
> * Context - Process context. Called by mmap handlers.

Context:

> * Return - int error value

Return:

> * 0 - OK
> * -EINVAL - Invalid argument
> * -ENOMEM - No memory
> * -EFAULT - Bad address
> * -EBUSY - Device or resource busy

I don't think that elaborate description of error values is needed, just "0
on success and error code otherwise" would be sufficient.

> */
>

--
Sincerely yours,
Mike.