diff options
Diffstat (limited to 'arch/um/kernel/mem.c')
| -rw-r--r-- | arch/um/kernel/mem.c | 26 | 
1 files changed, 4 insertions, 22 deletions
diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c index 5abcbfbe7e2..9df292b270a 100644 --- a/arch/um/kernel/mem.c +++ b/arch/um/kernel/mem.c @@ -42,17 +42,12 @@ static unsigned long brk_end;  static void setup_highmem(unsigned long highmem_start,  			  unsigned long highmem_len)  { -	struct page *page;  	unsigned long highmem_pfn;  	int i;  	highmem_pfn = __pa(highmem_start) >> PAGE_SHIFT; -	for (i = 0; i < highmem_len >> PAGE_SHIFT; i++) { -		page = &mem_map[highmem_pfn + i]; -		ClearPageReserved(page); -		init_page_count(page); -		__free_page(page); -	} +	for (i = 0; i < highmem_len >> PAGE_SHIFT; i++) +		free_highmem_page(&mem_map[highmem_pfn + i]);  }  #endif @@ -73,18 +68,13 @@ void __init mem_init(void)  	totalram_pages = free_all_bootmem();  	max_low_pfn = totalram_pages;  #ifdef CONFIG_HIGHMEM -	totalhigh_pages = highmem >> PAGE_SHIFT; -	totalram_pages += totalhigh_pages; +	setup_highmem(end_iomem, highmem);  #endif  	num_physpages = totalram_pages;  	max_pfn = totalram_pages;  	printk(KERN_INFO "Memory: %luk available\n",  	       nr_free_pages() << (PAGE_SHIFT-10));  	kmalloc_ok = 1; - -#ifdef CONFIG_HIGHMEM -	setup_highmem(end_iomem, highmem); -#endif  }  /* @@ -254,15 +244,7 @@ void free_initmem(void)  #ifdef CONFIG_BLK_DEV_INITRD  void free_initrd_mem(unsigned long start, unsigned long end)  { -	if (start < end) -		printk(KERN_INFO "Freeing initrd memory: %ldk freed\n", -		       (end - start) >> 10); -	for (; start < end; start += PAGE_SIZE) { -		ClearPageReserved(virt_to_page(start)); -		init_page_count(virt_to_page(start)); -		free_page(start); -		totalram_pages++; -	} +	free_reserved_area(start, end, 0, "initrd");  }  #endif  |