x86: correct the conversion of EFI memory types
authorCliff Wickman <cpw@sgi.com>
Tue, 16 Jun 2009 21:43:40 +0000 (16:43 -0500)
committerH. Peter Anvin <hpa@zytor.com>
Wed, 17 Jun 2009 00:47:32 +0000 (17:47 -0700)
commite2a7147640a54eb812c8ab5f3ee4424b92db4856
tree1c0a7fd16a048114ebb0050419f2835afd0ed800
parent95ee14e4379c5e19c0897c872350570402014742
x86: correct the conversion of EFI memory types

This patch causes all the EFI_RESERVED_TYPE memory reservations to be recorded
in the e820 table as type E820_RESERVED.

(This patch replaces one called 'x86: vendor reserved memory type'.
 This version has been discussed a bit with Peter and Yinghai but not given
 a final opinion.)

Without this patch EFI_RESERVED_TYPE memory reservations may be
marked usable in the e820 table. There may be a collision between
kernel use and some reserver's use of this memory.

(An example use of this functionality is the UV system, which
 will access extremely large areas of memory with a memory engine
 that allows a user to address beyond the processor's range.  Such
 areas are reserved in the EFI table by the BIOS.
 Some loaders have a restricted number of entries possible in the e820 table,
 hence the need to record the reservations in the unrestricted EFI table.)

The call to do_add_efi_memmap() is only made if "add_efi_memmap" is specified
on the kernel command line.

Signed-off-by: Cliff Wickman <cpw@sgi.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/kernel/efi.c