Linus Torvalds writes: (Summary)
So to handle the powernv/npu-dma.c, iommu/amd_iommu_v2.c and
ommu/intel-svm.c correctly, _and_ get he KVM case right, we probably
need to:
need to:
- replace the existing mmu_notifier_invalidate_page() call with mmu_notifier_invalidate_range(), and make sure it's inside the locked region (ie fs/dax.c too - actually move it inside the lock) region (ie fs/dax.c too - actually move it inside the lock) - surround the locked region with those
mmu_notifier_invalidate_range_start()/end() calls.
mmu_notifier_invalidate_range_start()/end() calls.
- get rid of mmu_notifier_invalidate_page() entirely, it had bad semantics anyway.
semantics anyway.
and from all I can tell that should work for everybody.
need to:
- replace the existing mmu_notifier_invalidate_page() call with mmu_notifier_invalidate_range(), and make sure it's inside the locked region (ie fs/dax.c too - actually move it inside the lock) region (ie fs/dax.c too - actually move it inside the lock) - surround the locked region with those
mmu_notifier_invalidate_range_start()/end() calls.
mmu_notifier_invalidate_range_start()/end() calls.
- get rid of mmu_notifier_invalidate_page() entirely, it had bad semantics anyway.
semantics anyway.
and from all I can tell that should work for everybody.