From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhang Rui Subject: [linux-next] [PATCH V2 3/4] ACPI: mark ACPI NVS memory region Date: Fri, 11 Jul 2008 13:29:12 +0800 Message-ID: <1215754152.1617.60.camel@rzhang-dt> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: Received: from mga01.intel.com ([192.55.52.88]:2252 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755272AbYGKFaE (ORCPT ); Fri, 11 Jul 2008 01:30:04 -0400 Sender: linux-acpi-owner@vger.kernel.org List-Id: linux-acpi@vger.kernel.org To: Linux Kernel Mailing List , linux-acpi , linux-pm Cc: "Rafael J. Wysocki" , Pavel Machek , Henrique de Moraes Holschuh , Andi Kleen , Ingo Molnar Mark ACPI NVS memory region during startup. Signed-off-by: Zhang Rui --- arch/x86/kernel/e820.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) Index: linux-next/arch/x86/kernel/e820.c =================================================================== --- linux-next.orig/arch/x86/kernel/e820.c 2008-07-11 11:44:54.000000000 +0800 +++ linux-next/arch/x86/kernel/e820.c 2008-07-11 11:52:22.000000000 +0800 @@ -19,6 +19,8 @@ #include #include #include +#include +#include #include #include @@ -623,6 +625,33 @@ } #endif +#ifdef CONFIG_HIBERNATION +/* Mark ACPI NVS region, so that OS can save/restore it during hibernation */ +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]; + unsigned long start, end; + + if (ei->type != E820_NVS) + continue; + start = PFN_UP(ei->addr); + end = PFN_DOWN(ei->addr + ei->size); + if (start >= end) + continue; + + acpi_mark_nvs_region(start, end - 1); + } + return 0; +} +core_initcall(e820_mark_nvs_memory); +#endif + /* * Early reserved memory areas. */