diff mbox

opensm/osm_sa.c: In osm_sa_respond, only fill in attr offset if RMPP method

Message ID 20100603134209.GA12225@comcast.net (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Hal Rosenstock June 3, 2010, 1:42 p.m. UTC
None
diff mbox

Patch

diff --git a/opensm/opensm/osm_sa.c b/opensm/opensm/osm_sa.c
index 0aca81f..8325632 100644
--- a/opensm/opensm/osm_sa.c
+++ b/opensm/opensm/osm_sa.c
@@ -3,6 +3,7 @@ 
  * Copyright (c) 2002-2010 Mellanox Technologies LTD. All rights reserved.
  * Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
  * Copyright (c) 2008 Xsigo Systems Inc.  All rights reserved.
+ * Copyright (c) 2010 HNR Consulting. All rights reserved.
  *
  * This software is available to you under a choice of one of two
  * licenses.  You may choose to be licensed under the terms of the GNU
@@ -454,8 +455,15 @@  void osm_sa_respond(osm_sa_t *sa, osm_madw_t *madw, size_t attr_size,
 	/* C15-0.1.5 - always return SM_Key = 0 (table 185 p 884) */
 	resp_sa_mad->sm_key = 0;
 
-	/* Fill in the offset (paylen will be done by the rmpp SAR) */
-	resp_sa_mad->attr_offset = num_rec ? ib_get_attr_offset(attr_size) : 0;
+#ifdef DUAL_SIDED_RMPP
+	if (resp_sa_mad->method == IB_MAD_METHOD_GETTABLE_RESP ||
+	    resp_sa_mad->method == IB_MAD_METHOD_GETMULTI_RESP) {
+#else
+	if (resp_sa_mad->method == IB_MAD_METHOD_GETTABLE_RESP) {
+#endif
+		/* Fill in the offset (paylen will be done by the rmpp SAR) */
+		resp_sa_mad->attr_offset = num_rec ? ib_get_attr_offset(attr_size) : 0;
+	}
 
 	p = ib_sa_mad_get_payload_ptr(resp_sa_mad);