From d04db1e21302f33febd7759ab0c71ec698cd8794 Mon Sep 17 00:00:00 2001 From: Gilles Gouaillardet Date: Mon, 26 May 2014 07:18:31 +0000 Subject: [PATCH] Fix mmap flags in bcol_basesmuma_smcm_reg_mmap if in_ptr is NULL, the MAP_FIXED flag cannot be passed to mmap this caused a hang in topology/cart and topology/sub from ibm test suite on trunk. cmr=v1.8.2:reviewer=hjelmn This commit was SVN r31890. --- ompi/mca/bcol/basesmuma/bcol_basesmuma_smcm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ompi/mca/bcol/basesmuma/bcol_basesmuma_smcm.c b/ompi/mca/bcol/basesmuma/bcol_basesmuma_smcm.c index b85ed1a721..e850669ccc 100644 --- a/ompi/mca/bcol/basesmuma/bcol_basesmuma_smcm.c +++ b/ompi/mca/bcol/basesmuma/bcol_basesmuma_smcm.c @@ -448,10 +448,14 @@ bcol_basesmuma_smcm_mmap_t * bcol_basesmuma_smcm_reg_mmap(void *in_ptr, bcol_basesmuma_smcm_mmap_t *map; bcol_basesmuma_smcm_file_header_t *seg; unsigned char* myaddr = NULL; + int flags = MAP_SHARED; /* map the file and initialize the segment state */ + if (NULL != in_ptr) { + flags |= MAP_FIXED; + } seg = (bcol_basesmuma_smcm_file_header_t *) - mmap(in_ptr, length, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_FIXED, fd, 0); + mmap(in_ptr, length, PROT_READ|PROT_WRITE, flags, fd, 0); if((void*)-1 == seg) { return NULL; }