Date: Tue, 28 Oct 2014 23:38:01 -0700 From: Navdeep Parhar <np@FreeBSD.org> To: Anthony Cornehl <accornehl@fastmail.fm> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r273811 - head/contrib/ofed/librdmacm/examples Message-ID: <20141029063729.GA7077@ox> In-Reply-To: <DBE32087-CBC1-4E69-A0C3-941DA6B7D081@fastmail.fm> References: <201410290624.s9T6OD1a038594@svn.freebsd.org> <DBE32087-CBC1-4E69-A0C3-941DA6B7D081@fastmail.fm>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Oct 28, 2014 at 11:34:11PM -0700, Anthony Cornehl wrote: > On October 28, 2014 11:24:13 PM PDT, Navdeep Parhar <np@FreeBSD.org> wrote: > >Author: np > >Date: Wed Oct 29 06:24:12 2014 > >New Revision: 273811 > >URL: https://svnweb.freebsd.org/changeset/base/273811 > > > >Log: > > rping: make sure that the CQ event thread can never poll a CQ after it > > has been destroyed. > > > > Submitted by: Hariprasad at Chelsio dot com > > Sponsored by: Chelsio Communications > > > > Is this change present upstream? We really should be tracking the originating > repositories when making changes in OFED packages, but the kernel and > userspace is several years out of date from what OFED is tracking currently. The patch was submitted upstream. I'm sure it'll get there eventually. Navdeep > > [1] http://git.openfabrics.org/?p=~shefty/librdmacm.git;a=summary > > >Modified: > > head/contrib/ofed/librdmacm/examples/rping.c > > > >Modified: head/contrib/ofed/librdmacm/examples/rping.c > >============================================================================== > >--- head/contrib/ofed/librdmacm/examples/rping.c Wed Oct 29 04:32:46 > >2014 (r273810) > >+++ head/contrib/ofed/librdmacm/examples/rping.c Wed Oct 29 06:24:12 > >2014 (r273811) > >@@ -40,7 +40,6 @@ > > #include <netinet/in.h> > > #include <sys/socket.h> > > #include <netdb.h> > >-#include <byteswap.h> > > #include <semaphore.h> > > #include <arpa/inet.h> > > #include <pthread.h> > >@@ -280,10 +279,10 @@ static int rping_cq_event_handler(struct > > ret = 0; > > > > if (wc.status) { > >- fprintf(stderr, "cq completion failed status %d\n", > >- wc.status); > > if (wc.status != IBV_WC_WR_FLUSH_ERR) > >- ret = -1; > >+ fprintf(stderr, "cq completion failed status %d\n", > >+ wc.status); > >+ ret = -1; > > goto error; > > } > > > >@@ -800,10 +799,9 @@ static void *rping_persistent_server_thr > > > > rping_test_server(cb); > > rdma_disconnect(cb->child_cm_id); > >+ pthread_join(cb->cqthread, NULL); > > rping_free_buffers(cb); > > rping_free_qp(cb); > >- pthread_cancel(cb->cqthread); > >- pthread_join(cb->cqthread, NULL); > > rdma_destroy_id(cb->child_cm_id); > > free_cb(cb); > > return NULL; > >@@ -888,6 +886,7 @@ static int rping_run_server(struct rping > > > > rping_test_server(cb); > > rdma_disconnect(cb->child_cm_id); > >+ pthread_join(cb->cqthread, NULL); > > rdma_destroy_id(cb->child_cm_id); > > err2: > > rping_free_buffers(cb); > >@@ -1053,9 +1052,16 @@ static int rping_run_client(struct rping > > goto err2; > > } > > > >- rping_test_client(cb); > >+ ret = rping_test_client(cb); > >+ if (ret) { > >+ fprintf(stderr, "rping client failed: %d\n", ret); > >+ goto err3; > >+ } > >+ ret = 0; > >+err3: > > rdma_disconnect(cb->cm_id); > > err2: > >+ pthread_join(cb->cqthread, NULL); > > rping_free_buffers(cb); > > err1: > > rping_free_qp(cb); > >_______________________________________________ > >svn-src-head@freebsd.org mailing list > >http://lists.freebsd.org/mailman/listinfo/svn-src-head > >To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" > > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20141029063729.GA7077>