diff options
author | David Woodhouse <dwmw2@shinybook.infradead.org> | 2006-04-28 20:42:26 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2006-04-28 20:42:26 -0400 |
commit | d6754b401a15eaa16492ea5dbaa4826361d3f411 (patch) | |
tree | 032f067d3af458527d903a7653885404ed82431e /include/asm-i386/pgtable.h | |
parent | acc429a517bd11fdcac9bea97d082d26231beb92 (diff) | |
parent | 693f7d362055261882659475d2ef022e32edbff1 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'include/asm-i386/pgtable.h')
-rw-r--r-- | include/asm-i386/pgtable.h | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/include/asm-i386/pgtable.h b/include/asm-i386/pgtable.h index 248bd80a69c5..09697fec3d2b 100644 --- a/include/asm-i386/pgtable.h +++ b/include/asm-i386/pgtable.h | |||
@@ -203,12 +203,10 @@ extern unsigned long long __PAGE_KERNEL, __PAGE_KERNEL_EXEC; | |||
203 | extern unsigned long pg0[]; | 203 | extern unsigned long pg0[]; |
204 | 204 | ||
205 | #define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE)) | 205 | #define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE)) |
206 | #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0) | ||
207 | 206 | ||
208 | /* To avoid harmful races, pmd_none(x) should check only the lower when PAE */ | 207 | /* To avoid harmful races, pmd_none(x) should check only the lower when PAE */ |
209 | #define pmd_none(x) (!(unsigned long)pmd_val(x)) | 208 | #define pmd_none(x) (!(unsigned long)pmd_val(x)) |
210 | #define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT) | 209 | #define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT) |
211 | #define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0) | ||
212 | #define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE) | 210 | #define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE) |
213 | 211 | ||
214 | 212 | ||
@@ -267,7 +265,7 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm, unsigned long | |||
267 | pte_t pte; | 265 | pte_t pte; |
268 | if (full) { | 266 | if (full) { |
269 | pte = *ptep; | 267 | pte = *ptep; |
270 | *ptep = __pte(0); | 268 | pte_clear(mm, addr, ptep); |
271 | } else { | 269 | } else { |
272 | pte = ptep_get_and_clear(mm, addr, ptep); | 270 | pte = ptep_get_and_clear(mm, addr, ptep); |
273 | } | 271 | } |