From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Rafael J. Wysocki" Subject: [PATCH 3/4] x86 hibernate: Mark ACPI NVS memory region at startup Date: Sun, 26 Oct 2008 20:54:24 +0100 Message-ID: <200810262054.24929.rjw@sisk.pl> References: <200810262048.23468.rjw@sisk.pl> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: 7bit Return-path: Received: from ogre.sisk.pl ([217.79.144.158]:55203 "EHLO ogre.sisk.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753892AbYJZTw0 (ORCPT ); Sun, 26 Oct 2008 15:52:26 -0400 In-Reply-To: <200810262048.23468.rjw@sisk.pl> Content-Disposition: inline Sender: linux-acpi-owner@vger.kernel.org List-Id: linux-acpi@vger.kernel.org To: Len Brown Cc: ACPI Devel Maling List , pm list , Nigel Cunningham , Pavel Machek , Ingo Molnar , Zhang Rui From: Rafael J. Wysocki Subject: x86 hibernate: Mark ACPI NVS memory region at startup Introduce new initcall for marking the ACPI NVS memory at startup, so that it can be saved/restore during hibernation/resume. Based on a patch by Zhang Rui. Signed-off-by: Rafael J. Wysocki Cc: Zhang Rui --- arch/x86/kernel/e820.c | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-) diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index ce97bf3..e1e63a8 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -665,6 +666,30 @@ void __init e820_mark_nosave_regions(unsigned long limit_pfn) } #endif +#ifdef CONFIG_HIBERNATION +/** + * Mark ACPI NVS memory region, so that we can save/restore it during + * hibernation and the subsequent resume. + */ +static int __init e820_mark_nvs_memory(void) +{ + int i; + + if (efi_enabled) + return 0; + + for (i = 0; i < e820.nr_map; i++) { + struct e820entry *ei = &e820.map[i]; + + if (ei->type == E820_NVS) + hibernate_nvs_register(ei->addr, ei->size); + } + + return 0; +} +core_initcall(e820_mark_nvs_memory); +#endif + /* * Early reserved memory areas. */ -- 1.5.6