]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
scsi: mvsas: fully convert to the generic DMA API
authorChristoph Hellwig <hch@lst.de>
Thu, 11 Oct 2018 07:54:21 +0000 (09:54 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 18 Oct 2018 01:58:52 +0000 (21:58 -0400)
The driver is currently using an odd mix of legacy PCI DMA API and
generic DMA API calls, switch it over to the generic API entirely.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mvsas/mv_init.c
drivers/scsi/mvsas/mv_sas.c

index 8c91637cd598d971afd11b2ae5e4aceb024a7b22..3ac34373746c0ff8907fe6025f8c71f2dbffdfc0 100644 (file)
@@ -403,29 +403,14 @@ static int pci_go_64(struct pci_dev *pdev)
 {
        int rc;
 
-       if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-               rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
-               if (rc) {
-                       rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
-                       if (rc) {
-                               dev_printk(KERN_ERR, &pdev->dev,
-                                          "64-bit DMA enable failed\n");
-                               return rc;
-                       }
-               }
-       } else {
-               rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
+       rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
+       if (rc) {
+               rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
                if (rc) {
                        dev_printk(KERN_ERR, &pdev->dev,
                                   "32-bit DMA enable failed\n");
                        return rc;
                }
-               rc = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
-               if (rc) {
-                       dev_printk(KERN_ERR, &pdev->dev,
-                                  "32-bit consistent DMA enable failed\n");
-                       return rc;
-               }
        }
 
        return rc;
index cff43bd9f6751ae1197b76c4d9eb22bc92ef2784..3df1428df31727c1bad7b24904fa2b9cca670f82 100644 (file)
@@ -336,13 +336,13 @@ static int mvs_task_prep_smp(struct mvs_info *mvi,
         * DMA-map SMP request, response buffers
         */
        sg_req = &task->smp_task.smp_req;
-       elem = dma_map_sg(mvi->dev, sg_req, 1, PCI_DMA_TODEVICE);
+       elem = dma_map_sg(mvi->dev, sg_req, 1, DMA_TO_DEVICE);
        if (!elem)
                return -ENOMEM;
        req_len = sg_dma_len(sg_req);
 
        sg_resp = &task->smp_task.smp_resp;
-       elem = dma_map_sg(mvi->dev, sg_resp, 1, PCI_DMA_FROMDEVICE);
+       elem = dma_map_sg(mvi->dev, sg_resp, 1, DMA_FROM_DEVICE);
        if (!elem) {
                rc = -ENOMEM;
                goto err_out;
@@ -416,10 +416,10 @@ static int mvs_task_prep_smp(struct mvs_info *mvi,
 
 err_out_2:
        dma_unmap_sg(mvi->dev, &tei->task->smp_task.smp_resp, 1,
-                    PCI_DMA_FROMDEVICE);
+                    DMA_FROM_DEVICE);
 err_out:
        dma_unmap_sg(mvi->dev, &tei->task->smp_task.smp_req, 1,
-                    PCI_DMA_TODEVICE);
+                    DMA_TO_DEVICE);
        return rc;
 }
 
@@ -904,9 +904,9 @@ static void mvs_slot_task_free(struct mvs_info *mvi, struct sas_task *task,
        switch (task->task_proto) {
        case SAS_PROTOCOL_SMP:
                dma_unmap_sg(mvi->dev, &task->smp_task.smp_resp, 1,
-                            PCI_DMA_FROMDEVICE);
+                            DMA_FROM_DEVICE);
                dma_unmap_sg(mvi->dev, &task->smp_task.smp_req, 1,
-                            PCI_DMA_TODEVICE);
+                            DMA_TO_DEVICE);
                break;
 
        case SAS_PROTOCOL_SATA: