The driver currently uses pci_set_dma_mask despite otherwise using
the generic DMA API.  Switch it over to the better generic DMA API.

Signed-off-by: Christoph Hellwig <h...@lst.de>
---
 drivers/scsi/lpfc/lpfc_init.c | 34 ++++++++++------------------------
 1 file changed, 10 insertions(+), 24 deletions(-)

diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 323a32e87258..21e4aaf55170 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -7177,26 +7177,19 @@ lpfc_post_init_setup(struct lpfc_hba *phba)
 static int
 lpfc_sli_pci_mem_setup(struct lpfc_hba *phba)
 {
-       struct pci_dev *pdev;
+       struct pci_dev *pdev = phba->pcidev;
        unsigned long bar0map_len, bar2map_len;
        int i, hbq_count;
        void *ptr;
        int error = -ENODEV;
 
-       /* Obtain PCI device reference */
-       if (!phba->pcidev)
+       if (!pdev)
                return error;
-       else
-               pdev = phba->pcidev;
 
        /* Set the device DMA mask size */
-       if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) != 0
-        || pci_set_consistent_dma_mask(pdev,DMA_BIT_MASK(64)) != 0) {
-               if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) != 0
-                || pci_set_consistent_dma_mask(pdev,DMA_BIT_MASK(32)) != 0) {
-                       return error;
-               }
-       }
+       if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
+           dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))
+               return error;
 
        /* Get the bus address of Bar0 and Bar2 and the number of bytes
         * required by each mapping.
@@ -9558,25 +9551,18 @@ lpfc_pci_function_reset(struct lpfc_hba *phba)
 static int
 lpfc_sli4_pci_mem_setup(struct lpfc_hba *phba)
 {
-       struct pci_dev *pdev;
+       struct pci_dev *pdev = phba->pcidev;
        unsigned long bar0map_len, bar1map_len, bar2map_len;
        int error = -ENODEV;
        uint32_t if_type;
 
-       /* Obtain PCI device reference */
-       if (!phba->pcidev)
+       if (!pdev)
                return error;
-       else
-               pdev = phba->pcidev;
 
        /* Set the device DMA mask size */
-       if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) != 0
-        || pci_set_consistent_dma_mask(pdev,DMA_BIT_MASK(64)) != 0) {
-               if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) != 0
-                || pci_set_consistent_dma_mask(pdev,DMA_BIT_MASK(32)) != 0) {
-                       return error;
-               }
-       }
+       if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
+           dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)))
+               return error;
 
        /*
         * The BARs and register set definitions and offset locations are
-- 
2.19.1

Reply via email to