static inline void l4x_cpu_set_pte_ext(pte_t *pteptr, pte_t pteval, unsigned int ext) { if (pte_present(*pteptr)) { if (pteval == __pte(0)) l4x_pte_clear(NULL, 0, *pteptr); else pte_val(pteval) = l4x_set_pte(NULL, 0, *pteptr, pteval); } *pteptr = pteval; }
static inline void l4x_cpu_set_pte_ext(pte_t *pteptr, pte_t pteval, unsigned int ext) { if ((pte_val(*pteptr) & (L_PTE_PRESENT | L_PTE_MAPPED)) == (L_PTE_PRESENT | L_PTE_MAPPED)) { if (pteval == __pte(0)) l4x_pte_clear(NULL, 0, *pteptr); else pte_val(pteval) = l4x_set_pte(NULL, 0, *pteptr, pteval); } *pteptr = pteval; }
void pte_update(struct mm_struct *mm, unsigned long addr, pte_t *ptep) { l4x_pte_clear(mm, addr, *ptep); l4x_unmap_log_flush(); }