From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx156.postini.com [74.125.245.156]) by kanga.kvack.org (Postfix) with SMTP id 37BF06B0069 for ; Thu, 27 Sep 2012 01:39:30 -0400 (EDT) From: wency@cn.fujitsu.com Subject: [PATCH 3/4] memory-hotplug: clear hwpoisoned flag when onlining pages Date: Thu, 27 Sep 2012 13:45:04 +0800 Message-Id: <1348724705-23779-4-git-send-email-wency@cn.fujitsu.com> In-Reply-To: <1348724705-23779-1-git-send-email-wency@cn.fujitsu.com> References: <1348724705-23779-1-git-send-email-wency@cn.fujitsu.com> Sender: owner-linux-mm@kvack.org List-ID: To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: rientjes@google.com, liuj97@gmail.com, len.brown@intel.com, benh@kernel.crashing.org, paulus@samba.org, minchan.kim@gmail.com, akpm@linux-foundation.org, kosaki.motohiro@jp.fujitsu.com, isimatu.yasuaki@jp.fujitsu.com, Wen Congyang From: Wen Congyang hwpoisoned may set when we offline a page by the sysfs interface /sys/devices/system/memory/soft_offline_page or /sys/devices/system/memory/hard_offline_page. If we don't clear this flag when onlining pages, this page can't be freed, and will not in free list. So we can't offline these pages again. So we should clear this flag when onlining pages. CC: David Rientjes CC: Jiang Liu CC: Len Brown CC: Benjamin Herrenschmidt CC: Paul Mackerras Cc: Minchan Kim CC: Andrew Morton CC: KOSAKI Motohiro CC: Yasuaki Ishimatsu Signed-off-by: Wen Congyang --- mm/memory_hotplug.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index 6a5b90d..9a5b10f 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -431,6 +431,14 @@ EXPORT_SYMBOL_GPL(__online_page_increment_counters); void __online_page_free(struct page *page) { +#ifdef CONFIG_MEMORY_FAILURE + /* The page may be marked HWPoisoned by soft/hard offline page */ + if (PageHWPoison(page)) { + atomic_long_sub(1, &mce_bad_pages); + ClearPageHWPoison(page); + } +#endif + ClearPageReserved(page); init_page_count(page); __free_page(page); -- 1.7.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org