diff options
author | Jeff Dike <jdike@addtoit.com> | 2005-09-03 18:57:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 03:06:24 -0400 |
commit | 7ef939054139ef857cebbec07cbd12d7cf7beedd (patch) | |
tree | c6e1c0722336b6155b0f7cf985b2ea4eb9c5d9e1 /include/asm-um/pgtable-3level.h | |
parent | f9dfefe423a7633d81310c7b06c5566c74f9167b (diff) |
[PATCH] uml: fix x86_64 page leak
We were leaking pmd pages when 3_LEVEL_PGTABLES was enabled. This fixes that.
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-um/pgtable-3level.h')
-rw-r--r-- | include/asm-um/pgtable-3level.h | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/include/asm-um/pgtable-3level.h b/include/asm-um/pgtable-3level.h index 32cd6236f245..786c25727289 100644 --- a/include/asm-um/pgtable-3level.h +++ b/include/asm-um/pgtable-3level.h | |||
@@ -69,14 +69,11 @@ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) | |||
69 | return pmd; | 69 | return pmd; |
70 | } | 70 | } |
71 | 71 | ||
72 | static inline void pmd_free(pmd_t *pmd){ | 72 | extern inline void pud_clear (pud_t *pud) |
73 | free_page((unsigned long) pmd); | 73 | { |
74 | set_pud(pud, __pud(0)); | ||
74 | } | 75 | } |
75 | 76 | ||
76 | #define __pmd_free_tlb(tlb,x) do { } while (0) | ||
77 | |||
78 | static inline void pud_clear (pud_t * pud) { } | ||
79 | |||
80 | #define pud_page(pud) \ | 77 | #define pud_page(pud) \ |
81 | ((struct page *) __va(pud_val(pud) & PAGE_MASK)) | 78 | ((struct page *) __va(pud_val(pud) & PAGE_MASK)) |
82 | 79 | ||