public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ib-diags: Add cast to fix build on windows
@ 2011-09-22 18:29 Hefty, Sean
       [not found] ` <1828884A29C6694DAF28B7E6B8A8237316E674F0-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Hefty, Sean @ 2011-09-22 18:29 UTC (permalink / raw)
  To: linux-rdma (linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org),
	Ira Weiny (weiny2-i2BcT+NCU+M@public.gmane.org)

Signed-off-by: Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
 libibnetdisc/src/ibnetdisc.c |    2 +-
 src/ibportstate.c            |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
 mode change 100644 => 100755 libibnetdisc/src/ibnetdisc.c
 mode change 100644 => 100755 src/ibportstate.c

diff --git a/libibnetdisc/src/ibnetdisc.c b/libibnetdisc/src/ibnetdisc.c
index 86210eb..c93e7ad
--- a/libibnetdisc/src/ibnetdisc.c
+++ b/libibnetdisc/src/ibnetdisc.c
@@ -201,7 +201,7 @@ static void debug_port(ib_portid_t * portid, ibnd_port_t * port)
 
 static int is_mlnx_ext_port_info_supported(ibnd_port_t * port)
 {
-	uint16_t devid = mad_get_field(port->node->info, 0, IB_NODE_DEVID_F);
+	uint16_t devid = (uint16_t) mad_get_field(port->node->info, 0, IB_NODE_DEVID_F);
 
 	if (devid == 0xc738)
 		return 1;
diff --git a/src/ibportstate.c b/src/ibportstate.c
index 81d5b58..daa8514
--- a/src/ibportstate.c
+++ b/src/ibportstate.c
@@ -462,7 +462,7 @@ int main(int argc, char **argv)
 		port_op = QUERY;
 
 	is_switch = get_node_info(&portid, data);
-	devid = mad_get_field(data, 0, IB_NODE_DEVID_F);
+	devid = (uint16_t) mad_get_field(data, 0, IB_NODE_DEVID_F);
 
 	if (port_op != QUERY || changed)
 		printf("Initial %s PortInfo:\n", is_switch ? "Switch" : "CA");
@@ -591,7 +591,7 @@ int main(int argc, char **argv)
 
 			/* Get peer port NodeInfo to obtain peer port number */
 			is_peer_switch = get_node_info(&peerportid, data);
-			rem_devid = mad_get_field(data, 0, IB_NODE_DEVID_F);
+			rem_devid = (uint16_t) mad_get_field(data, 0, IB_NODE_DEVID_F);
 
 			mad_decode_field(data, IB_NODE_LOCAL_PORT_F,
 					 &peerlocalportnum);


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] ib-diags: Add cast to fix build on windows
       [not found] ` <1828884A29C6694DAF28B7E6B8A8237316E674F0-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2011-09-22 18:36   ` Bart Van Assche
       [not found]     ` <CAO+b5-qaSWm4RbhJ4Sk85Kysp2pJYOq6GmYJ=2oJhnL_Q7sa7g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Bart Van Assche @ 2011-09-22 18:36 UTC (permalink / raw)
  To: Hefty, Sean
  Cc: linux-rdma (linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org),
	Ira Weiny (weiny2-i2BcT+NCU+M@public.gmane.org)

On Thu, Sep 22, 2011 at 8:29 PM, Hefty, Sean <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> wrote:
> Signed-off-by: Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> ---
>  libibnetdisc/src/ibnetdisc.c |    2 +-
>  src/ibportstate.c            |    4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>  mode change 100644 => 100755 libibnetdisc/src/ibnetdisc.c
>  mode change 100644 => 100755 src/ibportstate.c

A minor nit: is this mode change really necessary ? (I know Visual
Studio does enable the execute bit without asking.)

> diff --git a/libibnetdisc/src/ibnetdisc.c b/libibnetdisc/src/ibnetdisc.c
> index 86210eb..c93e7ad
> --- a/libibnetdisc/src/ibnetdisc.c
> +++ b/libibnetdisc/src/ibnetdisc.c
> @@ -201,7 +201,7 @@ static void debug_port(ib_portid_t * portid, ibnd_port_t * port)
>
>  static int is_mlnx_ext_port_info_supported(ibnd_port_t * port)
>  {
> -       uint16_t devid = mad_get_field(port->node->info, 0, IB_NODE_DEVID_F);
> +       uint16_t devid = (uint16_t) mad_get_field(port->node->info, 0, IB_NODE_DEVID_F);

Has it been considered to disable the MSVC warnings about possible
truncation instead of inserting a cast ? MSVC generates such warnings
while gcc does not.

Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] ib-diags: Add cast to fix build on windows
       [not found]     ` <CAO+b5-qaSWm4RbhJ4Sk85Kysp2pJYOq6GmYJ=2oJhnL_Q7sa7g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2011-09-22 18:40       ` Hal Rosenstock
  2011-09-22 20:20       ` Hefty, Sean
  1 sibling, 0 replies; 9+ messages in thread
From: Hal Rosenstock @ 2011-09-22 18:40 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: Hefty, Sean,
	linux-rdma (linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org),
	Ira Weiny (weiny2-i2BcT+NCU+M@public.gmane.org)

On 9/22/2011 2:36 PM, Bart Van Assche wrote:
>> libibnetdisc/src/ibnetdisc.c |    2 +-
>> >  src/ibportstate.c            |    4 ++--
>> >  2 files changed, 3 insertions(+), 3 deletions(-)
>> >  mode change 100644 => 100755 libibnetdisc/src/ibnetdisc.c
>> >  mode change 100644 => 100755 src/ibportstate.c
> A minor nit: is this mode change really necessary ? (I know Visual
> Studio does enable the execute bit without asking.)

It shouldn't add +w to the permissions of those files in linux.

-- Hal

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] ib-diags: Add cast to fix build on windows
       [not found]     ` <CAO+b5-qaSWm4RbhJ4Sk85Kysp2pJYOq6GmYJ=2oJhnL_Q7sa7g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2011-09-22 18:40       ` Hal Rosenstock
@ 2011-09-22 20:20       ` Hefty, Sean
       [not found]         ` <1828884A29C6694DAF28B7E6B8A8237316E67532-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
  1 sibling, 1 reply; 9+ messages in thread
From: Hefty, Sean @ 2011-09-22 20:20 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: linux-rdma (linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org),
	Ira Weiny (weiny2-i2BcT+NCU+M@public.gmane.org)

> >  libibnetdisc/src/ibnetdisc.c |    2 +-
> >  src/ibportstate.c            |    4 ++--
> >  2 files changed, 3 insertions(+), 3 deletions(-)
> >  mode change 100644 => 100755 libibnetdisc/src/ibnetdisc.c
> >  mode change 100644 => 100755 src/ibportstate.c
> 
> A minor nit: is this mode change really necessary ? (I know Visual
> Studio does enable the execute bit without asking.)

No - these mode changes should not be there.  I removed them further down in the patch, but missed it here.  I modified the files using Eclipse from a Windows system.  Maybe there's some setting that I missed.

Ira, please let me know if you want me to generate a new patch.

> Has it been considered to disable the MSVC warnings about possible
> truncation instead of inserting a cast ? MSVC generates such warnings
> while gcc does not.

The entire windows tree is built using the WinDDK compiler.  I haven't found a way to disable that warning that works.  Since the warning is real, an explicit cast at least lets someone reading the code know that the author took truncation into account.

- Sean
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] ib-diags: Add cast to fix build on windows
       [not found]         ` <1828884A29C6694DAF28B7E6B8A8237316E67532-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2011-09-22 21:27           ` Jason Gunthorpe
       [not found]             ` <20110922212756.GJ28454-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Jason Gunthorpe @ 2011-09-22 21:27 UTC (permalink / raw)
  To: Hefty, Sean
  Cc: Bart Van Assche,
	linux-rdma (linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org),
	Ira Weiny (weiny2-i2BcT+NCU+M@public.gmane.org)

On Thu, Sep 22, 2011 at 08:20:54PM +0000, Hefty, Sean wrote:
 
> The entire windows tree is built using the WinDDK compiler.  I
> haven't found a way to disable that warning that works.  Since the
> warning is real, an explicit cast at least lets someone reading the
> code know that the author took truncation into account.

It would be much better to fix this at the source.

 mad_get_field16(..,IB_NODE_DEVID_F)

Then at least there is the option of doing a static or runtime check
that IB_NODE_DEVID_F is actually referring to a 16 bit field.

For instance, a static check might be possible with some compilers by
doing:

enum MAD_FIELDS8
{
IB_PORT_LOCAL_PORT_F
};

enum MAD_FIELDS16
{
IB_NODE_DEVID_F
};

uint8_t mad_get_field8(void *buf, int base_offs,
	               enum MAD_FIELDS8 field);
uint16_t mad_get_field16(void *buf, int base_offs,
	                 enum MAD_FIELDS16 field);

A compiler can produce a warning about mismatching enums.

Someone can fixup the enums later, but I'd much rather see you add a
patch with this hunk:

static inline uint16_t mad_get_field16(void *buf, int base_offs,
	                               enum MAD_FIELDS field)
{
   return (uint16_t)mad_get_field(buf,base_offs,field);
}

And another patch replacing every (uint16_t)mad_get_field with
mad_get_field16

Adding a cast is just pointless noise, doesn't fix or prove anything.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] ib-diags: Add cast to fix build on windows
       [not found]             ` <20110922212756.GJ28454-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
@ 2011-09-22 21:33               ` Hefty, Sean
       [not found]                 ` <1828884A29C6694DAF28B7E6B8A8237316E675B2-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Hefty, Sean @ 2011-09-22 21:33 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Bart Van Assche,
	linux-rdma (linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org),
	Ira Weiny (weiny2-i2BcT+NCU+M@public.gmane.org)

> Adding a cast is just pointless noise, doesn't fix or prove anything.

It fixes the build on windows.  You can call that pointless, but I do not.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] ib-diags: Add cast to fix build on windows
       [not found]                 ` <1828884A29C6694DAF28B7E6B8A8237316E675B2-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2011-09-22 21:39                   ` Jason Gunthorpe
       [not found]                     ` <20110922213907.GK28454-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Jason Gunthorpe @ 2011-09-22 21:39 UTC (permalink / raw)
  To: Hefty, Sean
  Cc: Bart Van Assche,
	linux-rdma (linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org),
	Ira Weiny (weiny2-i2BcT+NCU+M@public.gmane.org)

On Thu, Sep 22, 2011 at 09:33:24PM +0000, Hefty, Sean wrote:
> > Adding a cast is just pointless noise, doesn't fix or prove anything.
> 
> It fixes the build on windows.  You can call that pointless, but I do not.

It supresses a warning, warnings are not build failures.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] ib-diags: Add cast to fix build on windows
       [not found]                     ` <20110922213907.GK28454-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
@ 2011-09-22 23:03                       ` Hefty, Sean
       [not found]                         ` <1828884A29C6694DAF28B7E6B8A8237316E675EB-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Hefty, Sean @ 2011-09-22 23:03 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Bart Van Assche,
	linux-rdma (linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org),
	Ira Weiny (weiny2-i2BcT+NCU+M@public.gmane.org)

> It supresses a warning, warnings are not build failures.

Actually, on windows the build fails.  No executables are built.

mad_[get|set]_field[8|16|32] should work fine.  But those are exported from ibmad, which would require ib-diags to either check for them as a requirement or implement them if not found.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] ib-diags: Add cast to fix build on windows
       [not found]                         ` <1828884A29C6694DAF28B7E6B8A8237316E675EB-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
@ 2011-09-22 23:32                           ` Jason Gunthorpe
  0 siblings, 0 replies; 9+ messages in thread
From: Jason Gunthorpe @ 2011-09-22 23:32 UTC (permalink / raw)
  To: Hefty, Sean
  Cc: Bart Van Assche,
	linux-rdma (linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org),
	Ira Weiny (weiny2-i2BcT+NCU+M@public.gmane.org)

On Thu, Sep 22, 2011 at 11:03:24PM +0000, Hefty, Sean wrote:
> > It supresses a warning, warnings are not build failures.
> 
> Actually, on windows the build fails.  No executables are built.

Seriously? I hope this is because you've got the warnings are errors
flag set..

> mad_[get|set]_field[8|16|32] should work fine.  But those are
> exported from ibmad, which would require ib-diags to either check
> for them as a requirement or implement them if not found.

Everyone using ibmad on windows should have this problem, so fixing
ibmad seems proper to me.. Tag the no-size ones with deprecated and
you will no longer have this problem in your Windows porting efforts
because all the Linux compilers will complain.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-09-22 23:32 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-22 18:29 [PATCH] ib-diags: Add cast to fix build on windows Hefty, Sean
     [not found] ` <1828884A29C6694DAF28B7E6B8A8237316E674F0-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2011-09-22 18:36   ` Bart Van Assche
     [not found]     ` <CAO+b5-qaSWm4RbhJ4Sk85Kysp2pJYOq6GmYJ=2oJhnL_Q7sa7g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-09-22 18:40       ` Hal Rosenstock
2011-09-22 20:20       ` Hefty, Sean
     [not found]         ` <1828884A29C6694DAF28B7E6B8A8237316E67532-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2011-09-22 21:27           ` Jason Gunthorpe
     [not found]             ` <20110922212756.GJ28454-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2011-09-22 21:33               ` Hefty, Sean
     [not found]                 ` <1828884A29C6694DAF28B7E6B8A8237316E675B2-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2011-09-22 21:39                   ` Jason Gunthorpe
     [not found]                     ` <20110922213907.GK28454-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2011-09-22 23:03                       ` Hefty, Sean
     [not found]                         ` <1828884A29C6694DAF28B7E6B8A8237316E675EB-P5GAC/sN6hmkrb+BlOpmy7fspsVTdybXVpNB7YpNyf8@public.gmane.org>
2011-09-22 23:32                           ` Jason Gunthorpe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox