diff options
author | Jay Lan <jlan@sgi.com> | 2008-09-22 14:21:19 -0700 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2008-09-22 14:21:19 -0700 |
commit | d3758f87f39c5b072dde74c55bfb988262a3a45c (patch) | |
tree | 9e03bdfc3693e8db2d9785593c4ebd750202b12c /arch | |
parent | 06f95ea8988513b172080c419e4be8826c55a318 (diff) | |
download | op-kernel-dev-d3758f87f39c5b072dde74c55bfb988262a3a45c.zip op-kernel-dev-d3758f87f39c5b072dde74c55bfb988262a3a45c.tar.gz |
[IA64] kexec fails on systems with blocks of uncached memory
Currently a memory segment in memory map with attribute of EFI_MEMORY_UC
is denoted as "System RAM" in /proc/iomem, while memory of attribute
(EFI_MEMORY_WB|EFI_MEMORY_UC) is also labeled the same.
The kexec utility then includes uncached memory as part of vmcore. The
kdump kernel MCA'ed when it tries to save the vmcore to a disk. A normal
"cached" access may cause MCAs.
This patch would label memory with attribute of EFI_MEMORY_UC only as
"Uncached RAM" so that kexec would know not to include it in the vmcore.
I will submit a separate kexec-tools patch to the kexec list.
Signed-off-by: Jay Lan <jlan@sgi.com>
Acked-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ia64/kernel/efi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c index d45f215..51b75ce 100644 --- a/arch/ia64/kernel/efi.c +++ b/arch/ia64/kernel/efi.c @@ -1232,9 +1232,10 @@ efi_initialize_iomem_resources(struct resource *code_resource, if (md->attribute & EFI_MEMORY_WP) { name = "System ROM"; flags |= IORESOURCE_READONLY; - } else { + } else if (md->attribute == EFI_MEMORY_UC) + name = "Uncached RAM"; + else name = "System RAM"; - } break; case EFI_ACPI_MEMORY_NVS: |