> Subject: [PATCH rdma-next 3/3] RDMA/restrack: Release task struct which > was hold by CM_ID object > > From: Leon Romanovsky <leonro@xxxxxxxxxxxx> > > Tracking CM_ID resource is performed in two stages: creation of cm_id > and connecting it to the cma_dev. It is needed because rdma-cm protocol > exports two separate user-visible calls rdma_create_id and rdma_accept. > > At the time of CM_ID creation, the real owner of that object is unknown > yet and we need to grab task_struct. This task_struct is released or > reassigned in attach phase later on. but call to rdma_destroy_id left > this task_struct unreleased. > > Such separation is unique to CM_ID and other restrack objects initialize > in one shot. It means that it is safe to use "res->valid" check to catch > unfinished CM_ID flow and release task_struct for that object. > > Fixes: 00313983cda6 ("RDMA/nldev: provide detailed CM_ID information") > Reported-by: Artemy Kovalyov <artemyko@xxxxxxxxxxxx> > Reviewed-by: Artemy Kovalyov <artemyko@xxxxxxxxxxxx> > Reviewed-by: Yossi Itigin <yosefe@xxxxxxxxxxxx> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx> > --- > drivers/infiniband/core/cma.c | 7 +++---- > drivers/infiniband/core/restrack.c | 6 ++++-- > 2 files changed, 7 insertions(+), 6 deletions(-) Looks correct, Thanks. Reviewed-by: Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx>