diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-01-27 01:05:20 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-01-27 01:05:20 +0000 |
commit | 546db14ee74118296f425f3b91634fb767d67290 (patch) | |
tree | 22b613a3da8d4bf663eec5e155af01b87fdf9094 /arch/mips/mm/umap.c | |
parent | 1e25e41c4f5474e14452094492dbc169b800e4c8 (diff) |
Merge with Linux 2.3.23. The new bootmem stuff has broken various
platforms. At this time I've only verified that IP22 support compiles
and IP27 actually works.
Diffstat (limited to 'arch/mips/mm/umap.c')
-rw-r--r-- | arch/mips/mm/umap.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/mips/mm/umap.c b/arch/mips/mm/umap.c index 7ce0d8e5a..73b5d643d 100644 --- a/arch/mips/mm/umap.c +++ b/arch/mips/mm/umap.c @@ -114,16 +114,16 @@ void *vmalloc_uncached (unsigned long size) static inline void free_pte(pte_t page) { if (pte_present(page)) { - unsigned long addr = pte_page(page); - if (MAP_NR(addr) >= max_mapnr || PageReserved(mem_map+MAP_NR(addr))) + unsigned long nr = pte_pagenr(page); + if (nr >= max_mapnr || PageReserved(mem_map+nr)) return; - free_page(addr); + __free_page(pte_page(page)); if (current->mm->rss <= 0) return; current->mm->rss--; return; } - swap_free(pte_val(page)); + swap_free(page); } static inline void forget_pte(pte_t page) @@ -152,15 +152,15 @@ vmap_pte_range (pte_t *pte, unsigned long address, unsigned long size, unsigned end = PMD_SIZE; do { pte_t oldpage = *pte; - unsigned long page; + struct page * page; pte_clear(pte); vdir = pgd_offset_k (vaddr); vpmd = pmd_offset (vdir, vaddr); vpte = pte_offset (vpmd, vaddr); page = pte_page (*vpte); - - set_pte(pte, mk_pte_phys(page, PAGE_USERIO)); + + set_pte(pte, mk_pte(page, PAGE_USERIO)); forget_pte(oldpage); address += PAGE_SIZE; vaddr += PAGE_SIZE; |