summaryrefslogtreecommitdiff
path: root/arch/x86/machine/pmap.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-01-10 00:06:26 +0100
committerRichard Braun <rbraun@sceen.net>2017-01-10 00:06:26 +0100
commita683a140d378aeef19b303384e2cfd9fbafc7375 (patch)
tree58dbf72aae89aa220616ab7204ee34fe7c417a37 /arch/x86/machine/pmap.c
parent35e2775c9f05fbe1d5e938de2ecf3416ea149bb1 (diff)
x86/pmap: actually allow removal on invalid mappings
Diffstat (limited to 'arch/x86/machine/pmap.c')
-rw-r--r--arch/x86/machine/pmap.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/machine/pmap.c b/arch/x86/machine/pmap.c
index 52d9c60..baa25b6 100644
--- a/arch/x86/machine/pmap.c
+++ b/arch/x86/machine/pmap.c
@@ -1251,6 +1251,10 @@ pmap_remove_local_single(struct pmap *pmap, unsigned long va)
pt_level = &pmap_pt_levels[level];
pte = &ptp[pmap_pte_index(va, pt_level)];
+ if (!pmap_pte_valid(*pte)) {
+ return;
+ }
+
if (level == 0) {
break;
}