Index: ulp/opensm/user/include/iba/ib_types_extended.h
===================================================================
--- ulp/opensm/user/include/iba/ib_types_extended.h	(revision 2379)
+++ ulp/opensm/user/include/iba/ib_types_extended.h	(revision 2380)
@@ -2579,8 +2579,9 @@
 	IN				uint32_t					buf_size;
 	IN				uint32_t					buf_info;
 	IN	OUT			int32_t						status;
+    IN	OUT			TO_LONG_PTR(void*,p_buf) OPTIONAL; // Do not put it last in the structure, because of memory alignment
 		OUT			uint32_t					num_bytes_ret;
-	IN	OUT			void* FUNC_PTR64				p_buf OPTIONAL;
+	
 
 }	ib_ci_op_t;
 /*
Index: inc/iba/ib_types.h
===================================================================
--- inc/iba/ib_types.h	(revision 2379)
+++ inc/iba/ib_types.h	(revision 2380)
@@ -11324,9 +11324,9 @@
 	IN				uint32_t					buf_size;
 	IN				uint32_t					buf_info;
 	IN	OUT			int32_t						status;
+    IN	OUT			TO_LONG_PTR(void*, p_buf) OPTIONAL; // Do not put it last in the structure, because of memory alignment
 		OUT			uint32_t					num_bytes_ret;
-	IN	OUT			void* FUNC_PTR64				p_buf OPTIONAL;
-
+	
 }	ib_ci_op_t;
 /*
 * FIELDS
Index: inc/iba/ib_al.h
===================================================================
--- inc/iba/ib_al.h	(revision 2379)
+++ inc/iba/ib_al.h	(revision 2380)
@@ -5163,18 +5163,19 @@
 
 	ib_al_flags_t				flags;
 	uint8_t						max_cm_retries;
-
+    uint8_t						req_length;
+    
 	TO_LONG_PTR(ib_path_rec_t* ,		p_primary_path) ;
 
-	ib_pfn_cm_rep_cb_t			pfn_cm_rep_cb;
+	TO_LONG_PTR(ib_pfn_cm_rep_cb_t,	pfn_cm_rep_cb);
 
 	TO_LONG_PTR(const uint8_t* ,		p_req_pdata) ;
-	uint8_t						req_length;
+	
 
 	ib_qp_type_t				qp_type;
 
 	/* valid for rc, uc & rd qp_type only */
-TO_LONG_PTR(	ib_qp_handle_t ,				h_qp) ; 
+    TO_LONG_PTR(	ib_qp_handle_t ,				h_qp) ; 
 
 	TO_LONG_PTR(uint8_t* ,			p_compare_buffer) ;
 	uint8_t						compare_offset;
@@ -5189,14 +5190,14 @@
 	uint8_t						rnr_retry_cnt;
 	uint8_t						retry_cnt;
 
-	TO_LONG_PTR(ib_path_rec_t* ,		p_alt_path OPTIONAL) ;
+	TO_LONG_PTR(ib_path_rec_t* ,		p_alt_path ) OPTIONAL;
 
-	ib_pfn_cm_req_cb_t			pfn_cm_req_cb;
-	ib_pfn_cm_mra_cb_t			pfn_cm_mra_cb;
-	ib_pfn_cm_rej_cb_t			pfn_cm_rej_cb;
+	TO_LONG_PTR(ib_pfn_cm_req_cb_t,	pfn_cm_req_cb);
+	TO_LONG_PTR(ib_pfn_cm_mra_cb_t,	pfn_cm_mra_cb);
+	TO_LONG_PTR(ib_pfn_cm_rej_cb_t, pfn_cm_rej_cb);
 
 	/* valid for ud qp_type only */
-TO_LONG_PTR(	ib_al_handle_t ,				h_al) ; 
+    TO_LONG_PTR(	ib_al_handle_t ,				h_al) ; 
 	TO_LONG_PTR(const void* ,			sidr_context) ;
 	uint32_t					timeout_ms;
 	ib_net16_t					pkey;
@@ -5378,11 +5379,11 @@
 	uint8_t						rnr_nak_timeout;
 	uint8_t						rnr_retry_cnt;
 
-	ib_pfn_cm_rej_cb_t			pfn_cm_rej_cb;
-	ib_pfn_cm_mra_cb_t			pfn_cm_mra_cb;
-	ib_pfn_cm_rtu_cb_t			pfn_cm_rtu_cb;
-	ib_pfn_cm_lap_cb_t			pfn_cm_lap_cb;
-	ib_pfn_cm_dreq_cb_t			pfn_cm_dreq_cb;
+	TO_LONG_PTR(ib_pfn_cm_rej_cb_t,	pfn_cm_rej_cb);
+	TO_LONG_PTR(ib_pfn_cm_mra_cb_t, pfn_cm_mra_cb);
+	TO_LONG_PTR(ib_pfn_cm_rtu_cb_t, pfn_cm_rtu_cb);
+	TO_LONG_PTR(ib_pfn_cm_lap_cb_t,	pfn_cm_lap_cb);
+	TO_LONG_PTR(ib_pfn_cm_dreq_cb_t,pfn_cm_dreq_cb);
 
 	TO_LONG_PTR(ib_recv_wr_t* ,			p_recv_wr) ;
 	TO_LONG_PTR(ib_recv_wr_t* *, /*__ptr64*/	pp_recv_failure) ;
@@ -7580,17 +7581,17 @@
 */
 typedef struct _ib_mad_svc
 {
-	void						*mad_svc_context;
-	ib_pfn_mad_comp_cb_t		pfn_mad_send_cb;
-	ib_pfn_mad_comp_cb_t		pfn_mad_recv_cb;
+	TO_LONG_PTR(void*, mad_svc_context);
+	TO_LONG_PTR(ib_pfn_mad_comp_cb_t, pfn_mad_send_cb);
+	TO_LONG_PTR(ib_pfn_mad_comp_cb_t,pfn_mad_recv_cb);
 
 	boolean_t					support_unsol;
 	uint8_t						mgmt_class;
 	uint8_t						mgmt_version;
+    ib_mad_svc_type_t			svc_type;
+    
 	boolean_t					method_array[IB_MAX_METHODS];
 
-	ib_mad_svc_type_t			svc_type;
-
 }	ib_mad_svc_t;
 /*
 * FIELDS
