Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c1cc72cb authored by Yonatan Cohen's avatar Yonatan Cohen Committed by Doug Ledford
Browse files

IB/rxe: Fix kmem_cache leak



Decrement qp reference when handling error path
in completer to prevent kmem_cache leak.

Fixes: 8700e3e7 ("Soft RoCE driver")
Signed-off-by: default avatarYonatan Cohen <yonatanc@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 3050b998
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -689,7 +689,14 @@ int rxe_completer(void *arg)
					qp->req.need_retry = 1;
					rxe_run_task(&qp->req.task, 1);
				}

				if (pkt) {
					rxe_drop_ref(pkt->qp);
					kfree_skb(skb);
				}

				goto exit;

			} else {
				wqe->status = IB_WC_RETRY_EXC_ERR;
				state = COMPST_ERROR;
@@ -716,6 +723,12 @@ int rxe_completer(void *arg)
		case COMPST_ERROR:
			do_complete(qp, wqe);
			rxe_qp_error(qp);

			if (pkt) {
				rxe_drop_ref(pkt->qp);
				kfree_skb(skb);
			}

			goto exit;
		}
	}