diff --git a/ompi/mca/btl/openib/btl_openib.c b/ompi/mca/btl/openib/btl_openib.c index 8ae0c39598..0c9108d83f 100644 --- a/ompi/mca/btl/openib/btl_openib.c +++ b/ompi/mca/btl/openib/btl_openib.c @@ -70,6 +70,9 @@ #ifdef HAVE_UNISTD_H #include #endif +#ifndef MIN +#define MIN(a,b) ((a)<(b)?(a):(b)) +#endif mca_btl_openib_module_t mca_btl_openib_module = { { diff --git a/ompi/mca/btl/openib/btl_openib_async.c b/ompi/mca/btl/openib/btl_openib_async.c index c4aa9eb157..839f2aa8ff 100644 --- a/ompi/mca/btl/openib/btl_openib_async.c +++ b/ompi/mca/btl/openib/btl_openib_async.c @@ -432,6 +432,13 @@ void* btl_openib_async_thread(void * async) /* no events */ break; case POLLIN: +#if defined(__SVR4) && defined(__sun) + /* + * Need workaround for Solaris IB user verbs since + * "Poll on IB async fd returns POLLRDNORM revent even though it is masked out" + */ + case POLLIN | POLLRDNORM: +#endif /* Processing our event */ if (0 == i) { /* 0 poll we use for comunication with main thread */ diff --git a/ompi/mca/btl/openib/connect/btl_openib_connect_rdmacm.c b/ompi/mca/btl/openib/connect/btl_openib_connect_rdmacm.c index e6723f3a70..24c72a6141 100644 --- a/ompi/mca/btl/openib/connect/btl_openib_connect_rdmacm.c +++ b/ompi/mca/btl/openib/connect/btl_openib_connect_rdmacm.c @@ -1922,7 +1922,11 @@ static int rdmacm_component_query(mca_btl_openib_module_t *openib_btl, ompi_btl_ return OMPI_SUCCESS; out5: - rdma_destroy_id(context->id); + /* + * Since rdma_create_id() succeeded, we need "rdma_destroy_id(context->id)". + * But don't do it here since it's part of out4:OBJ_RELEASE(context), + * and we don't want to do it twice. + */ out4: opal_list_remove_first(&(server->ids)); OBJ_RELEASE(context); diff --git a/ompi/mca/io/romio/romio/adio/ad_bgl/ad_bgl_pset.h b/ompi/mca/io/romio/romio/adio/ad_bgl/ad_bgl_pset.h index a5e45f6d2d..f6364fa190 100644 --- a/ompi/mca/io/romio/romio/adio/ad_bgl/ad_bgl_pset.h +++ b/ompi/mca/io/romio/romio/adio/ad_bgl/ad_bgl_pset.h @@ -47,7 +47,7 @@ typedef struct { #undef MIN -#define MIN(a,b) ((a