linux-hardened/arch
Magnus Damm cee87af2a5 [IA64] kexec: Use EFI_LOADER_DATA for ELF core header
The address where the ELF core header is stored is passed to the secondary
kernel as a kernel command line option.  The memory area for this header is
also marked as a separate EFI memory descriptor on ia64.

The separate EFI memory descriptor is at the moment of the type
EFI_UNUSABLE_MEMORY.  With such a type the secondary kernel skips over the
entire memory granule (config option, 16M or 64M) when detecting memory.
If we are lucky we will just lose some memory, but if we happen to have
data in the same granule (such as an initramfs image), then this data will
never get mapped and the kernel bombs out when trying to access it.

So this is an attempt to fix this by changing the EFI memory descriptor
type into EFI_LOADER_DATA.  This type is the same type used for the kernel
data and for initramfs.  In the secondary kernel we then handle the ELF
core header data the same way as we handle the initramfs image.

This patch contains the kernel changes to make this happen.  Pretty
straightforward, we reserve the area in reserve_memory().  The address for
the area comes from the kernel command line and the size comes from the
specialized EFI parsing function vmcore_find_descriptor_size().

The kexec-tools-testing code for this can be found here:
http://lists.osdl.org/pipermail/fastboot/2007-February/005983.html

Signed-off-by: Magnus Damm <magnus@valinux.co.jp>
Cc: Simon Horman <horms@verge.net.au>
Cc: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2007-03-06 14:50:33 -08:00
..
alpha [PATCH] Dynamic kernel command-line: alpha 2007-02-12 09:48:37 -08:00
arm [PATCH] add CONFIG_GENERIC_GPIO 2007-03-05 07:57:51 -08:00
arm26 [PATCH] arch/arm26/kernel/entry.S: remove dead code 2007-03-01 14:53:35 -08:00
avr32 [PATCH] add CONFIG_GENERIC_GPIO 2007-03-05 07:57:51 -08:00
cris [PATCH] fix memory leak in dma_declare_coherent_memory() 2007-03-01 14:53:39 -08:00
frv [PATCH] FRV: No ZONE_DMA 2007-03-01 14:53:36 -08:00
h8300 [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
i386 [PATCH] paravirt: re-enable COMPAT_VDSO 2007-03-05 08:34:25 -08:00
ia64 [IA64] kexec: Use EFI_LOADER_DATA for ELF core header 2007-03-06 14:50:33 -08:00
m32r Various typo fixes. 2007-02-17 19:07:33 +01:00
m68k [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
m68knommu [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
mips [MIPS] MTX1: clear PCI errors 2007-03-04 19:02:45 +00:00
parisc [PARISC] clocksource: Move update_cr16_clocksource later in boot 2007-02-26 22:21:22 -05:00
powerpc [PATCH] msi: sanely support hardware level msi disabling 2007-03-05 07:57:50 -08:00
ppc [NET] Eliminate user-selectable CONFIG_MV643XX_ETH_[012] 2007-02-20 17:11:55 +00:00
s390 [S390] Replace $(ARCH) macros in Makefile 2007-02-21 10:55:46 +01:00
sh Storage class should be before const qualifier 2007-02-17 20:11:19 +01:00
sh64 [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
sparc [SPARC]: Provide pci_device_to_OF_node() just like powerpc. 2007-03-02 15:22:51 -08:00
sparc64 [SPARC]: Provide pci_device_to_OF_node() just like powerpc. 2007-03-02 15:22:51 -08:00
um [PATCH] uml: host VDSO fix 2007-03-01 14:53:38 -08:00
v850 kbuild: Replace remaining "depends" with "depends on" 2007-02-17 19:05:24 +01:00
x86_64 [PATCH] clocksource init adjustments (fix bug #7426) 2007-03-05 07:57:53 -08:00
xtensa [PATCH] Dynamic kernel command-line: xtensa 2007-02-12 09:48:39 -08:00