Do not use mad wrapper pointer after deleting it.
The old code tried to access already de-allocated pointer, which caused to 
dangling reference
Signed-off by: Alexander Naslednikov (xalex at mellanox.co.il)
Index: B:/users/xalex/MLNX_VPI_trunk/ulp/opensm/user/opensm/osm_vl15intf.c
===================================================================
--- B:/users/xalex/MLNX_VPI_trunk/ulp/opensm/user/opensm/osm_vl15intf.c         
     (revision 7562)
+++ B:/users/xalex/MLNX_VPI_trunk/ulp/opensm/user/opensm/osm_vl15intf.c         
  (revision 7563)
@@ -63,7 +63,8 @@
                   since we can have no confirmation that they arrived
                   at their destination.
                 */
-              if (p_madw->resp_expected == TRUE)
+             boolean_t resp_expected = p_madw->resp_expected;
+             if (resp_expected == TRUE)
                                /*
                                   Note that other threads may not see the 
response MAD
                                   arrive before send() even returns.
@@ -103,7 +104,7 @@
                   qp0_mads_outstanding will be decremented by send error 
callback
                   (called by osm_vendor_send() */
                cl_atomic_dec(&p_vl->p_stats->qp0_mads_sent);
-              if (!p_madw->resp_expected)
+             if (!resp_expected)
                                
cl_atomic_dec(&p_vl->p_stats->qp0_unicasts_sent);
 }


Alexander (XaleX) Naslednikov
SW Networking Team
Mellanox Technologies

_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to