diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-03 11:15:05 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-03-03 11:15:05 -0500 |
commit | a626b46e17d0762d664ce471d40bc506b6e721ab (patch) | |
tree | 445f6ac655ea9247d2e27529f23ba02d0991fec0 /arch/x86/mm/init_32.c | |
parent | c1dcb4bb1e3e16e9baee578d9bb040e5fba1063e (diff) | |
parent | dce46a04d55d6358d2d4ab44a4946a19f9425fe2 (diff) |
Merge branch 'x86-bootmem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-bootmem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits)
early_res: Need to save the allocation name in drop_range_partial()
sparsemem: Fix compilation on PowerPC
early_res: Add free_early_partial()
x86: Fix non-bootmem compilation on PowerPC
core: Move early_res from arch/x86 to kernel/
x86: Add find_fw_memmap_area
Move round_up/down to kernel.h
x86: Make 32bit support NO_BOOTMEM
early_res: Enhance check_and_double_early_res
x86: Move back find_e820_area to e820.c
x86: Add find_early_area_size
x86: Separate early_res related code from e820.c
x86: Move bios page reserve early to head32/64.c
sparsemem: Put mem map for one node together.
sparsemem: Put usemap for one node together
x86: Make 64 bit use early_res instead of bootmem before slab
x86: Only call dma32_reserve_bootmem 64bit !CONFIG_NUMA
x86: Make early_node_mem get mem > 4 GB if possible
x86: Dynamically increase early_res array size
x86: Introduce max_early_res and early_res_count
...
Diffstat (limited to 'arch/x86/mm/init_32.c')
-rw-r--r-- | arch/x86/mm/init_32.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index 2226f2c70ea3..5cb3f0f54f47 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c | |||
@@ -750,6 +750,7 @@ static void __init zone_sizes_init(void) | |||
750 | free_area_init_nodes(max_zone_pfns); | 750 | free_area_init_nodes(max_zone_pfns); |
751 | } | 751 | } |
752 | 752 | ||
753 | #ifndef CONFIG_NO_BOOTMEM | ||
753 | static unsigned long __init setup_node_bootmem(int nodeid, | 754 | static unsigned long __init setup_node_bootmem(int nodeid, |
754 | unsigned long start_pfn, | 755 | unsigned long start_pfn, |
755 | unsigned long end_pfn, | 756 | unsigned long end_pfn, |
@@ -766,13 +767,14 @@ static unsigned long __init setup_node_bootmem(int nodeid, | |||
766 | printk(KERN_INFO " node %d bootmap %08lx - %08lx\n", | 767 | printk(KERN_INFO " node %d bootmap %08lx - %08lx\n", |
767 | nodeid, bootmap, bootmap + bootmap_size); | 768 | nodeid, bootmap, bootmap + bootmap_size); |
768 | free_bootmem_with_active_regions(nodeid, end_pfn); | 769 | free_bootmem_with_active_regions(nodeid, end_pfn); |
769 | early_res_to_bootmem(start_pfn<<PAGE_SHIFT, end_pfn<<PAGE_SHIFT); | ||
770 | 770 | ||
771 | return bootmap + bootmap_size; | 771 | return bootmap + bootmap_size; |
772 | } | 772 | } |
773 | #endif | ||
773 | 774 | ||
774 | void __init setup_bootmem_allocator(void) | 775 | void __init setup_bootmem_allocator(void) |
775 | { | 776 | { |
777 | #ifndef CONFIG_NO_BOOTMEM | ||
776 | int nodeid; | 778 | int nodeid; |
777 | unsigned long bootmap_size, bootmap; | 779 | unsigned long bootmap_size, bootmap; |
778 | /* | 780 | /* |
@@ -784,11 +786,13 @@ void __init setup_bootmem_allocator(void) | |||
784 | if (bootmap == -1L) | 786 | if (bootmap == -1L) |
785 | panic("Cannot find bootmem map of size %ld\n", bootmap_size); | 787 | panic("Cannot find bootmem map of size %ld\n", bootmap_size); |
786 | reserve_early(bootmap, bootmap + bootmap_size, "BOOTMAP"); | 788 | reserve_early(bootmap, bootmap + bootmap_size, "BOOTMAP"); |
789 | #endif | ||
787 | 790 | ||
788 | printk(KERN_INFO " mapped low ram: 0 - %08lx\n", | 791 | printk(KERN_INFO " mapped low ram: 0 - %08lx\n", |
789 | max_pfn_mapped<<PAGE_SHIFT); | 792 | max_pfn_mapped<<PAGE_SHIFT); |
790 | printk(KERN_INFO " low ram: 0 - %08lx\n", max_low_pfn<<PAGE_SHIFT); | 793 | printk(KERN_INFO " low ram: 0 - %08lx\n", max_low_pfn<<PAGE_SHIFT); |
791 | 794 | ||
795 | #ifndef CONFIG_NO_BOOTMEM | ||
792 | for_each_online_node(nodeid) { | 796 | for_each_online_node(nodeid) { |
793 | unsigned long start_pfn, end_pfn; | 797 | unsigned long start_pfn, end_pfn; |
794 | 798 | ||
@@ -806,6 +810,7 @@ void __init setup_bootmem_allocator(void) | |||
806 | bootmap = setup_node_bootmem(nodeid, start_pfn, end_pfn, | 810 | bootmap = setup_node_bootmem(nodeid, start_pfn, end_pfn, |
807 | bootmap); | 811 | bootmap); |
808 | } | 812 | } |
813 | #endif | ||
809 | 814 | ||
810 | after_bootmem = 1; | 815 | after_bootmem = 1; |
811 | } | 816 | } |