components/open-fabrics/libibumad/patches/002-libibumad_to_use_node_guid_ext.patch
branchs11u3-sru
changeset 7024 84310b997802
equal deleted inserted replaced
7023:4afb0efdefc1 7024:84310b997802
       
     1 #This patch was developed both in-house and from outside. We plan to submit it
       
     2 #upstream, but do not yet have a target date for doing so
       
     3 #
       
     4 # HG changeset patch
       
     5 # Parent  c1b4449a11e307550ee85b73baed3cd69e1b87cf
       
     6 24516419 umad_get_ca() should pass the PF node_guid for CX3
       
     7 
       
     8 diff -r c1b4449a11e3 include/infiniband/umad.h
       
     9 --- a/include/infiniband/umad.h	Thu Aug 18 00:00:48 2016 -0700
       
    10 +++ b/include/infiniband/umad.h	Sun Aug 21 22:33:49 2016 -0700
       
    11 @@ -129,6 +129,8 @@
       
    12  #define SYS_CA_HW_VERS		"hw_rev"
       
    13  #define SYS_CA_TYPE		"hca_type"
       
    14  #define SYS_CA_NODE_GUID	"node_guid"
       
    15 +#define SYS_CA_NODE_GUID_EXTERNAL \
       
    16 +				"node_guid_external"
       
    17  #define SYS_CA_SYS_GUID		"sys_image_guid"
       
    18  
       
    19  #define SYS_PORT_LMC		"lid_mask_count"
       
    20 diff -r c1b4449a11e3 src/umad.c
       
    21 --- a/src/umad.c	Thu Aug 18 00:00:48 2016 -0700
       
    22 +++ b/src/umad.c	Sun Aug 21 22:33:49 2016 -0700
       
    23 @@ -456,7 +456,19 @@
       
    24  	if ((r = sys_read_string(dir_name, SYS_CA_TYPE, ca->ca_type,
       
    25  				 sizeof ca->ca_type)) < 0)
       
    26  		ca->ca_type[0] = '\0';
       
    27 +#if defined(__SVR4) && defined(__sun)
       
    28 +	/*
       
    29 +	 * Get "node_guid_external" for the device. If it does not exist,
       
    30 +	 * or if the value node_guid_external is 0, use "node_guid"
       
    31 +	 */
       
    32 +	r = sys_read_guid(dir_name, SYS_CA_NODE_GUID_EXTERNAL,
       
    33 +	    &ca->node_guid);
       
    34 +	if (((r < 0) || (ca->node_guid == 0)) &&
       
    35 +	    ((r = sys_read_guid(dir_name, SYS_CA_NODE_GUID,
       
    36 +	    &ca->node_guid)) < 0))
       
    37 +#else
       
    38  	if ((r = sys_read_guid(dir_name, SYS_CA_NODE_GUID, &ca->node_guid)) < 0)
       
    39 +#endif
       
    40  		return r;
       
    41  	if ((r =
       
    42  	     sys_read_guid(dir_name, SYS_CA_SYS_GUID, &ca->system_guid)) < 0)