mm: mmu_notifier fix for tlb_end_vma
authorNicholas Piggin <npiggin@gmail.com>
Thu, 23 Aug 2018 08:47:09 +0000 (18:47 +1000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Aug 2018 18:55:58 +0000 (11:55 -0700)
commitfd1102f0aadec7d18792b132e1d224290b2aecca
tree7a30bb6de0aae74f2a1248016778d4063785d2ec
parentd86564a2f085b79ec046a5cba90188e612352806
mm: mmu_notifier fix for tlb_end_vma

The generic tlb_end_vma does not call invalidate_range mmu notifier, and
it resets resets the mmu_gather range, which means the notifier won't be
called on part of the range in case of an unmap that spans multiple
vmas.

ARM64 seems to be the only arch I could see that has notifiers and uses
the generic tlb_end_vma.  I have not actually tested it.

[ Catalin and Will point out that ARM64 currently only uses the
  notifiers for KVM, which doesn't use the ->invalidate_range()
  callback right now, so it's a bug, but one that happens to
  not affect them.  So not necessary for stable.  - Linus ]

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/asm-generic/tlb.h
mm/memory.c