diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-08-08 22:17:26 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-08-08 22:17:26 +0000 |
commit | 984760dbf5e48f6224dfe9e26e03536b3d38b6cd (patch) | |
tree | a99674322e524c4c90009b3bdae5fab0eebf2094 /arch/i386 | |
parent | a7ce7d5e94c98ef5b867f61b2ebecd563f4b6ec9 (diff) |
Merge with Linux 2.4.0-test6-pre8.
Diffstat (limited to 'arch/i386')
-rw-r--r-- | arch/i386/mm/init.c | 10 | ||||
-rw-r--r-- | arch/i386/mm/ioremap.c | 7 |
2 files changed, 7 insertions, 10 deletions
diff --git a/arch/i386/mm/init.c b/arch/i386/mm/init.c index af72d1581..9ba2baa31 100644 --- a/arch/i386/mm/init.c +++ b/arch/i386/mm/init.c @@ -566,8 +566,6 @@ void __init mem_init(void) #ifdef CONFIG_HIGHMEM highmem_start_page = mem_map + highstart_pfn; - /* cache the highmem_mapnr */ - highmem_mapnr = highstart_pfn; max_mapnr = num_physpages = highend_pfn; #else max_mapnr = num_physpages = max_low_pfn; @@ -642,8 +640,8 @@ void free_initmem(void) addr = (unsigned long)(&__init_begin); for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) { - ClearPageReserved(mem_map + MAP_NR(addr)); - set_page_count(mem_map+MAP_NR(addr), 1); + ClearPageReserved(virt_to_page(addr)); + set_page_count(virt_to_page(addr), 1); free_page(addr); totalram_pages++; } @@ -656,8 +654,8 @@ void free_initrd_mem(unsigned long start, unsigned long end) if (start < end) printk ("Freeing initrd memory: %ldk freed\n", (end - start) >> 10); for (; start < end; start += PAGE_SIZE) { - ClearPageReserved(mem_map + MAP_NR(start)); - set_page_count(mem_map+MAP_NR(start), 1); + ClearPageReserved(virt_to_page(start)); + set_page_count(virt_to_page(start), 1); free_page(start); totalram_pages++; } diff --git a/arch/i386/mm/ioremap.c b/arch/i386/mm/ioremap.c index cb4427672..ba5c2e7ba 100644 --- a/arch/i386/mm/ioremap.c +++ b/arch/i386/mm/ioremap.c @@ -121,15 +121,14 @@ void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flag */ if (phys_addr < virt_to_phys(high_memory)) { char *t_addr, *t_end; - int i; + struct page *page; t_addr = __va(phys_addr); t_end = t_addr + (size - 1); - for(i = MAP_NR(t_addr); i < MAP_NR(t_end); i++) { - if(!PageReserved(mem_map + i)) + for(page = virt_to_page(t_addr); page < virt_to_page(t_end); page++) + if(!PageReserved(page)) return NULL; - } } /* |