|
@@ -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
|
|
|
}
|
|
|
|
|
|
/*
|