[linux-pm] [PATCH 3/4] x86 hibernate: Mark ACPI NVS memory region at startup

Pavel Machek pavel at suse.cz
Sun Oct 26 05:14:05 PDT 2008


On Wed 2008-10-22 22:53:15, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rjw at sisk.pl>
> 
> 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 <rjw at sisk.pl>
> Cc: Zhang Rui <rui.zhang at intel.com>
> ---
>  arch/x86/kernel/e820.c |   25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
> 
> Index: linux-2.6/arch/x86/kernel/e820.c
> ===================================================================
> --- linux-2.6.orig/arch/x86/kernel/e820.c
> +++ linux-2.6/arch/x86/kernel/e820.c
> @@ -20,6 +20,7 @@
>  #include <linux/pfn.h>
>  #include <linux/suspend.h>
>  #include <linux/firmware-map.h>
> +#include <linux/efi.h>
>  
>  #include <asm/pgtable.h>
>  #include <asm/page.h>

Unrelated chunk?

> @@ -665,6 +666,30 @@ void __init e820_mark_nosave_regions(uns
>  }
>  #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;

Aha, not unrelated... why is that? EFI does not use acpi? 

> +	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);

can nvs_register fail? (OOM?)

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


More information about the linux-pm mailing list