lkml.org 
[lkml]   [2019]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v10 20/25] powerpc: book3s64: convert to pin_user_pages() and put_user_page()
    Date
    1. Convert from get_user_pages() to pin_user_pages().

    2. As required by pin_user_pages(), release these pages via
    put_user_page().

    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: John Hubbard <jhubbard@nvidia.com>
    ---
    arch/powerpc/mm/book3s64/iommu_api.c | 10 +++++-----
    1 file changed, 5 insertions(+), 5 deletions(-)

    diff --git a/arch/powerpc/mm/book3s64/iommu_api.c b/arch/powerpc/mm/book3s64/iommu_api.c
    index 56cc84520577..a86547822034 100644
    --- a/arch/powerpc/mm/book3s64/iommu_api.c
    +++ b/arch/powerpc/mm/book3s64/iommu_api.c
    @@ -103,7 +103,7 @@ static long mm_iommu_do_alloc(struct mm_struct *mm, unsigned long ua,
    for (entry = 0; entry < entries; entry += chunk) {
    unsigned long n = min(entries - entry, chunk);

    - ret = get_user_pages(ua + (entry << PAGE_SHIFT), n,
    + ret = pin_user_pages(ua + (entry << PAGE_SHIFT), n,
    FOLL_WRITE | FOLL_LONGTERM,
    mem->hpages + entry, NULL);
    if (ret == n) {
    @@ -167,9 +167,8 @@ static long mm_iommu_do_alloc(struct mm_struct *mm, unsigned long ua,
    return 0;

    free_exit:
    - /* free the reference taken */
    - for (i = 0; i < pinned; i++)
    - put_page(mem->hpages[i]);
    + /* free the references taken */
    + put_user_pages(mem->hpages, pinned);

    vfree(mem->hpas);
    kfree(mem);
    @@ -215,7 +214,8 @@ static void mm_iommu_unpin(struct mm_iommu_table_group_mem_t *mem)
    if (mem->hpas[i] & MM_IOMMU_TABLE_GROUP_PAGE_DIRTY)
    SetPageDirty(page);

    - put_page(page);
    + put_user_page(page);
    +
    mem->hpas[i] = 0;
    }
    }
    --
    2.24.0
    \
     
     \ /
      Last update: 2019-12-12 09:23    [W:2.255 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site