Blob Blame History Raw
From: Leon Romanovsky <leonro@mellanox.com>
Date: Mon, 3 Sep 2018 20:17:31 +0300
Subject: RDMA/umem: Restore lockdep check while downgrading lock
Patch-mainline: v4.20-rc1
Git-commit: 50704e039ab1d7e6c035d8c27a0b314929bfbe10
References: bsc#1103992 FATE#326009

Lockdep engine handles correctly downgrade of locks and it simply
incorrect to disable lockdep checks prior to calling mmu_notifier.

Remove lockdep_off and ensure locks correctness.

Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
 drivers/infiniband/core/umem_odp.c |    6 ------
 1 file changed, 6 deletions(-)

--- a/drivers/infiniband/core/umem_odp.c
+++ b/drivers/infiniband/core/umem_odp.c
@@ -398,13 +398,7 @@ int ib_umem_odp_get(struct ib_ucontext *
 		atomic_set(&context->notifier_count, 0);
 		INIT_HLIST_NODE(&context->mn.hlist);
 		context->mn.ops = &ib_umem_notifiers;
-		/*
-		 * Lock-dep detects a false positive for mmap_sem vs.
-		 * umem_rwsem, due to not grasping downgrade_write correctly.
-		 */
-		lockdep_off();
 		ret_val = mmu_notifier_register(&context->mn, mm);
-		lockdep_on();
 		if (ret_val) {
 			pr_err("Failed to register mmu_notifier %d\n", ret_val);
 			ret_val = -EBUSY;