|
@@ -307,30 +307,7 @@ void * __init __alloc_bootmem_node(pg_data_t *pgdat, unsigned long size,
|
|
|
void * __init __alloc_bootmem_node_high(pg_data_t *pgdat, unsigned long size,
|
|
|
unsigned long align, unsigned long goal)
|
|
|
{
|
|
|
-#ifdef MAX_DMA32_PFN
|
|
|
- unsigned long end_pfn;
|
|
|
-
|
|
|
- if (WARN_ON_ONCE(slab_is_available()))
|
|
|
- return kzalloc_node(size, GFP_NOWAIT, pgdat->node_id);
|
|
|
-
|
|
|
- /* update goal according ...MAX_DMA32_PFN */
|
|
|
- end_pfn = pgdat->node_start_pfn + pgdat->node_spanned_pages;
|
|
|
-
|
|
|
- if (end_pfn > MAX_DMA32_PFN + (128 >> (20 - PAGE_SHIFT)) &&
|
|
|
- (goal >> PAGE_SHIFT) < MAX_DMA32_PFN) {
|
|
|
- void *ptr;
|
|
|
- unsigned long new_goal;
|
|
|
-
|
|
|
- new_goal = MAX_DMA32_PFN << PAGE_SHIFT;
|
|
|
- ptr = __alloc_memory_core_early(pgdat->node_id, size, align,
|
|
|
- new_goal, -1ULL);
|
|
|
- if (ptr)
|
|
|
- return ptr;
|
|
|
- }
|
|
|
-#endif
|
|
|
-
|
|
|
return __alloc_bootmem_node(pgdat, size, align, goal);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_SPARSEMEM
|