linux_dsm_epyc7002/arch/arm/kernel
Lennert Buytenhek 60296c71f6 [ARM] prevent crashing when too much RAM installed
This patch will truncate and/or ignore memory banks if their kernel
direct mappings would (partially) overlap with the vmalloc area or
the mappings between the vmalloc area and the address space top, to
prevent crashing during early boot if there happens to be more RAM
installed than we are expecting.

Since the start of the vmalloc area is not at a fixed address (but
the vmalloc end address is, via the per-platform VMALLOC_END define),
a default area of 128M is reserved for vmalloc mappings, which can
be shrunk or enlarged by passing an appropriate vmalloc= command line
option as it is done on x86.

On a board with a 3:1 user:kernel split, VMALLOC_END at 0xfe000000,
two 512M RAM banks and vmalloc=128M (the default), this patch gives:

	Truncating RAM at 20000000-3fffffff to -35ffffff (vmalloc region overlap).
	Memory: 512MB 352MB = 864MB total

On a board with a 3:1 user:kernel split, VMALLOC_END at 0xfe800000,
two 256M RAM banks and vmalloc=768M, this patch gives:

	Truncating RAM at 00000000-0fffffff to -0e7fffff (vmalloc region overlap).
	Ignoring RAM at 10000000-1fffffff (vmalloc region overlap).

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Tested-by: Riku Voipio <riku.voipio@iki.fi>
2008-08-09 15:38:15 +02:00
..
armksyms.c ftrace: store mcount address in rec->ip 2008-06-23 22:10:56 +02:00
arthur.c [ARM] arm/kernel/arthur.c: add MODULE_LICENSE 2008-05-17 22:55:16 +01:00
asm-offsets.c arm: use kbuild.h instead of macros in asm-offsets.c 2008-04-29 08:06:29 -07:00
atags.c clean up atags exporting code 2008-05-30 10:33:49 +02:00
atags.h [ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags 2008-02-04 13:21:03 +00:00
bios32.c [ARM] 4577/1: ITE 8152 PCI bridge support 2007-10-15 18:53:59 +01:00
calls.S Merge branch 'omap2-upstream' into devel 2008-04-19 17:17:29 +01:00
compat.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
compat.h [ARM] 3365/1: [cleanup] header for compat.c exported functions 2006-03-15 23:17:30 +00:00
crunch-bits.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
crunch.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
debug.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
dma-isa.c [ARM] ARRAY_SIZE() cleanup 2008-01-26 14:49:57 +00:00
dma.c [ARM] Export dma_channel_active() 2007-03-31 21:36:53 +01:00
ecard.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
ecard.h [ARM] rpc: ecard: remove deprecated ecard_address() and relatives 2008-07-03 14:25:58 +01:00
entry-armv.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
entry-common.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
entry-header.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fiq.c [ARM] 3692/1: ARM: coswitch irq handling to the generic implementation 2006-07-01 22:30:09 +01:00
ftrace.c ftrace: store mcount address in rec->ip 2008-06-23 22:10:56 +02:00
head-common.S [ARM] move include/asm-arm to arch/arm/include/asm 2008-08-02 21:32:35 +01:00
head-nommu.S [ARM] Eliminate useless includes of asm/mach-types.h 2008-08-07 09:40:04 +01:00
head.S [ARM] 4849/1: move ATAGS asm definitions 2008-03-06 12:18:18 +00:00
init_task.c [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
io.c [ARM] Fix compiler warnings for memcpy_toio/memcpy_fromio/memset_io 2005-09-24 10:42:06 +01:00
irq.c [ARM] Fix circular include dependency with IRQ headers 2008-08-07 09:39:37 +01:00
isa.c [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
iwmmxt.S [ARM] 3707/1: iwmmxt: use the generic thread notifier infrastructure 2006-07-01 19:56:48 +01:00
kgdb.c kgdb: support for ARCH=arm 2008-07-23 11:30:15 -05:00
kprobes-decode.c kprobes/arm: fix decoding of arithmetic immediate instructions 2008-04-28 15:54:55 -04:00
kprobes.c kprobes: improve kretprobe scalability with hashed locking 2008-07-25 10:53:30 -07:00
machine_kexec.c [ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags 2008-02-04 13:21:03 +00:00
Makefile kgdb: support for ARCH=arm 2008-07-23 11:30:15 -05:00
module.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
process.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
ptrace.c Use helpers to obtain task pid in printks (arch code) 2007-10-19 11:53:43 -07:00
ptrace.h [ARM] ptrace: clean up single stepping support 2007-04-21 20:34:58 +01:00
relocate_kernel.S [ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags 2008-02-04 13:21:03 +00:00
setup.c [ARM] prevent crashing when too much RAM installed 2008-08-09 15:38:15 +02:00
signal.c [ARM] 4870/1: fix signal return code when enable CONFIG_OABI_COMPAT 2008-03-20 15:59:31 +00:00
signal.h [ARM] nommu: fixups for the exception vectors 2006-03-27 15:18:50 +01:00
smp.c on_each_cpu(): kill unused 'retry' parameter 2008-06-26 11:24:38 +02:00
stacktrace.c Merge branch 'core/stacktrace' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-07-15 10:31:35 -07:00
stacktrace.h [ARM] Add stacktrace support and make oprofile use it 2007-04-28 09:59:37 +01:00
sys_arm.c unified (weak) sys_pipe implementation 2008-05-03 13:50:33 -07:00
sys_oabi-compat.c [ARM] 4878/1: Add oabi shim for fstatat64 2008-03-28 15:00:46 +00:00
thumbee.c ARMv7: Add support for the ThumbEE state saving/restoring 2008-04-18 22:43:06 +01:00
time.c sysdev: Pass the attribute to the low level sysdev show/store function 2008-07-21 21:55:02 -07:00
traps.c kgdb: support for ARCH=arm 2008-07-23 11:30:15 -05:00
vmlinux.lds.S all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
xscale-cp0.c [ARM] 3881/4: xscale: clean up cp0/cp1 handling 2006-12-03 17:52:22 +00:00