IB_QPS_ERR
qp_attr.qp_state = IB_QPS_ERR;
qp_attr.qp_state = IB_QPS_ERR;
.qp_state = IB_QPS_ERR
if (cmd.qp_state > IB_QPS_ERR)
cmd->base.cur_qp_state > IB_QPS_ERR) ||
cmd->base.qp_state > IB_QPS_ERR)) {
} qp_state_table[IB_QPS_ERR + 1][IB_QPS_ERR + 1] = {
[IB_QPS_ERR] = { .valid = 1 },
[IB_QPS_ERR] = { .valid = 1 },
[IB_QPS_ERR] = { .valid = 1 },
[IB_QPS_ERR] = { .valid = 1 },
[IB_QPS_ERR] = { .valid = 1 },
[IB_QPS_ERR] = {
[IB_QPS_ERR] = { .valid = 1 }
struct ib_qp_attr attr = { .qp_state = IB_QPS_ERR };
struct ib_qp_attr attr = { .qp_state = IB_QPS_ERR };
struct ib_qp_attr attr = { .qp_state = IB_QPS_ERR };
case IB_QPS_ERR:
return IB_QPS_ERR;
case IB_QPS_ERR:
return IB_QPS_ERR;
return IB_QPS_ERR;
} srd_qp_state_table[IB_QPS_ERR + 1][IB_QPS_ERR + 1] = {
[IB_QPS_ERR] = { .valid = 1 },
[IB_QPS_ERR] = { .valid = 1 },
[IB_QPS_ERR] = { .valid = 1 },
[IB_QPS_ERR] = { .valid = 1 },
[IB_QPS_ERR] = { .valid = 1 },
[IB_QPS_ERR] = {
[IB_QPS_ERR] = { .valid = 1 },
static int ib_qps_to_erdma_qps[ERDMA_PROTO_COUNT][IB_QPS_ERR + 1] = {
[IB_QPS_ERR] = ERDMA_QPS_IWARP_ERROR,
[IB_QPS_ERR] = ERDMA_QPS_ROCEV2_ERROR,
[ERDMA_QPS_IWARP_CLOSING] = IB_QPS_ERR,
[ERDMA_QPS_IWARP_TERMINATE] = IB_QPS_ERR,
[ERDMA_QPS_IWARP_ERROR] = IB_QPS_ERR,
[ERDMA_QPS_ROCEV2_ERROR] = IB_QPS_ERR,
struct ib_qp_attr attr = { .qp_state = IB_QPS_ERR };
static const bool sm[][IB_QPS_ERR + 1] = {
[IB_QPS_ERR] = true },
[IB_QPS_ERR] = true },
[IB_QPS_ERR] = true },
[IB_QPS_ERR] = { [IB_QPS_RESET] = true,
[IB_QPS_ERR] = true }
hr_qp->state = IB_QPS_ERR;
if (new_state == IB_QPS_ERR)
[HNS_ROCE_QP_ST_ERR] = IB_QPS_ERR,
if (unlikely(qp->state == IB_QPS_ERR)) {
if (unlikely(qp->state == IB_QPS_ERR)) {
if (unlikely(qp->state == IB_QPS_ERR)) {
struct ib_qp_attr attr = { .qp_state = IB_QPS_ERR };
qp->state = IB_QPS_ERR;
(attr_mask & IB_QP_STATE) && new_state == IB_QPS_ERR) {
attr.qp_state = IB_QPS_ERR;
if (attr_state == IB_QPS_ERR)
if (attr->qp_state == IB_QPS_ERR) {
return IB_QPS_ERR;
case IB_QPS_ERR:
iwqp->ibqp_state = IB_QPS_ERR;
attr.qp_state = IB_QPS_ERR;
attr.qp_state = IB_QPS_ERR;
attr.qp_state = IB_QPS_ERR;
iwqp->ibqp_state == IB_QPS_ERR) {
case IB_QPS_ERR:
case IB_QPS_ERR:
case IB_QPS_ERR: return MLX4_QP_STATE_ERR;
if (cur_state != IB_QPS_RESET && cur_state != IB_QPS_ERR &&
(new_state == IB_QPS_RESET || new_state == IB_QPS_ERR))
case MLX4_QP_STATE_ERR: return IB_QPS_ERR;
return IB_QPS_ERR;
struct ib_qp_attr attr = { .qp_state = IB_QPS_ERR };
struct ib_qp_attr attr = { .qp_state = IB_QPS_ERR };
} else if (cur_state != IB_QPS_RESET && new_state == IB_QPS_ERR) {
case MLX5_QP_STATE_ERR: return IB_QPS_ERR;
[MLX5_SQC_STATE_ERR] = IB_QPS_ERR,
[MLX5_SQ_STATE_NA] = IB_QPS_ERR,
struct ib_qp_attr attr = { .qp_state = IB_QPS_ERR };
struct ib_qp_attr attr = { .qp_state = IB_QPS_ERR };
case IB_QPS_ERR: return MLX5_QP_STATE_ERR;
static const u16 op[IB_QPS_ERR + 1][IB_QPS_ERR + 1] = {
[IB_QPS_ERR] = CMD_2ERR_QPEE,
[IB_QPS_ERR] = CMD_2ERR_QPEE,
[IB_QPS_ERR] = CMD_2ERR_QPEE,
[IB_QPS_ERR] = CMD_2ERR_QPEE,
[IB_QPS_ERR] = CMD_2ERR_QPEE,
[IB_QPS_ERR] = CMD_2ERR_QPEE,
[IB_QPS_ERR] = {
[IB_QPS_ERR] = CMD_2ERR_QPEE,
case IB_QPS_ERR: return MTHCA_QP_STATE_ERR;
case MTHCA_QP_STATE_ERR: return IB_QPS_ERR;
cur_state != IB_QPS_ERR &&
new_state == IB_QPS_ERR))
return IB_QPS_ERR;
return IB_QPS_ERR;
case IB_QPS_ERR:
enum ib_qp_state new_ib_qps = IB_QPS_ERR;
attrs.qp_state = IB_QPS_ERR;
ocrdma_qp_state_change(qp, IB_QPS_ERR, NULL);
return IB_QPS_ERR;
return IB_QPS_ERR;
case IB_QPS_ERR:
attr.qp_state = IB_QPS_ERR;
IB_QPS_ERR,
(IB_QPS_ERR));
case IB_QPS_ERR:
case IB_QPS_ERR:
case IB_QPS_ERR:
if (qp->state == IB_QPS_ERR || qp->state == IB_QPS_RESET)
qp->state = IB_QPS_ERR;
case IB_QPS_ERR:
const int ib_rvt_state_ops[IB_QPS_ERR + 1] = {
if (qp->state == IB_QPS_ERR || qp->state == IB_QPS_RESET)
[IB_QPS_ERR] = RVT_POST_RECV_OK | RVT_FLUSH_RECV |
if (!qp->valid || qp_state(qp) == IB_QPS_ERR ||
bool notify = qp->valid && (qp_state(qp) == IB_QPS_ERR);
qp->attr.qp_state = IB_QPS_ERR;
if (qp->attr.sq_draining && new_state != IB_QPS_ERR)
[IB_QPS_ERR] = "ERR",
case IB_QPS_ERR:
if (unlikely(qp_state(qp) == IB_QPS_ERR)) {
if (unlikely(qp_state(qp) == IB_QPS_ERR)) {
if (!qp->valid || qp_state(qp) == IB_QPS_ERR ||
bool notify = qp->valid && (qp_state(qp) == IB_QPS_ERR);
if (qp_state(qp) == IB_QPS_ERR)
[SIW_QP_STATE_ERROR] = IB_QPS_ERR
static int ib_qp_state_to_siw_qp_state[IB_QPS_ERR + 1] = {
[IB_QPS_ERR] = SIW_QP_STATE_ERROR
static char ib_qp_state_to_string[IB_QPS_ERR + 1][sizeof("RESET")] = {
[IB_QPS_ERR] = "ERR"
.qp_state = IB_QPS_ERR
if (new_state == IB_QPS_ERR && qp_attr.qp_state == IB_QPS_RESET)
qp_attr.qp_state = IB_QPS_ERR;
check_qp_movement_and_print(priv, priv->qp, IB_QPS_ERR);
qp_attr.qp_state = IB_QPS_ERR;
qp_attr.qp_state = IB_QPS_ERR;