Re: [PATCH] mm: Fix possible PMD dirty bit lost in set_pmd_migration_entry()

From: William Kucharski
Date: Thu Feb 20 2020 - 05:22:50 EST



> On Feb 20, 2020, at 12:52 AM, Huang, Ying <ying.huang@xxxxxxxxx> wrote:
>
> Signed-off-by: "Huang, Ying" <ying.huang@xxxxxxxxx>

Looks good to me.

Reviewed-by: William Kucharski <william.kucharski@xxxxxxxxxx>

> Cc: Zi Yan <ziy@xxxxxxxxxx>
> Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
> Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
> Cc: Michal Hocko <mhocko@xxxxxxxxxx>
> Cc: Vlastimil Babka <vbabka@xxxxxxx>
> ---
> mm/huge_memory.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index 580098e115bd..b1e069e68189 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -3060,8 +3060,7 @@ void set_pmd_migration_entry(struct page_vma_mapped_walk *pvmw,
> return;
>
> flush_cache_range(vma, address, address + HPAGE_PMD_SIZE);
> - pmdval = *pvmw->pmd;
> - pmdp_invalidate(vma, address, pvmw->pmd);
> + pmdval = pmdp_invalidate(vma, address, pvmw->pmd);
> if (pmd_dirty(pmdval))
> set_page_dirty(page);
> entry = make_migration_entry(page, pmd_write(pmdval));
> --
> 2.25.0
>
>