IB/ipath: Shadow the gpio_mask register
[powerpc.git] / drivers / infiniband / hw / amso1100 / c2.c
index 9e9120f..58bc272 100644 (file)
@@ -72,7 +72,7 @@ static int c2_down(struct net_device *netdev);
 static int c2_xmit_frame(struct sk_buff *skb, struct net_device *netdev);
 static void c2_tx_interrupt(struct net_device *netdev);
 static void c2_rx_interrupt(struct net_device *netdev);
-static irqreturn_t c2_interrupt(int irq, void *dev_id, struct pt_regs *regs);
+static irqreturn_t c2_interrupt(int irq, void *dev_id);
 static void c2_tx_timeout(struct net_device *netdev);
 static int c2_change_mtu(struct net_device *netdev, int new_mtu);
 static void c2_reset(struct c2_port *c2_port);
@@ -439,7 +439,8 @@ static void c2_rx_error(struct c2_port *c2_port, struct c2_element *elem)
        }
 
        /* Setup the skb for reuse since we're dropping this pkt */
-       elem->skb->tail = elem->skb->data = elem->skb->head;
+       elem->skb->data = elem->skb->head;
+       skb_reset_tail_pointer(elem->skb);
 
        /* Zero out the rxp hdr in the sk_buff */
        memset(elem->skb->data, 0, sizeof(*rxp_hdr));
@@ -521,9 +522,8 @@ static void c2_rx_interrupt(struct net_device *netdev)
                 * "sizeof(struct c2_rxp_hdr)".
                 */
                skb->data += sizeof(*rxp_hdr);
-               skb->tail = skb->data + buflen;
+               skb_set_tail_pointer(skb, buflen);
                skb->len = buflen;
-               skb->dev = netdev;
                skb->protocol = eth_type_trans(skb, netdev);
 
                netif_rx(skb);
@@ -544,7 +544,7 @@ static void c2_rx_interrupt(struct net_device *netdev)
 /*
  * Handle netisr0 TX & RX interrupts.
  */
-static irqreturn_t c2_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t c2_interrupt(int irq, void *dev_id)
 {
        unsigned int netisr0, dmaisr;
        int handled = 0;
@@ -1073,7 +1073,7 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
             0xffffc000) / sizeof(struct c2_rxp_desc);
 
        /* Request an interrupt line for the driver */
-       ret = request_irq(pcidev->irq, c2_interrupt, SA_SHIRQ, DRV_NAME, c2dev);
+       ret = request_irq(pcidev->irq, c2_interrupt, IRQF_SHARED, DRV_NAME, c2dev);
        if (ret) {
                printk(KERN_ERR PFX "%s: requested IRQ %u is busy\n",
                        pci_name(pcidev), pcidev->irq);
@@ -1155,7 +1155,8 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
                goto bail10;
        }
 
-       c2_register_device(c2dev);
+       if (c2_register_device(c2dev))
+               goto bail10;
 
        return 0;
 
@@ -1243,7 +1244,7 @@ static struct pci_driver c2_pci_driver = {
 
 static int __init c2_init_module(void)
 {
-       return pci_module_init(&c2_pci_driver);
+       return pci_register_driver(&c2_pci_driver);
 }
 
 static void __exit c2_exit_module(void)