if( cl_status != CL_SUCCESS || bytes_ret != sizeof(ioctl_buf.out) )\r
status = IB_ERROR;\r
else\r
+ {\r
status = ioctl_buf.out.status;\r
-\r
- h_av->obj.hdl = ioctl_buf.out.h_av;\r
-\r
+ if(status == IB_SUCCESS)\r
+ h_av->obj.hdl = ioctl_buf.out.h_av;\r
+ }\r
+ \r
/* Post uvp call */\r
if( h_pd->h_ci_pd && uvp_intf.post_create_av )\r
{\r
ual_create_av_ioctl_t ioctl_buf;\r
uintn_t bytes_ret;\r
cl_status_t cl_status = CL_ERROR;\r
+ ib_api_status_t status = IB_ERROR;\r
\r
AL_ENTER( AL_DBG_AV );\r
/* Clear the ioctl_buf */\r
\r
if( cl_status != CL_SUCCESS || bytes_ret != sizeof(ioctl_buf.out) )\r
{\r
- AL_PRINT_EXIT(TRACE_LEVEL_ERROR ,AL_DBG_ERROR,\r
+ AL_PRINT(TRACE_LEVEL_ERROR ,AL_DBG_ERROR,\r
("UAL_CREATE_AV IOCTL returned %s\n", CL_STATUS_MSG(cl_status)) );\r
- return IB_ERROR;\r
+ status = IB_ERROR;\r
+ }else\r
+ {\r
+ status = ioctl_buf.out.status;\r
+ if(status == IB_SUCCESS)\r
+ h_av->obj.hdl = ioctl_buf.out.h_av;\r
}\r
\r
- if( ioctl_buf.out.status == IB_SUCCESS )\r
- h_av->obj.hdl = ioctl_buf.out.h_av;\r
\r
AL_EXIT( AL_DBG_AV );\r
- return ioctl_buf.out.status;\r
+ return status;\r
}\r
\r
\r
else\r
{\r
status = ioctl_buf.out.status;\r
+ if(status == IB_SUCCESS)\r
+ h_mad_svc->obj.hdl = ioctl_buf.out.h_mad_svc;\r
+ \r
}\r
\r
if( status != IB_SUCCESS )\r
return status;\r
}\r
\r
- h_mad_svc->obj.hdl = ioctl_buf.out.h_mad_svc;\r
*ph_mad_svc = h_mad_svc;\r
\r
AL_EXIT( AL_DBG_MAD );\r
IN const ib_pd_handle_t h_pd,\r
IN OUT ib_pool_key_t p_pool_key )\r
{\r
- ual_reg_mad_pool_ioctl_t ioctl_buf;\r
+ ual_reg_mad_pool_ioctl_t ioctl_buf;\r
uintn_t bytes_ret;\r
cl_status_t cl_status;\r
-\r
+ ib_api_status_t status = IB_ERROR;\r
+ \r
AL_ENTER( AL_DBG_MAD );\r
\r
/*TODO: Can h_pool be removed as a param? */\r
\r
if( cl_status != CL_SUCCESS || bytes_ret != sizeof(ioctl_buf.out) )\r
{\r
- AL_PRINT_EXIT(TRACE_LEVEL_ERROR ,AL_DBG_ERROR,\r
+ AL_PRINT(TRACE_LEVEL_ERROR ,AL_DBG_ERROR,\r
("UAL_REG_MAD_POOL IOCTL returned %s.\n",\r
CL_STATUS_MSG(cl_status)) );\r
- return IB_ERROR;\r
+ status = IB_ERROR;\r
+ }\r
+ else\r
+ {\r
+ status = ioctl_buf.out.status;\r
+ if(status == IB_SUCCESS )\r
+ p_pool_key->obj.hdl = ioctl_buf.out.pool_key;\r
}\r
\r
if( ioctl_buf.out.status == IB_SUCCESS )\r
p_pool_key->obj.hdl = ioctl_buf.out.pool_key;\r
\r
AL_EXIT( AL_DBG_MAD );\r
- return ioctl_buf.out.status;\r
+ return status;\r
}\r
\r
\r
ual_attach_mcast_ioctl_t ioctl_buf;\r
uintn_t bytes_ret;\r
cl_status_t cl_status;\r
- ib_api_status_t status;\r
+ ib_api_status_t status = IB_ERROR;\r
ib_qp_handle_t h_qp;\r
uvp_interface_t uvp_intf;\r
\r
else\r
{\r
status = ioctl_buf.out.status;\r
- if( status == IB_SUCCESS )\r
+ if( status == IB_SUCCESS ){\r
h_mcast->obj.hdl = ioctl_buf.out.h_attach;\r
+ h_mcast->h_ci_mcast = (ib_mcast_handle_t)ioctl_buf.out.h_attach;\r
+ }\r
}\r
\r
/* Post uvp call */\r
ual_reg_mem_ioctl_t mr_ioctl;\r
uintn_t bytes_ret;\r
cl_status_t cl_status;\r
+ ib_api_status_t status = IB_ERROR;\r
\r
AL_ENTER( AL_DBG_MR );\r
\r
\r
if( cl_status != CL_SUCCESS || bytes_ret != sizeof(mr_ioctl.out) )\r
{\r
- AL_PRINT_EXIT(TRACE_LEVEL_ERROR ,AL_DBG_ERROR,\r
+ AL_PRINT(TRACE_LEVEL_ERROR ,AL_DBG_ERROR,\r
("UAL_REG_MR IOCTL returned %s.\n",\r
CL_STATUS_MSG(cl_status)) );\r
- return IB_ERROR;\r
+ status = IB_ERROR;\r
}\r
-\r
- if( mr_ioctl.out.status == IB_SUCCESS )\r
+ else\r
{\r
- h_mr->obj.hdl = mr_ioctl.out.h_mr;\r
- *p_lkey = mr_ioctl.out.lkey;\r
- *p_rkey = mr_ioctl.out.rkey;\r
+ status = mr_ioctl.out.status;\r
+ if( status == IB_SUCCESS )\r
+ {\r
+ h_mr->obj.hdl = mr_ioctl.out.h_mr;\r
+ *p_lkey = mr_ioctl.out.lkey;\r
+ *p_rkey = mr_ioctl.out.rkey;\r
+ }\r
}\r
\r
AL_EXIT( AL_DBG_MR );\r
- return mr_ioctl.out.status;\r
+ return status;\r
}\r
\r
\r
else\r
{\r
status = mw_ioctl.out.status;\r
+ if( status == IB_SUCCESS )\r
+ {\r
+ h_mw->obj.hdl = mw_ioctl.out.h_mw;\r
+ *p_rkey = mw_ioctl.out.rkey;\r
+ }\r
}\r
\r
/* Post uvp call */\r
&mw_ioctl.out.umv_buf );\r
}\r
\r
- if( status == IB_SUCCESS )\r
- {\r
- h_mw->obj.hdl = mw_ioctl.out.h_mw;\r
- *p_rkey = mw_ioctl.out.rkey;\r
- }\r
+ \r
\r
AL_EXIT( AL_DBG_MW );\r
return status;\r
else\r
{\r
status = pd_ioctl.out.status;\r
+ if( status == IB_SUCCESS )\r
+ h_pd->obj.hdl = pd_ioctl.out.h_pd;\r
+ \r
}\r
\r
- h_pd->obj.hdl = pd_ioctl.out.h_pd;\r
+\r
\r
/* Post uvp call */\r
if( pd_type != IB_PDT_ALIAS && h_uvp_ca && uvp_intf.post_allocate_pd )\r