lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201019105029.GA18953@linux>
Date:   Mon, 19 Oct 2020 12:50:34 +0200
From:   Oscar Salvador <osalvador@...e.de>
To:     Shijie Luo <luoshijie1@...wei.com>
Cc:     akpm@...ux-foundation.org, linux-mm@...ck.org,
        linux-kernel@...r.kernel.org, mhocko@...e.com,
        linmiaohe@...wei.com, linfeilong@...wei.com
Subject: Re: [PATCH] mm: mempolicy: fix potential pte_unmap_unlock pte error

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@...wei.com>
> Signed-off-by: Miaohe Lin <linmiaohe@...wei.com>

Anyway, LGTM:

Reviewed-by: Oscar Salvador <osalvador@...e.de>

-- 
Oscar Salvador
SUSE L3

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ