Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1381623

[PATCH] mm/memory-failure: fix race with compound page split/merge

Path csiph.com!eternal-september.org!feeder.eternal-september.org!aioe.org!bofh.it!news.nic.it!robomod
From Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Newsgroups linux.kernel
Subject [PATCH] mm/memory-failure: fix race with compound page split/merge
Date Mon, 18 Apr 2016 13:50:01 +0200
Message-ID <rpfQJ-4Ut-11@gated-at.bofh.it> (permalink)
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex-team.ru; s=default; t=1460979828; bh=y3R1wSUnZIuCRVaNzjDjU8o7uVrRRjMgdtDhjsj/Qms=; h=Subject:From:To:Cc:Date:Message-ID:User-Agent:MIME-Version: Content-Type:Content-Transfer-Encoding; b=bAGbNeJZ2tEuj1p15IycO096sFCrF+iQEEmO0c5Ul4Pd+KobKSPzt2kieZ3mD2bdz p56PSVUGiKAurJwVlxFWBze0vSTnllLJZpnTFcDCnMiyNRBlRl/6lTyICyJkEsE2Vl Bh6sUqUAHm63zlGfB87gY1JK/TzG3hV33iFW9UNQ=
Authentication-Results smtpcorp1m.mail.yandex.net; dkim=pass header.i=@yandex-team.ru
User-Agent StGit/0.17.1-dirty
MIME-Version 1.0
Content-Type text/plain; charset="utf-8"
Content-Transfer-Encoding 7bit
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 28
Organization linux.* mail to news gateway
X-Original-Cc linux-kernel@vger.kernel.org, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
X-Original-Date Mon, 18 Apr 2016 14:43:45 +0300
X-Original-Message-ID <146097982568.15733.13924990169211134049.stgit@buzz>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1381623

Show key headers only | View raw


Get_hwpoison_page() must recheck relation between head and tail pages.

Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
---
 mm/memory-failure.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index 78f5f2641b91..ca5acee53b7a 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -888,7 +888,15 @@ int get_hwpoison_page(struct page *page)
 		}
 	}
 
-	return get_page_unless_zero(head);
+	if (get_page_unless_zero(head)) {
+		if (head == compound_head(page))
+			return 1;
+
+		pr_info("MCE: %#lx cannot catch tail\n", page_to_pfn(page));
+		put_page(head);
+	}
+
+	return 0;
 }
 EXPORT_SYMBOL_GPL(get_hwpoison_page);
 

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH] mm/memory-failure: fix race with compound page split/merge Konstantin Khlebnikov <khlebnikov@yandex-team.ru> - 2016-04-18 13:50 +0200
  Re: [PATCH] mm/memory-failure: fix race with compound page  split/merge Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2016-04-19 01:20 +0200
    Re: [PATCH] mm/memory-failure: fix race with compound page split/merge Konstantin Khlebnikov <koct9i@gmail.com> - 2016-04-19 08:00 +0200
    Re: [PATCH] mm/memory-failure: fix race with compound page  split/merge Andrew Morton <akpm@linux-foundation.org> - 2016-04-22 01:50 +0200

csiph-web