Loading arch/x86/kernel/setup.c +58 −0 Original line number Diff line number Diff line Loading @@ -400,6 +400,64 @@ void __init parse_setup_data(void) } } /* * --------- Crashkernel reservation ------------------------------ */ #ifdef CONFIG_KEXEC static inline unsigned long long get_total_mem(void) { unsigned long long total; total = max_low_pfn - min_low_pfn; #ifdef CONFIG_HIGHMEM total += highend_pfn - highstart_pfn; #endif return total << PAGE_SHIFT; } void __init reserve_crashkernel(void) { unsigned long long total_mem; unsigned long long crash_size, crash_base; int ret; total_mem = get_total_mem(); ret = parse_crashkernel(boot_command_line, total_mem, &crash_size, &crash_base); if (ret == 0 && crash_size > 0) { if (crash_base <= 0) { printk(KERN_INFO "crashkernel reservation failed - " "you have to specify a base address\n"); return; } if (reserve_bootmem_generic(crash_base, crash_size, BOOTMEM_EXCLUSIVE) < 0) { printk(KERN_INFO "crashkernel reservation failed - " "memory is in use\n"); return; } printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " "for crashkernel (System RAM: %ldMB)\n", (unsigned long)(crash_size >> 20), (unsigned long)(crash_base >> 20), (unsigned long)(total_mem >> 20)); crashk_res.start = crash_base; crashk_res.end = crash_base + crash_size - 1; insert_resource(&iomem_resource, &crashk_res); } } #else void __init reserve_crashkernel(void) { } #endif /* * Determine if we were loaded by an EFI loader. If so, then we have also been * passed the efi memmap, systab, etc., so we should use these data structures Loading arch/x86/kernel/setup_percpu.c +0 −57 Original line number Diff line number Diff line Loading @@ -387,63 +387,6 @@ EXPORT_SYMBOL(node_to_cpumask); #endif /* X86_64_NUMA */ /* * --------- Crashkernel reservation ------------------------------ */ static inline unsigned long long get_total_mem(void) { unsigned long long total; total = max_low_pfn - min_low_pfn; #ifdef CONFIG_HIGHMEM total += highend_pfn - highstart_pfn; #endif return total << PAGE_SHIFT; } #ifdef CONFIG_KEXEC void __init reserve_crashkernel(void) { unsigned long long total_mem; unsigned long long crash_size, crash_base; int ret; total_mem = get_total_mem(); ret = parse_crashkernel(boot_command_line, total_mem, &crash_size, &crash_base); if (ret == 0 && crash_size > 0) { if (crash_base <= 0) { printk(KERN_INFO "crashkernel reservation failed - " "you have to specify a base address\n"); return; } if (reserve_bootmem_generic(crash_base, crash_size, BOOTMEM_EXCLUSIVE) < 0) { printk(KERN_INFO "crashkernel reservation failed - " "memory is in use\n"); return; } printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " "for crashkernel (System RAM: %ldMB)\n", (unsigned long)(crash_size >> 20), (unsigned long)(crash_base >> 20), (unsigned long)(total_mem >> 20)); crashk_res.start = crash_base; crashk_res.end = crash_base + crash_size - 1; insert_resource(&iomem_resource, &crashk_res); } } #else void __init reserve_crashkernel(void) {} #endif static struct resource standard_io_resources[] = { { .name = "dma1", .start = 0x00, .end = 0x1f, .flags = IORESOURCE_BUSY | IORESOURCE_IO }, Loading Loading
arch/x86/kernel/setup.c +58 −0 Original line number Diff line number Diff line Loading @@ -400,6 +400,64 @@ void __init parse_setup_data(void) } } /* * --------- Crashkernel reservation ------------------------------ */ #ifdef CONFIG_KEXEC static inline unsigned long long get_total_mem(void) { unsigned long long total; total = max_low_pfn - min_low_pfn; #ifdef CONFIG_HIGHMEM total += highend_pfn - highstart_pfn; #endif return total << PAGE_SHIFT; } void __init reserve_crashkernel(void) { unsigned long long total_mem; unsigned long long crash_size, crash_base; int ret; total_mem = get_total_mem(); ret = parse_crashkernel(boot_command_line, total_mem, &crash_size, &crash_base); if (ret == 0 && crash_size > 0) { if (crash_base <= 0) { printk(KERN_INFO "crashkernel reservation failed - " "you have to specify a base address\n"); return; } if (reserve_bootmem_generic(crash_base, crash_size, BOOTMEM_EXCLUSIVE) < 0) { printk(KERN_INFO "crashkernel reservation failed - " "memory is in use\n"); return; } printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " "for crashkernel (System RAM: %ldMB)\n", (unsigned long)(crash_size >> 20), (unsigned long)(crash_base >> 20), (unsigned long)(total_mem >> 20)); crashk_res.start = crash_base; crashk_res.end = crash_base + crash_size - 1; insert_resource(&iomem_resource, &crashk_res); } } #else void __init reserve_crashkernel(void) { } #endif /* * Determine if we were loaded by an EFI loader. If so, then we have also been * passed the efi memmap, systab, etc., so we should use these data structures Loading
arch/x86/kernel/setup_percpu.c +0 −57 Original line number Diff line number Diff line Loading @@ -387,63 +387,6 @@ EXPORT_SYMBOL(node_to_cpumask); #endif /* X86_64_NUMA */ /* * --------- Crashkernel reservation ------------------------------ */ static inline unsigned long long get_total_mem(void) { unsigned long long total; total = max_low_pfn - min_low_pfn; #ifdef CONFIG_HIGHMEM total += highend_pfn - highstart_pfn; #endif return total << PAGE_SHIFT; } #ifdef CONFIG_KEXEC void __init reserve_crashkernel(void) { unsigned long long total_mem; unsigned long long crash_size, crash_base; int ret; total_mem = get_total_mem(); ret = parse_crashkernel(boot_command_line, total_mem, &crash_size, &crash_base); if (ret == 0 && crash_size > 0) { if (crash_base <= 0) { printk(KERN_INFO "crashkernel reservation failed - " "you have to specify a base address\n"); return; } if (reserve_bootmem_generic(crash_base, crash_size, BOOTMEM_EXCLUSIVE) < 0) { printk(KERN_INFO "crashkernel reservation failed - " "memory is in use\n"); return; } printk(KERN_INFO "Reserving %ldMB of memory at %ldMB " "for crashkernel (System RAM: %ldMB)\n", (unsigned long)(crash_size >> 20), (unsigned long)(crash_base >> 20), (unsigned long)(total_mem >> 20)); crashk_res.start = crash_base; crashk_res.end = crash_base + crash_size - 1; insert_resource(&iomem_resource, &crashk_res); } } #else void __init reserve_crashkernel(void) {} #endif static struct resource standard_io_resources[] = { { .name = "dma1", .start = 0x00, .end = 0x1f, .flags = IORESOURCE_BUSY | IORESOURCE_IO }, Loading