2013-04-26 17:53:25

by Haiyang Zhang

[permalink] [raw]
Subject: [PATCH net-next] hyperv: Fix a compiler warning in netvsc_send()

Fixed: warning: cast from pointer to integer of different size

The Hyper-V hosts always use 64 bit request id. The guests can have 32 or 64
bit pointers which equal to the ulong type size. So we cast it to ulong type.
And, assigning 32bit integer to 64 bit variable works fine.

The VMBus returns the same id in the completion packet. But the value has no
effect on the host side.

Reported-by: kbuild test robot <[email protected]>
Signed-off-by: Haiyang Zhang <[email protected]>
Reviewed-by: K. Y. Srinivasan <[email protected]>
---
drivers/net/hyperv/netvsc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index f5f0f09..2b04804 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -522,7 +522,7 @@ int netvsc_send(struct hv_device *device,
sendMessage.msg.v1_msg.send_rndis_pkt.send_buf_section_size = 0;

if (packet->completion.send.send_completion)
- req_id = (u64)packet;
+ req_id = (ulong)packet;
else
req_id = 0;

--
1.7.4.1


2013-04-29 18:09:50

by David Miller

[permalink] [raw]
Subject: Re: [PATCH net-next] hyperv: Fix a compiler warning in netvsc_send()

From: Haiyang Zhang <[email protected]>
Date: Fri, 26 Apr 2013 11:25:55 -0700

> Fixed: warning: cast from pointer to integer of different size
>
> The Hyper-V hosts always use 64 bit request id. The guests can have 32 or 64
> bit pointers which equal to the ulong type size. So we cast it to ulong type.
> And, assigning 32bit integer to 64 bit variable works fine.
>
> The VMBus returns the same id in the completion packet. But the value has no
> effect on the host side.
>
> Reported-by: kbuild test robot <[email protected]>
> Signed-off-by: Haiyang Zhang <[email protected]>
> Reviewed-by: K. Y. Srinivasan <[email protected]>

Applied, but:

> - req_id = (u64)packet;
> + req_id = (ulong)packet;

I really do not like these shorthands for fundamental C types, we
generally do not use "ulong", "uint" etc. Please expand them out
explicitly to "unsigned long", "unsigned int", etc.

2013-04-29 18:31:50

by Haiyang Zhang

[permalink] [raw]
Subject: RE: [PATCH net-next] hyperv: Fix a compiler warning in netvsc_send()



> -----Original Message-----
> From: David Miller [mailto:[email protected]]
> Sent: Monday, April 29, 2013 2:10 PM
> To: Haiyang Zhang
> Cc: [email protected]; KY Srinivasan; [email protected];
> [email protected]; [email protected];
> [email protected]
> Subject: Re: [PATCH net-next] hyperv: Fix a compiler warning in
> netvsc_send()
>
> From: Haiyang Zhang <[email protected]>
> Date: Fri, 26 Apr 2013 11:25:55 -0700
>
> > Fixed: warning: cast from pointer to integer of different size
> >
> > The Hyper-V hosts always use 64 bit request id. The guests can have 32
> > or 64 bit pointers which equal to the ulong type size. So we cast it to ulong
> type.
> > And, assigning 32bit integer to 64 bit variable works fine.
> >
> > The VMBus returns the same id in the completion packet. But the value
> > has no effect on the host side.
> >
> > Reported-by: kbuild test robot <[email protected]>
> > Signed-off-by: Haiyang Zhang <[email protected]>
> > Reviewed-by: K. Y. Srinivasan <[email protected]>
>
> Applied, but:
>
> > - req_id = (u64)packet;
> > + req_id = (ulong)packet;
>
> I really do not like these shorthands for fundamental C types, we generally
> do not use "ulong", "uint" etc. Please expand them out explicitly to
> "unsigned long", "unsigned int", etc.

Thanks for applying it.

Going forward, I will use the long format, like "unsigned long", instead of "ulong", etc.

Thanks,
- Haiyang