From: Sean Hefty Date: Mon, 28 May 2012 08:13:58 +0000 (-0700) Subject: refresh X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=4d298a2fb2c5b2acc002eae1174299dd49a6859a;p=~shefty%2Flibrdmacm.git refresh --- diff --git a/meta b/meta index c506c14b..478dddde 100644 --- a/meta +++ b/meta @@ -1,6 +1,6 @@ Version: 1 -Previous: 98b69a5fd74cf17c5fbee71edc60d88e4d0ae470 -Head: f4aeb798a274ac7a194d566849b9536b9e64e83d +Previous: 837397a8d7effc32d3f6080ed1df1333572d151e +Head: 94e4650160dd8b32efd7e1befe3b179487bd7cac Applied: destroy_cqs: 66410c265b2661e16b7f6126bcc4ea5c7e1af1bd conn-err: ac46465ae6061b06f005ba9b49b371c9eb0d2325 @@ -14,8 +14,7 @@ Applied: acm-sock: dbc1a8fd27cad76749a228f01b8bf708832cdae0 acm-init: 666fa02d8f18ac2e98008cd3d57a90a864203548 pre-socket: 659f605c2d6bdba067651138aa5ffc01f14465d6 - rs-states: 548f496443177ae86bbd9690ad315351ce1efae4 - refresh-temp: f4aeb798a274ac7a194d566849b9536b9e64e83d + rs-states: 94e4650160dd8b32efd7e1befe3b179487bd7cac Unapplied: rs-1sge: 85e4c4a0da0b501b60a1035d7a003ee20a749511 rs-def-inline: 6ad70d3b80178e40fea97f662a6b31e51cddc0af diff --git a/patches/refresh-temp b/patches/refresh-temp deleted file mode 100644 index 3a258864..00000000 --- a/patches/refresh-temp +++ /dev/null @@ -1,92 +0,0 @@ -Bottom: 87ab98f3bddaca811ce2dc2b7920287c23686a20 -Top: 82e13151ae7719d96c8c400a99918961bc514175 -Author: Sean Hefty -Date: 2012-05-28 01:13:57 -0700 - -Refresh of rs-states - ---- - -diff --git a/src/rsocket.c b/src/rsocket.c -index 1140975..9ce58d5 100644 ---- a/src/rsocket.c -+++ b/src/rsocket.c -@@ -126,6 +126,9 @@ union rs_wr_id { - }; - }; - -+/* -+ * rsocket states are ordered as passive, connecting, connected, disconnected. -+ */ - enum rs_state { - rs_init, - rs_bound, -@@ -134,9 +137,9 @@ enum rs_state { - rs_resolving_route, - rs_connecting, - rs_accepting, -+ rs_connect_error, - rs_connected, - rs_disconnected, -- rs_connect_error, - rs_error - }; - -@@ -1011,9 +1014,7 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags) - int ret; - - rs = idm_at(&idm, socket); -- if (rs->state != rs_connected && -- (rs->state == rs_resolving_addr || rs->state == rs_resolving_route || -- rs->state == rs_connecting || rs->state == rs_accepting)) { -+ if (rs->state < rs_connected) { - ret = rs_do_connect(rs); - if (ret) { - if (errno == EINPROGRESS) -@@ -1115,7 +1116,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) - int ret = 0; - - rs = idm_at(&idm, socket); -- if (rs->state != rs_connected) { -+ if (rs->state < rs_connected) { - ret = rs_do_connect(rs); - if (ret) { - if (errno == EINPROGRESS) -@@ -1219,7 +1220,7 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags - int i, ret = 0; - - rs = idm_at(&idm, socket); -- if (rs->state != rs_connected) { -+ if (rs->state < rs_connected) { - ret = rs_do_connect(rs); - if (ret) { - if (errno == EINPROGRESS) -@@ -1360,7 +1361,7 @@ static int rs_poll_rs(struct rsocket *rs, int events, - revents |= POLLOUT; - if (rs->state == rs_disconnected) - revents |= POLLHUP; -- if (rs->state == rs_error) -+ else if (rs->state == rs_error) - revents |= POLLERR; - - return revents; -@@ -1401,16 +1402,11 @@ static int rs_poll_arm(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds) - if (fds[i].revents) - return 1; - -- switch (rs->state) { -- case rs_connected: -- case rs_disconnected: -- case rs_error: -+ if (rs->state >= rs_connected) - rfds[i].fd = rs->cm_id->recv_cq_channel->fd; -- break; -- default: -+ else - rfds[i].fd = rs->cm_id->channel->fd; -- break; -- } -+ - rfds[i].events = POLLIN; - } else { - rfds[i].fd = fds[i].fd; diff --git a/patches/rs-states b/patches/rs-states index 4836dddc..64d9e5ef 100644 --- a/patches/rs-states +++ b/patches/rs-states @@ -1,5 +1,5 @@ Bottom: 87ab98f3bddaca811ce2dc2b7920287c23686a20 -Top: 87ab98f3bddaca811ce2dc2b7920287c23686a20 +Top: 82e13151ae7719d96c8c400a99918961bc514175 Author: Sean Hefty Date: 2012-05-25 17:28:44 -0700 @@ -10,4 +10,86 @@ Signed-off-by: Sean Hefty --- - +diff --git a/src/rsocket.c b/src/rsocket.c +index 1140975..9ce58d5 100644 +--- a/src/rsocket.c ++++ b/src/rsocket.c +@@ -126,6 +126,9 @@ union rs_wr_id { + }; + }; + ++/* ++ * rsocket states are ordered as passive, connecting, connected, disconnected. ++ */ + enum rs_state { + rs_init, + rs_bound, +@@ -134,9 +137,9 @@ enum rs_state { + rs_resolving_route, + rs_connecting, + rs_accepting, ++ rs_connect_error, + rs_connected, + rs_disconnected, +- rs_connect_error, + rs_error + }; + +@@ -1011,9 +1014,7 @@ ssize_t rrecv(int socket, void *buf, size_t len, int flags) + int ret; + + rs = idm_at(&idm, socket); +- if (rs->state != rs_connected && +- (rs->state == rs_resolving_addr || rs->state == rs_resolving_route || +- rs->state == rs_connecting || rs->state == rs_accepting)) { ++ if (rs->state < rs_connected) { + ret = rs_do_connect(rs); + if (ret) { + if (errno == EINPROGRESS) +@@ -1115,7 +1116,7 @@ ssize_t rsend(int socket, const void *buf, size_t len, int flags) + int ret = 0; + + rs = idm_at(&idm, socket); +- if (rs->state != rs_connected) { ++ if (rs->state < rs_connected) { + ret = rs_do_connect(rs); + if (ret) { + if (errno == EINPROGRESS) +@@ -1219,7 +1220,7 @@ static ssize_t rsendv(int socket, const struct iovec *iov, int iovcnt, int flags + int i, ret = 0; + + rs = idm_at(&idm, socket); +- if (rs->state != rs_connected) { ++ if (rs->state < rs_connected) { + ret = rs_do_connect(rs); + if (ret) { + if (errno == EINPROGRESS) +@@ -1360,7 +1361,7 @@ static int rs_poll_rs(struct rsocket *rs, int events, + revents |= POLLOUT; + if (rs->state == rs_disconnected) + revents |= POLLHUP; +- if (rs->state == rs_error) ++ else if (rs->state == rs_error) + revents |= POLLERR; + + return revents; +@@ -1401,16 +1402,11 @@ static int rs_poll_arm(struct pollfd *rfds, struct pollfd *fds, nfds_t nfds) + if (fds[i].revents) + return 1; + +- switch (rs->state) { +- case rs_connected: +- case rs_disconnected: +- case rs_error: ++ if (rs->state >= rs_connected) + rfds[i].fd = rs->cm_id->recv_cq_channel->fd; +- break; +- default: ++ else + rfds[i].fd = rs->cm_id->channel->fd; +- break; +- } ++ + rfds[i].events = POLLIN; + } else { + rfds[i].fd = fds[i].fd;