RE: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()

From: Haiyang Zhang
Date: Tue Apr 16 2013 - 15:36:57 EST


> -----Original Message-----
> From: David Miller [mailto:davem@xxxxxxxxxxxxx]
> Sent: Tuesday, April 16, 2013 3:12 PM
> To: Haiyang Zhang
> Cc: netdev@xxxxxxxxxxxxxxx; KY Srinivasan; olaf@xxxxxxxxx; jasowang@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; devel@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [PATCH net] hyperv: Fix a compiler warning in netvsc_send()
>
> From: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
> 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@xxxxxxxxx>
> > Signed-off-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
> > Reviewed-by: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
>
> 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/