libibumad: match behavior of linux tree
authorshefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 29 Oct 2009 22:19:07 +0000 (22:19 +0000)
committershefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 29 Oct 2009 22:19:07 +0000 (22:19 +0000)
Port GUIDs should be stored in an array index equal to the port number.  We need to start at array index 1, rather than 0 to support this.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2524 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

ulp/libibumad/src/umad.cpp

index 64aaac1..6204be0 100644 (file)
@@ -99,11 +99,12 @@ int umad_get_ca_portguids(char *ca_name, uint64_t *portguids, int max)
        if (umad_get_ca(ca_name, &ca) < 0)\r
                return -1;\r
 \r
-       if (ca.numports > max) {\r
+       if (ca.numports + 1 > max) {\r
                umad_release_ca(&ca);\r
                return -ENOMEM;\r
        }\r
 \r
+       portguids[ports++] = 0;\r
        for (i = 1; i <= ca.numports; i++)\r
                portguids[ports++] = ca.ports[i]->port_guid;\r
 \r