From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756017Ab2JSGlR (ORCPT ); Fri, 19 Oct 2012 02:41:17 -0400 Received: from cn.fujitsu.com ([222.73.24.84]:63773 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1752897Ab2JSGlK (ORCPT ); Fri, 19 Oct 2012 02:41:10 -0400 X-IronPort-AV: E=Sophos;i="4.80,612,1344182400"; d="scan'208";a="6029361" From: wency@cn.fujitsu.com 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 Subject: [PATCH v3 3/9] memory-hotplug: flush the work for the node when the node is offlined Date: Fri, 19 Oct 2012 14:46:36 +0800 Message-Id: <1350629202-9664-4-git-send-email-wency@cn.fujitsu.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1350629202-9664-1-git-send-email-wency@cn.fujitsu.com> References: <1350629202-9664-1-git-send-email-wency@cn.fujitsu.com> X-MIMETrack: Itemize by SMTP Server on mailserver/fnst(Release 8.5.3|September 15, 2011) at 2012/10/19 14:40:42, Serialize by Router on mailserver/fnst(Release 8.5.3|September 15, 2011) at 2012/10/19 14:40:44, Serialize complete at 2012/10/19 14:40:44 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yasuaki Ishimatsu If the node is onlined after it is offlined, we will clear the memory to store the node's information. This structure contains struct work, so we should flush work before the work's information is cleared. CC: David Rientjes CC: Jiang Liu Cc: Minchan Kim CC: Andrew Morton CC: KOSAKI Motohiro Signed-off-by: Yasuaki Ishimatsu Signed-off-by: Wen Congyang --- drivers/base/node.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/drivers/base/node.c b/drivers/base/node.c index 2baa73a..13c0ddf 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c @@ -254,6 +254,11 @@ static inline void hugetlb_unregister_node(struct node *node) {} static void node_device_release(struct device *dev) { +#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS) + struct node *node_dev = to_node(dev); + + flush_work(&node_dev->node_work); +#endif } /* -- 1.7.1