Re: [PATCH] mm: mempolicy: fix potential pte_unmap_unlock pte error

From: Oscar Salvador
Date: Mon Oct 19 2020 - 06:50:40 EST


On Mon, Oct 19, 2020 at 03:48:53AM -0400, Shijie Luo wrote:
> When flags in queue_pages_pte_range don't have MPOL_MF_MOVE or MPOL_MF_MOVE_ALL
> bits, code breaks and passing origin pte - 1 to pte_unmap_unlock seems like
> not a good idea.

I think the above is already explained below?

> queue_pages_pte_range can run in MPOL_MF_MOVE_ALL mode which doesn't migrate
> misplaced pages but returns with EIO when encountering such a page. Since
> commit a7f40cfe3b7a ("mm: mempolicy: make mbind() return -EIO when MPOL_MF_STRICT
> is specified") and early break on the first pte in the range results in
> pte_unmap_unlock on an underflow pte. This can lead to lockups later on when
> somebody tries to lock the pte resp. page_table_lock again..
>
> Fixes: a7f40cfe3b7a ("mm: mempolicy: make mbind() return -EIO when
> MPOL_MF_STRICT is specified")
>
> Signed-off-by: Shijie Luo <luoshijie1@xxxxxxxxxx>
> Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx>

Anyway, LGTM:

Reviewed-by: Oscar Salvador <osalvador@xxxxxxx>

--
Oscar Salvador
SUSE L3