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

Commit d3809ad0 authored by Roland Dreier's avatar Roland Dreier
Browse files

IB/mthca: Remove extra code for RESET->ERR QP state transition



Commit b18aad71 ("IB/mthca: Fix RESET to ERROR transition") added some
extra code to handle a QP state transition from RESET to ERROR.
However, the latest 1.2.1 version of the IB spec has clarified that
this transition is actually not allowed, so we can remove this extra
code again.

Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent e5a5e7d5
Loading
Loading
Loading
Loading
+0 −26
Original line number Diff line number Diff line
@@ -848,23 +848,6 @@ static int __mthca_modify_qp(struct ib_qp *ibqp,
	return err;
}

static const struct ib_qp_attr dummy_init_attr = { .port_num = 1 };
static const int dummy_init_attr_mask[] = {
	[IB_QPT_UD]  = (IB_QP_PKEY_INDEX		|
			IB_QP_PORT			|
			IB_QP_QKEY),
	[IB_QPT_UC]  = (IB_QP_PKEY_INDEX		|
			IB_QP_PORT			|
			IB_QP_ACCESS_FLAGS),
	[IB_QPT_RC]  = (IB_QP_PKEY_INDEX		|
			IB_QP_PORT			|
			IB_QP_ACCESS_FLAGS),
	[IB_QPT_SMI] = (IB_QP_PKEY_INDEX		|
			IB_QP_QKEY),
	[IB_QPT_GSI] = (IB_QP_PKEY_INDEX		|
			IB_QP_QKEY),
};

int mthca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask,
		    struct ib_udata *udata)
{
@@ -926,15 +909,6 @@ int mthca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask,
		goto out;
	}

	if (cur_state == IB_QPS_RESET && new_state == IB_QPS_ERR) {
		err = __mthca_modify_qp(ibqp, &dummy_init_attr,
					dummy_init_attr_mask[ibqp->qp_type],
					IB_QPS_RESET, IB_QPS_INIT);
		if (err)
			goto out;
		cur_state = IB_QPS_INIT;
	}

	err = __mthca_modify_qp(ibqp, attr, attr_mask, cur_state, new_state);

out: