[ofw] RE: [PATCH] mthca patch [1/2]

Leonid Keller leonid at mellanox.co.il
Wed Apr 9 23:59:08 PDT 2008


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: ofw-bounces at lists.openfabrics.org
[mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Fab Tillier
	Sent: Wednesday, April 09, 2008 7:44 PM
	To: Reuven Amitai; ofw at lists.openfabrics.org
	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: ofw-bounces at lists.openfabrics.org
[mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Reuven Amitai
	Sent: Wednesday, April 09, 2008 6:04 AM
	To: ofw at lists.openfabrics.org
	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

	 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20080410/70cdf924/attachment.html>


More information about the ofw mailing list