2014-01-13 16:19:01

by Malcolm Priestley

[permalink] [raw]
Subject: [PATCH 2/6] staging: vt6656: sparse fixes: device_get_stats

sparse warning
main_usb.c:1442:44: warning: cast removes address space of expression

Signed-off-by: Malcolm Priestley <[email protected]>
---
drivers/staging/vt6656/main_usb.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c
index 4cb7aa7..59c2430 100644
--- a/drivers/staging/vt6656/main_usb.c
+++ b/drivers/staging/vt6656/main_usb.c
@@ -1418,8 +1418,9 @@ static void device_set_multi(struct net_device *dev)
static struct net_device_stats *device_get_stats(struct net_device *dev)
{
struct vnt_private *pDevice = netdev_priv(dev);
+ struct net_device_stats *stats = &pDevice->stats;

- return &pDevice->stats;
+ return stats;
}

static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
--
1.8.5.2




2014-01-14 20:26:55

by Malcolm Priestley

[permalink] [raw]
Subject: Re: [PATCH 2/6] staging: vt6656: sparse fixes: device_get_stats

On Mon, 2014-01-13 at 15:42 -0800, Greg KH wrote:
> On Mon, Jan 13, 2014 at 04:18:50PM +0000, Malcolm Priestley wrote:
> > sparse warning
> > main_usb.c:1442:44: warning: cast removes address space of expression
> >
> > Signed-off-by: Malcolm Priestley <[email protected]>
> > ---
> > drivers/staging/vt6656/main_usb.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c
> > index 4cb7aa7..59c2430 100644
> > --- a/drivers/staging/vt6656/main_usb.c
> > +++ b/drivers/staging/vt6656/main_usb.c
> > @@ -1418,8 +1418,9 @@ static void device_set_multi(struct net_device *dev)
> > static struct net_device_stats *device_get_stats(struct net_device *dev)
> > {
> > struct vnt_private *pDevice = netdev_priv(dev);
> > + struct net_device_stats *stats = &pDevice->stats;
> >
> > - return &pDevice->stats;
> > + return stats;
>
> This change makes no sense to me. Why is sparse complaining about this?
>
> Is this a bug in sparse, or am I missing something obvious here?
Yes me!!!

Sorry. that is not line 1442, a case of number dyslexia.

That is fixed in the next patch.

Malcolm



2014-01-13 23:41:36

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 2/6] staging: vt6656: sparse fixes: device_get_stats

On Mon, Jan 13, 2014 at 04:18:50PM +0000, Malcolm Priestley wrote:
> sparse warning
> main_usb.c:1442:44: warning: cast removes address space of expression
>
> Signed-off-by: Malcolm Priestley <[email protected]>
> ---
> drivers/staging/vt6656/main_usb.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c
> index 4cb7aa7..59c2430 100644
> --- a/drivers/staging/vt6656/main_usb.c
> +++ b/drivers/staging/vt6656/main_usb.c
> @@ -1418,8 +1418,9 @@ static void device_set_multi(struct net_device *dev)
> static struct net_device_stats *device_get_stats(struct net_device *dev)
> {
> struct vnt_private *pDevice = netdev_priv(dev);
> + struct net_device_stats *stats = &pDevice->stats;
>
> - return &pDevice->stats;
> + return stats;

This change makes no sense to me. Why is sparse complaining about this?

Is this a bug in sparse, or am I missing something obvious here?

thanks,

greg k-h