Message ID | 20200304181607.GA22412@ziepe.ca (mailing list archive) |
---|---|
State | Mainlined |
Commit | 0f9826f4753f74f935e18c2a640484ecbd941346 |
Delegated to: | Jason Gunthorpe |
Headers | show |
Series | [for-rc] RDMA/odp: Fix leaking the tgid for implicit ODP | expand |
On Wed, Mar 04, 2020 at 02:16:07PM -0400, Jason Gunthorpe wrote: > The tgid used to be part of ib_umem_free_notifier(), when it was reworked > it got moved to release, but it should have been unconditional as all umem > alloc paths get the tgid. > > As is, creating an implicit ODP will leak the tgid reference. > > Cc: stable@kernel.org > Fixes: f25a546e6529 ("RDMA/odp: Use mmu_interval_notifier_insert()") > Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> > --- > drivers/infiniband/core/umem_odp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Applied to for-rc Jason
diff --git a/drivers/infiniband/core/umem_odp.c b/drivers/infiniband/core/umem_odp.c index cd656ad4953bfc..3b1e627d9a8dd5 100644 --- a/drivers/infiniband/core/umem_odp.c +++ b/drivers/infiniband/core/umem_odp.c @@ -275,8 +275,8 @@ void ib_umem_odp_release(struct ib_umem_odp *umem_odp) mmu_interval_notifier_remove(&umem_odp->notifier); kvfree(umem_odp->dma_list); kvfree(umem_odp->page_list); - put_pid(umem_odp->tgid); } + put_pid(umem_odp->tgid); kfree(umem_odp); } EXPORT_SYMBOL(ib_umem_odp_release);
The tgid used to be part of ib_umem_free_notifier(), when it was reworked it got moved to release, but it should have been unconditional as all umem alloc paths get the tgid. As is, creating an implicit ODP will leak the tgid reference. Cc: stable@kernel.org Fixes: f25a546e6529 ("RDMA/odp: Use mmu_interval_notifier_insert()") Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> --- drivers/infiniband/core/umem_odp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)