From: Sean Hefty Date: Mon, 28 May 2012 06:55:11 +0000 (-0700) Subject: Refresh of rs-1sge X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=2c9b217c2919e0135a4718d91a8be010067a6f28;p=~shefty%2Flibrdmacm.git Refresh of rs-1sge --- diff --git a/src/rsocket.c b/src/rsocket.c index 529c3b0b..e480bfdf 100644 --- a/src/rsocket.c +++ b/src/rsocket.c @@ -1128,8 +1128,12 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) xfer_size = rs->sbuf_bytes_avail; if (xfer_size > rs->target_sgl[rs->target_sge].length) xfer_size = rs->target_sgl[rs->target_sge].length; - if (xfer_size > rs_sbuf_left(rs)) - xfer_size = rs_sbuf_left(rs); + if (xfer_size > rs_sbuf_left(rs)) { + if (xfer_size <= rs->sbuf_bytes_avail - rs_sbuf(left(rs))) + rs->ssge.addr = (uintptr_t) rs->sbuf; + else + xfer_size = rs_sbuf_left(rs); + } if (xfer_size <= rs->sq_inline) { sge.addr = (uintptr_t) buf;