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

Commit b42dde47 authored by Bart Van Assche's avatar Bart Van Assche Committed by Doug Ledford
Browse files

IB/mlx4: Rework special QP creation error path



The special QP creation error path relies on offset_of(struct mlx4_ib_sqp,
qp) == 0. Remove this assumption because that makes the QP creation
code easier to understand.

Signed-off-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
Cc: Yishai Hadas <yishaih@mellanox.com>
Reviewed-by: default avatarLaurence Oberman <loberman@redhat.com>
Reviewed-by: default avatarYishai Hadas <yishaih@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent e9817246
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -644,7 +644,7 @@ static int create_qp_common(struct mlx4_ib_dev *dev, struct ib_pd *pd,
	int qpn;
	int err;
	struct ib_qp_cap backup_cap;
	struct mlx4_ib_sqp *sqp;
	struct mlx4_ib_sqp *sqp = NULL;
	struct mlx4_ib_qp *qp;
	enum mlx4_ib_qp_type qp_type = (enum mlx4_ib_qp_type) init_attr->qp_type;
	struct mlx4_ib_cq *mcq;
@@ -933,7 +933,9 @@ static int create_qp_common(struct mlx4_ib_dev *dev, struct ib_pd *pd,
		mlx4_db_free(dev->dev, &qp->db);

err:
	if (!*caller_qp)
	if (sqp)
		kfree(sqp);
	else if (!*caller_qp)
		kfree(qp);
	return err;
}