summaryrefslogtreecommitdiffstats
path: root/arch/um/include/asm/tlb.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2017-08-17 09:41:41 +0200
committerIngo Molnar <mingo@kernel.org>2017-08-17 09:41:41 +0200
commit927d2c21f2e82b93c791799c8da932a9bdffb436 (patch)
treeaec52fd2d3903751d696e809628d155c825ac730 /arch/um/include/asm/tlb.h
parentcf31b7dd51b542f9a9b2d0de416b5524dfdb1cf2 (diff)
parentac9a40905a610fb02086a37b11ff4bf046825a88 (diff)
downloadlinux-927d2c21f2e82b93c791799c8da932a9bdffb436.tar.bz2
Merge branch 'linus' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/um/include/asm/tlb.h')
-rw-r--r--arch/um/include/asm/tlb.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/um/include/asm/tlb.h b/arch/um/include/asm/tlb.h
index 600a2e9bfee2..344d95619d03 100644
--- a/arch/um/include/asm/tlb.h
+++ b/arch/um/include/asm/tlb.h
@@ -45,7 +45,8 @@ static inline void init_tlb_gather(struct mmu_gather *tlb)
}
static inline void
-tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, unsigned long start, unsigned long end)
+arch_tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm,
+ unsigned long start, unsigned long end)
{
tlb->mm = mm;
tlb->start = start;
@@ -80,13 +81,19 @@ tlb_flush_mmu(struct mmu_gather *tlb)
tlb_flush_mmu_free(tlb);
}
-/* tlb_finish_mmu
+/* arch_tlb_finish_mmu
* Called at the end of the shootdown operation to free up any resources
* that were required.
*/
static inline void
-tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned long end)
+arch_tlb_finish_mmu(struct mmu_gather *tlb,
+ unsigned long start, unsigned long end, bool force)
{
+ if (force) {
+ tlb->start = start;
+ tlb->end = end;
+ tlb->need_flush = 1;
+ }
tlb_flush_mmu(tlb);
/* keep the page table cache within bounds */