iommu/amd: Remove clear_flush_young notifier
authorPeter Xu <peterx@redhat.com>
Wed, 30 Jan 2019 05:57:58 +0000 (13:57 +0800)
committerJoerg Roedel <jroedel@suse.de>
Wed, 30 Jan 2019 16:30:46 +0000 (17:30 +0100)
AMD IOMMU driver is using the clear_flush_young() to do cache flushing
but that's actually already covered by invalidate_range().  Remove the
extra notifier and the chunks.

Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd_iommu_v2.c

index 23dae93..5d7ef75 100644 (file)
@@ -370,29 +370,6 @@ static struct pasid_state *mn_to_state(struct mmu_notifier *mn)
        return container_of(mn, struct pasid_state, mn);
 }
 
-static void __mn_flush_page(struct mmu_notifier *mn,
-                           unsigned long address)
-{
-       struct pasid_state *pasid_state;
-       struct device_state *dev_state;
-
-       pasid_state = mn_to_state(mn);
-       dev_state   = pasid_state->device_state;
-
-       amd_iommu_flush_page(dev_state->domain, pasid_state->pasid, address);
-}
-
-static int mn_clear_flush_young(struct mmu_notifier *mn,
-                               struct mm_struct *mm,
-                               unsigned long start,
-                               unsigned long end)
-{
-       for (; start < end; start += PAGE_SIZE)
-               __mn_flush_page(mn, start);
-
-       return 0;
-}
-
 static void mn_invalidate_range(struct mmu_notifier *mn,
                                struct mm_struct *mm,
                                unsigned long start, unsigned long end)
@@ -430,7 +407,6 @@ static void mn_release(struct mmu_notifier *mn, struct mm_struct *mm)
 
 static const struct mmu_notifier_ops iommu_mn = {
        .release                = mn_release,
-       .clear_flush_young      = mn_clear_flush_young,
        .invalidate_range       = mn_invalidate_range,
 };