struct enic *enic = vnic_dev_priv(wq->vdev);
 
        if (buf->sop)
-               pci_unmap_single(enic->pdev, buf->dma_addr,
-                       buf->len, PCI_DMA_TODEVICE);
+               dma_unmap_single(&enic->pdev->dev, buf->dma_addr, buf->len,
+                                DMA_TO_DEVICE);
        else
-               pci_unmap_page(enic->pdev, buf->dma_addr,
-                       buf->len, PCI_DMA_TODEVICE);
+               dma_unmap_page(&enic->pdev->dev, buf->dma_addr, buf->len,
+                              DMA_TO_DEVICE);
 
        if (buf->os_buf)
                dev_kfree_skb_any(buf->os_buf);
        dma_addr_t dma_addr;
        int err = 0;
 
-       dma_addr = pci_map_single(enic->pdev, skb->data, head_len,
-                                 PCI_DMA_TODEVICE);
+       dma_addr = dma_map_single(&enic->pdev->dev, skb->data, head_len,
+                                 DMA_TO_DEVICE);
        if (unlikely(enic_dma_map_check(enic, dma_addr)))
                return -ENOMEM;
 
        dma_addr_t dma_addr;
        int err = 0;
 
-       dma_addr = pci_map_single(enic->pdev, skb->data, head_len,
-                                 PCI_DMA_TODEVICE);
+       dma_addr = dma_map_single(&enic->pdev->dev, skb->data, head_len,
+                                 DMA_TO_DEVICE);
        if (unlikely(enic_dma_map_check(enic, dma_addr)))
                return -ENOMEM;
 
         */
        while (frag_len_left) {
                len = min(frag_len_left, (unsigned int)WQ_ENET_MAX_DESC_LEN);
-               dma_addr = pci_map_single(enic->pdev, skb->data + offset, len,
-                                         PCI_DMA_TODEVICE);
+               dma_addr = dma_map_single(&enic->pdev->dev,
+                                         skb->data + offset, len,
+                                         DMA_TO_DEVICE);
                if (unlikely(enic_dma_map_check(enic, dma_addr)))
                        return -ENOMEM;
                enic_queue_wq_desc_tso(wq, skb, dma_addr, len, mss, hdr_len,
        dma_addr_t dma_addr;
        int err = 0;
 
-       dma_addr = pci_map_single(enic->pdev, skb->data, head_len,
-                                 PCI_DMA_TODEVICE);
+       dma_addr = dma_map_single(&enic->pdev->dev, skb->data, head_len,
+                                 DMA_TO_DEVICE);
        if (unlikely(enic_dma_map_check(enic, dma_addr)))
                return -ENOMEM;
 
        if (!buf->os_buf)
                return;
 
-       pci_unmap_single(enic->pdev, buf->dma_addr,
-               buf->len, PCI_DMA_FROMDEVICE);
+       dma_unmap_single(&enic->pdev->dev, buf->dma_addr, buf->len,
+                        DMA_FROM_DEVICE);
        dev_kfree_skb_any(buf->os_buf);
        buf->os_buf = NULL;
 }
        if (!skb)
                return -ENOMEM;
 
-       dma_addr = pci_map_single(enic->pdev, skb->data, len,
-                                 PCI_DMA_FROMDEVICE);
+       dma_addr = dma_map_single(&enic->pdev->dev, skb->data, len,
+                                 DMA_FROM_DEVICE);
        if (unlikely(enic_dma_map_check(enic, dma_addr))) {
                dev_kfree_skb(skb);
                return -ENOMEM;
        new_skb = netdev_alloc_skb_ip_align(netdev, len);
        if (!new_skb)
                return false;
-       pci_dma_sync_single_for_cpu(enic->pdev, buf->dma_addr, len,
-                                   DMA_FROM_DEVICE);
+       dma_sync_single_for_cpu(&enic->pdev->dev, buf->dma_addr, len,
+                               DMA_FROM_DEVICE);
        memcpy(new_skb->data, (*skb)->data, len);
        *skb = new_skb;
 
                                enic->rq_truncated_pkts++;
                }
 
-               pci_unmap_single(enic->pdev, buf->dma_addr, buf->len,
-                                PCI_DMA_FROMDEVICE);
+               dma_unmap_single(&enic->pdev->dev, buf->dma_addr, buf->len,
+                                DMA_FROM_DEVICE);
                dev_kfree_skb_any(skb);
                buf->os_buf = NULL;
 
 
                if (!enic_rxcopybreak(netdev, &skb, buf, bytes_written)) {
                        buf->os_buf = NULL;
-                       pci_unmap_single(enic->pdev, buf->dma_addr, buf->len,
-                                        PCI_DMA_FROMDEVICE);
+                       dma_unmap_single(&enic->pdev->dev, buf->dma_addr,
+                                        buf->len, DMA_FROM_DEVICE);
                }
                prefetch(skb->data - NET_IP_ALIGN);
 
                /* Buffer overflow
                 */
 
-               pci_unmap_single(enic->pdev, buf->dma_addr, buf->len,
-                                PCI_DMA_FROMDEVICE);
+               dma_unmap_single(&enic->pdev->dev, buf->dma_addr, buf->len,
+                                DMA_FROM_DEVICE);
                dev_kfree_skb_any(skb);
                buf->os_buf = NULL;
        }
        dma_addr_t rss_key_buf_pa;
        int i, kidx, bidx, err;
 
-       rss_key_buf_va = pci_zalloc_consistent(enic->pdev,
-                                              sizeof(union vnic_rss_key),
-                                              &rss_key_buf_pa);
+       rss_key_buf_va = dma_alloc_coherent(&enic->pdev->dev,
+                                           sizeof(union vnic_rss_key),
+                                           &rss_key_buf_pa, GFP_ATOMIC);
        if (!rss_key_buf_va)
                return -ENOMEM;
 
                sizeof(union vnic_rss_key));
        spin_unlock_bh(&enic->devcmd_lock);
 
-       pci_free_consistent(enic->pdev, sizeof(union vnic_rss_key),
-               rss_key_buf_va, rss_key_buf_pa);
+       dma_free_coherent(&enic->pdev->dev, sizeof(union vnic_rss_key),
+                         rss_key_buf_va, rss_key_buf_pa);
 
        return err;
 }
        unsigned int i;
        int err;
 
-       rss_cpu_buf_va = pci_alloc_consistent(enic->pdev,
-               sizeof(union vnic_rss_cpu), &rss_cpu_buf_pa);
+       rss_cpu_buf_va = dma_alloc_coherent(&enic->pdev->dev,
+                                           sizeof(union vnic_rss_cpu),
+                                           &rss_cpu_buf_pa, GFP_ATOMIC);
        if (!rss_cpu_buf_va)
                return -ENOMEM;
 
                sizeof(union vnic_rss_cpu));
        spin_unlock_bh(&enic->devcmd_lock);
 
-       pci_free_consistent(enic->pdev, sizeof(union vnic_rss_cpu),
-               rss_cpu_buf_va, rss_cpu_buf_pa);
+       dma_free_coherent(&enic->pdev->dev, sizeof(union vnic_rss_cpu),
+                         rss_cpu_buf_va, rss_cpu_buf_pa);
 
        return err;
 }
         * fail to 32-bit.
         */
 
-       err = pci_set_dma_mask(pdev, DMA_BIT_MASK(47));
+       err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(47));
        if (err) {
-               err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
+               err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
                if (err) {
                        dev_err(dev, "No usable DMA configuration, aborting\n");
                        goto err_out_release_regions;
                }
-               err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
+               err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
                if (err) {
                        dev_err(dev, "Unable to obtain %u-bit DMA "
                                "for consistent allocations, aborting\n", 32);
                        goto err_out_release_regions;
                }
        } else {
-               err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(47));
+               err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(47));
                if (err) {
                        dev_err(dev, "Unable to obtain %u-bit DMA "
                                "for consistent allocations, aborting\n", 47);
 
 {
        vnic_dev_desc_ring_size(ring, desc_count, desc_size);
 
-       ring->descs_unaligned = pci_alloc_consistent(vdev->pdev,
-               ring->size_unaligned,
-               &ring->base_addr_unaligned);
+       ring->descs_unaligned = dma_alloc_coherent(&vdev->pdev->dev,
+                                                  ring->size_unaligned,
+                                                  &ring->base_addr_unaligned,
+                                                  GFP_KERNEL);
 
        if (!ring->descs_unaligned) {
                vdev_err(vdev, "Failed to allocate ring (size=%d), aborting\n",
 void vnic_dev_free_desc_ring(struct vnic_dev *vdev, struct vnic_dev_ring *ring)
 {
        if (ring->descs) {
-               pci_free_consistent(vdev->pdev,
-                       ring->size_unaligned,
-                       ring->descs_unaligned,
-                       ring->base_addr_unaligned);
+               dma_free_coherent(&vdev->pdev->dev, ring->size_unaligned,
+                                 ring->descs_unaligned,
+                                 ring->base_addr_unaligned);
                ring->descs = NULL;
        }
 }
        int err = 0;
 
        if (!vdev->fw_info) {
-               vdev->fw_info = pci_zalloc_consistent(vdev->pdev,
-                                                     sizeof(struct vnic_devcmd_fw_info),
-                                                     &vdev->fw_info_pa);
+               vdev->fw_info = dma_alloc_coherent(&vdev->pdev->dev,
+                                                  sizeof(struct vnic_devcmd_fw_info),
+                                                  &vdev->fw_info_pa, GFP_ATOMIC);
                if (!vdev->fw_info)
                        return -ENOMEM;
 
        int wait = 1000;
 
        if (!vdev->stats) {
-               vdev->stats = pci_alloc_consistent(vdev->pdev,
-                       sizeof(struct vnic_stats), &vdev->stats_pa);
+               vdev->stats = dma_alloc_coherent(&vdev->pdev->dev,
+                                                sizeof(struct vnic_stats),
+                                                &vdev->stats_pa, GFP_ATOMIC);
                if (!vdev->stats)
                        return -ENOMEM;
        }
                return -EINVAL;
        }
 
-       notify_addr = pci_alloc_consistent(vdev->pdev,
-                       sizeof(struct vnic_devcmd_notify),
-                       ¬ify_pa);
+       notify_addr = dma_alloc_coherent(&vdev->pdev->dev,
+                                        sizeof(struct vnic_devcmd_notify),
+                                        ¬ify_pa, GFP_ATOMIC);
        if (!notify_addr)
                return -ENOMEM;
 
 int vnic_dev_notify_unset(struct vnic_dev *vdev)
 {
        if (vdev->notify) {
-               pci_free_consistent(vdev->pdev,
-                       sizeof(struct vnic_devcmd_notify),
-                       vdev->notify,
-                       vdev->notify_pa);
+               dma_free_coherent(&vdev->pdev->dev,
+                                 sizeof(struct vnic_devcmd_notify),
+                                 vdev->notify, vdev->notify_pa);
        }
 
        return vnic_dev_notify_unsetcmd(vdev);
 {
        if (vdev) {
                if (vdev->notify)
-                       pci_free_consistent(vdev->pdev,
-                               sizeof(struct vnic_devcmd_notify),
-                               vdev->notify,
-                               vdev->notify_pa);
+                       dma_free_coherent(&vdev->pdev->dev,
+                                         sizeof(struct vnic_devcmd_notify),
+                                         vdev->notify, vdev->notify_pa);
                if (vdev->stats)
-                       pci_free_consistent(vdev->pdev,
-                               sizeof(struct vnic_stats),
-                               vdev->stats, vdev->stats_pa);
+                       dma_free_coherent(&vdev->pdev->dev,
+                                         sizeof(struct vnic_stats),
+                                         vdev->stats, vdev->stats_pa);
                if (vdev->fw_info)
-                       pci_free_consistent(vdev->pdev,
-                               sizeof(struct vnic_devcmd_fw_info),
-                               vdev->fw_info, vdev->fw_info_pa);
+                       dma_free_coherent(&vdev->pdev->dev,
+                                         sizeof(struct vnic_devcmd_fw_info),
+                                         vdev->fw_info, vdev->fw_info_pa);
                if (vdev->devcmd2)
                        vnic_dev_deinit_devcmd2(vdev);
 
        void *prov_buf;
        int ret;
 
-       prov_buf = pci_alloc_consistent(vdev->pdev, len, &prov_pa);
+       prov_buf = dma_alloc_coherent(&vdev->pdev->dev, len, &prov_pa, GFP_ATOMIC);
        if (!prov_buf)
                return -ENOMEM;
 
 
        ret = vnic_dev_cmd(vdev, CMD_INIT_PROV_INFO2, &a0, &a1, wait);
 
-       pci_free_consistent(vdev->pdev, len, prov_buf, prov_pa);
+       dma_free_coherent(&vdev->pdev->dev, len, prov_buf, prov_pa);
 
        return ret;
 }
                tlv_size = sizeof(struct filter) +
                           sizeof(struct filter_action) +
                           2 * sizeof(struct filter_tlv);
-               tlv_va = pci_alloc_consistent(vdev->pdev, tlv_size, &tlv_pa);
+               tlv_va = dma_alloc_coherent(&vdev->pdev->dev, tlv_size,
+                                           &tlv_pa, GFP_ATOMIC);
                if (!tlv_va)
                        return -ENOMEM;
                tlv = tlv_va;
 
                ret = vnic_dev_cmd(vdev, CMD_ADD_FILTER, &a0, &a1, wait);
                *entry = (u16)a0;
-               pci_free_consistent(vdev->pdev, tlv_size, tlv_va, tlv_pa);
+               dma_free_coherent(&vdev->pdev->dev, tlv_size, tlv_va, tlv_pa);
        } else if (cmd == CLSF_DEL) {
                a0 = *entry;
                ret = vnic_dev_cmd(vdev, CMD_DEL_FILTER, &a0, &a1, wait);