Commit f351bad2 authored by Al Viro's avatar Al Viro Committed by Greg Kroah-Hartman

lustre: don't use iovec instead of kvec

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4d4e1eef
...@@ -752,9 +752,9 @@ int lnet_fail_nid(lnet_nid_t nid, unsigned int threshold); ...@@ -752,9 +752,9 @@ int lnet_fail_nid(lnet_nid_t nid, unsigned int threshold);
void lnet_counters_get(lnet_counters_t *counters); void lnet_counters_get(lnet_counters_t *counters);
void lnet_counters_reset(void); void lnet_counters_reset(void);
unsigned int lnet_iov_nob(unsigned int niov, struct iovec *iov); unsigned int lnet_iov_nob(unsigned int niov, struct kvec *iov);
int lnet_extract_iov(int dst_niov, struct iovec *dst, int lnet_extract_iov(int dst_niov, struct kvec *dst,
int src_niov, struct iovec *src, int src_niov, struct kvec *src,
unsigned int offset, unsigned int len); unsigned int offset, unsigned int len);
unsigned int lnet_kiov_nob(unsigned int niov, lnet_kiov_t *iov); unsigned int lnet_kiov_nob(unsigned int niov, lnet_kiov_t *iov);
...@@ -762,17 +762,17 @@ int lnet_extract_kiov(int dst_niov, lnet_kiov_t *dst, ...@@ -762,17 +762,17 @@ int lnet_extract_kiov(int dst_niov, lnet_kiov_t *dst,
int src_niov, lnet_kiov_t *src, int src_niov, lnet_kiov_t *src,
unsigned int offset, unsigned int len); unsigned int offset, unsigned int len);
void lnet_copy_iov2iov(unsigned int ndiov, struct iovec *diov, void lnet_copy_iov2iov(unsigned int ndiov, struct kvec *diov,
unsigned int doffset, unsigned int doffset,
unsigned int nsiov, struct iovec *siov, unsigned int nsiov, struct kvec *siov,
unsigned int soffset, unsigned int nob); unsigned int soffset, unsigned int nob);
void lnet_copy_kiov2iov(unsigned int niov, struct iovec *iov, void lnet_copy_kiov2iov(unsigned int niov, struct kvec *iov,
unsigned int iovoffset, unsigned int iovoffset,
unsigned int nkiov, lnet_kiov_t *kiov, unsigned int nkiov, lnet_kiov_t *kiov,
unsigned int kiovoffset, unsigned int nob); unsigned int kiovoffset, unsigned int nob);
void lnet_copy_iov2kiov(unsigned int nkiov, lnet_kiov_t *kiov, void lnet_copy_iov2kiov(unsigned int nkiov, lnet_kiov_t *kiov,
unsigned int kiovoffset, unsigned int kiovoffset,
unsigned int niov, struct iovec *iov, unsigned int niov, struct kvec *iov,
unsigned int iovoffset, unsigned int nob); unsigned int iovoffset, unsigned int nob);
void lnet_copy_kiov2kiov(unsigned int ndkiov, lnet_kiov_t *dkiov, void lnet_copy_kiov2kiov(unsigned int ndkiov, lnet_kiov_t *dkiov,
unsigned int doffset, unsigned int doffset,
...@@ -781,10 +781,10 @@ void lnet_copy_kiov2kiov(unsigned int ndkiov, lnet_kiov_t *dkiov, ...@@ -781,10 +781,10 @@ void lnet_copy_kiov2kiov(unsigned int ndkiov, lnet_kiov_t *dkiov,
static inline void static inline void
lnet_copy_iov2flat(int dlen, void *dest, unsigned int doffset, lnet_copy_iov2flat(int dlen, void *dest, unsigned int doffset,
unsigned int nsiov, struct iovec *siov, unsigned int soffset, unsigned int nsiov, struct kvec *siov, unsigned int soffset,
unsigned int nob) unsigned int nob)
{ {
struct iovec diov = {/*.iov_base = */ dest, /*.iov_len = */ dlen}; struct kvec diov = {/*.iov_base = */ dest, /*.iov_len = */ dlen};
lnet_copy_iov2iov(1, &diov, doffset, lnet_copy_iov2iov(1, &diov, doffset,
nsiov, siov, soffset, nob); nsiov, siov, soffset, nob);
...@@ -795,17 +795,17 @@ lnet_copy_kiov2flat(int dlen, void *dest, unsigned int doffset, ...@@ -795,17 +795,17 @@ lnet_copy_kiov2flat(int dlen, void *dest, unsigned int doffset,
unsigned int nsiov, lnet_kiov_t *skiov, unsigned int nsiov, lnet_kiov_t *skiov,
unsigned int soffset, unsigned int nob) unsigned int soffset, unsigned int nob)
{ {
struct iovec diov = {/* .iov_base = */ dest, /* .iov_len = */ dlen}; struct kvec diov = {/* .iov_base = */ dest, /* .iov_len = */ dlen};
lnet_copy_kiov2iov(1, &diov, doffset, lnet_copy_kiov2iov(1, &diov, doffset,
nsiov, skiov, soffset, nob); nsiov, skiov, soffset, nob);
} }
static inline void static inline void
lnet_copy_flat2iov(unsigned int ndiov, struct iovec *diov, unsigned int doffset, lnet_copy_flat2iov(unsigned int ndiov, struct kvec *diov, unsigned int doffset,
int slen, void *src, unsigned int soffset, unsigned int nob) int slen, void *src, unsigned int soffset, unsigned int nob)
{ {
struct iovec siov = {/*.iov_base = */ src, /*.iov_len = */slen}; struct kvec siov = {/*.iov_base = */ src, /*.iov_len = */slen};
lnet_copy_iov2iov(ndiov, diov, doffset, lnet_copy_iov2iov(ndiov, diov, doffset,
1, &siov, soffset, nob); 1, &siov, soffset, nob);
...@@ -816,7 +816,7 @@ lnet_copy_flat2kiov(unsigned int ndiov, lnet_kiov_t *dkiov, ...@@ -816,7 +816,7 @@ lnet_copy_flat2kiov(unsigned int ndiov, lnet_kiov_t *dkiov,
unsigned int doffset, int slen, void *src, unsigned int doffset, int slen, void *src,
unsigned int soffset, unsigned int nob) unsigned int soffset, unsigned int nob)
{ {
struct iovec siov = {/* .iov_base = */ src, /* .iov_len = */ slen}; struct kvec siov = {/* .iov_base = */ src, /* .iov_len = */ slen};
lnet_copy_iov2kiov(ndiov, dkiov, doffset, lnet_copy_iov2kiov(ndiov, dkiov, doffset,
1, &siov, soffset, nob); 1, &siov, soffset, nob);
......
...@@ -217,7 +217,7 @@ typedef struct lnet_msg { ...@@ -217,7 +217,7 @@ typedef struct lnet_msg {
unsigned int msg_wanted; unsigned int msg_wanted;
unsigned int msg_offset; unsigned int msg_offset;
unsigned int msg_niov; unsigned int msg_niov;
struct iovec *msg_iov; struct kvec *msg_iov;
lnet_kiov_t *msg_kiov; lnet_kiov_t *msg_kiov;
lnet_event_t msg_ev; lnet_event_t msg_ev;
...@@ -271,7 +271,7 @@ typedef struct lnet_libmd { ...@@ -271,7 +271,7 @@ typedef struct lnet_libmd {
lnet_eq_t *md_eq; lnet_eq_t *md_eq;
unsigned int md_niov; /* # frags */ unsigned int md_niov; /* # frags */
union { union {
struct iovec iov[LNET_MAX_IOV]; struct kvec iov[LNET_MAX_IOV];
lnet_kiov_t kiov[LNET_MAX_IOV]; lnet_kiov_t kiov[LNET_MAX_IOV];
} md_iov; } md_iov;
} lnet_libmd_t; } lnet_libmd_t;
...@@ -346,7 +346,7 @@ typedef struct lnet_lnd { ...@@ -346,7 +346,7 @@ typedef struct lnet_lnd {
* credit if the LND does flow control. */ * credit if the LND does flow control. */
int (*lnd_recv)(struct lnet_ni *ni, void *private, lnet_msg_t *msg, int (*lnd_recv)(struct lnet_ni *ni, void *private, lnet_msg_t *msg,
int delayed, unsigned int niov, int delayed, unsigned int niov,
struct iovec *iov, lnet_kiov_t *kiov, struct kvec *iov, lnet_kiov_t *kiov,
unsigned int offset, unsigned int mlen, unsigned int rlen); unsigned int offset, unsigned int mlen, unsigned int rlen);
/* lnet_parse() has had to delay processing of this message /* lnet_parse() has had to delay processing of this message
......
...@@ -1026,5 +1026,5 @@ int kiblnd_post_rx (kib_rx_t *rx, int credit); ...@@ -1026,5 +1026,5 @@ int kiblnd_post_rx (kib_rx_t *rx, int credit);
int kiblnd_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg); int kiblnd_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg);
int kiblnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed, int kiblnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed,
unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov, unsigned int niov, struct kvec *iov, lnet_kiov_t *kiov,
unsigned int offset, unsigned int mlen, unsigned int rlen); unsigned int offset, unsigned int mlen, unsigned int rlen);
...@@ -697,7 +697,7 @@ kiblnd_map_tx(lnet_ni_t *ni, kib_tx_t *tx, ...@@ -697,7 +697,7 @@ kiblnd_map_tx(lnet_ni_t *ni, kib_tx_t *tx,
static int static int
kiblnd_setup_rd_iov(lnet_ni_t *ni, kib_tx_t *tx, kib_rdma_desc_t *rd, kiblnd_setup_rd_iov(lnet_ni_t *ni, kib_tx_t *tx, kib_rdma_desc_t *rd,
unsigned int niov, struct iovec *iov, int offset, int nob) unsigned int niov, struct kvec *iov, int offset, int nob)
{ {
kib_net_t *net = ni->ni_data; kib_net_t *net = ni->ni_data;
struct page *page; struct page *page;
...@@ -1461,7 +1461,7 @@ kiblnd_send (lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg) ...@@ -1461,7 +1461,7 @@ kiblnd_send (lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg)
int target_is_router = lntmsg->msg_target_is_router; int target_is_router = lntmsg->msg_target_is_router;
int routing = lntmsg->msg_routing; int routing = lntmsg->msg_routing;
unsigned int payload_niov = lntmsg->msg_niov; unsigned int payload_niov = lntmsg->msg_niov;
struct iovec *payload_iov = lntmsg->msg_iov; struct kvec *payload_iov = lntmsg->msg_iov;
lnet_kiov_t *payload_kiov = lntmsg->msg_kiov; lnet_kiov_t *payload_kiov = lntmsg->msg_kiov;
unsigned int payload_offset = lntmsg->msg_offset; unsigned int payload_offset = lntmsg->msg_offset;
unsigned int payload_nob = lntmsg->msg_len; unsigned int payload_nob = lntmsg->msg_len;
...@@ -1628,7 +1628,7 @@ kiblnd_reply (lnet_ni_t *ni, kib_rx_t *rx, lnet_msg_t *lntmsg) ...@@ -1628,7 +1628,7 @@ kiblnd_reply (lnet_ni_t *ni, kib_rx_t *rx, lnet_msg_t *lntmsg)
{ {
lnet_process_id_t target = lntmsg->msg_target; lnet_process_id_t target = lntmsg->msg_target;
unsigned int niov = lntmsg->msg_niov; unsigned int niov = lntmsg->msg_niov;
struct iovec *iov = lntmsg->msg_iov; struct kvec *iov = lntmsg->msg_iov;
lnet_kiov_t *kiov = lntmsg->msg_kiov; lnet_kiov_t *kiov = lntmsg->msg_kiov;
unsigned int offset = lntmsg->msg_offset; unsigned int offset = lntmsg->msg_offset;
unsigned int nob = lntmsg->msg_len; unsigned int nob = lntmsg->msg_len;
...@@ -1687,7 +1687,7 @@ kiblnd_reply (lnet_ni_t *ni, kib_rx_t *rx, lnet_msg_t *lntmsg) ...@@ -1687,7 +1687,7 @@ kiblnd_reply (lnet_ni_t *ni, kib_rx_t *rx, lnet_msg_t *lntmsg)
int int
kiblnd_recv (lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed, kiblnd_recv (lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed,
unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov, unsigned int niov, struct kvec *iov, lnet_kiov_t *kiov,
unsigned int offset, unsigned int mlen, unsigned int rlen) unsigned int offset, unsigned int mlen, unsigned int rlen)
{ {
kib_rx_t *rx = private; kib_rx_t *rx = private;
......
...@@ -69,7 +69,7 @@ typedef struct /* per scheduler state */ ...@@ -69,7 +69,7 @@ typedef struct /* per scheduler state */
int kss_nconns; int kss_nconns;
struct ksock_sched_info *kss_info; /* owner of it */ struct ksock_sched_info *kss_info; /* owner of it */
struct page *kss_rx_scratch_pgs[LNET_MAX_IOV]; struct page *kss_rx_scratch_pgs[LNET_MAX_IOV];
struct iovec kss_scratch_iov[LNET_MAX_IOV]; struct kvec kss_scratch_iov[LNET_MAX_IOV];
} ksock_sched_t; } ksock_sched_t;
struct ksock_sched_info { struct ksock_sched_info {
...@@ -213,7 +213,7 @@ typedef struct /* transmit packet */ ...@@ -213,7 +213,7 @@ typedef struct /* transmit packet */
int tx_nob; /* # packet bytes */ int tx_nob; /* # packet bytes */
int tx_resid; /* residual bytes */ int tx_resid; /* residual bytes */
int tx_niov; /* # packet iovec frags */ int tx_niov; /* # packet iovec frags */
struct iovec *tx_iov; /* packet iovec frags */ struct kvec *tx_iov; /* packet iovec frags */
int tx_nkiov; /* # packet page frags */ int tx_nkiov; /* # packet page frags */
unsigned short tx_zc_aborted; /* aborted ZC request */ unsigned short tx_zc_aborted; /* aborted ZC request */
unsigned short tx_zc_capable:1; /* payload is large enough for ZC */ unsigned short tx_zc_capable:1; /* payload is large enough for ZC */
...@@ -227,11 +227,11 @@ typedef struct /* transmit packet */ ...@@ -227,11 +227,11 @@ typedef struct /* transmit packet */
int tx_desc_size; /* size of this descriptor */ int tx_desc_size; /* size of this descriptor */
union { union {
struct { struct {
struct iovec iov; /* virt hdr */ struct kvec iov; /* virt hdr */
lnet_kiov_t kiov[0]; /* paged payload */ lnet_kiov_t kiov[0]; /* paged payload */
} paged; } paged;
struct { struct {
struct iovec iov[1]; /* virt hdr + payload */ struct kvec iov[1]; /* virt hdr + payload */
} virt; } virt;
} tx_frags; } tx_frags;
} ksock_tx_t; } ksock_tx_t;
...@@ -243,7 +243,7 @@ typedef struct /* transmit packet */ ...@@ -243,7 +243,7 @@ typedef struct /* transmit packet */
/* space for the rx frag descriptors; we either read a single contiguous /* space for the rx frag descriptors; we either read a single contiguous
* header, or up to LNET_MAX_IOV frags of payload of either type. */ * header, or up to LNET_MAX_IOV frags of payload of either type. */
typedef union { typedef union {
struct iovec iov[LNET_MAX_IOV]; struct kvec iov[LNET_MAX_IOV];
lnet_kiov_t kiov[LNET_MAX_IOV]; lnet_kiov_t kiov[LNET_MAX_IOV];
} ksock_rxiovspace_t; } ksock_rxiovspace_t;
...@@ -284,7 +284,7 @@ typedef struct ksock_conn { ...@@ -284,7 +284,7 @@ typedef struct ksock_conn {
int ksnc_rx_nob_left; /* # bytes to next hdr/body */ int ksnc_rx_nob_left; /* # bytes to next hdr/body */
int ksnc_rx_nob_wanted; /* bytes actually wanted */ int ksnc_rx_nob_wanted; /* bytes actually wanted */
int ksnc_rx_niov; /* # iovec frags */ int ksnc_rx_niov; /* # iovec frags */
struct iovec *ksnc_rx_iov; /* the iovec frags */ struct kvec *ksnc_rx_iov; /* the iovec frags */
int ksnc_rx_nkiov; /* # page frags */ int ksnc_rx_nkiov; /* # page frags */
lnet_kiov_t *ksnc_rx_kiov; /* the page frags */ lnet_kiov_t *ksnc_rx_kiov; /* the page frags */
ksock_rxiovspace_t ksnc_rx_iov_space;/* space for frag descriptors */ ksock_rxiovspace_t ksnc_rx_iov_space;/* space for frag descriptors */
...@@ -517,7 +517,7 @@ int ksocknal_ctl(lnet_ni_t *ni, unsigned int cmd, void *arg); ...@@ -517,7 +517,7 @@ int ksocknal_ctl(lnet_ni_t *ni, unsigned int cmd, void *arg);
int ksocknal_send (lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg); int ksocknal_send (lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg);
int ksocknal_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int ksocknal_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg,
int delayed, unsigned int niov, int delayed, unsigned int niov,
struct iovec *iov, lnet_kiov_t *kiov, struct kvec *iov, lnet_kiov_t *kiov,
unsigned int offset, unsigned int mlen, unsigned int rlen); unsigned int offset, unsigned int mlen, unsigned int rlen);
int ksocknal_accept(lnet_ni_t *ni, struct socket *sock); int ksocknal_accept(lnet_ni_t *ni, struct socket *sock);
......
...@@ -110,7 +110,7 @@ ksocknal_free_tx (ksock_tx_t *tx) ...@@ -110,7 +110,7 @@ ksocknal_free_tx (ksock_tx_t *tx)
static int static int
ksocknal_send_iov (ksock_conn_t *conn, ksock_tx_t *tx) ksocknal_send_iov (ksock_conn_t *conn, ksock_tx_t *tx)
{ {
struct iovec *iov = tx->tx_iov; struct kvec *iov = tx->tx_iov;
int nob; int nob;
int rc; int rc;
...@@ -251,7 +251,7 @@ ksocknal_transmit (ksock_conn_t *conn, ksock_tx_t *tx) ...@@ -251,7 +251,7 @@ ksocknal_transmit (ksock_conn_t *conn, ksock_tx_t *tx)
static int static int
ksocknal_recv_iov (ksock_conn_t *conn) ksocknal_recv_iov (ksock_conn_t *conn)
{ {
struct iovec *iov = conn->ksnc_rx_iov; struct kvec *iov = conn->ksnc_rx_iov;
int nob; int nob;
int rc; int rc;
...@@ -926,7 +926,7 @@ ksocknal_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg) ...@@ -926,7 +926,7 @@ ksocknal_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg)
int type = lntmsg->msg_type; int type = lntmsg->msg_type;
lnet_process_id_t target = lntmsg->msg_target; lnet_process_id_t target = lntmsg->msg_target;
unsigned int payload_niov = lntmsg->msg_niov; unsigned int payload_niov = lntmsg->msg_niov;
struct iovec *payload_iov = lntmsg->msg_iov; struct kvec *payload_iov = lntmsg->msg_iov;
lnet_kiov_t *payload_kiov = lntmsg->msg_kiov; lnet_kiov_t *payload_kiov = lntmsg->msg_kiov;
unsigned int payload_offset = lntmsg->msg_offset; unsigned int payload_offset = lntmsg->msg_offset;
unsigned int payload_nob = lntmsg->msg_len; unsigned int payload_nob = lntmsg->msg_len;
...@@ -1047,8 +1047,8 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip) ...@@ -1047,8 +1047,8 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip)
case KSOCK_PROTO_V2: case KSOCK_PROTO_V2:
case KSOCK_PROTO_V3: case KSOCK_PROTO_V3:
conn->ksnc_rx_state = SOCKNAL_RX_KSM_HEADER; conn->ksnc_rx_state = SOCKNAL_RX_KSM_HEADER;
conn->ksnc_rx_iov = (struct iovec *)&conn->ksnc_rx_iov_space; conn->ksnc_rx_iov = (struct kvec *)&conn->ksnc_rx_iov_space;
conn->ksnc_rx_iov[0].iov_base = (char *)&conn->ksnc_msg; conn->ksnc_rx_iov[0].iov_base = &conn->ksnc_msg;
conn->ksnc_rx_nob_wanted = offsetof(ksock_msg_t, ksm_u); conn->ksnc_rx_nob_wanted = offsetof(ksock_msg_t, ksm_u);
conn->ksnc_rx_nob_left = offsetof(ksock_msg_t, ksm_u); conn->ksnc_rx_nob_left = offsetof(ksock_msg_t, ksm_u);
...@@ -1061,8 +1061,8 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip) ...@@ -1061,8 +1061,8 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip)
conn->ksnc_rx_nob_wanted = sizeof(lnet_hdr_t); conn->ksnc_rx_nob_wanted = sizeof(lnet_hdr_t);
conn->ksnc_rx_nob_left = sizeof(lnet_hdr_t); conn->ksnc_rx_nob_left = sizeof(lnet_hdr_t);
conn->ksnc_rx_iov = (struct iovec *)&conn->ksnc_rx_iov_space; conn->ksnc_rx_iov = (struct kvec *)&conn->ksnc_rx_iov_space;
conn->ksnc_rx_iov[0].iov_base = (char *)&conn->ksnc_msg.ksm_u.lnetmsg; conn->ksnc_rx_iov[0].iov_base = &conn->ksnc_msg.ksm_u.lnetmsg;
conn->ksnc_rx_iov[0].iov_len = sizeof (lnet_hdr_t); conn->ksnc_rx_iov[0].iov_len = sizeof (lnet_hdr_t);
break; break;
...@@ -1082,7 +1082,7 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip) ...@@ -1082,7 +1082,7 @@ ksocknal_new_packet (ksock_conn_t *conn, int nob_to_skip)
conn->ksnc_rx_state = SOCKNAL_RX_SLOP; conn->ksnc_rx_state = SOCKNAL_RX_SLOP;
conn->ksnc_rx_nob_left = nob_to_skip; conn->ksnc_rx_nob_left = nob_to_skip;
conn->ksnc_rx_iov = (struct iovec *)&conn->ksnc_rx_iov_space; conn->ksnc_rx_iov = (struct kvec *)&conn->ksnc_rx_iov_space;
skipped = 0; skipped = 0;
niov = 0; niov = 0;
...@@ -1212,8 +1212,8 @@ ksocknal_process_receive (ksock_conn_t *conn) ...@@ -1212,8 +1212,8 @@ ksocknal_process_receive (ksock_conn_t *conn)
conn->ksnc_rx_nob_wanted = sizeof(ksock_lnet_msg_t); conn->ksnc_rx_nob_wanted = sizeof(ksock_lnet_msg_t);
conn->ksnc_rx_nob_left = sizeof(ksock_lnet_msg_t); conn->ksnc_rx_nob_left = sizeof(ksock_lnet_msg_t);
conn->ksnc_rx_iov = (struct iovec *)&conn->ksnc_rx_iov_space; conn->ksnc_rx_iov = (struct kvec *)&conn->ksnc_rx_iov_space;
conn->ksnc_rx_iov[0].iov_base = (char *)&conn->ksnc_msg.ksm_u.lnetmsg; conn->ksnc_rx_iov[0].iov_base = &conn->ksnc_msg.ksm_u.lnetmsg;
conn->ksnc_rx_iov[0].iov_len = sizeof(ksock_lnet_msg_t); conn->ksnc_rx_iov[0].iov_len = sizeof(ksock_lnet_msg_t);
conn->ksnc_rx_niov = 1; conn->ksnc_rx_niov = 1;
...@@ -1311,7 +1311,7 @@ ksocknal_process_receive (ksock_conn_t *conn) ...@@ -1311,7 +1311,7 @@ ksocknal_process_receive (ksock_conn_t *conn)
int int
ksocknal_recv (lnet_ni_t *ni, void *private, lnet_msg_t *msg, int delayed, ksocknal_recv (lnet_ni_t *ni, void *private, lnet_msg_t *msg, int delayed,
unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov, unsigned int niov, struct kvec *iov, lnet_kiov_t *kiov,
unsigned int offset, unsigned int mlen, unsigned int rlen) unsigned int offset, unsigned int mlen, unsigned int rlen)
{ {
ksock_conn_t *conn = (ksock_conn_t *)private; ksock_conn_t *conn = (ksock_conn_t *)private;
......
...@@ -92,11 +92,11 @@ ksocknal_lib_send_iov (ksock_conn_t *conn, ksock_tx_t *tx) ...@@ -92,11 +92,11 @@ ksocknal_lib_send_iov (ksock_conn_t *conn, ksock_tx_t *tx)
{ {
#if SOCKNAL_SINGLE_FRAG_TX #if SOCKNAL_SINGLE_FRAG_TX
struct iovec scratch; struct kvec scratch;
struct iovec *scratchiov = &scratch; struct kvec *scratchiov = &scratch;
unsigned int niov = 1; unsigned int niov = 1;
#else #else
struct iovec *scratchiov = conn->ksnc_scheduler->kss_scratch_iov; struct kvec *scratchiov = conn->ksnc_scheduler->kss_scratch_iov;
unsigned int niov = tx->tx_niov; unsigned int niov = tx->tx_niov;
#endif #endif
struct msghdr msg = {.msg_flags = MSG_DONTWAIT}; struct msghdr msg = {.msg_flags = MSG_DONTWAIT};
...@@ -111,7 +111,7 @@ ksocknal_lib_send_iov (ksock_conn_t *conn, ksock_tx_t *tx) ...@@ -111,7 +111,7 @@ ksocknal_lib_send_iov (ksock_conn_t *conn, ksock_tx_t *tx)
nob < tx->tx_resid) nob < tx->tx_resid)
msg.msg_flags |= MSG_MORE; msg.msg_flags |= MSG_MORE;
rc = kernel_sendmsg(sock, &msg, (struct kvec *)scratchiov, niov, nob); rc = kernel_sendmsg(sock, &msg, scratchiov, niov, nob);
} }
return rc; return rc;
} }
...@@ -153,14 +153,14 @@ ksocknal_lib_send_kiov (ksock_conn_t *conn, ksock_tx_t *tx) ...@@ -153,14 +153,14 @@ ksocknal_lib_send_kiov (ksock_conn_t *conn, ksock_tx_t *tx)
} }
} else { } else {
#if SOCKNAL_SINGLE_FRAG_TX || !SOCKNAL_RISK_KMAP_DEADLOCK #if SOCKNAL_SINGLE_FRAG_TX || !SOCKNAL_RISK_KMAP_DEADLOCK
struct iovec scratch; struct kvec scratch;
struct iovec *scratchiov = &scratch; struct kvec *scratchiov = &scratch;
unsigned int niov = 1; unsigned int niov = 1;
#else #else
#ifdef CONFIG_HIGHMEM #ifdef CONFIG_HIGHMEM
#warning "XXX risk of kmap deadlock on multiple frags..." #warning "XXX risk of kmap deadlock on multiple frags..."
#endif #endif
struct iovec *scratchiov = conn->ksnc_scheduler->kss_scratch_iov; struct kvec *scratchiov = conn->ksnc_scheduler->kss_scratch_iov;
unsigned int niov = tx->tx_nkiov; unsigned int niov = tx->tx_nkiov;
#endif #endif
struct msghdr msg = {.msg_flags = MSG_DONTWAIT}; struct msghdr msg = {.msg_flags = MSG_DONTWAIT};
...@@ -203,14 +203,14 @@ int ...@@ -203,14 +203,14 @@ int
ksocknal_lib_recv_iov (ksock_conn_t *conn) ksocknal_lib_recv_iov (ksock_conn_t *conn)
{ {
#if SOCKNAL_SINGLE_FRAG_RX #if SOCKNAL_SINGLE_FRAG_RX
struct iovec scratch; struct kvec scratch;
struct iovec *scratchiov = &scratch; struct kvec *scratchiov = &scratch;
unsigned int niov = 1; unsigned int niov = 1;
#else #else
struct iovec *scratchiov = conn->ksnc_scheduler->kss_scratch_iov; struct kvec *scratchiov = conn->ksnc_scheduler->kss_scratch_iov;
unsigned int niov = conn->ksnc_rx_niov; unsigned int niov = conn->ksnc_rx_niov;
#endif #endif
struct iovec *iov = conn->ksnc_rx_iov; struct kvec *iov = conn->ksnc_rx_iov;
struct msghdr msg = { struct msghdr msg = {
.msg_flags = 0 .msg_flags = 0
}; };
...@@ -232,7 +232,7 @@ ksocknal_lib_recv_iov (ksock_conn_t *conn) ...@@ -232,7 +232,7 @@ ksocknal_lib_recv_iov (ksock_conn_t *conn)
LASSERT (nob <= conn->ksnc_rx_nob_wanted); LASSERT (nob <= conn->ksnc_rx_nob_wanted);
rc = kernel_recvmsg(conn->ksnc_sock, &msg, rc = kernel_recvmsg(conn->ksnc_sock, &msg,
(struct kvec *)scratchiov, niov, nob, MSG_DONTWAIT); scratchiov, niov, nob, MSG_DONTWAIT);
saved_csum = 0; saved_csum = 0;
if (conn->ksnc_proto == &ksocknal_protocol_v2x) { if (conn->ksnc_proto == &ksocknal_protocol_v2x) {
...@@ -269,7 +269,7 @@ ksocknal_lib_kiov_vunmap(void *addr) ...@@ -269,7 +269,7 @@ ksocknal_lib_kiov_vunmap(void *addr)
static void * static void *
ksocknal_lib_kiov_vmap(lnet_kiov_t *kiov, int niov, ksocknal_lib_kiov_vmap(lnet_kiov_t *kiov, int niov,
struct iovec *iov, struct page **pages) struct kvec *iov, struct page **pages)
{ {
void *addr; void *addr;
int nob; int nob;
...@@ -307,15 +307,15 @@ int ...@@ -307,15 +307,15 @@ int
ksocknal_lib_recv_kiov (ksock_conn_t *conn) ksocknal_lib_recv_kiov (ksock_conn_t *conn)
{ {
#if SOCKNAL_SINGLE_FRAG_RX || !SOCKNAL_RISK_KMAP_DEADLOCK #if SOCKNAL_SINGLE_FRAG_RX || !SOCKNAL_RISK_KMAP_DEADLOCK
struct iovec scratch; struct kvec scratch;
struct iovec *scratchiov = &scratch; struct kvec *scratchiov = &scratch;
struct page **pages = NULL; struct page **pages = NULL;
unsigned int niov = 1; unsigned int niov = 1;
#else #else
#ifdef CONFIG_HIGHMEM #ifdef CONFIG_HIGHMEM
#warning "XXX risk of kmap deadlock on multiple frags..." #warning "XXX risk of kmap deadlock on multiple frags..."
#endif #endif
struct iovec *scratchiov = conn->ksnc_scheduler->kss_scratch_iov; struct kvec *scratchiov = conn->ksnc_scheduler->kss_scratch_iov;
struct page **pages = conn->ksnc_scheduler->kss_rx_scratch_pgs; struct page **pages = conn->ksnc_scheduler->kss_rx_scratch_pgs;
unsigned int niov = conn->ksnc_rx_nkiov; unsigned int niov = conn->ksnc_rx_nkiov;
#endif #endif
...@@ -390,13 +390,13 @@ ksocknal_lib_csum_tx(ksock_tx_t *tx) ...@@ -390,13 +390,13 @@ ksocknal_lib_csum_tx(ksock_tx_t *tx)
__u32 csum; __u32 csum;
void *base; void *base;
LASSERT(tx->tx_iov[0].iov_base == (void *)&tx->tx_msg); LASSERT(tx->tx_iov[0].iov_base == &tx->tx_msg);
LASSERT(tx->tx_conn != NULL); LASSERT(tx->tx_conn != NULL);
LASSERT(tx->tx_conn->ksnc_proto == &ksocknal_protocol_v2x); LASSERT(tx->tx_conn->ksnc_proto == &ksocknal_protocol_v2x);
tx->tx_msg.ksm_csum = 0; tx->tx_msg.ksm_csum = 0;
csum = ksocknal_csum(~0, (void *)tx->tx_iov[0].iov_base, csum = ksocknal_csum(~0, tx->tx_iov[0].iov_base,
tx->tx_iov[0].iov_len); tx->tx_iov[0].iov_len);
if (tx->tx_kiov != NULL) { if (tx->tx_kiov != NULL) {
......
...@@ -717,7 +717,7 @@ ksocknal_pack_msg_v1(ksock_tx_t *tx) ...@@ -717,7 +717,7 @@ ksocknal_pack_msg_v1(ksock_tx_t *tx)
LASSERT(tx->tx_msg.ksm_type != KSOCK_MSG_NOOP); LASSERT(tx->tx_msg.ksm_type != KSOCK_MSG_NOOP);
LASSERT(tx->tx_lnetmsg != NULL); LASSERT(tx->tx_lnetmsg != NULL);
tx->tx_iov[0].iov_base = (void *)&tx->tx_lnetmsg->msg_hdr; tx->tx_iov[0].iov_base = &tx->tx_lnetmsg->msg_hdr;
tx->tx_iov[0].iov_len = sizeof(lnet_hdr_t); tx->tx_iov[0].iov_len = sizeof(lnet_hdr_t);
tx->tx_resid = tx->tx_nob = tx->tx_lnetmsg->msg_len + sizeof(lnet_hdr_t); tx->tx_resid = tx->tx_nob = tx->tx_lnetmsg->msg_len + sizeof(lnet_hdr_t);
...@@ -726,7 +726,7 @@ ksocknal_pack_msg_v1(ksock_tx_t *tx) ...@@ -726,7 +726,7 @@ ksocknal_pack_msg_v1(ksock_tx_t *tx)
static void static void
ksocknal_pack_msg_v2(ksock_tx_t *tx) ksocknal_pack_msg_v2(ksock_tx_t *tx)
{ {
tx->tx_iov[0].iov_base = (void *)&tx->tx_msg; tx->tx_iov[0].iov_base = &tx->tx_msg;
if (tx->tx_lnetmsg != NULL) { if (tx->tx_lnetmsg != NULL) {
LASSERT(tx->tx_msg.ksm_type != KSOCK_MSG_NOOP); LASSERT(tx->tx_msg.ksm_type != KSOCK_MSG_NOOP);
......
...@@ -158,7 +158,7 @@ fail_peer(lnet_nid_t nid, int outgoing) ...@@ -158,7 +158,7 @@ fail_peer(lnet_nid_t nid, int outgoing)
} }
unsigned int unsigned int
lnet_iov_nob(unsigned int niov, struct iovec *iov) lnet_iov_nob(unsigned int niov, struct kvec *iov)
{ {
unsigned int nob = 0; unsigned int nob = 0;
...@@ -170,8 +170,8 @@ lnet_iov_nob(unsigned int niov, struct iovec *iov) ...@@ -170,8 +170,8 @@ lnet_iov_nob(unsigned int niov, struct iovec *iov)
EXPORT_SYMBOL(lnet_iov_nob); EXPORT_SYMBOL(lnet_iov_nob);
void void
lnet_copy_iov2iov(unsigned int ndiov, struct iovec *diov, unsigned int doffset, lnet_copy_iov2iov(unsigned int ndiov, struct kvec *diov, unsigned int doffset,
unsigned int nsiov, struct iovec *siov, unsigned int soffset, unsigned int nsiov, struct kvec *siov, unsigned int soffset,
unsigned int nob) unsigned int nob)
{ {
/* NB diov, siov are READ-ONLY */ /* NB diov, siov are READ-ONLY */
...@@ -229,8 +229,8 @@ lnet_copy_iov2iov(unsigned int ndiov, struct iovec *diov, unsigned int doffset, ...@@ -229,8 +229,8 @@ lnet_copy_iov2iov(unsigned int ndiov, struct iovec *diov, unsigned int doffset,
EXPORT_SYMBOL(lnet_copy_iov2iov); EXPORT_SYMBOL(lnet_copy_iov2iov);
int int
lnet_extract_iov(int dst_niov, struct iovec *dst, lnet_extract_iov(int dst_niov, struct kvec *dst,
int src_niov, struct iovec *src, int src_niov, struct kvec *src,
unsigned int offset, unsigned int len) unsigned int offset, unsigned int len)
{ {
/* Initialise 'dst' to the subset of 'src' starting at 'offset', /* Initialise 'dst' to the subset of 'src' starting at 'offset',
...@@ -371,7 +371,7 @@ lnet_copy_kiov2kiov(unsigned int ndiov, lnet_kiov_t *diov, unsigned int doffset, ...@@ -371,7 +371,7 @@ lnet_copy_kiov2kiov(unsigned int ndiov, lnet_kiov_t *diov, unsigned int doffset,
EXPORT_SYMBOL(lnet_copy_kiov2kiov); EXPORT_SYMBOL(lnet_copy_kiov2kiov);
void void
lnet_copy_kiov2iov(unsigned int niov, struct iovec *iov, unsigned int iovoffset, lnet_copy_kiov2iov(unsigned int niov, struct kvec *iov, unsigned int iovoffset,
unsigned int nkiov, lnet_kiov_t *kiov, unsigned int nkiov, lnet_kiov_t *kiov,
unsigned int kiovoffset, unsigned int nob) unsigned int kiovoffset, unsigned int nob)
{ {
...@@ -443,7 +443,7 @@ EXPORT_SYMBOL(lnet_copy_kiov2iov); ...@@ -443,7 +443,7 @@ EXPORT_SYMBOL(lnet_copy_kiov2iov);
void void
lnet_copy_iov2kiov(unsigned int nkiov, lnet_kiov_t *kiov, lnet_copy_iov2kiov(unsigned int nkiov, lnet_kiov_t *kiov,
unsigned int kiovoffset, unsigned int niov, unsigned int kiovoffset, unsigned int niov,
struct iovec *iov, unsigned int iovoffset, struct kvec *iov, unsigned int iovoffset,
unsigned int nob) unsigned int nob)
{ {
/* NB kiov, iov are READ-ONLY */ /* NB kiov, iov are READ-ONLY */
...@@ -566,7 +566,7 @@ lnet_ni_recv(lnet_ni_t *ni, void *private, lnet_msg_t *msg, int delayed, ...@@ -566,7 +566,7 @@ lnet_ni_recv(lnet_ni_t *ni, void *private, lnet_msg_t *msg, int delayed,
unsigned int offset, unsigned int mlen, unsigned int rlen) unsigned int offset, unsigned int mlen, unsigned int rlen)
{ {
unsigned int niov = 0; unsigned int niov = 0;
struct iovec *iov = NULL; struct kvec *iov = NULL;
lnet_kiov_t *kiov = NULL; lnet_kiov_t *kiov = NULL;
int rc; int rc;
......
...@@ -47,7 +47,7 @@ lolnd_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg) ...@@ -47,7 +47,7 @@ lolnd_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg)
static int static int
lolnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, lolnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg,
int delayed, unsigned int niov, int delayed, unsigned int niov,
struct iovec *iov, lnet_kiov_t *kiov, struct kvec *iov, lnet_kiov_t *kiov,
unsigned int offset, unsigned int mlen, unsigned int rlen) unsigned int offset, unsigned int mlen, unsigned int rlen)
{ {
lnet_msg_t *sendmsg = private; lnet_msg_t *sendmsg = private;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment