Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[cascardo/linux.git] / drivers / net / cpmac.c
index 3c58db5..e1f6156 100644 (file)
@@ -846,11 +846,8 @@ static int cpmac_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
                return -EINVAL;
        if (!priv->phy)
                return -EINVAL;
-       if ((cmd == SIOCGMIIPHY) || (cmd == SIOCGMIIREG) ||
-           (cmd == SIOCSMIIREG))
-               return phy_mii_ioctl(priv->phy, if_mii(ifr), cmd);
 
-       return -EOPNOTSUPP;
+       return phy_mii_ioctl(priv->phy, ifr, cmd);
 }
 
 static int cpmac_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
@@ -964,7 +961,7 @@ static int cpmac_open(struct net_device *dev)
        struct sk_buff *skb;
 
        mem = platform_get_resource_byname(priv->pdev, IORESOURCE_MEM, "regs");
-       if (!request_mem_region(mem->start, mem->end - mem->start, dev->name)) {
+       if (!request_mem_region(mem->start, resource_size(mem), dev->name)) {
                if (netif_msg_drv(priv))
                        printk(KERN_ERR "%s: failed to request registers\n",
                               dev->name);
@@ -972,7 +969,7 @@ static int cpmac_open(struct net_device *dev)
                goto fail_reserve;
        }
 
-       priv->regs = ioremap(mem->start, mem->end - mem->start);
+       priv->regs = ioremap(mem->start, resource_size(mem));
        if (!priv->regs) {
                if (netif_msg_drv(priv))
                        printk(KERN_ERR "%s: failed to remap registers\n",
@@ -1049,7 +1046,7 @@ fail_alloc:
        iounmap(priv->regs);
 
 fail_remap:
-       release_mem_region(mem->start, mem->end - mem->start);
+       release_mem_region(mem->start, resource_size(mem));
 
 fail_reserve:
        return res;
@@ -1077,7 +1074,7 @@ static int cpmac_stop(struct net_device *dev)
        free_irq(dev->irq, dev);
        iounmap(priv->regs);
        mem = platform_get_resource_byname(priv->pdev, IORESOURCE_MEM, "regs");
-       release_mem_region(mem->start, mem->end - mem->start);
+       release_mem_region(mem->start, resource_size(mem));
        priv->rx_head = &priv->desc_ring[CPMAC_QUEUES];
        for (i = 0; i < priv->ring_size; i++) {
                if (priv->rx_head[i].skb) {
@@ -1181,7 +1178,8 @@ static int __devinit cpmac_probe(struct platform_device *pdev)
                if (netif_msg_drv(priv))
                        printk(KERN_ERR "%s: Could not attach to PHY\n",
                               dev->name);
-               return PTR_ERR(priv->phy);
+               rc = PTR_ERR(priv->phy);
+               goto fail;
        }
 
        if ((rc = register_netdev(dev))) {