aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-i386/pgtable.h
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2007-05-02 13:27:15 -0400
committerAndi Kleen <andi@basil.nowhere.org>2007-05-02 13:27:15 -0400
commit4cdd9c8931767e1c56a51a1078d33a8c340f4405 (patch)
treebf8b49009011bb2dffe9683dffdcbfe3b90375f9 /include/asm-i386/pgtable.h
parent1a45b7aaa5051489b46afbc48509bd91f8b4a1ba (diff)
[PATCH] i386: PARAVIRT: drop unused ptep_get_and_clear
In shadow mode hypervisors, ptep_get_and_clear achieves the desired purpose of keeping the shadows in sync by issuing a native_get_and_clear, followed by a call to pte_update, which indicates the PTE has been modified. Direct mode hypervisors (Xen) have no need for this anyway, and will trap the update using writable pagetables. This means no hypervisor makes use of ptep_get_and_clear; there is no reason to have it in the paravirt-ops structure. Change confusing terminology about raw vs. native functions into consistent use of native_pte_xxx for operations which do not invoke paravirt-ops. Signed-off-by: Zachary Amsden <zach@vmware.com> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'include/asm-i386/pgtable.h')
-rw-r--r--include/asm-i386/pgtable.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/include/asm-i386/pgtable.h b/include/asm-i386/pgtable.h
index befc697821e5..e7ddd2341309 100644
--- a/include/asm-i386/pgtable.h
+++ b/include/asm-i386/pgtable.h
@@ -267,8 +267,6 @@ extern void vmalloc_sync_all(void);
267 */ 267 */
268#define pte_update(mm, addr, ptep) do { } while (0) 268#define pte_update(mm, addr, ptep) do { } while (0)
269#define pte_update_defer(mm, addr, ptep) do { } while (0) 269#define pte_update_defer(mm, addr, ptep) do { } while (0)
270
271#define raw_ptep_get_and_clear(xp) native_ptep_get_and_clear(xp)
272#endif 270#endif
273 271
274/* 272/*
@@ -335,7 +333,7 @@ do { \
335#define __HAVE_ARCH_PTEP_GET_AND_CLEAR 333#define __HAVE_ARCH_PTEP_GET_AND_CLEAR
336static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) 334static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
337{ 335{
338 pte_t pte = raw_ptep_get_and_clear(ptep); 336 pte_t pte = native_ptep_get_and_clear(ptep);
339 pte_update(mm, addr, ptep); 337 pte_update(mm, addr, ptep);
340 return pte; 338 return pte;
341} 339}