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);
                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",
        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;
        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) {