]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/atm/he.c
[BNX2]: Update firmware to support S/G RX buffers.
[linux-2.6-omap-h63xx.git] / drivers / atm / he.c
index 8510026b690a587b175427b1508970e6492f3a5d..3b64a99772ea826187dbc792875332722f77f94b 100644 (file)
@@ -394,6 +394,11 @@ he_init_one(struct pci_dev *pci_dev, const struct pci_device_id *pci_ent)
        he_dev->atm_dev->dev_data = he_dev;
        atm_dev->dev_data = he_dev;
        he_dev->number = atm_dev->number;
+#ifdef USE_TASKLET
+       tasklet_init(&he_dev->tasklet, he_tasklet, (unsigned long) he_dev);
+#endif
+       spin_lock_init(&he_dev->global_lock);
+
        if (he_start(atm_dev)) {
                he_stop(he_dev);
                err = -ENODEV;
@@ -1173,11 +1178,6 @@ he_start(struct atm_dev *dev)
        if ((err = he_init_irq(he_dev)) != 0)
                return err;
 
-#ifdef USE_TASKLET
-       tasklet_init(&he_dev->tasklet, he_tasklet, (unsigned long) he_dev);
-#endif
-       spin_lock_init(&he_dev->global_lock);
-
        /* 4.11 enable pci bus controller state machines */
        host_cntl |= (OUTFF_ENB | CMDFF_ENB |
                                QUICK_RD_RETRY | QUICK_WR_RETRY | PERR_INT_ENB);
@@ -1901,13 +1901,13 @@ he_service_rbrq(struct he_dev *he_dev, int group)
                        case ATM_AAL0:
                                /* 2.10.1.5 raw cell receive */
                                skb->len = ATM_AAL0_SDU;
-                               skb->tail = skb->data + skb->len;
+                               skb_set_tail_pointer(skb, skb->len);
                                break;
                        case ATM_AAL5:
                                /* 2.10.1.2 aal5 receive */
 
                                skb->len = AAL5_LEN(skb->data, he_vcc->pdu_len);
-                               skb->tail = skb->data + skb->len;
+                               skb_set_tail_pointer(skb, skb->len);
 #ifdef USE_CHECKSUM_HW
                                if (vcc->vpi == 0 && vcc->vci >= ATM_NOT_RSV_VCI) {
                                        skb->ip_summed = CHECKSUM_COMPLETE;