aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/hfi1
diff options
context:
space:
mode:
authorJason Gunthorpe <jgg@nvidia.com>2022-05-24 12:40:28 -0300
committerJason Gunthorpe <jgg@nvidia.com>2022-05-24 12:40:28 -0300
commita6f844da39af8046798ba5cadf92a0c54da80b26 (patch)
tree7ace73f27ac1fe17413415c3a5a79cbb7c1e4855 /drivers/infiniband/hw/hfi1
parentb599b31033aa6928309d1cf8180c3daf260574e1 (diff)
parent4b0986a3613c92f4ec1bdc7f60ec66fea135991f (diff)
downloadlinux-a6f844da39af8046798ba5cadf92a0c54da80b26.tar.gz
Merge tag 'v5.18' into rdma.git for-next
Following patches have dependencies. Resolve the merge conflict in drivers/net/ethernet/mellanox/mlx5/core/main.c by keeping the new names for the fs functions following linux-next: https://lore.kernel.org/r/20220519113529.226bc3e2@canb.auug.org.au/ Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'drivers/infiniband/hw/hfi1')
-rw-r--r--drivers/infiniband/hw/hfi1/mmu_rb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/hfi1/mmu_rb.c b/drivers/infiniband/hw/hfi1/mmu_rb.c
index 876cc78a22cc..7333646021bb 100644
--- a/drivers/infiniband/hw/hfi1/mmu_rb.c
+++ b/drivers/infiniband/hw/hfi1/mmu_rb.c
@@ -80,6 +80,9 @@ void hfi1_mmu_rb_unregister(struct mmu_rb_handler *handler)
unsigned long flags;
struct list_head del_list;
+ /* Prevent freeing of mm until we are completely finished. */
+ mmgrab(handler->mn.mm);
+
/* Unregister first so we don't get any more notifications. */
mmu_notifier_unregister(&handler->mn, handler->mn.mm);
@@ -102,6 +105,9 @@ void hfi1_mmu_rb_unregister(struct mmu_rb_handler *handler)
do_remove(handler, &del_list);
+ /* Now the mm may be freed. */
+ mmdrop(handler->mn.mm);
+
kfree(handler);
}