diff --git a/include/iser-private.h b/include/iser-private.h index 73749cb..ff38793 100644 --- a/include/iser-private.h +++ b/include/iser-private.h @@ -85,9 +85,6 @@ enum data_dir{ #define ISER_MIN_POSTED_RX (ISER_DEF_XMIT_CMDS_MAX >> 2) -#define ISER_RX_PAD_SIZE (256 - (ISER_RX_PAYLOAD_SIZE + \ - sizeof(struct ibv_mr*) + sizeof(struct ibv_sge))) - /** * struct iser_hdr - iSER header * @@ -121,13 +118,15 @@ struct iser_hdr { struct iser_rx_desc { struct iser_hdr iser_header; + char pad1[4]; char iscsi_header[ISCSI_RAW_HEADER_SIZE]; char data[ISER_RECV_DATA_SEG_LEN]; struct ibv_sge rx_sg; struct ibv_mr *hdr_mr; - char pad[ISER_RX_PAD_SIZE]; -} __attribute__((packed)); + char pad2[24]; +}; +static_assert(sizeof(struct iser_rx_desc) == 256, "iser_rx_desc size != 256"); /** * struct iser_tx_desc - iSER TX descriptor (for send wr_id) diff --git a/include/scsi-lowlevel.h b/include/scsi-lowlevel.h index f5fd037..bedefd8 100644 --- a/include/scsi-lowlevel.h +++ b/include/scsi-lowlevel.h @@ -30,6 +30,10 @@ extern "C" { #endif +#ifndef static_assert +#define static_assert(e, m) extern char unused_array[1 - 2 * !(e)] +#endif + #define SCSI_CDB_MAX_SIZE 16 enum scsi_opcode {