From 14605a01fcc604f88a74a77d6750d49f65e9f157 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Mon, 28 May 2012 00:59:49 -0700 Subject: [PATCH] refresh (create temporary patch) --- meta | 5 +++-- patches/refresh-temp | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 patches/refresh-temp diff --git a/meta b/meta index 95ece4a6..4bd7647e 100644 --- a/meta +++ b/meta @@ -1,6 +1,6 @@ Version: 1 -Previous: 0a7d443ec80d14b313409b9f096bea80ff711548 -Head: ec435867dbbf9ce443aeceba22da7898e5e9a1ba +Previous: 54c88d78f651f97fff418ceaad0af388225155ec +Head: 0f10d4b30a415b12753f94167f96cb0209badaa1 Applied: destroy_cqs: 66410c265b2661e16b7f6126bcc4ea5c7e1af1bd conn-err: ac46465ae6061b06f005ba9b49b371c9eb0d2325 @@ -12,6 +12,7 @@ Applied: rstream-bufsize: 76a7691690cd14c123b4a3125598134edd567e1f rs-def-qpsize: 6895cd6a4d77d7f0c212af73ff4741c5c251b9e6 rs-1sge: ec435867dbbf9ce443aeceba22da7898e5e9a1ba + refresh-temp: 0f10d4b30a415b12753f94167f96cb0209badaa1 Unapplied: rs-def-inline: 50d6a49950b5ffc77b971e60c80045c5d70bda2b acm-sock: 11767dd5ff9823ee43369fd19a9c624ac4397360 diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 00000000..58b83e66 --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,36 @@ +Bottom: d6059001f0d2f622720ad871c89e3c1ef4410125 +Top: e9e6fbdeef17d4c02f8c8aa86981e6965cd2d120 +Author: Sean Hefty +Date: 2012-05-28 00:59:49 -0700 + +Refresh of rs-1sge + +--- + +diff --git a/src/rsocket.c b/src/rsocket.c +index 5be242f..bd4c8dd 100644 +--- a/src/rsocket.c ++++ b/src/rsocket.c +@@ -1128,18 +1128,16 @@ 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)) { +- 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_sbuf_left(rs)) ++ xfer_size = rs_sbuf_left(rs); + + if (xfer_size <= rs->sq_inline) { + sge.addr = (uintptr_t) buf; + sge.length = xfer_size; + sge.lkey = 0; + ret = rs_write_data(rs, &sge, IBV_SEND_INLINE); ++ if (xfer_size == rs_sbuf_left(rs)) ++ rs->ssge.addr = (uintptr_t) rs->sbuf; + } else { + memcpy((void *) (uintptr_t) rs->ssge.addr, buf, xfer_size); + rs->ssge.length = xfer_size; -- 2.41.0