summaryrefslogtreecommitdiffstats
path: root/arch/mips/mm/umap.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-01-27 01:05:20 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-01-27 01:05:20 +0000
commit546db14ee74118296f425f3b91634fb767d67290 (patch)
tree22b613a3da8d4bf663eec5e155af01b87fdf9094 /arch/mips/mm/umap.c
parent1e25e41c4f5474e14452094492dbc169b800e4c8 (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.c14
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;