diff options
author | Huang Ying <ying.huang@intel.com> | 2011-12-07 22:25:49 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2012-01-17 03:54:44 -0500 |
commit | b54ac6d2a25084667da781c7ca2cebef52a2bcdd (patch) | |
tree | b4dbaa790dcecff6b5b0772846d43b360f6389d7 /arch | |
parent | b4e008dc53a31cb4bf6a12d9dbaf1d5c6070a838 (diff) |
ACPI, Record ACPI NVS regions
Some firmware will access memory in ACPI NVS region via APEI. That
is, instructions in APEI ERST/EINJ table will read/write ACPI NVS
region. The original resource conflict checking in APEI code will
check memory/ioport accessed by APEI via general resource management
mechanism. But ACPI NVS region is marked as busy already, so that the
false resource conflict will prevent APEI ERST/EINJ to work.
To fix this, this patch record ACPI NVS regions, so that we can avoid
request resources for memory region inside it.
Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/e820.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 303a0e48f076..51c3b186e5b9 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
@@ -714,7 +714,7 @@ void __init e820_mark_nosave_regions(unsigned long limit_pfn) | |||
714 | } | 714 | } |
715 | #endif | 715 | #endif |
716 | 716 | ||
717 | #ifdef CONFIG_HIBERNATION | 717 | #ifdef CONFIG_ACPI |
718 | /** | 718 | /** |
719 | * Mark ACPI NVS memory region, so that we can save/restore it during | 719 | * Mark ACPI NVS memory region, so that we can save/restore it during |
720 | * hibernation and the subsequent resume. | 720 | * hibernation and the subsequent resume. |
@@ -727,7 +727,7 @@ static int __init e820_mark_nvs_memory(void) | |||
727 | struct e820entry *ei = &e820.map[i]; | 727 | struct e820entry *ei = &e820.map[i]; |
728 | 728 | ||
729 | if (ei->type == E820_NVS) | 729 | if (ei->type == E820_NVS) |
730 | suspend_nvs_register(ei->addr, ei->size); | 730 | acpi_nvs_register(ei->addr, ei->size); |
731 | } | 731 | } |
732 | 732 | ||
733 | return 0; | 733 | return 0; |