From: Mark Zhang Date: Wed, 19 Jan 2022 08:37:55 +0000 (+0200) Subject: IB/cm: Release previously acquired reference counter in the cm_id_priv X-Git-Tag: accepted/tizen/unified/20230118.172025~2597 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bb7a226780e2a8c606ce500ae9eacf3cdac32972;p=platform%2Fkernel%2Flinux-rpi.git IB/cm: Release previously acquired reference counter in the cm_id_priv commit b856101a1774b5f1c8c99e8dfdef802856520732 upstream. In failure flow, the reference counter acquired was not released, and the following error was reported: drivers/infiniband/core/cm.c:3373 cm_lap_handler() warn: inconsistent refcounting 'cm_id_priv->refcount.refs.counter': Fixes: 7345201c3963 ("IB/cm: Improve the calling of cm_init_av_for_lap and cm_init_av_by_path") Link: https://lore.kernel.org/r/7615f23bbb5c5b66d03f6fa13e1c99d51dae6916.1642581448.git.leonro@nvidia.com Reported-by: Dan Carpenter Signed-off-by: Mark Zhang Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index c903b74..35f0d5e 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -3322,7 +3322,7 @@ static int cm_lap_handler(struct cm_work *work) ret = cm_init_av_by_path(param->alternate_path, NULL, &alt_av); if (ret) { rdma_destroy_ah_attr(&ah_attr); - return -EINVAL; + goto deref; } spin_lock_irq(&cm_id_priv->lock);