IB/rxe: Fix ref leak in rxe_create_qp()

The udata->inlen error path needs to clean up the ref
added by rxe_alloc().

Signed-off-by: Andrew Boyer <andrew.boyer@dell.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
Andrew Boyer 2016-11-23 12:39:23 -05:00 коммит произвёл Doug Ledford
Родитель accacb8f51
Коммит 5b9ea16c54
1 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -564,7 +564,7 @@ static struct ib_qp *rxe_create_qp(struct ib_pd *ibpd,
if (udata) {
if (udata->inlen) {
err = -EINVAL;
goto err1;
goto err2;
}
qp->is_user = 1;
}
@ -573,12 +573,13 @@ static struct ib_qp *rxe_create_qp(struct ib_pd *ibpd,
err = rxe_qp_from_init(rxe, qp, pd, init, udata, ibpd);
if (err)
goto err2;
goto err3;
return &qp->ibqp;
err2:
err3:
rxe_drop_index(qp);
err2:
rxe_drop_ref(qp);
err1:
return ERR_PTR(err);