lkml.org 
[lkml]   [2019]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 1/1] infiniband/mm: convert put_page() to put_user_page*()
    Date
    On Thu, May 23, 2019 at 10:28:52AM -0700, Ira Weiny wrote:
    > >
    > > @@ -686,8 +686,8 @@ int ib_umem_odp_map_dma_pages(struct ib_umem_odp *umem_odp, u64 user_virt,
    > > * ib_umem_odp_map_dma_single_page().
    > > */
    > > if (npages - (j + 1) > 0)
    > > - release_pages(&local_page_list[j+1],
    > > - npages - (j + 1));
    > > + put_user_pages(&local_page_list[j+1],
    > > + npages - (j + 1));
    >
    > I don't know if we discussed this before but it looks like the use of
    > release_pages() was not entirely correct (or at least not necessary) here. So
    > I think this is ok.

    Oh? John switched it from a put_pages loop to release_pages() here:

    commit 75a3e6a3c129cddcc683538d8702c6ef998ec589
    Author: John Hubbard <jhubbard@nvidia.com>
    Date: Mon Mar 4 11:46:45 2019 -0800

    RDMA/umem: minor bug fix in error handling path

    1. Bug fix: fix an off by one error in the code that cleans up if it fails
    to dma-map a page, after having done a get_user_pages_remote() on a
    range of pages.

    2. Refinement: for that same cleanup code, release_pages() is better than
    put_page() in a loop.


    And now we are going to back something called put_pages() that
    implements the same for loop the above removed?

    Seems like we are going in circles?? John?

    Jason

    \
     
     \ /
      Last update: 2019-05-23 19:32    [W:2.494 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site