mm: don't use alloc_bootmem_low() where not strictly needed
authorJan Beulich <JBeulich@novell.com>
Tue, 22 Sep 2009 00:03:06 +0000 (17:03 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Sep 2009 14:17:38 +0000 (07:17 -0700)
Since alloc_bootmem() will never return inaccessible (via virtual
addressing) memory anyway, using the ..._low() variant only makes sense
when the physical address range of the allocated memory must fulfill
further constraints, espacially since on 64-bits (or more generally in all
cases where the pools the two variants allocate from are than the full
available range.

Probably the use in alloc_tce_table() could also be eliminated (based on
code inspection of pci-calgary_64.c), but that seems too risky given I
know nothing about that hardware and have no way to test it.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/kernel/e820.c
arch/x86/mm/init_32.c
drivers/firmware/memmap.c
kernel/power/snapshot.c

index a3210ce1eccd4c0c8ef4e541d583ac6b839c7cca..85419bb7d4ab5c0e72f479c834a61d582f887d19 100644 (file)
@@ -1331,7 +1331,7 @@ void __init e820_reserve_resources(void)
        struct resource *res;
        u64 end;
 
-       res = alloc_bootmem_low(sizeof(struct resource) * e820.nr_map);
+       res = alloc_bootmem(sizeof(struct resource) * e820.nr_map);
        e820_res = res;
        for (i = 0; i < e820.nr_map; i++) {
                end = e820.map[i].addr + e820.map[i].size - 1;
index 95e877f5b846ba02e2d6c5cebfb14e1f6822a70b..b49b4f67453dbf6c3843cff30e25a0e23661fa51 100644 (file)
@@ -84,7 +84,7 @@ static pmd_t * __init one_md_table_init(pgd_t *pgd)
 #ifdef CONFIG_X86_PAE
        if (!(pgd_val(*pgd) & _PAGE_PRESENT)) {
                if (after_bootmem)
-                       pmd_table = (pmd_t *)alloc_bootmem_low_pages(PAGE_SIZE);
+                       pmd_table = (pmd_t *)alloc_bootmem_pages(PAGE_SIZE);
                else
                        pmd_table = (pmd_t *)alloc_low_page();
                paravirt_alloc_pmd(&init_mm, __pa(pmd_table) >> PAGE_SHIFT);
@@ -116,7 +116,7 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
 #endif
                        if (!page_table)
                                page_table =
-                               (pte_t *)alloc_bootmem_low_pages(PAGE_SIZE);
+                               (pte_t *)alloc_bootmem_pages(PAGE_SIZE);
                } else
                        page_table = (pte_t *)alloc_low_page();
 
index d5ea8a68d338ef80996d20dd0bbbf4e27d3fafc0..56f9234781faadc4cbb38813ffefa8d77b781ebe 100644 (file)
@@ -164,7 +164,7 @@ int __init firmware_map_add_early(u64 start, u64 end, const char *type)
 {
        struct firmware_map_entry *entry;
 
-       entry = alloc_bootmem_low(sizeof(struct firmware_map_entry));
+       entry = alloc_bootmem(sizeof(struct firmware_map_entry));
        if (WARN_ON(!entry))
                return -ENOMEM;
 
index 97955b0e44f453969c8652b49d06d6d861aa62b6..36cb168e4330936a9120691fd19e80ddb8d2db9d 100644 (file)
@@ -619,7 +619,7 @@ __register_nosave_region(unsigned long start_pfn, unsigned long end_pfn,
                BUG_ON(!region);
        } else
                /* This allocation cannot fail */
-               region = alloc_bootmem_low(sizeof(struct nosave_region));
+               region = alloc_bootmem(sizeof(struct nosave_region));
        region->start_pfn = start_pfn;
        region->end_pfn = end_pfn;
        list_add_tail(&region->list, &nosave_regions);