lkml.org 
[lkml]   [2021]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 11/11] mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk()
    Aha!  Shouldn't that quick scan over pte_none()s make sure that it holds
    ptlock in the PVMW_SYNC case? That too might have been responsible for
    BUGs or WARNs in split_huge_page_to_list() or its unmap_page(), though
    I've never seen any.

    Fixes: ace71a19cec5 ("mm: introduce page_vma_mapped_walk()")
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Cc: <stable@vger.kernel.org>
    ---
    mm/page_vma_mapped.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c
    index 6eb2f1863506..7ae4a016304b 100644
    --- a/mm/page_vma_mapped.c
    +++ b/mm/page_vma_mapped.c
    @@ -277,6 +277,10 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw)
    goto restart;
    }
    pvmw->pte++;
    + if ((pvmw->flags & PVMW_SYNC) && !pvmw->ptl) {
    + pvmw->ptl = pte_lockptr(mm, pvmw->pmd);
    + spin_lock(pvmw->ptl);
    + }
    } while (pte_none(*pvmw->pte));

    if (!pvmw->ptl) {
    --
    2.26.2
    \
     
     \ /
      Last update: 2021-06-10 08:56    [W:4.060 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site