aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/kernel/setup.c')
-rw-r--r--arch/i386/kernel/setup.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c
index f1682206d304..16d99444cf66 100644
--- a/arch/i386/kernel/setup.c
+++ b/arch/i386/kernel/setup.c
@@ -53,6 +53,7 @@
53#include <asm/apic.h> 53#include <asm/apic.h>
54#include <asm/e820.h> 54#include <asm/e820.h>
55#include <asm/mpspec.h> 55#include <asm/mpspec.h>
56#include <asm/mmzone.h>
56#include <asm/setup.h> 57#include <asm/setup.h>
57#include <asm/arch_hooks.h> 58#include <asm/arch_hooks.h>
58#include <asm/sections.h> 59#include <asm/sections.h>
@@ -934,6 +935,24 @@ static void __init parse_cmdline_early (char ** cmdline_p)
934} 935}
935 936
936/* 937/*
938 * reservetop=size reserves a hole at the top of the kernel address space which
939 * a hypervisor can load into later. Needed for dynamically loaded hypervisors,
940 * so relocating the fixmap can be done before paging initialization.
941 */
942static int __init parse_reservetop(char *arg)
943{
944 unsigned long address;
945
946 if (!arg)
947 return -EINVAL;
948
949 address = memparse(arg, &arg);
950 reserve_top_address(address);
951 return 0;
952}
953early_param("reservetop", parse_reservetop);
954
955/*
937 * Callback for efi_memory_walk. 956 * Callback for efi_memory_walk.
938 */ 957 */
939static int __init 958static int __init
@@ -1181,7 +1200,7 @@ static unsigned long __init setup_memory(void)
1181 1200
1182void __init zone_sizes_init(void) 1201void __init zone_sizes_init(void)
1183{ 1202{
1184 unsigned long zones_size[MAX_NR_ZONES] = {0, 0, 0}; 1203 unsigned long zones_size[MAX_NR_ZONES] = { 0, };
1185 unsigned int max_dma, low; 1204 unsigned int max_dma, low;
1186 1205
1187 max_dma = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT; 1206 max_dma = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT;
@@ -1258,7 +1277,7 @@ void __init setup_bootmem_allocator(void)
1258 */ 1277 */
1259 find_smp_config(); 1278 find_smp_config();
1260#endif 1279#endif
1261 1280 numa_kva_reserve();
1262#ifdef CONFIG_BLK_DEV_INITRD 1281#ifdef CONFIG_BLK_DEV_INITRD
1263 if (LOADER_TYPE && INITRD_START) { 1282 if (LOADER_TYPE && INITRD_START) {
1264 if (INITRD_START + INITRD_SIZE <= (max_low_pfn << PAGE_SHIFT)) { 1283 if (INITRD_START + INITRD_SIZE <= (max_low_pfn << PAGE_SHIFT)) {