RDMA/umem: Restore lockdep check while downgrading lock

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>
This commit is contained in:
Leon Romanovsky 2018-09-03 20:17:31 +03:00 committed by Jason Gunthorpe
parent e1f540c3ed
commit 50704e039a

View file

@ -431,13 +431,7 @@ int ib_umem_odp_get(struct ib_ucontext *context, struct ib_umem *umem,
atomic_set(&context->notifier_count, 0); atomic_set(&context->notifier_count, 0);
INIT_HLIST_NODE(&context->mn.hlist); INIT_HLIST_NODE(&context->mn.hlist);
context->mn.ops = &ib_umem_notifiers; 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); ret_val = mmu_notifier_register(&context->mn, mm);
lockdep_on();
if (ret_val) { if (ret_val) {
pr_err("Failed to register mmu_notifier %d\n", ret_val); pr_err("Failed to register mmu_notifier %d\n", ret_val);
ret_val = -EBUSY; ret_val = -EBUSY;