[Openib-windows] [PATCH] query_ca
Yossi Leybovich
sleybo at mellanox.co.il
Thu Oct 20 10:18:23 PDT 2005
Fab
inorder to support AV with GRH we still need to copy the ca attr and update
the internal pointers in the struct
here is patch for that
10x
Yossi
Singed-off-by: Yossi Leybovich
Index: hw/mt23108/user/mlnx_ual_ca.c
===================================================================
--- hw/mt23108/user/mlnx_ual_ca.c (revision 603)
+++ hw/mt23108/user/mlnx_ual_ca.c (working copy)
@@ -192,16 +192,48 @@
IN size_t byte_count,
IN ci_umv_buf_t *p_umv_buf )
{
+
FUNC_ENTER;
CL_ASSERT(h_uvp_ca);
CL_ASSERT(p_umv_buf);
+
if ( ioctl_status == IB_SUCCESS && p_ca_attr &&
byte_count && !h_uvp_ca->p_hca_attr )
{
+
+ ib_ca_attr_t* p_dest = NULL;
+ ib_ca_attr_t* p_src = NULL;
+ uint8_t i;
+ uintn_t offset ;
+ ib_port_attr_t *p_tmp_port_attr = NULL;
+
+
h_uvp_ca->p_hca_attr = p_umv_buf->p_inout_buf;
- cl_memcpy(h_uvp_ca->p_hca_attr, p_ca_attr, byte_count);
+
+ p_dest = h_uvp_ca->p_hca_attr;
+ p_src = p_ca_attr;
+ offset = (uintn_t)h_uvp_ca->p_hca_attr - (uintn_t)p_ca_attr;
+
+ cl_memcpy(p_dest, p_src, byte_count);
+ /* Fix up the pointers to point within the destination buffer. */
+ p_dest->p_page_size =
+ (uint32_t* __ptr64)(((uint8_t* __ptr64)p_dest->p_page_size) + offset);
+
+ p_tmp_port_attr =
+ (ib_port_attr_t* __ptr64)(((uint8_t* __ptr64)p_dest->p_port_attr) +
offset);
+
+ /* Fix up each port attribute's gid and pkey table pointers. */
+ for( i = 0; i < p_dest->num_ports; i++ )
+ {
+ p_tmp_port_attr[i].p_gid_table = (ib_gid_t* __ptr64)
+ (((uint8_t* __ptr64)p_tmp_port_attr[i].p_gid_table) + offset);
+
+ p_tmp_port_attr[i].p_pkey_table =(ib_net16_t* __ptr64)
+ (((uint8_t* __ptr64)p_tmp_port_attr[i].p_pkey_table) + offset);
+ }
+ p_dest->p_port_attr = p_tmp_port_attr;
}
else if (p_umv_buf->p_inout_buf)
{
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20051020/fbeb10ac/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: query_ca_2.patch
Type: application/octet-stream
Size: 1631 bytes
Desc: not available
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20051020/fbeb10ac/attachment.obj>
More information about the ofw
mailing list