Re: [openib-general] [PATCH 07/13] [RFC] ipath core misc files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(Please ignore if you see this twice, I am sending this a second time as I 
got an error
on previous send)

Roland Dreier <[email protected]> wrote:

...
> +int ipath_mlock(unsigned long start_page, size_t num_pages, struct page 
**p)
> +{
> +   int n;
> +
> +   _IPATH_VDBG("pin %lx pages from vaddr %lx\n", num_pages, 
start_page);
> +   down_read(&current->mm->mmap_sem);
> +   n = get_user_pages(current, current->mm, start_page, num_pages, 1, 
1,
> +            p, NULL);
> +   up_read(&current->mm->mmap_sem);
> +   if (n != num_pages) {
> +      _IPATH_INFO
> +          ("get_user_pages (0x%lx pages starting at 0x%lx failed with 
%d\n",
> +           num_pages, start_page, n);
> +      if (n < 0)   /* it's an errno */
> +         return n;
> +      return -ENOMEM;   /* no way to know actual error */
> +   }
> +
> +   return 0;
> +}

For this routine (where num_pages can be >1), in the error case you need 
to 
page_cache_release() the pages that were successfully 'got' 
(get_page()'d).

- KK

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux