lkml.org 
[lkml]   [2022]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3 2/4] mm/gup: clean up follow_pfn_pte() slightly
    On Thu 03-02-22 01:32:30, John Hubbard wrote:
    > Regardless of any FOLL_* flags, get_user_pages() and its variants should
    > handle PFN-only entries by stopping early, if the caller expected
    > **pages to be filled in.
    >
    > This makes for a more reliable API, as compared to the previous approach
    > of skipping over such entries (and thus leaving them silently
    > unwritten).
    >
    > Cc: Peter Xu <peterx@redhat.com>
    > Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
    > Suggested-by: Jason Gunthorpe <jgg@nvidia.com>
    > Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
    > Signed-off-by: John Hubbard <jhubbard@nvidia.com>
    > ---
    > mm/gup.c | 11 ++++++-----
    > 1 file changed, 6 insertions(+), 5 deletions(-)
    >
    > diff --git a/mm/gup.c b/mm/gup.c
    > index 65575ae3602f..cad3f28492e3 100644
    > --- a/mm/gup.c
    > +++ b/mm/gup.c
    > @@ -439,10 +439,6 @@ static struct page *no_page_table(struct vm_area_struct *vma,
    > static int follow_pfn_pte(struct vm_area_struct *vma, unsigned long address,
    > pte_t *pte, unsigned int flags)
    > {
    > - /* No page to get reference */
    > - if (flags & (FOLL_GET | FOLL_PIN))
    > - return -EFAULT;
    > -
    > if (flags & FOLL_TOUCH) {
    > pte_t entry = *pte;
    >

    This will also modify the error code returned from follow_page(). A quick
    audit shows that at least the user in mm/migrate.c will propagate this
    error code to userspace and I'm not sure the change in error code will not
    break something... EEXIST is a bit strange error code to get from
    move_pages(2).

    Honza
    --
    Jan Kara <jack@suse.com>
    SUSE Labs, CR

    \
     
     \ /
      Last update: 2022-02-03 14:55    [W:3.965 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site