@@ -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);