aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorJay Lan <jlan@sgi.com>2008-09-22 14:21:19 -0700
committerTony Luck <tony.luck@intel.com>2008-09-22 14:21:19 -0700
commitd3758f87f39c5b072dde74c55bfb988262a3a45c (patch)
tree9e03bdfc3693e8db2d9785593c4ebd750202b12c /arch/ia64
parent06f95ea8988513b172080c419e4be8826c55a318 (diff)
downloadkernel_samsung_smdk4412-d3758f87f39c5b072dde74c55bfb988262a3a45c.tar.gz
kernel_samsung_smdk4412-d3758f87f39c5b072dde74c55bfb988262a3a45c.tar.bz2
kernel_samsung_smdk4412-d3758f87f39c5b072dde74c55bfb988262a3a45c.zip
[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/ia64')
-rw-r--r--arch/ia64/kernel/efi.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c
index d45f215bc8f..51b75cea701 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: