diff options
Diffstat (limited to 'arch/x86/kernel/e820.c')
-rw-r--r-- | arch/x86/kernel/e820.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 7b7685b78852..fa77cb4185c3 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
@@ -828,16 +828,26 @@ void __init free_early(u64 start, u64 end) | |||
828 | 828 | ||
829 | void __init early_res_to_bootmem(u64 start, u64 end) | 829 | void __init early_res_to_bootmem(u64 start, u64 end) |
830 | { | 830 | { |
831 | int i; | 831 | int i, count; |
832 | u64 final_start, final_end; | 832 | u64 final_start, final_end; |
833 | for (i = 0; i < MAX_EARLY_RES && early_res[i].end; i++) { | 833 | |
834 | count = 0; | ||
835 | for (i = 0; i < MAX_EARLY_RES && early_res[i].end; i++) | ||
836 | count++; | ||
837 | |||
838 | printk(KERN_INFO "(%d early reservations) ==> bootmem\n", count); | ||
839 | for (i = 0; i < count; i++) { | ||
834 | struct early_res *r = &early_res[i]; | 840 | struct early_res *r = &early_res[i]; |
841 | printk(KERN_INFO " #%d [ %010llx - %010llx ] %16s", i, | ||
842 | r->start, r->end, r->name); | ||
835 | final_start = max(start, r->start); | 843 | final_start = max(start, r->start); |
836 | final_end = min(end, r->end); | 844 | final_end = min(end, r->end); |
837 | if (final_start >= final_end) | 845 | if (final_start >= final_end) { |
846 | printk(KERN_CONT "\n"); | ||
838 | continue; | 847 | continue; |
839 | printk(KERN_INFO " early res: %d [%llx-%llx] %s\n", i, | 848 | } |
840 | final_start, final_end - 1, r->name); | 849 | printk(KERN_CONT " ===> [ %010llx - %010llx ]\n", |
850 | final_start, final_end); | ||
841 | reserve_bootmem_generic(final_start, final_end - final_start, | 851 | reserve_bootmem_generic(final_start, final_end - final_start, |
842 | BOOTMEM_DEFAULT); | 852 | BOOTMEM_DEFAULT); |
843 | } | 853 | } |