Merge tag 'kvm-arm-for-3.18-take-2' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-block.git] / arch / arm / include / asm / pgtable.h
index 92b2fbe1886882800dde5827cc5d2053d1ebcd47..3b30062975b247165dc8f8db946f304f15a9c50a 100644 (file)
@@ -226,7 +226,6 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd)
 #define pte_dirty(pte)         (pte_isset((pte), L_PTE_DIRTY))
 #define pte_young(pte)         (pte_isset((pte), L_PTE_YOUNG))
 #define pte_exec(pte)          (pte_isclear((pte), L_PTE_XN))
-#define pte_special(pte)       (0)
 
 #define pte_valid_user(pte)    \
        (pte_valid(pte) && pte_isset((pte), L_PTE_USER) && pte_young(pte))
@@ -245,7 +244,8 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr,
        unsigned long ext = 0;
 
        if (addr < TASK_SIZE && pte_valid_user(pteval)) {
-               __sync_icache_dcache(pteval);
+               if (!pte_special(pteval))
+                       __sync_icache_dcache(pteval);
                ext |= PTE_EXT_NG;
        }
 
@@ -264,8 +264,6 @@ PTE_BIT_FUNC(mkyoung,   |= L_PTE_YOUNG);
 PTE_BIT_FUNC(mkexec,   &= ~L_PTE_XN);
 PTE_BIT_FUNC(mknexec,   |= L_PTE_XN);
 
-static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
-
 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
 {
        const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER |