u32 in_modifier = port;
u8 op_modifier = 0;
+ ASSERT( !in_wc );
+ UNREFERENCED_PARAMETER( in_grh );
+
#define MAD_IFC_BOX_SIZE 0x400
#define MAD_IFC_MY_QPN_OFFSET 0x100
#define MAD_IFC_RQPN_OFFSET 0x104
if (ignore_bkey || !in_wc)
op_modifier |= 0x2;
- if (in_wc) {
- u8 val;
-
- RtlZeroMemory(inbox + 256, 256);
-
- MTHCA_PUT(inbox, in_wc->qp_num, MAD_IFC_MY_QPN_OFFSET);
- MTHCA_PUT(inbox, in_wc->recv.ud.remote_qp, MAD_IFC_RQPN_OFFSET);
-
- val = in_wc->recv.ud.remote_sl << 4;
- MTHCA_PUT(inbox, val, MAD_IFC_SL_OFFSET);
-
- val = in_wc->recv.ud.path_bits |
- (in_wc->recv.ud.recv_opt & IB_RECV_OPT_GRH_VALID ? 0x80 : 0);
- MTHCA_PUT(inbox, val, MAD_IFC_GRH_OFFSET);
-
- MTHCA_PUT(inbox, in_wc->recv.ud.remote_lid, MAD_IFC_RLID_OFFSET);
- MTHCA_PUT(inbox, in_wc->recv.ud.pkey_index, MAD_IFC_PKEY_OFFSET);
-
- if (in_grh)
- memcpy(inbox + MAD_IFC_GRH_OFFSET, in_grh, 40);
-
- op_modifier |= 0x10;
-
- in_modifier |= in_wc->recv.ud.remote_lid << 16;
- }
-
err = mthca_cmd_box(dev, inmailbox->dma, outmailbox->dma,
in_modifier, op_modifier,
CMD_MAD_IFC, CMD_TIME_CLASS_C, status);
case SYNDROME_LOCAL_QP_OP_ERR:
entry->status = IB_WCS_LOCAL_OP_ERR;
break;
- case SYNDROME_LOCAL_EEC_OP_ERR:
- entry->status = IB_WCS_LOCAL_EEC_OP_ERR;
- break;
case SYNDROME_LOCAL_PROT_ERR:
entry->status = IB_WCS_LOCAL_PROTECTION_ERR;
break;
entry->status = IB_WCS_LOCAL_ACCESS_ERR;
break;
case SYNDROME_REMOTE_INVAL_REQ_ERR:
- entry->status = IB_WCS_REM_INV_REQ_ERR;
+ entry->status = IB_WCS_REM_INVALID_REQ_ERR;
break;
case SYNDROME_REMOTE_ACCESS_ERR:
entry->status = IB_WCS_REM_ACCESS_ERR;
case SYNDROME_RNR_RETRY_EXC_ERR:
entry->status = IB_WCS_RNR_RETRY_ERR;
break;
- case SYNDROME_LOCAL_RDD_VIOL_ERR:
- entry->status = IB_WCS_LOCAL_RDD_VIOL_ERR;
- break;
case SYNDROME_REMOTE_INVAL_RD_REQ_ERR:
entry->status = IB_WCS_REM_INVALID_REQ_ERR;
break;
case SYNDROME_REMOTE_ABORTED_ERR:
- entry->status = IB_WCS_REM_ABORT_ERR;
- break;
+ case SYNDROME_LOCAL_EEC_OP_ERR:
+ case SYNDROME_LOCAL_RDD_VIOL_ERR:
case SYNDROME_INVAL_EECN_ERR:
- entry->status = IB_WCS_INV_EECN_ERR;
- break;
case SYNDROME_INVAL_EEC_STATE_ERR:
- entry->status = IB_WCS_INV_EEC_STATE_ERR;
- break;
default:
entry->status = IB_WCS_GENERAL_ERR;
break;
}
}
- entry->qp_num = (*cur_qp)->qpn;
-
if (is_send) {
wq = &(*cur_qp)->sq;
wqe_index = ((cl_ntoh32(cqe->wqe) - (*cur_qp)->send_wqe_offset)
case SYNDROME_LOCAL_QP_OP_ERR:
entry->status = IB_WCS_LOCAL_OP_ERR;
break;
- case SYNDROME_LOCAL_EEC_OP_ERR:
- entry->status = IB_WCS_LOCAL_EEC_OP_ERR;
- break;
case SYNDROME_LOCAL_PROT_ERR:
entry->status = IB_WCS_LOCAL_PROTECTION_ERR;
break;
entry->status = IB_WCS_LOCAL_ACCESS_ERR;
break;
case SYNDROME_REMOTE_INVAL_REQ_ERR:
- entry->status = IB_WCS_REM_INV_REQ_ERR;
+ entry->status = IB_WCS_REM_INVALID_REQ_ERR;
break;
case SYNDROME_REMOTE_ACCESS_ERR:
entry->status = IB_WCS_REM_ACCESS_ERR;
case SYNDROME_RNR_RETRY_EXC_ERR:
entry->status = IB_WCS_RNR_RETRY_ERR;
break;
+ case SYNDROME_LOCAL_EEC_OP_ERR:
case SYNDROME_LOCAL_RDD_VIOL_ERR:
- entry->status = IB_WCS_LOCAL_RDD_VIOL_ERR;
- break;
case SYNDROME_REMOTE_INVAL_RD_REQ_ERR:
- entry->status = IB_WCS_REM_INVALID_REQ_ERR;
- break;
case SYNDROME_REMOTE_ABORTED_ERR:
- entry->status = IB_WCS_REM_ABORT_ERR;
- break;
case SYNDROME_INVAL_EECN_ERR:
- entry->status = IB_WCS_INV_EECN_ERR;
- break;
case SYNDROME_INVAL_EEC_STATE_ERR:
- entry->status = IB_WCS_INV_EEC_STATE_ERR;
- break;
default:
entry->status = IB_WCS_GENERAL_ERR;
break;
}
}
- entry->qp_num = (*cur_qp)->ibv_qp.qp_num;
-
if (is_send) {
wq = &(*cur_qp)->sq;
wqe_index = ((cl_ntoh32(cqe->wqe) - (*cur_qp)->send_wqe_offset) >> wq->wqe_shift);