|
@@ -617,6 +617,12 @@ static inline unsigned long pte_present(pte_t pte)
|
|
|
return val;
|
|
|
}
|
|
|
|
|
|
+#define pte_accessible pte_accessible
|
|
|
+static inline unsigned long pte_accessible(pte_t a)
|
|
|
+{
|
|
|
+ return pte_val(a) & _PAGE_VALID;
|
|
|
+}
|
|
|
+
|
|
|
static inline unsigned long pte_special(pte_t pte)
|
|
|
{
|
|
|
return pte_val(pte) & _PAGE_SPECIAL;
|
|
@@ -802,7 +808,7 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr,
|
|
|
* SUN4V NOTE: _PAGE_VALID is the same value in both the SUN4U
|
|
|
* and SUN4V pte layout, so this inline test is fine.
|
|
|
*/
|
|
|
- if (likely(mm != &init_mm) && (pte_val(orig) & _PAGE_VALID))
|
|
|
+ if (likely(mm != &init_mm) && pte_accessible(orig))
|
|
|
tlb_batch_add(mm, addr, ptep, orig, fullmm);
|
|
|
}
|
|
|
|