[IBAL] remove unnecessary query_qp request during modify_qp
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Sun, 28 Jun 2009 08:37:31 +0000 (08:37 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Sun, 28 Jun 2009 08:37:31 +0000 (08:37 +0000)
HCA API of modify_qp contains an optional parameter of qp_attr.
If it is coded, modify_qp makes internally a query_qp request to low-level driver and returns QP attributes.
IBAL codes this parameter, but do not use the returned QP attributes.
It causes unnecessary query_qp request to low-level driver and possible racy scenarios.

git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2271 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

core/al/al_qp.c
core/al/al_verbs.h

index a331301..e785a6f 100644 (file)
@@ -1332,7 +1332,6 @@ al_modify_qp(
        IN      OUT                     ci_umv_buf_t* const                     p_umv_buf )\r
 {\r
        ib_api_status_t                 status;\r
-       ib_qp_attr_t                    qp_attr;\r
 \r
        CL_ASSERT( h_qp );\r
 \r
@@ -1350,7 +1349,7 @@ al_modify_qp(
 #endif /* CL_KERNEL */\r
 \r
        /* Modify the actual QP attributes. */\r
-       status = verbs_modify_qp( h_qp, p_qp_mod, qp_attr );\r
+       status = verbs_modify_qp( h_qp, p_qp_mod, NULL );\r
 \r
        /* Record the QP state if the modify was successful. */\r
        if( status == IB_SUCCESS )\r
index 2b9ec41..98c1e67 100644 (file)
@@ -333,9 +333,9 @@ verbs_create_qp(
        h_qp->obj.p_ci_ca->verbs.query_qp( h_qp->h_ci_qp,\\r
                p_qp_attr, p_umv_buf )\r
 \r
-#define verbs_modify_qp(h_qp, p_qp_mod, qp_attr) \\r
+#define verbs_modify_qp(h_qp, p_qp_mod, p_qp_attr) \\r
        h_qp->obj.p_ci_ca->verbs.modify_qp( h_qp->h_ci_qp,\\r
-               p_qp_mod, &qp_attr, p_umv_buf )\r
+               p_qp_mod, p_qp_attr, p_umv_buf )\r
 \r
 #define verbs_ndi_modify_qp(h_qp, p_qp_mod, qp_attr, buf_size, p_buf) \\r
                h_qp->obj.p_ci_ca->verbs.ndi_modify_qp( h_qp->h_ci_qp,\\r
@@ -593,8 +593,8 @@ allocate_pd_alias(
        ual_query_qp(h_qp, p_qp_attr); \\r
        UNUSED_PARAM( p_umv_buf );\r
 \r
-#define verbs_modify_qp(h_qp, p_qp_mod, qp_attr) \\r
-       ual_modify_qp(h_qp, p_qp_mod, &qp_attr); \\r
+#define verbs_modify_qp(h_qp, p_qp_mod, p_qp_attr) \\r
+       ual_modify_qp(h_qp, p_qp_mod, p_qp_attr); \\r
        UNUSED_PARAM( p_umv_buf );\r
 \r
 #define verbs_post_send(h_qp, p_send_wr, pp_send_failure) \\r