[ofa-general] Patch for libvendor incompatibility with QLogic SM

Mike Heinz michael.heinz at qlogic.com
Thu Dec 18 12:49:17 PST 2008


Hal,

You've got me really confused now - there are only two cases that need changing, OSMV_QUERY_PATH_REC_BY_GIDS and OSMV_QUERY_PATH_REC_BY_PORT_GUIDS;  OSMV_QUERY_PATH_REC_BY_LIDS does *not* need to be changed because it uses the GET method. Thus, this should be the correct patch. (I'm re-including it for clarity).

Signed-off-by: Michael Heinz <mheinz at qlogic.com>
--------------------------------
--- osm_vendor_ibumad_sa.c.orig	2008-10-20 01:00:09.000000000 -0400
+++ osm_vendor_ibumad_sa.c	2008-12-18 14:50:49.000000000 -0500
@@ -615,7 +615,8 @@
 		sa_mad_data.attr_offset =
 		    ib_get_attr_offset(sizeof(ib_path_rec_t));
 		sa_mad_data.comp_mask =
-		    (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID);
+		    (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH);
+		path_rec.num_path = 0x7f;
 		sa_mad_data.p_attr = &path_rec;
 		ib_gid_set_default(&path_rec.dgid,
 				   ((osmv_guid_pair_t *) (p_query_req->
@@ -634,7 +635,8 @@
 		sa_mad_data.attr_offset =
 		    ib_get_attr_offset(sizeof(ib_path_rec_t));
 		sa_mad_data.comp_mask =
-		    (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID);
+		    (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH);
+		path_rec.num_path = 0x7f;
 		sa_mad_data.p_attr = &path_rec;
 		memcpy(&path_rec.dgid,
 		       &((osmv_gid_pair_t *) (p_query_req->p_query_input))->
--- osm_vendor_mlx_sa.c.orig	2008-10-20 01:00:09.000000000 -0400
+++ osm_vendor_mlx_sa.c	2008-12-18 14:51:34.000000000 -0500
@@ -743,7 +743,8 @@
 		sa_mad_data.attr_offset =
 		    ib_get_attr_offset(sizeof(ib_path_rec_t));
 		sa_mad_data.comp_mask =
-		    (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID);
+		    (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH);
+		path_rec.num_path = 0x7f;
 		sa_mad_data.p_attr = &path_rec;
 		ib_gid_set_default(&path_rec.dgid,
 				   ((osmv_guid_pair_t *) (p_query_req->
@@ -763,7 +764,8 @@
 		sa_mad_data.attr_offset =
 		    ib_get_attr_offset(sizeof(ib_path_rec_t));
 		sa_mad_data.comp_mask =
-		    (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID);
+		    (IB_PR_COMPMASK_DGID | IB_PR_COMPMASK_SGID | IB_PR_COMPMASK_NUMBPATH);
+		path_rec.num_path = 0x7f;
 		sa_mad_data.p_attr = &path_rec;
 		memcpy(&path_rec.dgid,
 		       &((osmv_gid_pair_t *) (p_query_req->p_query_input))->

--
Michael Heinz
Principal Engineer, Qlogic Corporation
King of Prussia, Pennsylvania

-----Original Message-----
From: Hal Rosenstock [mailto:hal.rosenstock at gmail.com] 
Sent: Thursday, December 18, 2008 3:32 PM
To: Mike Heinz
Cc: general at lists.openfabrics.org
Subject: Re: [ofa-general] Patch for libvendor incompatibility with QLogic SM

On Thu, Dec 18, 2008 at 3:22 PM, Mike Heinz <michael.heinz at qlogic.com> wrote:
>
>> Right and it wouldn't need num_paths either (as get assumes 1) so I don't think the changes for OSMV_QUERY_PATH_REC_BY_LIDS in both these patches are needed.
>
> Sorry if I was unclear, the last patch submission neither sets the num_path field nor the attribute mask for OSMV_QUERY_PATH_REC_BY_LIDS queries.

Right; I didn't see the updated patch was for both sa files. In the new patch, one case was missed in terms of the needed change though unless I missed that too...



More information about the general mailing list