RDMA/umem: Do not use current->tgid to track the mm_struct

This is just wrong, the process that calls into the reg_mr is the process
associated with the umem, and that does not have to be the same process
that created the context.

When this code was first written mmgrab() didn't exist, however these days
we can just directly hold the mm_struct pointer in the umem and have no
ambiguity when it comes to releasing the umem as to which mm it was
associated with.

Signed-off-by: Jason Gunthorpe <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Doug Ledford <[email protected]>
This commit is contained in:
Jason Gunthorpe 2018-09-16 20:44:45 +03:00 • committed by Doug Ledford
commit d4b4dd1b97
2 changed files with 37 additions and 43 deletions

View file

@ -42,14 +42,13 @@ struct ib_umem_odp;
struct ib_umem {
struct ib_ucontext *context;
struct mm_struct *owning_mm;
size_t length;
unsigned long address;
int page_shift;
int writable;
int hugetlb;
struct work_struct work;
struct mm_struct *mm;
unsigned long diff;
struct ib_umem_odp *odp_data;
struct sg_table sg_head;
int nmap;