|
@@ -17,6 +17,7 @@
|
|
|
#include <linux/initrd.h>
|
|
|
#include <linux/memblock.h>
|
|
|
#include <linux/swap.h>
|
|
|
+#include <linux/sizes.h>
|
|
|
|
|
|
#include <asm/tlbflush.h>
|
|
|
#include <asm/sections.h>
|
|
@@ -25,11 +26,12 @@
|
|
|
|
|
|
static void __init zone_sizes_init(void)
|
|
|
{
|
|
|
- unsigned long zones_size[MAX_NR_ZONES];
|
|
|
+ unsigned long max_zone_pfns[MAX_NR_ZONES] = { 0, };
|
|
|
|
|
|
- memset(zones_size, 0, sizeof(zones_size));
|
|
|
- zones_size[ZONE_NORMAL] = max_mapnr;
|
|
|
- free_area_init_node(0, zones_size, pfn_base, NULL);
|
|
|
+ max_zone_pfns[ZONE_DMA32] = PFN_DOWN(min(4UL * SZ_1G, max_low_pfn));
|
|
|
+ max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
|
|
|
+
|
|
|
+ free_area_init_nodes(max_zone_pfns);
|
|
|
}
|
|
|
|
|
|
void setup_zero_page(void)
|