]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
uvp/ci_umv_buf: always allocate uvp buffer
authorshefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 23 Jul 2008 21:08:13 +0000 (21:08 +0000)
committershefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 23 Jul 2008 21:08:13 +0000 (21:08 +0000)
The UVP controls the ci_umv_buf, but does not allocate the p_inout_buf if it
is non-zero.  However, the uvp frees the buffer later.  It should always
allocate the buffer, since the caller does not know the required size and
cannot allocate it on the uvp's behalf.  This avoids an unneeded
initialization by the caller, and the if check by the uvp.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1441 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

trunk/hw/mlx4/user/hca/verbs.c
trunk/hw/mthca/user/mlnx_ual_av.c
trunk/hw/mthca/user/mlnx_ual_ca.c
trunk/hw/mthca/user/mlnx_ual_cq.c
trunk/hw/mthca/user/mlnx_ual_pd.c
trunk/hw/mthca/user/mlnx_ual_qp.c
trunk/hw/mthca/user/mlnx_ual_srq.c

index df46f5d0b54c86c4c3c3378096700d63f624b826..e7c6b4eaa96a23d1451453885346cc23c9658370 100644 (file)
@@ -57,15 +57,11 @@ mlx4_pre_open_ca (
        \r
        if( p_umv_buf )\r
        {\r
+               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( sizeof(struct ibv_get_context_resp) );\r
                if( !p_umv_buf->p_inout_buf )\r
                {\r
-                       p_umv_buf->p_inout_buf =\r
-                               (ULONG_PTR)cl_zalloc( sizeof(struct ibv_get_context_resp) );\r
-                       if( !p_umv_buf->p_inout_buf )\r
-                       {\r
-                               status = IB_INSUFFICIENT_MEMORY;\r
-                               goto end;\r
-                       }\r
+                       status = IB_INSUFFICIENT_MEMORY;\r
+                       goto end;\r
                }\r
                p_umv_buf->input_size = 0;\r
                p_umv_buf->output_size = sizeof(struct ibv_get_context_resp);\r
@@ -232,14 +228,11 @@ mlx4_pre_alloc_pd (
 \r
        CL_ASSERT(context && p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_malloc( sizeof(struct ibv_alloc_pd_resp) );\r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_malloc( sizeof(struct ibv_alloc_pd_resp) );\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto end;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto end;\r
        }\r
        p_umv_buf->input_size = 0;\r
        p_umv_buf->output_size = sizeof(struct ibv_alloc_pd_resp);\r
@@ -332,14 +325,11 @@ mlx4_pre_create_cq (
 \r
        CL_ASSERT(h_uvp_ca && p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_malloc( size );\r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_malloc( size );\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_umv_buf;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_umv_buf;\r
        }\r
        p_umv_buf->input_size = sizeof(struct ibv_create_cq);\r
        p_umv_buf->output_size = sizeof(struct ibv_create_cq_resp);\r
@@ -489,14 +479,11 @@ mlx4_pre_create_srq (
 \r
        CL_ASSERT(p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_malloc( size ); \r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_malloc( size ); \r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_memory;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_memory;\r
        }\r
        p_umv_buf->input_size = sizeof(struct ibv_create_srq);\r
        p_umv_buf->output_size = sizeof(struct ibv_create_srq_resp);\r
@@ -691,14 +678,11 @@ mlx4_pre_create_qp (
 \r
        CL_ASSERT(p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_malloc(size);\r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_malloc(size);\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_memory;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_memory;\r
        }\r
        p_umv_buf->input_size = sizeof(struct ibv_create_qp);\r
        p_umv_buf->output_size = sizeof(struct ibv_create_qp_resp);\r
@@ -944,14 +928,11 @@ mlx4_pre_modify_qp (
 \r
        CL_ASSERT(p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_malloc(sizeof(struct ibv_modify_qp_resp));\r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_malloc(sizeof(struct ibv_modify_qp_resp));\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_memory;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_memory;\r
        }\r
        p_umv_buf->input_size = 0;\r
        p_umv_buf->output_size = sizeof(struct ibv_modify_qp_resp);\r
@@ -1412,14 +1393,11 @@ mlx4_pre_create_xrc_srq (
 \r
        CL_ASSERT(p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = cl_malloc( size ); \r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = cl_malloc( size ); \r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_memory;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_memory;\r
        }\r
        p_umv_buf->input_size = sizeof(struct ibv_create_srq);\r
        p_umv_buf->output_size = sizeof(struct ibv_create_srq_resp);\r
@@ -1548,14 +1526,11 @@ mlx4_pre_open_xrc_domain (
 \r
        CL_ASSERT(h_uvp_ca && p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = cl_malloc( size );\r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = cl_malloc( size );\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_umv_buf;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_umv_buf;\r
        }\r
        p_umv_buf->input_size = sizeof(struct ibv_open_xrc_domain);\r
        p_umv_buf->output_size = sizeof(struct ibv_open_xrc_domain_resp);\r
index 0b3208bf43f4ad365e247f11780372ecc1a0aff9..25c8ebd923d22c0021a526a6c811603848585689 100644 (file)
@@ -169,13 +169,11 @@ __pre_create_av (
        }\r
 \r
        // allocate parameters\r
-       if( !p_umv_buf->p_inout_buf ) {\r
-               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( size );\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_mem;\r
-               }\r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( size );\r
+       if( !p_umv_buf->p_inout_buf )\r
+       {\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_mem;\r
        }\r
 \r
        // fill the parameters\r
index c178687ca326a8dbbf281151905fd7bb4f4c33fd..dc73169694afcb8ae13158ea1a3f77482af30be2 100644 (file)
@@ -56,15 +56,11 @@ __pre_open_ca (
        UVP_ENTER(UVP_DBG_SHIM);\r
        if( p_umv_buf )\r
        {\r
+               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( sizeof(struct ibv_get_context_resp) );\r
                if( !p_umv_buf->p_inout_buf )\r
                {\r
-                       p_umv_buf->p_inout_buf =\r
-                               (ULONG_PTR)cl_zalloc( sizeof(struct ibv_get_context_resp) );\r
-                       if( !p_umv_buf->p_inout_buf )\r
-                       {\r
-                               status = IB_INSUFFICIENT_MEMORY;\r
-                               goto err_memory;\r
-                       }\r
+                       status = IB_INSUFFICIENT_MEMORY;\r
+                       goto err_memory;\r
                }\r
                p_umv_buf->input_size = p_umv_buf->output_size = sizeof(struct ibv_get_context_resp);\r
                p_umv_buf->command = TRUE;\r
index 198c16ee5ed439b733d0db9863324ee1ec0401f5..a99c6e7208885c15bd24a8a3580a9f4dfcb53ac0 100644 (file)
@@ -63,14 +63,11 @@ __pre_create_cq (
 \r
        CL_ASSERT(p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( size );\r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( size );\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_memory;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_memory;\r
        }\r
        p_umv_buf->input_size = sizeof(struct ibv_create_cq);\r
        p_umv_buf->output_size = sizeof(struct ibv_create_cq_resp);\r
index a7665a3a9d4524c50bcb6756b910133677ad931b..2b53f75b585e320cca1945054e6e88391335fd5f 100644 (file)
@@ -55,14 +55,11 @@ __pre_allocate_pd (
 \r
        CL_ASSERT(p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( sizeof(struct ibv_alloc_pd_resp) );\r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( sizeof(struct ibv_alloc_pd_resp) );\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_memory;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_memory;\r
        }\r
        p_umv_buf->input_size = p_umv_buf->output_size = sizeof(struct ibv_alloc_pd_resp);\r
        p_umv_buf->command = TRUE;\r
index 23293b6e2d085f2ed498c443c6550de8422c42ac..53792155dc74a011968fafee5b3e1856aa23f77d 100644 (file)
@@ -98,14 +98,11 @@ __pre_create_qp (
 \r
        CL_ASSERT(p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( size );\r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( size );\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_memory;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_memory;\r
        }\r
        p_umv_buf->input_size = sizeof(struct ibv_create_qp);\r
        p_umv_buf->output_size = sizeof(struct ibv_create_qp_resp);\r
@@ -223,15 +220,11 @@ __pre_modify_qp (
 \r
        CL_ASSERT(p_umv_buf);\r
 \r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( sizeof(struct ibv_modify_qp_resp) );\r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf =\r
-                       (ULONG_PTR)cl_zalloc( sizeof(struct ibv_modify_qp_resp) );\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_memory;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_memory;\r
        }\r
        p_umv_buf->input_size = 0;\r
        p_umv_buf->output_size = sizeof(struct ibv_modify_qp_resp);\r
index fc09058272407667b86c07f97cfe03661acb89aa..7d5ff1dc0adc3a9173a107bc002d42d7f532912c 100644 (file)
@@ -93,14 +93,11 @@ __pre_create_srq (
                goto err_params;\r
        }\r
 \r
+       p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( size );\r
        if( !p_umv_buf->p_inout_buf )\r
        {\r
-               p_umv_buf->p_inout_buf = (ULONG_PTR)cl_zalloc( size );\r
-               if( !p_umv_buf->p_inout_buf )\r
-               {\r
-                       status = IB_INSUFFICIENT_MEMORY;\r
-                       goto err_memory;\r
-               }\r
+               status = IB_INSUFFICIENT_MEMORY;\r
+               goto err_memory;\r
        }\r
        p_umv_buf->input_size = sizeof(struct ibv_create_srq);\r
        p_umv_buf->output_size = sizeof(struct ibv_create_srq_resp);\r