@@ -291,18 +291,11 @@ struct ksock_tx { /* transmit packet */
struct ksock_msg tx_msg; /* socklnd message buffer */
int tx_desc_size; /* size of this descriptor */
enum lnet_msg_hstatus tx_hstatus; /* health status of tx */
- union {
- struct {
- struct kvec iov; /* virt hdr */
- struct bio_vec kiov[0];/* paged payload */
- } paged;
- struct {
- struct kvec iov[1]; /* virt hdr + payload */
- } virt;
- } tx_frags;
+ struct kvec tx_hdr; /* virt hdr */
+ struct bio_vec tx_payload[0]; /* paged payload */
};
-#define KSOCK_NOOP_TX_SIZE (offsetof(struct ksock_tx, tx_frags.paged.kiov[0]))
+#define KSOCK_NOOP_TX_SIZE (offsetof(struct ksock_tx, tx_payload[0]))
/* network zero copy callback descriptor embedded in struct ksock_tx */
@@ -79,7 +79,7 @@ struct ksock_tx *
tx->tx_lnetmsg = NULL;
tx->tx_kiov = NULL;
tx->tx_nkiov = 0;
- tx->tx_iov = tx->tx_frags.virt.iov;
+ tx->tx_iov = &tx->tx_hdr;
tx->tx_niov = 1;
tx->tx_nonblk = nonblk;
@@ -933,7 +933,7 @@ struct ksock_route *
LASSERT(!in_interrupt());
desc_size = offsetof(struct ksock_tx,
- tx_frags.paged.kiov[payload_niov]);
+ tx_payload[payload_niov]);
if (lntmsg->msg_vmflush)
mpflag = memalloc_noreclaim_save();
@@ -950,8 +950,8 @@ struct ksock_route *
tx->tx_lnetmsg = lntmsg;
tx->tx_niov = 1;
- tx->tx_iov = &tx->tx_frags.paged.iov;
- tx->tx_kiov = tx->tx_frags.paged.kiov;
+ tx->tx_iov = &tx->tx_hdr;
+ tx->tx_kiov = tx->tx_payload;
tx->tx_nkiov = lnet_extract_kiov(payload_niov, tx->tx_kiov,
payload_niov, payload_kiov,
payload_offset, payload_nob);