[ofa-general] Re: [RFC PATCH] Rename ib_gid_t in mad.h to mad_gid_t to prevent name collision with ib_types.h

Hal Rosenstock hrosenstock at xsigo.com
Thu Mar 6 08:58:11 PST 2008


On Wed, 2008-03-05 at 17:46 -0800, Ira Weiny wrote:
> Whilst writing some test code, I came across this issue again.
> 
>    '[openib-general] Conflicting typedefs for "ib_gid_t"'
>    http://lists.openfabrics.org/pipermail/general/2006-August/024903.html
> 
> One fix which suggested was to change the ib_gid_t to mad_gid_t.
> 
>    http://lists.openfabrics.org/pipermail/general/2006-August/024928.html
> 
> I think that is a pretty good choice.  I know there are many ways to fix this
> but this seems to be the least invasive.  (I was actually surprised by how
> little the code needed to change.)  Of course I don't know if other software
> relies on the libibmad interface; so if your package uses mad.h, please
> comment.  And finally I have just be running this afternoon with the fix.  So
> there has been limited testing.
> 
> Thanks,
> Ira
> 
> 
> From df270f4b955c16f25c65a89be074c78fd2f3521d Mon Sep 17 00:00:00 2001
> From: Ira K. Weiny <weiny2 at llnl.gov>
> Date: Wed, 5 Mar 2008 17:25:33 -0800
> Subject: [PATCH] Rename ib_gid_t in mad.h to mad_gid_t to prevent name collision with ib_types.h
> 
> 
> Signed-off-by: Ira K. Weiny <weiny2 at llnl.gov>
> ---
>  infiniband-diags/src/ibaddr.c     |    2 +-
>  libibmad/include/infiniband/mad.h |    8 ++++----
>  libibmad/src/resolve.c            |    2 +-
>  libibmad/src/sa.c                 |    2 +-
>  4 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/infiniband-diags/src/ibaddr.c b/infiniband-diags/src/ibaddr.c
> index f71edf8..2ac6a4f 100644
> --- a/infiniband-diags/src/ibaddr.c
> +++ b/infiniband-diags/src/ibaddr.c
> @@ -56,7 +56,7 @@ ib_resolve_addr(ib_portid_t *portid, int portnum, int show_lid, int show_gid)
>  	uint8_t nodeinfo[64];
>  	uint64_t guid, prefix;
>  	char buf1[64], buf2[64];
> -	ib_gid_t gid;
> +	mad_gid_t gid;
>  	int lmc;
>  
>  	if (!smp_query(nodeinfo, portid, IB_ATTR_NODE_INFO, 0, 0))
> diff --git a/libibmad/include/infiniband/mad.h b/libibmad/include/infiniband/mad.h
> index 15b8246..adce3e8 100644
> --- a/libibmad/include/infiniband/mad.h
> +++ b/libibmad/include/infiniband/mad.h
> @@ -156,7 +156,7 @@ enum GSI_ATTR_ID {
>  #define IB_VENDOR_OPENIB_SYSSTAT_CLASS	(IB_VENDOR_RANGE2_START_CLASS + 3)
>  #define IB_OPENIB_OUI			(0x001405)
>  
> -typedef uint8_t ib_gid_t[16];

Rather than eliminating ib_gid_t from mad.h initially, can this be
marked as deprecated and then removed in a subsequent release to ease
the migration ? Or does that still result in conflicting typedefs ?

> +typedef uint8_t mad_gid_t[16];

Should this be ib_mad_gid_t ?

-- Hal
 
>  typedef struct {
>  	int cnt;
> @@ -189,7 +189,7 @@ typedef struct portid {
>  	int lid;		/* lid or 0 if directed route */
>  	ib_dr_path_t drpath;
>  	int grh_present;	/* flag */
> -	ib_gid_t gid;
> +	mad_gid_t gid;
>  	uint32_t qp;
>  	uint32_t qkey;
>  	uint8_t sl;
> @@ -777,7 +777,7 @@ uint8_t * sa_call(void *rcvbuf, ib_portid_t *portid, ib_sa_call_t *sa,
>  		  unsigned timeout);
>  uint8_t * sa_rpc_call(void *ibmad_port, void *rcvbuf, ib_portid_t *portid,
>  		      ib_sa_call_t *sa, unsigned timeout);
> -int	ib_path_query(ib_gid_t srcgid, ib_gid_t destgid, ib_portid_t *sm_id,
> +int	ib_path_query(mad_gid_t srcgid, mad_gid_t destgid, ib_portid_t *sm_id,
>  		      void *buf);	/* returns lid */
>  
>  inline static uint8_t *
> @@ -799,7 +799,7 @@ int	ib_resolve_guid(ib_portid_t *portid, uint64_t *guid,
>  			ib_portid_t *sm_id, int timeout);
>  int	ib_resolve_portid_str(ib_portid_t *portid, char *addr_str,
>  			      int dest_type, ib_portid_t *sm_id);
> -int	ib_resolve_self(ib_portid_t *portid, int *portnum, ib_gid_t *gid);
> +int	ib_resolve_self(ib_portid_t *portid, int *portnum, mad_gid_t *gid);
>  
>  /* gs.c */
>  uint8_t *perf_classportinfo_query(void *rcvbuf, ib_portid_t *dest, int port,
> diff --git a/libibmad/src/resolve.c b/libibmad/src/resolve.c
> index d8365b2..7d8eb6e 100644
> --- a/libibmad/src/resolve.c
> +++ b/libibmad/src/resolve.c
> @@ -138,7 +138,7 @@ ib_resolve_portid_str(ib_portid_t *portid, char *addr_str, int dest_type, ib_por
>  }
>  
>  int
> -ib_resolve_self(ib_portid_t *portid, int *portnum, ib_gid_t *gid)
> +ib_resolve_self(ib_portid_t *portid, int *portnum, mad_gid_t *gid)
>  {
>  	ib_portid_t self = {0};
>  	uint8_t portinfo[64];
> diff --git a/libibmad/src/sa.c b/libibmad/src/sa.c
> index ddbfce3..fde10bd 100644
> --- a/libibmad/src/sa.c
> +++ b/libibmad/src/sa.c
> @@ -112,7 +112,7 @@ sa_rpc_call(void *ibmad_port, void *rcvbuf, ib_portid_t *portid,
>  			IB_PR_COMPMASK_NUMBPATH)
>  
>  int
> -ib_path_query(ib_gid_t srcgid, ib_gid_t destgid, ib_portid_t *sm_id, void *buf)
> +ib_path_query(mad_gid_t srcgid, mad_gid_t destgid, ib_portid_t *sm_id, void *buf)
>  {
>  	int npath;
>  	ib_sa_call_t sa = {0};



More information about the general mailing list