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;