]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/ixp2000/ixpdev.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart
[linux-2.6-omap-h63xx.git] / drivers / net / ixp2000 / ixpdev.c
index 99229a0456d95b552ba3e5e80c3bb4bca19ef644..d9ce1aef148a5d9ab4c4d3ccf8c4b0e5ded4eda2 100644 (file)
@@ -110,11 +110,10 @@ static int ixpdev_rx(struct net_device *dev, int *budget)
 
                skb = dev_alloc_skb(desc->pkt_length + 2);
                if (likely(skb != NULL)) {
-                       skb->dev = nds[desc->channel];
                        skb_reserve(skb, 2);
-                       eth_copy_and_sum(skb, buf, desc->pkt_length, 0);
+                       skb_copy_to_linear_data(skb, buf, desc->pkt_length);
                        skb_put(skb, desc->pkt_length);
-                       skb->protocol = eth_type_trans(skb, skb->dev);
+                       skb->protocol = eth_type_trans(skb, nds[desc->channel]);
 
                        skb->dev->last_rx = jiffies;
 
@@ -188,7 +187,7 @@ static void ixpdev_tx_complete(void)
        }
 }
 
-static irqreturn_t ixpdev_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t ixpdev_interrupt(int irq, void *dev_id)
 {
        u32 status;
 
@@ -223,7 +222,7 @@ static irqreturn_t ixpdev_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 static void ixpdev_poll_controller(struct net_device *dev)
 {
        disable_irq(IRQ_IXP2000_THDA0);
-       ixpdev_interrupt(IRQ_IXP2000_THDA0, dev, NULL);
+       ixpdev_interrupt(IRQ_IXP2000_THDA0, dev);
        enable_irq(IRQ_IXP2000_THDA0);
 }
 #endif
@@ -235,7 +234,7 @@ static int ixpdev_open(struct net_device *dev)
 
        if (!nds_open++) {
                err = request_irq(IRQ_IXP2000_THDA0, ixpdev_interrupt,
-                                       SA_SHIRQ, "ixp2000_eth", nds);
+                                       IRQF_SHARED, "ixp2000_eth", nds);
                if (err) {
                        nds_open--;
                        return err;