diff options
author | Petr Tesarik <ptesarik@suse.cz> | 2011-11-29 18:01:51 +0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2011-12-10 03:06:42 +0400 |
commit | 76d71ebddf23e8195dd5f7889cb2844530689907 (patch) | |
tree | 28521f44fbda9fbda89b8ab64641447682f6d954 /arch/ia64/sn/pci | |
parent | 5611cc4572e889b62a7b4c72a413536bf6a9c416 (diff) | |
download | linux-76d71ebddf23e8195dd5f7889cb2844530689907.tar.xz |
[IA64] Merge overlapping reserved regions at boot
While working on the upcoming SLES11 SP2, I ran into an issue with booting the
panic kernel on a kernel crash. In the first iteration I found out that the
initial register backing store gets overwritten with zeroes, causing a kernel
crash shortly afterwards.
Further investigation revealed that rsvd_region[] contains overlapping
entries: find_memmap_space() returns a pointer which lies between KERNEL_START
and _end. This is correct with the EFI memmap as patched by the kexec
purgatory code. That code removes vmlinux LOAD segments from the usable map,
but there is a pretty large hole between the gate section and the per-cpu
section.
This happens because reserve_memory() blindly marks [KERNEL_START, __end]
as reserved, even though there is a free block in the middle in the kexec
case because it noticed a large gap between sections and modified the
efi_memory_map to account for this.
Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/sn/pci')
0 files changed, 0 insertions, 0 deletions