mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 09:16:33 +00:00
hwpoison: fix hugetlbfs/thp precheck in hwpoison_user_mappings()
A recent fix from Chen Yucong, commit 0bc1f8b068
("hwpoison: fix the
handling path of the victimized page frame that belong to non-LRU")
rejects going into unmapping operation for hugetlbfs/thp pages, which
results in failing error containing on such pages. This patch fixes it.
With this patch, hwpoison functional tests in mce-test testsuite pass.
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Chen Yucong <slaoub@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
0193ed8225
commit
93a9eb39fa
@ -895,7 +895,13 @@ static int hwpoison_user_mappings(struct page *p, unsigned long pfn,
|
||||
struct page *hpage = *hpagep;
|
||||
struct page *ppage;
|
||||
|
||||
if (PageReserved(p) || PageSlab(p) || !PageLRU(p))
|
||||
/*
|
||||
* Here we are interested only in user-mapped pages, so skip any
|
||||
* other types of pages.
|
||||
*/
|
||||
if (PageReserved(p) || PageSlab(p))
|
||||
return SWAP_SUCCESS;
|
||||
if (!(PageLRU(hpage) || PageHuge(p)))
|
||||
return SWAP_SUCCESS;
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user