Skip to content

Commit deae9e5

Browse files
committed
Merge pull request #1259 from kawashima-fj/pr/osc-sm-align
osc/sm: Fix a bus error on MPI_WIN_{POST,START}.
2 parents 1b5433d + ad26899 commit deae9e5

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

ompi/mca/osc/sm/osc_sm_component.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,9 +281,10 @@ component_select(struct ompi_win_t *win, void **base, size_t size, int disp_unit
281281
module->posts = calloc (comm_size, sizeof (module->posts[0]));
282282
if (NULL == module->posts) return OMPI_ERR_TEMP_OUT_OF_RESOURCE;
283283

284-
module->global_state = (ompi_osc_sm_global_state_t *) (module->segment_base);
284+
/* set module->posts[0] first to ensure 64-bit alignment */
285+
module->posts[0] = (uint64_t *) (module->segment_base);
286+
module->global_state = (ompi_osc_sm_global_state_t *) (module->posts[0] + comm_size * post_size);
285287
module->node_states = (ompi_osc_sm_node_state_t *) (module->global_state + 1);
286-
module->posts[0] = (uint64_t *) (module->node_states + comm_size);
287288

288289
for (i = 0, total = state_size + posts_size ; i < comm_size ; ++i) {
289290
if (i > 0) {

0 commit comments

Comments
 (0)