Merge tag 'locking-urgent-2020-08-10' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / drivers / dma-buf / dma-resv.c
index a763135..434a331 100644 (file)
@@ -36,6 +36,7 @@
 #include <linux/export.h>
 #include <linux/mm.h>
 #include <linux/sched/mm.h>
+#include <linux/mmu_notifier.h>
 
 /**
  * DOC: Reservation Object Overview
@@ -110,6 +111,13 @@ static int __init dma_resv_lockdep(void)
        if (ret == -EDEADLK)
                dma_resv_lock_slow(&obj, &ctx);
        fs_reclaim_acquire(GFP_KERNEL);
+#ifdef CONFIG_MMU_NOTIFIER
+       lock_map_acquire(&__mmu_notifier_invalidate_range_start_map);
+       __dma_fence_might_wait();
+       lock_map_release(&__mmu_notifier_invalidate_range_start_map);
+#else
+       __dma_fence_might_wait();
+#endif
        fs_reclaim_release(GFP_KERNEL);
        ww_mutex_unlock(&obj.lock);
        ww_acquire_fini(&ctx);