Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752878AbZGTQPo (ORCPT ); Mon, 20 Jul 2009 12:15:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751236AbZGTQPm (ORCPT ); Mon, 20 Jul 2009 12:15:42 -0400 Received: from fgwmail5.fujitsu.co.jp ([192.51.44.35]:36019 "EHLO fgwmail5.fujitsu.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752620AbZGTQPj (ORCPT ); Mon, 20 Jul 2009 12:15:39 -0400 Date: Tue, 21 Jul 2009 01:15:05 +0900 (JST) X-SecurityPolicyCheck-FJ: OK by FujitsuOutboundMailChecker v1.3.1 From: KOSAKI Motohiro To: Gerald Schaefer Subject: Re: [PATCH] hibernate / memory hotplug: always use for_each_populated_zone() Cc: kosaki.motohiro@jp.fujitsu.com, "Rafael J. Wysocki" , Andrew Morton , linux-kernel@vger.kernel.org, Martin Schwidefsky , Heiko Carstens , KAMEZAWA Hiroyuki , Yasunori Goto In-Reply-To: <1248103551.23961.0.camel@localhost.localdomain> References: <1248103551.23961.0.camel@localhost.localdomain> Message-Id: <20090721011344.AF78.A69D9226@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.50.07 [ja] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1454 Lines: 32 > From: Gerald Schaefer > > Use for_each_populated_zone() instead of for_each_zone() in hibernation > code. This fixes a bug on s390, where we allow both config options > HIBERNATION and MEMORY_HOTPLUG, so that we also have a ZONE_MOVABLE > here. We only allow hibernation if no memory hotplug operation was > performed, so in fact both features can only be used exclusively, but > this way we don't need 2 differently configured (distribution) kernels. > > If we have an unpopulated ZONE_MOVABLE, we allow hibernation but run > into a BUG_ON() in memory_bm_test/set/clear_bit() because hibernation > code iterates through all zones, not only the populated zones, in > several places. For example, swsusp_free() does for_each_zone() and > then checks for pfn_valid(), which is true even if the zone is not > populated, resulting in a BUG_ON() later because the pfn cannot be > found in the memory bitmap. > > Replacing all occurences of for_each_zone() in hibernation code with > for_each_populated_zone() would fix this issue. > > Signed-off-by: Gerald Schaefer Thanks this effort. Acked-by: KOSAKI Motohiro -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/