|
@@ -167,7 +167,8 @@ static inline unsigned long radix__pte_update(struct mm_struct *mm,
|
|
|
* function doesn't need to invalidate tlb.
|
|
|
*/
|
|
|
static inline void radix__ptep_set_access_flags(struct mm_struct *mm,
|
|
|
- pte_t *ptep, pte_t entry)
|
|
|
+ pte_t *ptep, pte_t entry,
|
|
|
+ unsigned long address)
|
|
|
{
|
|
|
|
|
|
unsigned long set = pte_val(entry) & (_PAGE_DIRTY | _PAGE_ACCESSED |
|
|
@@ -183,13 +184,7 @@ static inline void radix__ptep_set_access_flags(struct mm_struct *mm,
|
|
|
* new value of pte
|
|
|
*/
|
|
|
new_pte = old_pte | set;
|
|
|
-
|
|
|
- /*
|
|
|
- * For now let's do heavy pid flush
|
|
|
- * radix__flush_tlb_page_psize(mm, addr, mmu_virtual_psize);
|
|
|
- */
|
|
|
- radix__flush_tlb_mm(mm);
|
|
|
-
|
|
|
+ radix__flush_tlb_pte_p9_dd1(old_pte, mm, address);
|
|
|
__radix_pte_update(ptep, 0, new_pte);
|
|
|
} else
|
|
|
__radix_pte_update(ptep, 0, set);
|