aboutsummaryrefslogtreecommitdiffstats
path: root/arch/nios2/mm/cacheflush.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-03-10 10:13:37 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2019-03-10 10:13:37 -0700
commitd6075262969321bcb5d795de25595fc2a141ac02 (patch)
tree8b9021abdbec609fb44a265af7362c4fbed30b37 /arch/nios2/mm/cacheflush.c
parentMerge tag 'for-5.1/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm (diff)
parentnios2: Fix update_mmu_cache preload the TLB with the new PTE (diff)
downloadlinux-dev-d6075262969321bcb5d795de25595fc2a141ac02.tar.xz
linux-dev-d6075262969321bcb5d795de25595fc2a141ac02.zip
Merge tag 'nios2-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2
Pull nios2 updates from Ley Foon Tan: "Most of updates are MMU related" * tag 'nios2-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2: nios2: Fix update_mmu_cache preload the TLB with the new PTE nios2: update_mmu_cache preload the TLB with the new PTE nios2: User address TLB flush break after finding the matching entry nios2: flush_tlb_all use TLBMISC way auto-increment feature nios2: improve readability of tlb functions nios2: flush_tlb_mm flush only the pid nios2: flush_tlb_pid can just restore TLBMISC once nios2: TLBMISC writes do not require PID bits to be set nios2: Use an invalid TLB entry address helper function nios2: pte_clear does not need to flush TLB nios2: flush_tlb_page use PID based flush nios2: update_mmu_cache clear the old entry from the TLB nios2: remove redundant 'default n' from Kconfig-s nios2: ksyms: Add missing symbol exports
Diffstat (limited to 'arch/nios2/mm/cacheflush.c')
-rw-r--r--arch/nios2/mm/cacheflush.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/nios2/mm/cacheflush.c b/arch/nios2/mm/cacheflush.c
index 506f6e1c86d5..65de1bd6a760 100644
--- a/arch/nios2/mm/cacheflush.c
+++ b/arch/nios2/mm/cacheflush.c
@@ -198,12 +198,15 @@ 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;
+ reload_tlb_page(vma, address, pte);
+
if (!pfn_valid(pfn))
return;