Merge remote-tracking branch 'lightnvm/for-next'
[deliverable/linux.git] / drivers / atm / eni.c
index c7fab3ee14eef1e28af86e69a253925d30f491ea..f2aaf9e32a36aa71ece80e6edc39b01b411c74d3 100644 (file)
@@ -354,9 +354,9 @@ static int do_rx_dma(struct atm_vcc *vcc,struct sk_buff *skb,
        eni_vcc = ENI_VCC(vcc);
        paddr = 0; /* GCC, shut up */
        if (skb) {
-               paddr = pci_map_single(eni_dev->pci_dev,skb->data,skb->len,
-                   PCI_DMA_FROMDEVICE);
-               if (pci_dma_mapping_error(eni_dev->pci_dev, paddr))
+               paddr = dma_map_single(&eni_dev->pci_dev->dev,skb->data,skb->len,
+                                      DMA_FROM_DEVICE);
+               if (dma_mapping_error(&eni_dev->pci_dev->dev, paddr))
                        goto dma_map_error;
                ENI_PRV_PADDR(skb) = paddr;
                if (paddr & 3)
@@ -481,8 +481,8 @@ rx_enqueued++;
 
 trouble:
        if (paddr)
-               pci_unmap_single(eni_dev->pci_dev,paddr,skb->len,
-                   PCI_DMA_FROMDEVICE);
+               dma_unmap_single(&eni_dev->pci_dev->dev,paddr,skb->len,
+                                DMA_FROM_DEVICE);
 dma_map_error:
        if (skb) dev_kfree_skb_irq(skb);
        return -1;
@@ -758,8 +758,8 @@ rx_dequeued++;
                }
                eni_vcc->rxing--;
                eni_vcc->rx_pos = ENI_PRV_POS(skb) & (eni_vcc->words-1);
-               pci_unmap_single(eni_dev->pci_dev,ENI_PRV_PADDR(skb),skb->len,
-                   PCI_DMA_TODEVICE);
+               dma_unmap_single(&eni_dev->pci_dev->dev,ENI_PRV_PADDR(skb),skb->len,
+                                DMA_TO_DEVICE);
                if (!skb->len) dev_kfree_skb_irq(skb);
                else {
                        EVENT("pushing (len=%ld)\n",skb->len,0);
@@ -1112,8 +1112,8 @@ DPRINTK("iovcnt = %d\n",skb_shinfo(skb)->nr_frags);
                    vcc->dev->number);
                return enq_jam;
        }
-       paddr = pci_map_single(eni_dev->pci_dev,skb->data,skb->len,
-           PCI_DMA_TODEVICE);
+       paddr = dma_map_single(&eni_dev->pci_dev->dev,skb->data,skb->len,
+                              DMA_TO_DEVICE);
        ENI_PRV_PADDR(skb) = paddr;
        /* prepare DMA queue entries */
        j = 0;
@@ -1226,8 +1226,8 @@ static void dequeue_tx(struct atm_dev *dev)
                        break;
                }
                ENI_VCC(vcc)->txing -= ENI_PRV_SIZE(skb);
-               pci_unmap_single(eni_dev->pci_dev,ENI_PRV_PADDR(skb),skb->len,
-                   PCI_DMA_TODEVICE);
+               dma_unmap_single(&eni_dev->pci_dev->dev,ENI_PRV_PADDR(skb),skb->len,
+                                DMA_TO_DEVICE);
                if (vcc->pop) vcc->pop(vcc,skb);
                else dev_kfree_skb_irq(skb);
                atomic_inc(&vcc->stats->tx);
@@ -1845,8 +1845,9 @@ static int eni_start(struct atm_dev *dev)
        /* initialize memory management */
        buffer_mem = eni_dev->mem - (buf - eni_dev->ram);
        eni_dev->free_list_size = buffer_mem/MID_MIN_BUF_SIZE/2;
-       eni_dev->free_list = kmalloc(
-           sizeof(struct eni_free)*(eni_dev->free_list_size+1),GFP_KERNEL);
+       eni_dev->free_list = kmalloc_array(eni_dev->free_list_size + 1,
+                                          sizeof(*eni_dev->free_list),
+                                          GFP_KERNEL);
        if (!eni_dev->free_list) {
                printk(KERN_ERR DEV_LABEL "(itf %d): couldn't get free page\n",
                    dev->number);
@@ -2240,13 +2241,18 @@ static int eni_init_one(struct pci_dev *pci_dev,
        if (rc < 0)
                goto out;
 
+       rc = dma_set_mask_and_coherent(&pci_dev->dev, DMA_BIT_MASK(32));
+       if (rc < 0)
+               goto out;
+
        rc = -ENOMEM;
        eni_dev = kmalloc(sizeof(struct eni_dev), GFP_KERNEL);
        if (!eni_dev)
                goto err_disable;
 
        zero = &eni_dev->zero;
-       zero->addr = pci_alloc_consistent(pci_dev, ENI_ZEROES_SIZE, &zero->dma);
+       zero->addr = dma_alloc_coherent(&pci_dev->dev,
+                                       ENI_ZEROES_SIZE, &zero->dma, GFP_KERNEL);
        if (!zero->addr)
                goto err_kfree;
 
@@ -2277,7 +2283,7 @@ err_eni_release:
 err_unregister:
        atm_dev_deregister(dev);
 err_free_consistent:
-       pci_free_consistent(pci_dev, ENI_ZEROES_SIZE, zero->addr, zero->dma);
+       dma_free_coherent(&pci_dev->dev, ENI_ZEROES_SIZE, zero->addr, zero->dma);
 err_kfree:
        kfree(eni_dev);
 err_disable:
@@ -2302,7 +2308,7 @@ static void eni_remove_one(struct pci_dev *pdev)
 
        eni_do_release(dev);
        atm_dev_deregister(dev);
-       pci_free_consistent(pdev, ENI_ZEROES_SIZE, zero->addr, zero->dma);
+       dma_free_coherent(&pdev->dev, ENI_ZEROES_SIZE, zero->addr, zero->dma);
        kfree(ed);
        pci_disable_device(pdev);
 }
This page took 0.025277 seconds and 5 git commands to generate.