Merge branch 'safe-dirty-tlb-flush'
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 27 Apr 2014 22:08:12 +0000 (15:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 27 Apr 2014 22:08:12 +0000 (15:08 -0700)
commitac6c9e2bed093c4b60e313674fb7aec4f264c3d4
tree6eccadffcc04a7b66021ab3bd114cafcb52181c6
parent33c0022f0e687b0161a9bb84a5671df932551e3a
parent1cf35d47712dd5dc4d62c6ce984f04ac6eab0408
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