summaryrefslogtreecommitdiff
path: root/arch/nios2/mm/cacheflush.c
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2018-11-07 10:35:34 +0800
committerLey Foon Tan <ley.foon.tan@intel.com>2019-03-07 05:29:35 +0800
commit3ac23944de570df7a6309425aeef063be38f37c4 (patch)
tree7c5a3a2fd805045dfbd4eaa507d25dbc89d9cd1c /arch/nios2/mm/cacheflush.c
parentb6a10463438d8775aa6aa09ece46e8af14345712 (diff)
nios2: update_mmu_cache preload the TLB with the new PTE
Rather than flush the TLB entry when installing a new PTE to allow the fast TLB reload to re-fill the TLB, just refill the TLB entry when removing the old one. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Ley Foon Tan <ley.foon.tan@intel.com>
Diffstat (limited to 'arch/nios2/mm/cacheflush.c')
-rw-r--r--arch/nios2/mm/cacheflush.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/nios2/mm/cacheflush.c b/arch/nios2/mm/cacheflush.c
index d58e7e80dc0d..65de1bd6a760 100644
--- a/arch/nios2/mm/cacheflush.c
+++ b/arch/nios2/mm/cacheflush.c
@@ -198,13 +198,14 @@ void flush_dcache_page(struct page *page)
EXPORT_SYMBOL(flush_dcache_page);
void update_mmu_cache(struct vm_area_struct *vma,
- unsigned long address, pte_t *pte)
+ unsigned long address, pte_t *ptep)
{
- unsigned long pfn = pte_pfn(*pte);
+ pte_t pte = *ptep;
+ unsigned long pfn = pte_pfn(pte);
struct page *page;
struct address_space *mapping;
- flush_tlb_page(vma, address);
+ reload_tlb_page(vma, address, pte);
if (!pfn_valid(pfn))
return;