Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[safe/jmp/linux-2.6] / drivers / net / xilinx_emaclite.c
index 67f9237..d04c5b2 100644 (file)
@@ -558,7 +558,7 @@ static void xemaclite_tx_timeout(struct net_device *dev)
        }
 
        /* To exclude tx timeout */
-       dev->trans_start = 0xffffffff - TX_TIMEOUT - TX_TIMEOUT;
+       dev->trans_start = jiffies; /* prevent tx timeout */
 
        /* We're all ready to go. Start the queue */
        netif_wake_queue(dev);
@@ -590,7 +590,7 @@ static void xemaclite_tx_handler(struct net_device *dev)
                        dev->stats.tx_bytes += lp->deferred_skb->len;
                        dev_kfree_skb_irq(lp->deferred_skb);
                        lp->deferred_skb = NULL;
-                       dev->trans_start = jiffies;
+                       dev->trans_start = jiffies; /* prevent tx timeout */
                        netif_wake_queue(dev);
                }
        }
@@ -639,7 +639,6 @@ static void xemaclite_rx_handler(struct net_device *dev)
        }
 
        skb_put(skb, len);      /* Tell the skb how much data we got */
-       skb->dev = dev;         /* Fill out required meta-data */
 
        skb->protocol = eth_type_trans(skb, dev);
        skb->ip_summed = CHECKSUM_NONE;
@@ -1055,7 +1054,6 @@ static int xemaclite_send(struct sk_buff *orig_skb, struct net_device *dev)
 
        dev->stats.tx_bytes += len;
        dev_kfree_skb(new_skb);
-       dev->trans_start = jiffies;
 
        return 0;
 }
@@ -1172,7 +1170,7 @@ static int __devinit xemaclite_of_probe(struct of_device *ofdev,
        }
 
        /* Get the virtual base address for the device */
-       lp->base_addr = ioremap(r_mem.start, r_mem.end - r_mem.start + 1);
+       lp->base_addr = ioremap(r_mem.start, resource_size(&r_mem));
        if (NULL == lp->base_addr) {
                dev_err(dev, "EmacLite: Could not allocate iomem\n");
                rc = -EIO;
@@ -1225,7 +1223,7 @@ static int __devinit xemaclite_of_probe(struct of_device *ofdev,
        return 0;
 
 error1:
-       release_mem_region(ndev->mem_start, r_mem.end - r_mem.start + 1);
+       release_mem_region(ndev->mem_start, resource_size(&r_mem));
 
 error2:
        xemaclite_remove_ndev(ndev);