Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm: don't use alloc_bootmem_low() where not strictly needed

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>

authored by

Jan Beulich and committed by
Linus Torvalds
3c1596ef 4481374c

+5 -5
+1 -1
arch/x86/kernel/e820.c
··· 1331 1331 struct resource *res; 1332 1332 u64 end; 1333 1333 1334 - res = alloc_bootmem_low(sizeof(struct resource) * e820.nr_map); 1334 + res = alloc_bootmem(sizeof(struct resource) * e820.nr_map); 1335 1335 e820_res = res; 1336 1336 for (i = 0; i < e820.nr_map; i++) { 1337 1337 end = e820.map[i].addr + e820.map[i].size - 1;
+2 -2
arch/x86/mm/init_32.c
··· 84 84 #ifdef CONFIG_X86_PAE 85 85 if (!(pgd_val(*pgd) & _PAGE_PRESENT)) { 86 86 if (after_bootmem) 87 - pmd_table = (pmd_t *)alloc_bootmem_low_pages(PAGE_SIZE); 87 + pmd_table = (pmd_t *)alloc_bootmem_pages(PAGE_SIZE); 88 88 else 89 89 pmd_table = (pmd_t *)alloc_low_page(); 90 90 paravirt_alloc_pmd(&init_mm, __pa(pmd_table) >> PAGE_SHIFT); ··· 116 116 #endif 117 117 if (!page_table) 118 118 page_table = 119 - (pte_t *)alloc_bootmem_low_pages(PAGE_SIZE); 119 + (pte_t *)alloc_bootmem_pages(PAGE_SIZE); 120 120 } else 121 121 page_table = (pte_t *)alloc_low_page(); 122 122
+1 -1
drivers/firmware/memmap.c
··· 164 164 { 165 165 struct firmware_map_entry *entry; 166 166 167 - entry = alloc_bootmem_low(sizeof(struct firmware_map_entry)); 167 + entry = alloc_bootmem(sizeof(struct firmware_map_entry)); 168 168 if (WARN_ON(!entry)) 169 169 return -ENOMEM; 170 170
+1 -1
kernel/power/snapshot.c
··· 619 619 BUG_ON(!region); 620 620 } else 621 621 /* This allocation cannot fail */ 622 - region = alloc_bootmem_low(sizeof(struct nosave_region)); 622 + region = alloc_bootmem(sizeof(struct nosave_region)); 623 623 region->start_pfn = start_pfn; 624 624 region->end_pfn = end_pfn; 625 625 list_add_tail(&region->list, &nosave_regions);