staging: vt6656: sparse fixes ethtool_ioctl Use struct ifreq *

Replace useraddr with direct point to struct ifreq->ifr_data

sparse warnings
main_usb.c:1443:44: warning: cast removes address space of expression
main_usb.c:1454:37: warning: incorrect type in argument 2 (different address spaces)
main_usb.c:1454:37:    expected void const [noderef] <asn:1>*from
main_usb.c:1454:37:    got void *useraddr
main_usb.c:1462:34: warning: incorrect type in argument 1 (different address spaces)
main_usb.c:1462:34:    expected void [noderef] <asn:1>*to
main_usb.c:1462:34:    got void *useraddr

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Malcolm Priestley 2014-01-13 16:21:09 +00:00 committed by Greg Kroah-Hartman
parent d820fa95fe
commit 86a362f160

View File

@ -219,7 +219,7 @@ static bool device_init_defrag_cb(struct vnt_private *pDevice);
static void device_init_diversity_timer(struct vnt_private *pDevice);
static int device_dma0_tx_80211(struct sk_buff *skb, struct net_device *dev);
static int ethtool_ioctl(struct net_device *dev, void *useraddr);
static int ethtool_ioctl(struct net_device *dev, struct ifreq *);
static void device_free_tx_bufs(struct vnt_private *pDevice);
static void device_free_rx_bufs(struct vnt_private *pDevice);
static void device_free_int_bufs(struct vnt_private *pDevice);
@ -1439,18 +1439,18 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
break;
case SIOCETHTOOL:
return ethtool_ioctl(dev, (void *) rq->ifr_data);
return ethtool_ioctl(dev, rq);
}
return rc;
}
static int ethtool_ioctl(struct net_device *dev, void *useraddr)
static int ethtool_ioctl(struct net_device *dev, struct ifreq *rq)
{
u32 ethcmd;
if (copy_from_user(&ethcmd, useraddr, sizeof(ethcmd)))
if (copy_from_user(&ethcmd, rq->ifr_data, sizeof(ethcmd)))
return -EFAULT;
switch (ethcmd) {
@ -1458,7 +1458,7 @@ static int ethtool_ioctl(struct net_device *dev, void *useraddr)
struct ethtool_drvinfo info = {ETHTOOL_GDRVINFO};
strncpy(info.driver, DEVICE_NAME, sizeof(info.driver)-1);
strncpy(info.version, DEVICE_VERSION, sizeof(info.version)-1);
if (copy_to_user(useraddr, &info, sizeof(info)))
if (copy_to_user(rq->ifr_data, &info, sizeof(info)))
return -EFAULT;
return 0;
}