pte_t *pte;
pgd_t *pgd;
pmd_t *pmd;
+ pte_t pte_val;
struct pte_chain *pte_chain;
pte_chain = pte_chain_alloc(GFP_KERNEL);
flush_icache_page(vma, page);
set_pte(pte, mk_pte(page, prot));
pte_chain = page_add_rmap(page, pte, pte_chain);
+ pte_val = *pte;
pte_unmap(pte);
if (flush)
flush_tlb_page(vma, addr);
- update_mmu_cache(vma, addr, *pte);
+ update_mmu_cache(vma, addr, pte_val);
spin_unlock(&mm->page_table_lock);
pte_chain_free(pte_chain);
return 0;
pte_t *pte;
pgd_t *pgd;
pmd_t *pmd;
+ pte_t pte_val;
pgd = pgd_offset(mm, addr);
spin_lock(&mm->page_table_lock);
flush = zap_pte(mm, vma, addr, pte);
set_pte(pte, pgoff_to_pte(pgoff));
+ pte_val = *pte;
pte_unmap(pte);
if (flush)
flush_tlb_page(vma, addr);
- update_mmu_cache(vma, addr, *pte);
+ update_mmu_cache(vma, addr, pte_val);
spin_unlock(&mm->page_table_lock);
return 0;