Re: [PATCH v2] mm: check_new_page_bad() directly returns in __PG_HWPOISON case

From: Vlastimil Babka
Date: Fri May 20 2016 - 10:27:20 EST


On 05/18/2016 04:03 PM, Mel Gorman wrote:
On Wed, May 18, 2016 at 10:09:50AM +0000, Naoya Horiguchi wrote:
From c600b1ee6c36b3df6973f5365b4179c92f3c08e3 Mon Sep 17 00:00:00 2001
From: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
Date: Wed, 18 May 2016 18:42:57 +0900
Subject: [PATCH v2] mm: check_new_page_bad() directly returns in __PG_HWPOISON
case

Currently we check page->flags twice for "HWPoisoned" case of
check_new_page_bad(), which can cause a race with unpoisoning.
This race unnecessarily taints kernel with "BUG: Bad page state".
check_new_page_bad() is the only caller of bad_page() which is interested
in __PG_HWPOISON, so let's move the hwpoison related code in bad_page()
to it.

Signed-off-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>

Acked-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>

Acked-by: Vlastimil Babka <vbabka@xxxxxxx>