pci-quirks: disable MSI on RS400-200 and RS480
[powerpc.git] / drivers / net / ni65.c
index 810cc57..3818edf 100644 (file)
@@ -248,7 +248,7 @@ struct priv
 };
 
 static int  ni65_probe1(struct net_device *dev,int);
-static irqreturn_t ni65_interrupt(int irq, void * dev_id, struct pt_regs *regs);
+static irqreturn_t ni65_interrupt(int irq, void * dev_id);
 static void ni65_recv_intr(struct net_device *dev,int);
 static void ni65_xmit_intr(struct net_device *dev,int);
 static int  ni65_open(struct net_device *dev);
@@ -324,7 +324,7 @@ static int ni65_close(struct net_device *dev)
        struct priv *p = (struct priv *) dev->priv;
 
        netif_stop_queue(dev);
-       
+
        outw(inw(PORT+L_RESET),PORT+L_RESET); /* that's the hard way */
 
 #ifdef XMT_VIA_SKB
@@ -489,20 +489,20 @@ static int __init ni65_probe1(struct net_device *dev,int ioaddr)
                                int dma = dmatab[i];
                                if(test_bit(dma,&dma_channels) || request_dma(dma,"ni6510"))
                                        continue;
-                                       
+
                                flags=claim_dma_lock();
                                disable_dma(dma);
                                set_dma_mode(dma,DMA_MODE_CASCADE);
                                enable_dma(dma);
                                release_dma_lock(flags);
-                               
+
                                ni65_init_lance(p,dev->dev_addr,0,0); /* trigger memory access */
-                               
+
                                flags=claim_dma_lock();
                                disable_dma(dma);
                                free_dma(dma);
                                release_dma_lock(flags);
-                               
+
                                if(readreg(CSR0) & CSR0_IDON)
                                        break;
                        }
@@ -610,7 +610,6 @@ static void *ni65_alloc_mem(struct net_device *dev,char *what,int size,int type)
                        printk(KERN_WARNING "%s: unable to allocate %s memory.\n",dev->name,what);
                        return NULL;
                }
-               skb->dev = dev;
                skb_reserve(skb,2+16);
                skb_put(skb,R_BUF_SIZE);         /* grab the whole space .. (not necessary) */
                ptr = skb->data;
@@ -871,7 +870,7 @@ static int ni65_lance_reinit(struct net_device *dev)
 /*
  * interrupt handler
  */
-static irqreturn_t ni65_interrupt(int irq, void * dev_id, struct pt_regs * regs)
+static irqreturn_t ni65_interrupt(int irq, void * dev_id)
 {
        int csr0 = 0;
        struct net_device *dev = dev_id;
@@ -881,7 +880,7 @@ static irqreturn_t ni65_interrupt(int irq, void * dev_id, struct pt_regs * regs)
        p = (struct priv *) dev->priv;
 
        spin_lock(&p->ring_lock);
-       
+
        while(--bcnt) {
                csr0 = inw(PORT+L_DATAREG);
 
@@ -1094,7 +1093,6 @@ static void ni65_recv_intr(struct net_device *dev,int csr0)
                        if(skb)
                        {
                                skb_reserve(skb,2);
-       skb->dev = dev;
 #ifdef RCV_VIA_SKB
                                if( (unsigned long) (skb->data + R_BUF_SIZE) > 0x1000000) {
                                        skb_put(skb,len);
@@ -1139,7 +1137,7 @@ static void ni65_recv_intr(struct net_device *dev,int csr0)
 /*
  * kick xmitter ..
  */
+
 static void ni65_timeout(struct net_device *dev)
 {
        int i;
@@ -1163,7 +1161,7 @@ static int ni65_send_packet(struct sk_buff *skb, struct net_device *dev)
        struct priv *p = (struct priv *) dev->priv;
 
        netif_stop_queue(dev);
-       
+
        if (test_and_set_bit(0, (void*)&p->lock)) {
                printk(KERN_ERR "%s: Queue was locked.\n", dev->name);
                return 1;
@@ -1178,8 +1176,9 @@ static int ni65_send_packet(struct sk_buff *skb, struct net_device *dev)
                if( (unsigned long) (skb->data + skb->len) > 0x1000000) {
 #endif
 
-                       memcpy((char *) p->tmdbounce[p->tmdbouncenum] ,(char *)skb->data,
-                                                        (skb->len > T_BUF_SIZE) ? T_BUF_SIZE : skb->len);
+                       skb_copy_from_linear_data(skb, p->tmdbounce[p->tmdbouncenum],
+                                     skb->len > T_BUF_SIZE ? T_BUF_SIZE :
+                                                             skb->len);
                        if (len > skb->len)
                                memset((char *)p->tmdbounce[p->tmdbouncenum]+skb->len, 0, len-skb->len);
                        dev_kfree_skb (skb);
@@ -1209,10 +1208,10 @@ static int ni65_send_packet(struct sk_buff *skb, struct net_device *dev)
 
                if(p->tmdnum != p->tmdlast)
                        netif_wake_queue(dev);
-                       
+
                p->lock = 0;
                dev->trans_start = jiffies;
-               
+
                spin_unlock_irqrestore(&p->ring_lock, flags);
        }
 
@@ -1259,7 +1258,7 @@ int __init init_module(void)
        return IS_ERR(dev_ni65) ? PTR_ERR(dev_ni65) : 0;
 }
 
-void cleanup_module(void)
+void __exit cleanup_module(void)
 {
        unregister_netdev(dev_ni65);
        cleanup_card(dev_ni65);