]> git.baikalelectronics.ru Git - kernel.git/commit
mm: check_new_page_bad() directly returns in __PG_HWPOISON case
authorNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Fri, 20 May 2016 23:58:50 +0000 (16:58 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 21 May 2016 00:58:30 +0000 (17:58 -0700)
commitd1dea2ac71d3938a603ead34fc090a21016339ad
tree0db14373c0f65bcc7360995920b8ed0e46a0d5de
parente25f04b7d8f8e859fdc6b3c1da1fba4ccac4ea6f
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.

Link: http://lkml.kernel.org/r/20160518100949.GA17299@hori1.linux.bs1.fc.nec.co.jp
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Acked-by: Mel Gorman <mgorman@techsingularity.net>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/page_alloc.c