@@ -2716,8 +2716,8 @@ int ib_send_cm_rej(struct ib_cm_id *cm_id,
unsigned long flags;
int ret;
- if ((private_data && private_data_len > IB_CM_REJ_PRIVATE_DATA_SIZE) ||
- (ari && ari_length > IB_CM_REJ_ARI_LENGTH))
+ if ((private_data && private_data_len > CM_REJ_PRIVATE_DATA_SIZE) ||
+ (ari && ari_length > CM_REJ_ARI_SIZE))
return -EINVAL;
cm_id_priv = container_of(cm_id, struct cm_id_private, id);
@@ -2778,7 +2778,7 @@ static void cm_format_rej_event(struct cm_work *work)
param->ari_length = cm_rej_get_reject_info_len(rej_msg);
param->reason = __be16_to_cpu(rej_msg->reason);
work->cm_event.private_data = &rej_msg->private_data;
- work->cm_event.private_data_len = IB_CM_REJ_PRIVATE_DATA_SIZE;
+ work->cm_event.private_data_len = CM_REJ_PRIVATE_DATA_SIZE;
}
static struct cm_id_private * cm_acquire_rejected_id(struct cm_rej_msg *rej_msg)
@@ -427,9 +427,9 @@ struct cm_rej_msg {
/* reject info length:7, rsvd:1. */
u8 offset9;
__be16 reason;
- u8 ari[IB_CM_REJ_ARI_LENGTH];
+ u8 ari[CM_REJ_ARI_SIZE];
- u8 private_data[IB_CM_REJ_PRIVATE_DATA_SIZE];
+ u8 private_data[CM_REJ_PRIVATE_DATA_SIZE];
} __packed;
@@ -1951,7 +1951,7 @@ static int cma_ib_handler(struct ib_cm_id *cm_id,
event.status = ib_event->param.rej_rcvd.reason;
event.event = RDMA_CM_EVENT_REJECTED;
event.param.conn.private_data = ib_event->private_data;
- event.param.conn.private_data_len = IB_CM_REJ_PRIVATE_DATA_SIZE;
+ event.param.conn.private_data_len = CM_REJ_PRIVATE_DATA_SIZE;
break;
default:
pr_err("RDMA CMA: unexpected IB CM event: %d\n",
@@ -65,12 +65,10 @@ enum ib_cm_event_type {
};
enum ib_cm_data_size {
- IB_CM_REJ_PRIVATE_DATA_SIZE = 148,
IB_CM_REP_PRIVATE_DATA_SIZE = 196,
IB_CM_RTU_PRIVATE_DATA_SIZE = 224,
IB_CM_DREQ_PRIVATE_DATA_SIZE = 220,
IB_CM_DREP_PRIVATE_DATA_SIZE = 224,
- IB_CM_REJ_ARI_LENGTH = 72,
IB_CM_LAP_PRIVATE_DATA_SIZE = 168,
IB_CM_APR_PRIVATE_DATA_SIZE = 148,
IB_CM_APR_INFO_LENGTH = 72,
@@ -96,4 +96,15 @@
#define CM_MRA_PRIVATE_DATA CM_FIELD_MLOC(struct cm_mra_msg, 10, 1776)
#define CM_MRA_PRIVATE_DATA_SIZE 222
+/* Table 108 REJ Message Contents */
+#define CM_REJ_LOCAL_COMM_ID CM_FIELD32_LOC(struct cm_rej_msg, 0, 32)
+#define CM_REJ_REMOTE_COMM_ID CM_FIELD32_LOC(struct cm_rej_msg, 4, 32)
+#define CM_REJ_MESSAGE_REJECTED CM_FIELD8_LOC(struct cm_rej_msg, 8, 2)
+#define CM_REJ_REJECTED_INFO_LENGTH CM_FIELD8_LOC(struct cm_rej_msg, 9, 7)
+#define CM_REJ_REASON CM_FIELD16_LOC(struct cm_rej_msg, 10, 16)
+#define CM_REJ_ARI CM_FIELD_MLOC(struct cm_rej_msg, 12, 576)
+#define CM_REJ_ARI_SIZE 72
+#define CM_REJ_PRIVATE_DATA CM_FIELD_MLOC(struct cm_rej_msg, 84, 1184)
+#define CM_REJ_PRIVATE_DATA_SIZE 148
+
#endif /* _IBTA_VOL1_C12_H_ */