summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-12-02 21:52:52 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-12-02 21:52:52 +0000
commita24544405b2021bf1b305e8af8fb5f835e1f95aa (patch)
tree2922161d27231706a05455f57c3e43aa68d3f374 /arch
parent293f38b839c1b9ac71dbf14ae9575a017e7406ae (diff)
Partial fix for the vmalloc bug.
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/mm/fault.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index 5d9ecbc4d..ed3d2a2ac 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -220,6 +220,14 @@ vmalloc_fault:
if (!pgd_present(*pgd_k))
goto bad_area_nosemaphore;
set_pgd(pgd, *pgd_k);
+ return;
}
+
+ pmd = pmd_offset(pgd, address);
+ pmd_k = pmd_offset(pgd_k, address);
+
+ if (pmd_present(*pmd) || !pmd_present(*pmd_k))
+ goto bad_area_nosemaphore;
+ set_pmd(pmd, *pmd_k);
}
}