sx8: switch to the generic DMA API
authorChristoph Hellwig <hch@lst.de>
Thu, 18 Oct 2018 13:15:13 +0000 (15:15 +0200)
committerJens Axboe <axboe@kernel.dk>
Thu, 18 Oct 2018 21:14:45 +0000 (15:14 -0600)
The PCI DMA API is deprecated, switch to the generic DMA API instead.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/sx8.c

index 377c17e106c337949554d0d5c94455ce4b7d0050..064b8c5c7a326125459ada392a1ea83e475f59ac 100644 (file)
@@ -861,9 +861,9 @@ static blk_status_t carm_queue_rq(struct blk_mq_hw_ctx *hctx,
 
        if (rq_data_dir(rq) == WRITE) {
                writing = 1;
-               pci_dir = PCI_DMA_TODEVICE;
+               pci_dir = DMA_TO_DEVICE;
        } else {
-               pci_dir = PCI_DMA_FROMDEVICE;
+               pci_dir = DMA_FROM_DEVICE;
        }
 
        /* get scatterlist from block layer */
@@ -877,7 +877,7 @@ static blk_status_t carm_queue_rq(struct blk_mq_hw_ctx *hctx,
        }
 
        /* map scatterlist to PCI bus addresses */
-       n_elem = pci_map_sg(host->pdev, sg, n_elem, pci_dir);
+       n_elem = dma_map_sg(&host->pdev->dev, sg, n_elem, pci_dir);
        if (n_elem <= 0) {
                /* request with no s/g entries? */
                carm_end_rq(host, crq, BLK_STS_IOERR);
@@ -1058,11 +1058,11 @@ static inline void carm_handle_rw(struct carm_host *host,
        VPRINTK("ENTER\n");
 
        if (rq_data_dir(crq->rq) == WRITE)
-               pci_dir = PCI_DMA_TODEVICE;
+               pci_dir = DMA_TO_DEVICE;
        else
-               pci_dir = PCI_DMA_FROMDEVICE;
+               pci_dir = DMA_FROM_DEVICE;
 
-       pci_unmap_sg(host->pdev, &crq->sg[0], crq->n_elem, pci_dir);
+       dma_unmap_sg(&host->pdev->dev, &crq->sg[0], crq->n_elem, pci_dir);
 
        carm_end_rq(host, crq, error);
 }
@@ -1567,8 +1567,8 @@ static void carm_free_disks(struct carm_host *host)
 
 static int carm_init_shm(struct carm_host *host)
 {
-       host->shm = pci_alloc_consistent(host->pdev, CARM_SHM_SIZE,
-                                        &host->shm_dma);
+       host->shm = dma_alloc_coherent(&host->pdev->dev, CARM_SHM_SIZE,
+                                      &host->shm_dma, GFP_KERNEL);
        if (!host->shm)
                return -ENOMEM;
 
@@ -1598,7 +1598,7 @@ static int carm_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
        if (rc)
                goto err_out;
 
-       rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
+       rc = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
        if (rc) {
                printk(KERN_ERR DRV_NAME "(%s): DMA mask failure\n",
                        pci_name(pdev));
@@ -1643,7 +1643,7 @@ static int carm_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
                printk(KERN_ERR DRV_NAME "(%s): OOB queue alloc failure\n",
                       pci_name(pdev));
                rc = PTR_ERR(q);
-               goto err_out_pci_free;
+               goto err_out_dma_free;
        }
        host->oob_q = q;
        q->queuedata = host;
@@ -1708,8 +1708,8 @@ err_out_free_majors:
                clear_bit(1, &carm_major_alloc);
        blk_cleanup_queue(host->oob_q);
        blk_mq_free_tag_set(&host->tag_set);
-err_out_pci_free:
-       pci_free_consistent(pdev, CARM_SHM_SIZE, host->shm, host->shm_dma);
+err_out_dma_free:
+       dma_free_coherent(&pdev->dev, CARM_SHM_SIZE, host->shm, host->shm_dma);
 err_out_iounmap:
        iounmap(host->mmio);
 err_out_kfree:
@@ -1740,7 +1740,7 @@ static void carm_remove_one (struct pci_dev *pdev)
                clear_bit(1, &carm_major_alloc);
        blk_cleanup_queue(host->oob_q);
        blk_mq_free_tag_set(&host->tag_set);
-       pci_free_consistent(pdev, CARM_SHM_SIZE, host->shm, host->shm_dma);
+       dma_free_coherent(&pdev->dev, CARM_SHM_SIZE, host->shm, host->shm_dma);
        iounmap(host->mmio);
        kfree(host);
        pci_release_regions(pdev);