linux/arch/x86
Vladimir Berezniker b3ca74a2bf x86: sanitize user specified e820 memmap values
Sanitize user specified e820 memory ranges, using the same logic that is
applied to the values returned by the BIOS.  This ensures consistent
handling regardless of the source of the memory mappings.

Allows overriding portions of the memory map without specifying one in
it's entirety (memmap=exactmap).

E.g. marking a range of bad RAM as reserved with memmap=48M$528M

BIOS supplied range

BIOS-e820: 0000000000100000 - 000000007fe80000 (usable)

becomes

user: 0000000000100000 - 0000000021000000 (usable)
user: 0000000021000000 - 0000000024000000 (reserved)
user: 0000000024000000 - 000000007fe80000 (usable)

Previously this did not work, as the original BIOS range was left
untouched while the user defined range was appended to the end of the
memory map.

[ tglx: arch/x86 adaptation ]

Signed-off-by: Vladimir Berezniker <vmpn@hitechman.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-01-30 13:30:46 +01:00
..
boot x86 vDSO: absolute relocs 2008-01-30 13:30:42 +01:00
configs x86 gart: rename CONFIG_IOMMU to CONFIG_GART_IOMMU 2007-10-30 00:22:22 +01:00
crypto [CRYPTO] twofish: Merge common glue code 2008-01-14 17:07:57 +11:00
ia32 x86: TLS cleanup 2008-01-30 13:30:46 +01:00
kernel x86: sanitize user specified e820 memmap values 2008-01-30 13:30:46 +01:00
lguest x86: use u32 for some lapic functions 2008-01-30 13:30:15 +01:00
lib x86: disable preemption in delay_tsc() 2007-11-14 18:45:44 -08:00
mach-default spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
mach-es7000 i386: es7000 minor cleanups 2007-10-17 20:16:15 +02:00
mach-generic spelling fixes: arch/i386/ 2007-10-20 01:13:56 +02:00
mach-visws x86: cleanup mpspec variants 2008-01-30 13:30:35 +01:00
mach-voyager x86: cleanup tlbflush.h variants 2008-01-30 13:30:35 +01:00
math-emu x86: lindent arch/i386/math-emu, cleanup 2008-01-30 13:30:12 +01:00
mm x86: use core id bits for apicid_to_node initialization 2008-01-30 13:30:39 +01:00
oprofile Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
pci Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86 2007-11-26 19:41:28 -08:00
power i386: move power 2007-10-11 11:16:34 +02:00
vdso x86 vDSO: canonicalize sysenter .eh_frame 2008-01-30 13:30:44 +01:00
video i386: move video 2007-10-11 11:16:56 +02:00
xen x86 vDSO: consolidate vdso32 2008-01-30 13:30:43 +01:00
Kconfig x86 vDSO: consolidate vdso32 2008-01-30 13:30:43 +01:00
Kconfig.cpu x86: arch/x86/Kconfig.cpu unification 2007-11-12 21:02:19 +01:00
Kconfig.debug x86: make io_delay=0xed the default 2008-01-30 13:30:05 +01:00
Makefile x86: correctly set UTS_MACHINE for "make ARCH=x86" 2007-11-26 17:38:53 -08:00
Makefile_32 x86 vDSO: i386 vdso32 install 2008-01-30 13:30:42 +01:00
Makefile_32.cpu x86: move i386 and x86_64 Makefiles to arch/x86 2007-10-25 22:27:34 +02:00
Makefile_64 x86 vDSO: ia32 vsyscall removal 2008-01-30 13:30:44 +01:00