net/smc: use a constant for control message length
The sizeof(struct smc_cdc_msg) evaluates to 48 bytes instead of the required 44 bytes. We need to use the constant value of SMC_WR_TX_SIZE to set and check the control message length. Signed-off-by: Karsten Graul <kgraul@linux.vnet.ibm.com> Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4e09ff5362
commit
cbba07a726
@ -269,7 +269,7 @@ static void smc_cdc_rx_handler(struct ib_wc *wc, void *buf)
|
|||||||
|
|
||||||
if (wc->byte_len < offsetof(struct smc_cdc_msg, reserved))
|
if (wc->byte_len < offsetof(struct smc_cdc_msg, reserved))
|
||||||
return; /* short message */
|
return; /* short message */
|
||||||
if (cdc->len != sizeof(*cdc))
|
if (cdc->len != SMC_WR_TX_SIZE)
|
||||||
return; /* invalid message */
|
return; /* invalid message */
|
||||||
smc_cdc_msg_recv(cdc, link, wc->wr_id);
|
smc_cdc_msg_recv(cdc, link, wc->wr_id);
|
||||||
}
|
}
|
||||||
|
@ -465,7 +465,7 @@ create:
|
|||||||
rc = smc_link_determine_gid(conn->lgr);
|
rc = smc_link_determine_gid(conn->lgr);
|
||||||
}
|
}
|
||||||
conn->local_tx_ctrl.common.type = SMC_CDC_MSG_TYPE;
|
conn->local_tx_ctrl.common.type = SMC_CDC_MSG_TYPE;
|
||||||
conn->local_tx_ctrl.len = sizeof(struct smc_cdc_msg);
|
conn->local_tx_ctrl.len = SMC_WR_TX_SIZE;
|
||||||
#ifndef KERNEL_HAS_ATOMIC64
|
#ifndef KERNEL_HAS_ATOMIC64
|
||||||
spin_lock_init(&conn->acurs_lock);
|
spin_lock_init(&conn->acurs_lock);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user