patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / drivers / net / sundance.c
index 838c9c5..e5069fc 100644 (file)
@@ -1576,7 +1576,7 @@ static int __set_mac_addr(struct net_device *dev)
 }
        
 
-static int netdev_ethtool_ioctl(struct net_device *dev, void *useraddr)
+static int netdev_ethtool_ioctl(struct net_device *dev, void __user *useraddr)
 {
        struct netdev_private *np = dev->priv;
        u32 ethcmd;
@@ -1659,7 +1659,6 @@ static int netdev_ethtool_ioctl(struct net_device *dev, void *useraddr)
 static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
 {
        struct netdev_private *np = dev->priv;
-       struct mii_ioctl_data *data = (struct mii_ioctl_data *) & rq->ifr_data;
        int rc;
        int i;
        long ioaddr = dev->base_addr;
@@ -1668,11 +1667,11 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
                return -EINVAL;
 
        if (cmd == SIOCETHTOOL)
-               rc = netdev_ethtool_ioctl(dev, (void *) rq->ifr_data);
+               rc = netdev_ethtool_ioctl(dev, rq->ifr_data);
 
        else {
                spin_lock_irq(&np->lock);
-               rc = generic_mii_ioctl(&np->mii_if, data, cmd, NULL);
+               rc = generic_mii_ioctl(&np->mii_if, if_mii(rq), cmd, NULL);
                spin_unlock_irq(&np->lock);
        }
        switch (cmd) {