Revision: 2289
Author:
regra...@gmail.com
Date: Mon Oct 20 22:39:57 2014 UTC
Log: Fix potential segfault on exit, poll for IB memory deregistration
success
https://code.google.com/p/portals4/source/detail?r=2289
Modified:
/trunk/src/ib/ptl_mr.c
=======================================
--- /trunk/src/ib/ptl_mr.c Mon Oct 20 20:05:30 2014 UTC
+++ /trunk/src/ib/ptl_mr.c Mon Oct 20 22:39:57 2014 UTC
@@ -68,10 +68,16 @@
if (mr->ibmr) {
int err;
- err = ibv_dereg_mr(mr->ibmr);
- if (err) {
- ptl_error("ibv_dereg_mr failed, ret = %d\n", err);
- }
+ int count = 0;
+
+ err = ibv_dereg_mr(mr->ibmr);
+ if (err) {
+ while (err && count < 50){
+ err=ibv_dereg_mr(mr->ibmr);
+ }
+ if (err)
+ ptl_warn("ibv_dereg_mr failed, ret = %d\n", err);
+ }
mr->ibmr = NULL;
}
#endif