@@ -73,8 +73,10 @@ int mca_btl_ofi_afop (struct mca_btl_base_module_t *btl, struct mca_btl_base_end
73
73
fi_datatype , fi_op , & comp -> comp_ctx );
74
74
75
75
if (rc == - FI_EAGAIN ) {
76
+ opal_free_list_return (comp -> base .my_list , (opal_free_list_item_t * ) comp );
76
77
return OPAL_ERR_OUT_OF_RESOURCE ;
77
78
} else if (rc < 0 ) {
79
+ opal_free_list_return (comp -> base .my_list , (opal_free_list_item_t * ) comp );
78
80
BTL_ERROR (("fi_fetch_atomic failed with rc=%d (%s)" , rc , fi_strerror (- rc )));
79
81
MCA_BTL_OFI_ABORT ();
80
82
}
@@ -125,8 +127,10 @@ int mca_btl_ofi_aop (struct mca_btl_base_module_t *btl, mca_btl_base_endpoint_t
125
127
fi_datatype , fi_op , & comp -> comp_ctx );
126
128
127
129
if (rc == - FI_EAGAIN ) {
130
+ opal_free_list_return (comp -> base .my_list , (opal_free_list_item_t * ) comp );
128
131
return OPAL_ERR_OUT_OF_RESOURCE ;
129
132
} else if (rc < 0 ) {
133
+ opal_free_list_return (comp -> base .my_list , (opal_free_list_item_t * ) comp );
130
134
BTL_ERROR (("fi_atomic failed with rc=%d (%s)" , rc , fi_strerror (- rc )));
131
135
MCA_BTL_OFI_ABORT ();
132
136
}
@@ -181,8 +185,10 @@ int mca_btl_ofi_acswap (struct mca_btl_base_module_t *btl, struct mca_btl_base_e
181
185
& comp -> comp_ctx );
182
186
183
187
if (rc == - FI_EAGAIN ) {
188
+ opal_free_list_return (comp -> base .my_list , (opal_free_list_item_t * ) comp );
184
189
return OPAL_ERR_OUT_OF_RESOURCE ;
185
190
} else if (rc < 0 ) {
191
+ opal_free_list_return (comp -> base .my_list , (opal_free_list_item_t * ) comp );
186
192
BTL_ERROR (("fi_compare_atomic failed with rc=%d (%s)" , rc , fi_strerror (- rc )));
187
193
MCA_BTL_OFI_ABORT ();
188
194
}
0 commit comments