public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
@ 2013-04-16 19:03 Haiyang Zhang
  2013-04-16 19:11 ` David Miller
  0 siblings, 1 reply; 10+ messages in thread
From: Haiyang Zhang @ 2013-04-16 19:03 UTC (permalink / raw)
  To: davem, netdev; +Cc: haiyangz, kys, olaf, jasowang, linux-kernel, devel

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

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>

---
 drivers/net/hyperv/netvsc.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index f5f0f09..8c03033 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -500,7 +500,7 @@ int netvsc_send(struct hv_device *device,
 	int ret = 0;
 	struct nvsp_message sendMessage;
 	struct net_device *ndev;
-	u64 req_id;
+	ulong req_id;
 
 	net_device = get_outbound_net_device(device);
 	if (!net_device)
@@ -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

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

* Re: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
  2013-04-16 19:03 [PATCH net] hyperv: Fix a compiler warning in netvsc_send() Haiyang Zhang
@ 2013-04-16 19:11 ` David Miller
  2013-04-16 19:34   ` Haiyang Zhang
  0 siblings, 1 reply; 10+ messages in thread
From: David Miller @ 2013-04-16 19:11 UTC (permalink / raw)
  To: haiyangz; +Cc: netdev, kys, olaf, jasowang, linux-kernel, devel

From: Haiyang Zhang <haiyangz@microsoft.com>
Date: Tue, 16 Apr 2013 12:03:51 -0700

> Fixed: warning: cast from pointer to integer of different size
> 
> Reported-by: kbuild test robot <fengguang.wu@intel.com>
> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>

If you're coding pointers into request IDs you better make that
explicit and add lots of comments explaining why that's OK and
why it's going to work fine in these circumstances.

I'm not applying this patch, it just makes a bad situation even
worse.  Either your request IDs are 64-bit or they are not, it
can't be both.

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

* RE: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
  2013-04-16 19:11 ` David Miller
@ 2013-04-16 19:34   ` Haiyang Zhang
  2013-04-16 19:49     ` David Miller
  0 siblings, 1 reply; 10+ messages in thread
From: Haiyang Zhang @ 2013-04-16 19:34 UTC (permalink / raw)
  To: David Miller
  Cc: olaf@aepfle.de, netdev@vger.kernel.org, jasowang@redhat.com,
	linux-kernel@vger.kernel.org, devel@linuxdriverproject.org

> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net] 
> Sent: Tuesday, April 16, 2013 3:12 PM
> To: Haiyang Zhang
> Cc: netdev@vger.kernel.org; KY Srinivasan; olaf@aepfle.de; jasowang@redhat.com; linux-kernel@vger.kernel.org; devel@linuxdriverproject.org
> Subject: Re: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
>
> From: Haiyang Zhang <haiyangz@microsoft.com>
> Date: Tue, 16 Apr 2013 12:03:51 -0700
>
> > Fixed: warning: cast from pointer to integer of different size
> > 
> > Reported-by: kbuild test robot <fengguang.wu@intel.com>
> > Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
> > Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
>
> If you're coding pointers into request IDs you better make that explicit and add lots of comments explaining 
> why that's OK and why it's going to work  fine in these circumstances.

> I'm not applying this patch, it just makes a bad situation even worse.  Either your request IDs are 64-bit or they are not, it can't be both.

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.

Actually, before the recent patch (f1ea3cd7011), the packet pointer was casted to ulong. And this patch
restore the same type casting as the old code.

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

Does these comments sound good?

Thanks,
- Haiyang

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

* Re: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
  2013-04-16 19:34   ` Haiyang Zhang
@ 2013-04-16 19:49     ` David Miller
  2013-04-16 20:18       ` Haiyang Zhang
  0 siblings, 1 reply; 10+ messages in thread
From: David Miller @ 2013-04-16 19:49 UTC (permalink / raw)
  To: haiyangz; +Cc: netdev, kys, olaf, jasowang, linux-kernel, devel

From: Haiyang Zhang <haiyangz@microsoft.com>
Date: Tue, 16 Apr 2013 19:34:52 +0000

> 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.

It works fine, but it's unclean.

Keep the req_id type as "u64", because that's what it is, a 64-bit request ID.

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

* RE: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
  2013-04-16 19:49     ` David Miller
@ 2013-04-16 20:18       ` Haiyang Zhang
  2013-04-16 20:31         ` Joe Perches
  0 siblings, 1 reply; 10+ messages in thread
From: Haiyang Zhang @ 2013-04-16 20:18 UTC (permalink / raw)
  To: David Miller
  Cc: olaf@aepfle.de, netdev@vger.kernel.org, jasowang@redhat.com,
	linux-kernel@vger.kernel.org, devel@linuxdriverproject.org

> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net] 
> Sent: Tuesday, April 16, 2013 3:49 PM
> To: Haiyang Zhang
> Cc: netdev@vger.kernel.org; KY Srinivasan; olaf@aepfle.de; jasowang@redhat.com; linux-kernel@vger.kernel.org; devel@linuxdriverproject.org
> Subject: Re: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
>
> From: Haiyang Zhang <haiyangz@microsoft.com>
> Date: Tue, 16 Apr 2013 19:34:52 +0000
>
> > 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.
>
> It works fine, but it's unclean.
>
> Keep the req_id type as "u64", because that's what it is, a 64-bit request ID.

I will make this update and submit a new patch, with the added comments.

Thanks,
- Haiyang

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

* Re: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
  2013-04-16 20:18       ` Haiyang Zhang
@ 2013-04-16 20:31         ` Joe Perches
  2013-04-16 20:45           ` Haiyang Zhang
  0 siblings, 1 reply; 10+ messages in thread
From: Joe Perches @ 2013-04-16 20:31 UTC (permalink / raw)
  To: Haiyang Zhang
  Cc: David Miller, netdev@vger.kernel.org, KY Srinivasan,
	olaf@aepfle.de, jasowang@redhat.com, linux-kernel@vger.kernel.org,
	devel@linuxdriverproject.org

On Tue, 2013-04-16 at 20:18 +0000, Haiyang Zhang wrote:
> > From: David Miller [mailto:davem@davemloft.net] 
> > It works fine, but it's unclean.
> > Keep the req_id type as "u64", because that's what it is, a 64-bit request ID.
> I will make this update and submit a new patch, with the added comments.

Do you mean you'll use this to avoid compiler warnings?

	req_id = (u64)(unsigned long)packet;

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

* RE: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
  2013-04-16 20:31         ` Joe Perches
@ 2013-04-16 20:45           ` Haiyang Zhang
  0 siblings, 0 replies; 10+ messages in thread
From: Haiyang Zhang @ 2013-04-16 20:45 UTC (permalink / raw)
  To: Joe Perches
  Cc: David Miller, netdev@vger.kernel.org, KY Srinivasan,
	olaf@aepfle.de, jasowang@redhat.com, linux-kernel@vger.kernel.org,
	devel@linuxdriverproject.org

> -----Original Message-----
> From: Joe Perches [mailto:joe@perches.com]
> Sent: Tuesday, April 16, 2013 4:31 PM
> To: Haiyang Zhang
> Cc: David Miller; netdev@vger.kernel.org; KY Srinivasan; olaf@aepfle.de;
> jasowang@redhat.com; linux-kernel@vger.kernel.org;
> devel@linuxdriverproject.org
> Subject: Re: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
> 
> On Tue, 2013-04-16 at 20:18 +0000, Haiyang Zhang wrote:
> > > From: David Miller [mailto:davem@davemloft.net] It works fine, but
> > > it's unclean.
> > > Keep the req_id type as "u64", because that's what it is, a 64-bit request
> ID.
> > I will make this update and submit a new patch, with the added comments.
> 
> Do you mean you'll use this to avoid compiler warnings?
> 
> 	req_id = (u64)(unsigned long)packet;

I will use:
req_id = (ulong)packet;

Assigning 32 bit integer to 64 bit variable is fine.

Thanks,
- Haiyang

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

* [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
@ 2013-04-16 22:25 Haiyang Zhang
  2013-04-19 20:50 ` David Miller
  0 siblings, 1 reply; 10+ messages in thread
From: Haiyang Zhang @ 2013-04-16 22:25 UTC (permalink / raw)
  To: davem, netdev; +Cc: haiyangz, kys, olaf, jasowang, linux-kernel, devel

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 <fengguang.wu@intel.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
---
 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

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

* Re: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
  2013-04-16 22:25 Haiyang Zhang
@ 2013-04-19 20:50 ` David Miller
  2013-04-19 20:57   ` Haiyang Zhang
  0 siblings, 1 reply; 10+ messages in thread
From: David Miller @ 2013-04-19 20:50 UTC (permalink / raw)
  To: haiyangz; +Cc: netdev, kys, olaf, jasowang, linux-kernel, devel

From: Haiyang Zhang <haiyangz@microsoft.com>
Date: Tue, 16 Apr 2013 15:25:50 -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 <fengguang.wu@intel.com>
> Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
> Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>

Such build warning fixes are not appropriate for 'net' at this time, and
this patch does not apply to 'net-next', so I'm dropping this entirely.

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

* RE: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
  2013-04-19 20:50 ` David Miller
@ 2013-04-19 20:57   ` Haiyang Zhang
  0 siblings, 0 replies; 10+ messages in thread
From: Haiyang Zhang @ 2013-04-19 20:57 UTC (permalink / raw)
  To: David Miller
  Cc: netdev@vger.kernel.org, KY Srinivasan, olaf@aepfle.de,
	jasowang@redhat.com, linux-kernel@vger.kernel.org,
	devel@linuxdriverproject.org



> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Friday, April 19, 2013 4:50 PM
> To: Haiyang Zhang
> Cc: netdev@vger.kernel.org; KY Srinivasan; olaf@aepfle.de;
> jasowang@redhat.com; linux-kernel@vger.kernel.org;
> devel@linuxdriverproject.org
> Subject: Re: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
> 
> From: Haiyang Zhang <haiyangz@microsoft.com>
> Date: Tue, 16 Apr 2013 15:25:50 -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 <fengguang.wu@intel.com>
> > Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
> > Reviewed-by: K. Y. Srinivasan <kys@microsoft.com>
> 
> Such build warning fixes are not appropriate for 'net' at this time, and this
> patch does not apply to 'net-next', so I'm dropping this entirely.

OK. I will re-submit it to net-next after the recent patch causing the warning
is merged into the net-next tree.

Thanks,
- Haiyang

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

end of thread, other threads:[~2013-04-19 20:57 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-16 19:03 [PATCH net] hyperv: Fix a compiler warning in netvsc_send() Haiyang Zhang
2013-04-16 19:11 ` David Miller
2013-04-16 19:34   ` Haiyang Zhang
2013-04-16 19:49     ` David Miller
2013-04-16 20:18       ` Haiyang Zhang
2013-04-16 20:31         ` Joe Perches
2013-04-16 20:45           ` Haiyang Zhang
  -- strict thread matches above, loose matches on Subject: below --
2013-04-16 22:25 Haiyang Zhang
2013-04-19 20:50 ` David Miller
2013-04-19 20:57   ` Haiyang Zhang

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