diff options
Diffstat (limited to 'include/asm-i386')
-rw-r--r-- | include/asm-i386/paravirt.h | 13 | ||||
-rw-r--r-- | include/asm-i386/pgtable.h | 4 |
2 files changed, 2 insertions, 15 deletions
diff --git a/include/asm-i386/paravirt.h b/include/asm-i386/paravirt.h index 2ba18963e114..e2e7f98723c5 100644 --- a/include/asm-i386/paravirt.h +++ b/include/asm-i386/paravirt.h | |||
@@ -188,8 +188,6 @@ struct paravirt_ops | |||
188 | void (*pte_update_defer)(struct mm_struct *mm, | 188 | void (*pte_update_defer)(struct mm_struct *mm, |
189 | unsigned long addr, pte_t *ptep); | 189 | unsigned long addr, pte_t *ptep); |
190 | 190 | ||
191 | pte_t (*ptep_get_and_clear)(pte_t *ptep); | ||
192 | |||
193 | #ifdef CONFIG_HIGHPTE | 191 | #ifdef CONFIG_HIGHPTE |
194 | void *(*kmap_atomic_pte)(struct page *page, enum km_type type); | 192 | void *(*kmap_atomic_pte)(struct page *page, enum km_type type); |
195 | #endif | 193 | #endif |
@@ -859,12 +857,8 @@ static inline void pmd_clear(pmd_t *pmdp) | |||
859 | PVOP_VCALL1(pmd_clear, pmdp); | 857 | PVOP_VCALL1(pmd_clear, pmdp); |
860 | } | 858 | } |
861 | 859 | ||
862 | static inline pte_t raw_ptep_get_and_clear(pte_t *p) | ||
863 | { | ||
864 | unsigned long long val = PVOP_CALL1(unsigned long long, ptep_get_and_clear, p); | ||
865 | return (pte_t) { val, val >> 32 }; | ||
866 | } | ||
867 | #else /* !CONFIG_X86_PAE */ | 860 | #else /* !CONFIG_X86_PAE */ |
861 | |||
868 | static inline pte_t __pte(unsigned long val) | 862 | static inline pte_t __pte(unsigned long val) |
869 | { | 863 | { |
870 | return (pte_t) { PVOP_CALL1(unsigned long, make_pte, val) }; | 864 | return (pte_t) { PVOP_CALL1(unsigned long, make_pte, val) }; |
@@ -900,11 +894,6 @@ static inline void set_pmd(pmd_t *pmdp, pmd_t pmdval) | |||
900 | { | 894 | { |
901 | PVOP_VCALL2(set_pmd, pmdp, pmdval.pud.pgd.pgd); | 895 | PVOP_VCALL2(set_pmd, pmdp, pmdval.pud.pgd.pgd); |
902 | } | 896 | } |
903 | |||
904 | static inline pte_t raw_ptep_get_and_clear(pte_t *p) | ||
905 | { | ||
906 | return (pte_t) { PVOP_CALL1(unsigned long, ptep_get_and_clear, p) }; | ||
907 | } | ||
908 | #endif /* CONFIG_X86_PAE */ | 897 | #endif /* CONFIG_X86_PAE */ |
909 | 898 | ||
910 | #define __HAVE_ARCH_ENTER_LAZY_CPU_MODE | 899 | #define __HAVE_ARCH_ENTER_LAZY_CPU_MODE |
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 |
336 | static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) | 334 | static 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 | } |