__SetPageUptodate() always has a built-in smp_wmb() to make sure user data copied to a new page appears before set_pmd_at().
Signed-off-by: Yu Zhao <yuz...@google.com> --- mm/khugepaged.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index ccede2425c3f..70ff98e1414d 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -1067,13 +1067,6 @@ static void collapse_huge_page(struct mm_struct *mm, _pmd = mk_huge_pmd(new_page, vma->vm_page_prot); _pmd = maybe_pmd_mkwrite(pmd_mkdirty(_pmd), vma); - /* - * spin_lock() below is not the equivalent of smp_wmb(), so - * this is needed to avoid the copy_huge_page writes to become - * visible after the set_pmd_at() write. - */ - smp_wmb(); - spin_lock(pmd_ptl); BUG_ON(!pmd_none(*pmd)); page_add_new_anon_rmap(new_page, vma, address, true); -- 2.23.0.351.gc4317032e6-goog