Hi Fab,
This patch fixes printing of uplink information in VSTAT and i'm going
to commit it now, because it improves the current state.
But really all the implementation of vendor-specific information in
query_ca is bad.
We need to define a structure, describing all that info and to work with
names, not calculated offsets.
We'll put it on our todo list.
________________________________
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Fab Tillier
Sent: Wednesday, April 09, 2008 7:44 PM
To: Reuven Amitai; [email protected]
Subject: [ofw] RE: [PATCH] mthca patch [1/2]
Hi Reuven,
What is the problem with the alignment? The board ID is a
character string, so shouldn't need any special alignment. Also, you
are rounding the size down - is that the right thing to do?
What is the layout of the ca_attr buffer, and what are the
alignment requirements for the different structures appended to the end?
Is MTHCA_BRD_ID_LEN going to cause the uplink info to be
aligned?
Thanks,
-Fab
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Reuven Amitai
Sent: Wednesday, April 09, 2008 6:04 AM
To: [email protected]
Subject: [ofw] [PATCH] mthca patch [1/2]
Hi,
The following patch align the returned address.
Thanks, Reuven.
Index: inc/mthca/mthca_vc.h
===================================================================
--- inc/mthca/mthca_vc.h (revision 1047)
+++ inc/mthca/mthca_vc.h (working copy)
@@ -78,12 +78,18 @@
inline char* mthca_get_board_id(ib_ca_attr_t *ca_attr)
{
- return (char*)(ca_attr)+(ca_attr->size - MTHCA_BRD_ID_LEN -
sizeof(uplink_info_t));
+ int size = (ca_attr->size - MTHCA_BRD_ID_LEN -
sizeof(uplink_info_t));
+ size &= ~(sizeof(void*) - 1);
+
+ return (char*)(ca_attr)+ size;
}
inline void* mthca_get_uplink_info(ib_ca_attr_t *ca_attr)
{
- return (char*)(ca_attr)+(ca_attr->size -
sizeof(uplink_info_t));
+ int size = (ca_attr->size - sizeof(uplink_info_t));
+ size &= ~(sizeof(void*) - 1);
+
+ return (char*)(ca_attr)+ size;
}
#endif
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw