linux/arch/ia64/kernel
Petr Tesarik 76d71ebddf [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>
2011-12-09 15:06:42 -08:00
..
cpufreq [CPUFREQ] use dynamic debug instead of custom infrastructure 2011-05-04 11:50:57 -04:00
.gitignore [IA64] Cleanup generated file not ignored by .gitignore 2008-08-04 11:06:16 -07:00
Makefile iommu: Rename the DMAR and INTR_REMAP config options 2011-09-21 10:22:03 +02:00
Makefile.gate Rename .data.gate to .data..gate. 2010-03-03 11:25:59 +01:00
acpi-ext.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
acpi.c iommu: Rename the DMAR and INTR_REMAP config options 2011-09-21 10:22:03 +02:00
asm-offsets.c ia64/pv_ops/xen: paravirtualize read/write ar.itc and ar.itm 2009-03-26 10:50:32 -07:00
audit.c [IA64] Remove COMPAT_IA32 support 2010-02-08 10:42:17 -08:00
brl_emu.c
crash.c sysctl: Drop & in front of every proc_handler. 2009-11-18 08:37:40 -08:00
crash_dump.c crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn 2011-03-23 19:47:19 -07:00
cyclone.c ia64: Replace clocksource.fsys_mmio with generic arch data 2011-07-14 17:57:09 -07:00
dma-mapping.c ia64: Add export.h to arch/ia64 specific files as required 2011-10-31 19:30:58 -04:00
efi.c efi: Fix argument types for SetVariable() for ia64 2011-08-04 16:03:50 -07:00
efi_stub.S
elfcore.c elf coredump: add extended numbering support 2010-03-06 11:26:46 -08:00
entry.S [IA64] Wire up cross memory attach syscalls 2011-11-02 14:00:26 -07:00
entry.h
err_inject.c sysdev: Pass the attribute to the low level sysdev show/store function 2008-07-21 21:55:02 -07:00
esi.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
esi_stub.S
fsys.S [IA64] Optimize ticket spinlocks in fsys_rt_sigprocmask 2010-09-15 15:35:48 -07:00
fsyscall_gtod_data.h [IA64] generalize attribute of fsyscall_gtod_data 2008-02-04 15:36:36 -08:00
ftrace.c ftrace, ia64: IA64 dynamic ftrace support 2009-01-14 12:11:31 +01:00
gate-data.S Rename .data.gate to .data..gate. 2010-03-03 11:25:59 +01:00
gate.S Rename .data..patch.XXX to .data..patch.XXX. 2010-03-03 11:25:59 +01:00
gate.lds.S Rename .data..patch.XXX to .data..patch.XXX. 2010-03-03 11:25:59 +01:00
head.S percpu: make percpu symbols in ia64 unique 2009-10-29 22:34:14 +09:00
ia64_ksyms.c percpu: remove per_cpu__ prefix. 2009-10-29 22:34:15 +09:00
init_task.c Rename .data.init_task to .data..init_task. 2010-03-03 11:25:58 +01:00
iosapic.c ia64: iosapic: Use new irq_move_* functions 2011-03-29 14:48:03 +02:00
irq.c ia64: Use generic show_interrupts() 2011-03-29 14:48:05 +02:00
irq_ia64.c sched: Provide scheduler_ipi() callback in response to smp_send_reschedule() 2011-04-14 08:52:32 +02:00
irq_lsapic.c ia64: Convert lsapic to new irq_chip functions 2011-03-29 14:48:02 +02:00
ivt.S Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
jprobes.S [IA64] Move include/asm-ia64 to arch/ia64/include/asm 2008-08-01 10:21:21 -07:00
kprobes.c kprobes: Disable booster when CONFIG_PREEMPT=y 2010-02-04 09:36:18 +01:00
machine_kexec.c [IA64] kexec: Unregister MCA handler before kexec 2009-09-14 16:18:17 -07:00
machvec.c x86, ia64: convert to use generic dma_map_ops struct 2009-01-06 14:06:57 +01:00
mca.c ia64: Use accessor functions all over the place 2011-03-29 14:48:03 +02:00
mca_asm.S percpu: make percpu symbols in ia64 unique 2009-10-29 22:34:14 +09:00
mca_drv.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mca_drv.h [IA64] mca style cleanup 2008-02-04 15:42:06 -08:00
mca_drv_asm.S [IA64] mca style cleanup 2008-02-04 15:42:06 -08:00
minstate.h Rename .data..patch.XXX to .data..patch.XXX. 2010-03-03 11:25:59 +01:00
module.c modules: make arch's use default loader hooks 2011-07-24 22:06:04 +09:30
msi_ia64.c iommu: Rename the DMAR and INTR_REMAP config options 2011-09-21 10:22:03 +02:00
nr-irqs.c ia64/pv_ops/xen: define the nubmer of irqs which xen needs. 2008-10-17 10:06:59 -07:00
numa.c [IA64] Minimize per_cpu reservations. 2008-04-08 13:51:35 -07:00
pal.S
palinfo.c [IA64] Use static const char * const in palinfo.c 2010-09-23 14:22:05 -07:00
paravirt.c ia64: add jump labels for paravirt 2011-07-14 12:59:45 +03:00
paravirt_inst.h ia64/pv_ops: paravirtualized instruction checker. 2008-10-17 10:12:54 -07:00
paravirt_patch.c ia64/pv_op/binarypatch: add helper functions to support binary patching for paravirt_ops. 2009-03-26 11:02:31 -07:00
paravirt_patchlist.c [IA64] Fix build error in paravirt_patchlist.c 2009-06-17 09:04:40 -07:00
paravirt_patchlist.h ia64/pv_ops: gate page paravirtualization. 2009-03-26 10:51:02 -07:00
paravirtentry.S Rename .data.read_mostly to .data..read_mostly. 2010-03-03 11:26:00 +01:00
patch.c ia64: remove some warnings. 2009-03-27 11:11:04 -07:00
pci-dma.c iommu: Rename the DMAR and INTR_REMAP config options 2011-09-21 10:22:03 +02:00
pci-swiotlb.c ia64: remove unnecessary sync_single_range_* in swiotlb_dma_ops 2010-05-27 09:12:52 -07:00
perfmon.c [IA64] fix build error - arch/ia64/kernel/perfmon.c 2011-01-13 14:49:56 -08:00
perfmon_default_smpl.c Fix common misspellings 2011-03-31 11:26:23 -03:00
perfmon_generic.h
perfmon_itanium.h
perfmon_mckinley.h
perfmon_montecito.h
process.c ACPI, intel_idle: Cleanup idle= internal variables 2011-01-12 12:47:30 -05:00
ptrace.c ptrace: change signature of arch_ptrace() 2010-10-27 18:03:10 -07:00
relocate_kernel.S percpu: make percpu symbols in ia64 unique 2009-10-29 22:34:14 +09:00
sal.c [IA64] Update check_sal_cache_flush to use platform_send_ipi() 2008-06-11 16:40:33 -07:00
salinfo.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
setup.c [IA64] Merge overlapping reserved regions at boot 2011-12-09 15:06:42 -08:00
sigframe.h
signal.c [IA64] Remove COMPAT_IA32 support 2010-02-08 10:42:17 -08:00
smp.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
smpboot.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
stacktrace.c [IA64] Add CONFIG_STACKTRACE_SUPPORT 2010-09-23 13:52:07 -07:00
sys_ia64.c Get rid of open-coding in ia64_brk() 2009-12-11 06:44:58 -05:00
time.c ia64: Replace clocksource.fsys_mmio with generic arch data 2011-07-14 17:57:09 -07:00
topology.c ia64: Add export.h to arch/ia64 specific files as required 2011-10-31 19:30:58 -04:00
traps.c [IA64] Remove COMPAT_IA32 support 2010-02-08 10:42:17 -08:00
unaligned.c [IA64] use __ratelimit 2010-05-18 14:45:54 -07:00
uncached.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
unwind.c [IA64] unwind - optimise linked-list searches for modules 2010-09-14 13:35:39 -07:00
unwind_decoder.c
unwind_i.h
vmlinux.lds.S [IA64] define "_sdata" symbol 2011-05-20 10:38:53 -07:00