summaryrefslogtreecommitdiffstats
path: root/arch/sh/include/asm/tlb.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-04-27 15:08:12 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2014-04-27 15:08:12 -0700
commitac6c9e2bed093c4b60e313674fb7aec4f264c3d4 (patch)
tree6eccadffcc04a7b66021ab3bd114cafcb52181c6 /arch/sh/include/asm/tlb.h
parent33c0022f0e687b0161a9bb84a5671df932551e3a (diff)
parent1cf35d47712dd5dc4d62c6ce984f04ac6eab0408 (diff)
downloadlinux-ac6c9e2bed093c4b60e313674fb7aec4f264c3d4.tar.bz2
Merge branch 'safe-dirty-tlb-flush'
This merges the patch to fix possible loss of dirty bit on munmap() or madvice(DONTNEED). If there are concurrent writers on other CPU's that have the unmapped/unneeded page in their TLBs, their writes to the page could possibly get lost if a third CPU raced with the TLB flush and did a page_mkclean() before the page was fully written. Admittedly, if you unmap() or madvice(DONTNEED) an area _while_ another thread is still busy writing to it, you deserve all the lost writes you could get. But we kernel people hold ourselves to higher quality standards than "crazy people deserve to lose", because, well, we've seen people do all kinds of crazy things. So let's get it right, just because we can, and we don't have to worry about it. * safe-dirty-tlb-flush: mm: split 'tlb_flush_mmu()' into tlb flushing and memory freeing parts
Diffstat (limited to 'arch/sh/include/asm/tlb.h')
-rw-r--r--arch/sh/include/asm/tlb.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/sh/include/asm/tlb.h b/arch/sh/include/asm/tlb.h
index 362192ed12fe..62f80d2a9df9 100644
--- a/arch/sh/include/asm/tlb.h
+++ b/arch/sh/include/asm/tlb.h
@@ -86,6 +86,14 @@ tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma)
}
}
+static inline void tlb_flush_mmu_tlbonly(struct mmu_gather *tlb)
+{
+}
+
+static inline void tlb_flush_mmu_free(struct mmu_gather *tlb)
+{
+}
+
static inline void tlb_flush_mmu(struct mmu_gather *tlb)
{
}