diff options
Diffstat (limited to 'arch/x86/kernel/setup.c')
| -rw-r--r-- | arch/x86/kernel/setup.c | 42 | 
1 files changed, 11 insertions, 31 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 9a9e40fb091..d05444ac2ae 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -306,7 +306,8 @@ static void __init cleanup_highmap(void)  static void __init reserve_brk(void)  {  	if (_brk_end > _brk_start) -		memblock_x86_reserve_range(__pa(_brk_start), __pa(_brk_end), "BRK"); +		memblock_reserve(__pa(_brk_start), +				 __pa(_brk_end) - __pa(_brk_start));  	/* Mark brk area as locked down and no longer taking any  	   new allocations */ @@ -331,13 +332,13 @@ static void __init relocate_initrd(void)  	ramdisk_here = memblock_find_in_range(0, end_of_lowmem, area_size,  					 PAGE_SIZE); -	if (ramdisk_here == MEMBLOCK_ERROR) +	if (!ramdisk_here)  		panic("Cannot find place for new RAMDISK of size %lld\n",  			 ramdisk_size);  	/* Note: this includes all the lowmem currently occupied by  	   the initrd, we rely on that fact to keep the data intact. */ -	memblock_x86_reserve_range(ramdisk_here, ramdisk_here + area_size, "NEW RAMDISK"); +	memblock_reserve(ramdisk_here, area_size);  	initrd_start = ramdisk_here + PAGE_OFFSET;  	initrd_end   = initrd_start + ramdisk_size;  	printk(KERN_INFO "Allocated new RAMDISK: %08llx - %08llx\n", @@ -393,7 +394,7 @@ static void __init reserve_initrd(void)  	initrd_start = 0;  	if (ramdisk_size >= (end_of_lowmem>>1)) { -		memblock_x86_free_range(ramdisk_image, ramdisk_end); +		memblock_free(ramdisk_image, ramdisk_end - ramdisk_image);  		printk(KERN_ERR "initrd too large to handle, "  		       "disabling initrd\n");  		return; @@ -416,7 +417,7 @@ static void __init reserve_initrd(void)  	relocate_initrd(); -	memblock_x86_free_range(ramdisk_image, ramdisk_end); +	memblock_free(ramdisk_image, ramdisk_end - ramdisk_image);  }  #else  static void __init reserve_initrd(void) @@ -490,15 +491,13 @@ static void __init memblock_x86_reserve_range_setup_data(void)  {  	struct setup_data *data;  	u64 pa_data; -	char buf[32];  	if (boot_params.hdr.version < 0x0209)  		return;  	pa_data = boot_params.hdr.setup_data;  	while (pa_data) {  		data = early_memremap(pa_data, sizeof(*data)); -		sprintf(buf, "setup data %x", data->type); -		memblock_x86_reserve_range(pa_data, pa_data+sizeof(*data)+data->len, buf); +		memblock_reserve(pa_data, sizeof(*data) + data->len);  		pa_data = data->next;  		early_iounmap(data, sizeof(*data));  	} @@ -554,7 +553,7 @@ static void __init reserve_crashkernel(void)  		crash_base = memblock_find_in_range(alignment,  			       CRASH_KERNEL_ADDR_MAX, crash_size, alignment); -		if (crash_base == MEMBLOCK_ERROR) { +		if (!crash_base) {  			pr_info("crashkernel reservation failed - No suitable area found.\n");  			return;  		} @@ -568,7 +567,7 @@ static void __init reserve_crashkernel(void)  			return;  		}  	} -	memblock_x86_reserve_range(crash_base, crash_base + crash_size, "CRASH KERNEL"); +	memblock_reserve(crash_base, crash_size);  	printk(KERN_INFO "Reserving %ldMB of memory at %ldMB "  			"for crashkernel (System RAM: %ldMB)\n", @@ -626,7 +625,7 @@ static __init void reserve_ibft_region(void)  	addr = find_ibft_region(&size);  	if (size) -		memblock_x86_reserve_range(addr, addr + size, "* ibft"); +		memblock_reserve(addr, size);  }  static unsigned reserve_low = CONFIG_X86_RESERVE_LOW << 10; @@ -691,8 +690,6 @@ early_param("reservelow", parse_reservelow);  void __init setup_arch(char **cmdline_p)  { -	unsigned long end_pfn; -  #ifdef CONFIG_X86_32  	memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data));  	visws_early_detect(); @@ -934,24 +931,7 @@ void __init setup_arch(char **cmdline_p)  	init_gbpages();  	/* max_pfn_mapped is updated here */ -	end_pfn = max_low_pfn; - -#ifdef CONFIG_X86_64 -	/* -	 * There may be regions after the last E820_RAM region that we -	 * want to include in the kernel direct mapping, such as -	 * EFI_RUNTIME_SERVICES_DATA. -	 */ -	if (efi_enabled) { -		unsigned long efi_end; - -		efi_end = e820_end_pfn(MAXMEM>>PAGE_SHIFT, E820_RESERVED_EFI); -		if (efi_end > max_low_pfn) -			end_pfn = efi_end; -	} -#endif - -	max_low_pfn_mapped = init_memory_mapping(0, end_pfn << PAGE_SHIFT); +	max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT);  	max_pfn_mapped = max_low_pfn_mapped;  #ifdef CONFIG_X86_64  |