arch/um/kernel/mem.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) Index: linux-2.6-uml/arch/um/kernel/mem.c =================================================================== --- linux-2.6-uml.orig/arch/um/kernel/mem.c 2006-02-06 07:29:44.000000000 +0100 +++ linux-2.6-uml/arch/um/kernel/mem.c 2006-02-06 07:30:00.000000000 +0100 @@ -228,13 +228,16 @@ void paging_init(void) { unsigned long zones_size[MAX_NR_ZONES], vaddr; + unsigned long lowmem; int i; empty_zero_page = (unsigned long *) alloc_bootmem_low_pages(PAGE_SIZE); empty_bad_page = (unsigned long *) alloc_bootmem_low_pages(PAGE_SIZE); for(i=0;i> PAGE_SHIFT) - (uml_physmem >> PAGE_SHIFT); + lowmem = (end_iomem >> PAGE_SHIFT) - (uml_physmem >> PAGE_SHIFT); + zones_size[ZONE_DMA] = (lowmem / 4) & ~((1 << MAX_ORDER) - 1); + zones_size[ZONE_NORMAL] = lowmem - zones_size[ZONE_DMA]; zones_size[ZONE_HIGHMEM] = highmem >> PAGE_SHIFT; free_area_init(zones_size);