diff options
author | NeilBrown <neilb@suse.com> | 2018-02-20 05:23:38 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-02-22 17:06:36 +0300 |
commit | 52edc44ffbd05a3f6f6a8db2b07e2d3c6cb81db3 (patch) | |
tree | 503e0637be7a0d11d11d7c765ed7ed1759a7facd /drivers/staging/lustre | |
parent | 5955572b19f64bdaddd778079f95fb3cafaadfda (diff) | |
download | linux-52edc44ffbd05a3f6f6a8db2b07e2d3c6cb81db3.tar.xz |
staging: lustre: socklnd: simplify ksnc_rx_iov_space
ksnc_rx_iov_space is currently a union of two arrays,
one of 'struct kvec', the other of 'struct bio_vec'.
The 'struct bio_vec' option is never used. The
array of kvec is used to read in a packet header, or
to read data that needs to be skipped so as to synchronize
with a packet boundary.
In each case the target memory location is a virtual address,
never a page, so 'struct bio_vec' is never needed.
When we read into a page, different code steps up a separate
array of 'struct bio_vec'.
So remove the bio_vec option, and remove the union ksock_rxiovspace..
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/lustre')
-rw-r--r-- | drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h | 11 | ||||
-rw-r--r-- | drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 4 |
2 files changed, 3 insertions, 12 deletions
diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h index d50ebdf863fa..570f54ed57b1 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h @@ -304,15 +304,6 @@ struct ksock_tx { /* transmit packet */ /* network zero copy callback descriptor embedded in struct ksock_tx */ -/* - * 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. - */ -union ksock_rxiovspace { - struct kvec iov[LNET_MAX_IOV]; - struct bio_vec kiov[LNET_MAX_IOV]; -}; - #define SOCKNAL_RX_KSM_HEADER 1 /* reading ksock message header */ #define SOCKNAL_RX_LNET_HEADER 2 /* reading lnet message header */ #define SOCKNAL_RX_PARSE 3 /* Calling lnet_parse() */ @@ -359,7 +350,7 @@ struct ksock_conn { __u8 ksnc_rx_state; /* what is being read */ int ksnc_rx_nob_left; /* # bytes to next hdr/body */ struct iov_iter ksnc_rx_to; /* copy destination */ - union ksock_rxiovspace ksnc_rx_iov_space; /* space for frag descriptors */ + struct kvec ksnc_rx_iov_space[LNET_MAX_IOV]; /* space for frag descriptors */ __u32 ksnc_rx_csum; /* partial checksum for incoming * data */ diff --git a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c index 6ab002c006ab..036fecbcede8 100644 --- a/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c +++ b/drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c @@ -986,7 +986,7 @@ int ksocknal_new_packet(struct ksock_conn *conn, int nob_to_skip) { static char ksocknal_slop_buffer[4096]; - struct kvec *kvec = (struct kvec *)&conn->ksnc_rx_iov_space; + struct kvec *kvec = conn->ksnc_rx_iov_space; int nob; unsigned int niov; @@ -1059,7 +1059,7 @@ ksocknal_new_packet(struct ksock_conn *conn, int nob_to_skip) static int ksocknal_process_receive(struct ksock_conn *conn) { - struct kvec *kvec = (struct kvec *)&conn->ksnc_rx_iov_space; + struct kvec *kvec = conn->ksnc_rx_iov_space; struct lnet_hdr *lhdr; struct lnet_process_id *id; int rc; |