提交 8dd87fba 编写于 作者: T Tatyana Nikolova 提交者: Roland Dreier

RDMA/nes: Fixes for sparse endianness warnings

Fix endianness problems detect by sparse, introduced with the enhanced
MPA patch.
Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: NTatyana Nikolova <Tatyana.E.Nikolova@intel.com>
Signed-off-by: NFaisal Latif <Faisal.Latif@intel.com>
Signed-off-by: NRoland Dreier <roland@purestorage.com>
上级 6b21d18e
...@@ -338,18 +338,21 @@ static int parse_mpa(struct nes_cm_node *cm_node, u8 *buffer, u32 *type, ...@@ -338,18 +338,21 @@ static int parse_mpa(struct nes_cm_node *cm_node, u8 *buffer, u32 *type,
case IETF_MPA_V2: { case IETF_MPA_V2: {
u16 ird_size; u16 ird_size;
u16 ord_size; u16 ord_size;
u16 rtr_ctrl_ird;
u16 rtr_ctrl_ord;
mpa_v2_frame = (struct ietf_mpa_v2 *)buffer; mpa_v2_frame = (struct ietf_mpa_v2 *)buffer;
mpa_hdr_len += IETF_RTR_MSG_SIZE; mpa_hdr_len += IETF_RTR_MSG_SIZE;
cm_node->mpa_frame_size -= IETF_RTR_MSG_SIZE; cm_node->mpa_frame_size -= IETF_RTR_MSG_SIZE;
rtr_msg = &mpa_v2_frame->rtr_msg; rtr_msg = &mpa_v2_frame->rtr_msg;
/* parse rtr message */ /* parse rtr message */
rtr_msg->ctrl_ird = ntohs(rtr_msg->ctrl_ird); rtr_ctrl_ird = ntohs(rtr_msg->ctrl_ird);
rtr_msg->ctrl_ord = ntohs(rtr_msg->ctrl_ord); rtr_ctrl_ord = ntohs(rtr_msg->ctrl_ord);
ird_size = rtr_msg->ctrl_ird & IETF_NO_IRD_ORD; ird_size = rtr_ctrl_ird & IETF_NO_IRD_ORD;
ord_size = rtr_msg->ctrl_ord & IETF_NO_IRD_ORD; ord_size = rtr_ctrl_ord & IETF_NO_IRD_ORD;
if (!(rtr_msg->ctrl_ird & IETF_PEER_TO_PEER)) { if (!(rtr_ctrl_ird & IETF_PEER_TO_PEER)) {
/* send reset */ /* send reset */
return -EINVAL; return -EINVAL;
} }
...@@ -370,9 +373,9 @@ static int parse_mpa(struct nes_cm_node *cm_node, u8 *buffer, u32 *type, ...@@ -370,9 +373,9 @@ static int parse_mpa(struct nes_cm_node *cm_node, u8 *buffer, u32 *type,
} }
} }
if (rtr_msg->ctrl_ord & IETF_RDMA0_READ) { if (rtr_ctrl_ord & IETF_RDMA0_READ) {
cm_node->send_rdma0_op = SEND_RDMA_READ_ZERO; cm_node->send_rdma0_op = SEND_RDMA_READ_ZERO;
} else if (rtr_msg->ctrl_ord & IETF_RDMA0_WRITE) { } else if (rtr_ctrl_ord & IETF_RDMA0_WRITE) {
cm_node->send_rdma0_op = SEND_RDMA_WRITE_ZERO; cm_node->send_rdma0_op = SEND_RDMA_WRITE_ZERO;
} else { /* Not supported RDMA0 operation */ } else { /* Not supported RDMA0 operation */
return -EINVAL; return -EINVAL;
...@@ -543,6 +546,8 @@ static void build_mpa_v2(struct nes_cm_node *cm_node, ...@@ -543,6 +546,8 @@ static void build_mpa_v2(struct nes_cm_node *cm_node,
{ {
struct ietf_mpa_v2 *mpa_frame = (struct ietf_mpa_v2 *)start_addr; struct ietf_mpa_v2 *mpa_frame = (struct ietf_mpa_v2 *)start_addr;
struct ietf_rtr_msg *rtr_msg = &mpa_frame->rtr_msg; struct ietf_rtr_msg *rtr_msg = &mpa_frame->rtr_msg;
u16 ctrl_ird;
u16 ctrl_ord;
/* initialize the upper 5 bytes of the frame */ /* initialize the upper 5 bytes of the frame */
build_mpa_v1(cm_node, start_addr, mpa_key); build_mpa_v1(cm_node, start_addr, mpa_key);
...@@ -550,31 +555,31 @@ static void build_mpa_v2(struct nes_cm_node *cm_node, ...@@ -550,31 +555,31 @@ static void build_mpa_v2(struct nes_cm_node *cm_node,
mpa_frame->priv_data_len += htons(IETF_RTR_MSG_SIZE); mpa_frame->priv_data_len += htons(IETF_RTR_MSG_SIZE);
/* initialize RTR msg */ /* initialize RTR msg */
rtr_msg->ctrl_ird = (cm_node->ird_size > IETF_NO_IRD_ORD) ? ctrl_ird = (cm_node->ird_size > IETF_NO_IRD_ORD) ?
IETF_NO_IRD_ORD : cm_node->ird_size; IETF_NO_IRD_ORD : cm_node->ird_size;
rtr_msg->ctrl_ord = (cm_node->ord_size > IETF_NO_IRD_ORD) ? ctrl_ord = (cm_node->ord_size > IETF_NO_IRD_ORD) ?
IETF_NO_IRD_ORD : cm_node->ord_size; IETF_NO_IRD_ORD : cm_node->ord_size;
rtr_msg->ctrl_ird |= IETF_PEER_TO_PEER; ctrl_ird |= IETF_PEER_TO_PEER;
rtr_msg->ctrl_ird |= IETF_FLPDU_ZERO_LEN; ctrl_ird |= IETF_FLPDU_ZERO_LEN;
switch (mpa_key) { switch (mpa_key) {
case MPA_KEY_REQUEST: case MPA_KEY_REQUEST:
rtr_msg->ctrl_ord |= IETF_RDMA0_WRITE; ctrl_ord |= IETF_RDMA0_WRITE;
rtr_msg->ctrl_ord |= IETF_RDMA0_READ; ctrl_ord |= IETF_RDMA0_READ;
break; break;
case MPA_KEY_REPLY: case MPA_KEY_REPLY:
switch (cm_node->send_rdma0_op) { switch (cm_node->send_rdma0_op) {
case SEND_RDMA_WRITE_ZERO: case SEND_RDMA_WRITE_ZERO:
rtr_msg->ctrl_ord |= IETF_RDMA0_WRITE; ctrl_ord |= IETF_RDMA0_WRITE;
break; break;
case SEND_RDMA_READ_ZERO: case SEND_RDMA_READ_ZERO:
rtr_msg->ctrl_ord |= IETF_RDMA0_READ; ctrl_ord |= IETF_RDMA0_READ;
break; break;
} }
} }
rtr_msg->ctrl_ird = htons(rtr_msg->ctrl_ird); rtr_msg->ctrl_ird = htons(ctrl_ird);
rtr_msg->ctrl_ord = htons(rtr_msg->ctrl_ord); rtr_msg->ctrl_ord = htons(ctrl_ord);
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册