Commit a93cb055a23f3172c1e6a22ac1dc4f1c07929b08

Authored by Zachary Amsden
Committed by Linus Torvalds
1 parent d6d861e3c9

[PATCH] paravirt: remove set pte atomic

Now that ptep_establish has a definition in PAE i386 3-level paging code, the
only paging model which is insane enough to have multi-word hardware PTEs
which are not efficient to set atomically, we can remove the ghost of
set_pte_atomic from other architectures which falesly duplicated it, and
remove all knowledge of it from the generic pgtable code.

set_pte_atomic is now a private pte operator which is specific to i386

Signed-off-by: Zachary Amsden <zach@vmware.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Jeremy Fitzhardinge <jeremy@xensource.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Showing 4 changed files with 1 additions and 12 deletions Side-by-side Diff

include/asm-frv/pgtable.h
... ... @@ -176,8 +176,6 @@
176 176 } while(0)
177 177 #define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
178 178  
179   -#define set_pte_atomic(pteptr, pteval) set_pte((pteptr), (pteval))
180   -
181 179 /*
182 180 * pgd_offset() returns a (pgd_t *)
183 181 * pgd_index() is used get the offset into the pgd page's array of pgd_t's;
include/asm-generic/pgtable.h
... ... @@ -15,19 +15,11 @@
15 15 * Note: the old pte is known to not be writable, so we don't need to
16 16 * worry about dirty bits etc getting lost.
17 17 */
18   -#ifndef __HAVE_ARCH_SET_PTE_ATOMIC
19 18 #define ptep_establish(__vma, __address, __ptep, __entry) \
20 19 do { \
21 20 set_pte_at((__vma)->vm_mm, (__address), __ptep, __entry); \
22 21 flush_tlb_page(__vma, __address); \
23 22 } while (0)
24   -#else /* __HAVE_ARCH_SET_PTE_ATOMIC */
25   -#define ptep_establish(__vma, __address, __ptep, __entry) \
26   -do { \
27   - set_pte_atomic(__ptep, __entry); \
28   - flush_tlb_page(__vma, __address); \
29   -} while (0)
30   -#endif /* __HAVE_ARCH_SET_PTE_ATOMIC */
31 23 #endif
32 24  
33 25 #ifndef __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
include/asm-i386/pgtable-3level.h
... ... @@ -73,7 +73,6 @@
73 73 ptep->pte_low = pte.pte_low;
74 74 }
75 75  
76   -#define __HAVE_ARCH_SET_PTE_ATOMIC
77 76 #define set_pte_atomic(pteptr,pteval) \
78 77 set_64bit((unsigned long long *)(pteptr),pte_val(pteval))
79 78 #define set_pmd(pmdptr,pmdval) \
include/asm-m32r/pgtable-2level.h
... ... @@ -44,7 +44,7 @@
44 44 */
45 45 #define set_pte(pteptr, pteval) (*(pteptr) = pteval)
46 46 #define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
47   -#define set_pte_atomic(pteptr, pteval) set_pte(pteptr, pteval)
  47 +
48 48 /*
49 49 * (pmds are folded into pgds so this doesnt get actually called,
50 50 * but the define is needed for a generic inline function.)