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
