Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 22 Jan 2022 08:24:02 +0000 (10:24 +0200)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 22 Jan 2022 08:24:02 +0000 (10:24 +0200)
Pull more SCSI updates from James Bottomley:
 "This series is all the stragglers that didn't quite make the first
  merge window pull. It's mostly minor updates and bug fixes of merge
  window code"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: nsp_cs: Check of ioremap return value
  scsi: ufs: ufs-mediatek: Fix error checking in ufs_mtk_init_va09_pwr_ctrl()
  scsi: ufs: Modify Tactive time setting conditions
  scsi: efct: Remove useless DMA-32 fallback configuration
  scsi: message: fusion: mptctl: Use dma_alloc_coherent()
  scsi: message: fusion: mptsas: Use dma_alloc_coherent()
  scsi: message: fusion: Use dma_alloc_coherent() in mptsas_exp_repmanufacture_info()
  scsi: message: fusion: mptbase: Use dma_alloc_coherent()
  scsi: message: fusion: Use dma_alloc_coherent() in mpt_alloc_fw_memory()
  scsi: message: fusion: Remove usage of the deprecated "pci-dma-compat.h" API
  scsi: megaraid: Avoid mismatched storage type sizes
  scsi: hisi_sas: Remove unused variable and check in hisi_sas_send_ata_reset_each_phy()
  scsi: aic79xx: Remove redundant error variable
  scsi: pm80xx: Port reset timeout error handling correction
  scsi: mpi3mr: Fix formatting problems in some kernel-doc comments
  scsi: mpi3mr: Fix some spelling mistakes
  scsi: mpt3sas: Update persistent trigger pages from sysfs interface
  scsi: core: Fix scsi_mode_select() interface
  scsi: aacraid: Fix spelling of "its"
  scsi: qedf: Fix potential dereference of NULL pointer

22 files changed:
drivers/message/fusion/mptbase.c
drivers/message/fusion/mptctl.c
drivers/message/fusion/mptlan.c
drivers/message/fusion/mptsas.c
drivers/scsi/aacraid/aachba.c
drivers/scsi/aic7xxx/aic79xx_osm.c
drivers/scsi/elx/efct/efct_driver.c
drivers/scsi/hisi_sas/hisi_sas_main.c
drivers/scsi/megaraid.c
drivers/scsi/mpi3mr/mpi3mr_fw.c
drivers/scsi/mpt3sas/mpt3sas_base.h
drivers/scsi/mpt3sas/mpt3sas_ctl.c
drivers/scsi/pcmcia/nsp_cs.c
drivers/scsi/pm8001/pm8001_sas.c
drivers/scsi/pm8001/pm8001_sas.h
drivers/scsi/pm8001/pm80xx_hwi.c
drivers/scsi/qedf/qedf_main.c
drivers/scsi/scsi_lib.c
drivers/scsi/sd.c
drivers/scsi/ufs/ufs-mediatek.c
drivers/scsi/ufs/ufshcd.c
include/scsi/scsi_device.h

index 24a4532053e4b94daa6382939bb92cbe426ea92d..e90adfa5795050bdd41a48005d088e793d9bcd24 100644 (file)
@@ -300,8 +300,8 @@ mpt_is_discovery_complete(MPT_ADAPTER *ioc)
        if (!hdr.ExtPageLength)
                goto out;
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-           &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
        if (!buffer)
                goto out;
 
@@ -316,8 +316,8 @@ mpt_is_discovery_complete(MPT_ADAPTER *ioc)
                rc = 1;
 
  out_free_consistent:
-       pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-           buffer, dma_handle);
+       dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+                         dma_handle);
  out:
        return rc;
 }
@@ -1661,16 +1661,14 @@ mpt_mapresources(MPT_ADAPTER *ioc)
                const uint64_t required_mask = dma_get_required_mask
                    (&pdev->dev);
                if (required_mask > DMA_BIT_MASK(32)
-                       && !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))
-                       && !pci_set_consistent_dma_mask(pdev,
-                                                DMA_BIT_MASK(64))) {
+                       && !dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))
+                       && !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
                        ioc->dma_mask = DMA_BIT_MASK(64);
                        dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
                                ": 64 BIT PCI BUS DMA ADDRESSING SUPPORTED\n",
                                ioc->name));
-               } else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
-                       && !pci_set_consistent_dma_mask(pdev,
-                                               DMA_BIT_MASK(32))) {
+               } else if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))
+                          && !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32))) {
                        ioc->dma_mask = DMA_BIT_MASK(32);
                        dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
                                ": 32 BIT PCI BUS DMA ADDRESSING SUPPORTED\n",
@@ -1681,9 +1679,8 @@ mpt_mapresources(MPT_ADAPTER *ioc)
                        goto out_pci_release_region;
                }
        } else {
-               if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
-                       && !pci_set_consistent_dma_mask(pdev,
-                                               DMA_BIT_MASK(32))) {
+               if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))
+                       && !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32))) {
                        ioc->dma_mask = DMA_BIT_MASK(32);
                        dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
                                ": 32 BIT PCI BUS DMA ADDRESSING SUPPORTED\n",
@@ -2769,9 +2766,9 @@ mpt_adapter_disable(MPT_ADAPTER *ioc)
 
        if (ioc->spi_data.pIocPg4 != NULL) {
                sz = ioc->spi_data.IocPg4Sz;
-               pci_free_consistent(ioc->pcidev, sz,
-                       ioc->spi_data.pIocPg4,
-                       ioc->spi_data.IocPg4_dma);
+               dma_free_coherent(&ioc->pcidev->dev, sz,
+                                 ioc->spi_data.pIocPg4,
+                                 ioc->spi_data.IocPg4_dma);
                ioc->spi_data.pIocPg4 = NULL;
                ioc->alloc_total -= sz;
        }
@@ -3515,7 +3512,8 @@ mpt_alloc_fw_memory(MPT_ADAPTER *ioc, int size)
                rc = 0;
                goto out;
        }
-       ioc->cached_fw = pci_alloc_consistent(ioc->pcidev, size, &ioc->cached_fw_dma);
+       ioc->cached_fw = dma_alloc_coherent(&ioc->pcidev->dev, size,
+                                           &ioc->cached_fw_dma, GFP_ATOMIC);
        if (!ioc->cached_fw) {
                printk(MYIOC_s_ERR_FMT "Unable to allocate memory for the cached firmware image!\n",
                    ioc->name);
@@ -3548,7 +3546,8 @@ mpt_free_fw_memory(MPT_ADAPTER *ioc)
        sz = ioc->facts.FWImageSize;
        dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "free_fw_memory: FW Image  @ %p[%p], sz=%d[%x] bytes\n",
                 ioc->name, ioc->cached_fw, (void *)(ulong)ioc->cached_fw_dma, sz, sz));
-       pci_free_consistent(ioc->pcidev, sz, ioc->cached_fw, ioc->cached_fw_dma);
+       dma_free_coherent(&ioc->pcidev->dev, sz, ioc->cached_fw,
+                         ioc->cached_fw_dma);
        ioc->alloc_total -= sz;
        ioc->cached_fw = NULL;
 }
@@ -4447,9 +4446,8 @@ PrimeIocFifos(MPT_ADAPTER *ioc)
                 */
                if (ioc->pcidev->device == MPI_MANUFACTPAGE_DEVID_SAS1078 &&
                    ioc->dma_mask > DMA_BIT_MASK(35)) {
-                       if (!pci_set_dma_mask(ioc->pcidev, DMA_BIT_MASK(32))
-                           && !pci_set_consistent_dma_mask(ioc->pcidev,
-                           DMA_BIT_MASK(32))) {
+                       if (!dma_set_mask(&ioc->pcidev->dev, DMA_BIT_MASK(32))
+                           && !dma_set_coherent_mask(&ioc->pcidev->dev, DMA_BIT_MASK(32))) {
                                dma_mask = DMA_BIT_MASK(35);
                                d36memprintk(ioc, printk(MYIOC_s_DEBUG_FMT
                                    "setting 35 bit addressing for "
@@ -4457,10 +4455,10 @@ PrimeIocFifos(MPT_ADAPTER *ioc)
                                    ioc->name));
                        } else {
                                /*Reseting DMA mask to 64 bit*/
-                               pci_set_dma_mask(ioc->pcidev,
-                                       DMA_BIT_MASK(64));
-                               pci_set_consistent_dma_mask(ioc->pcidev,
-                                       DMA_BIT_MASK(64));
+                               dma_set_mask(&ioc->pcidev->dev,
+                                            DMA_BIT_MASK(64));
+                               dma_set_coherent_mask(&ioc->pcidev->dev,
+                                                     DMA_BIT_MASK(64));
 
                                printk(MYIOC_s_ERR_FMT
                                    "failed setting 35 bit addressing for "
@@ -4595,8 +4593,8 @@ PrimeIocFifos(MPT_ADAPTER *ioc)
                alloc_dma += ioc->reply_sz;
        }
 
-       if (dma_mask == DMA_BIT_MASK(35) && !pci_set_dma_mask(ioc->pcidev,
-           ioc->dma_mask) && !pci_set_consistent_dma_mask(ioc->pcidev,
+       if (dma_mask == DMA_BIT_MASK(35) && !dma_set_mask(&ioc->pcidev->dev,
+           ioc->dma_mask) && !dma_set_coherent_mask(&ioc->pcidev->dev,
            ioc->dma_mask))
                d36memprintk(ioc, printk(MYIOC_s_DEBUG_FMT
                    "restoring 64 bit addressing\n", ioc->name));
@@ -4620,8 +4618,8 @@ out_fail:
                ioc->sense_buf_pool = NULL;
        }
 
-       if (dma_mask == DMA_BIT_MASK(35) && !pci_set_dma_mask(ioc->pcidev,
-           DMA_BIT_MASK(64)) && !pci_set_consistent_dma_mask(ioc->pcidev,
+       if (dma_mask == DMA_BIT_MASK(35) && !dma_set_mask(&ioc->pcidev->dev,
+           DMA_BIT_MASK(64)) && !dma_set_coherent_mask(&ioc->pcidev->dev,
            DMA_BIT_MASK(64)))
                d36memprintk(ioc, printk(MYIOC_s_DEBUG_FMT
                    "restoring 64 bit addressing\n", ioc->name));
@@ -4968,7 +4966,8 @@ GetLanConfigPages(MPT_ADAPTER *ioc)
 
        if (hdr.PageLength > 0) {
                data_sz = hdr.PageLength * 4;
-               ppage0_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page0_dma);
+               ppage0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
+                                                 &page0_dma, GFP_KERNEL);
                rc = -ENOMEM;
                if (ppage0_alloc) {
                        memset((u8 *)ppage0_alloc, 0, data_sz);
@@ -4982,7 +4981,8 @@ GetLanConfigPages(MPT_ADAPTER *ioc)
 
                        }
 
-                       pci_free_consistent(ioc->pcidev, data_sz, (u8 *) ppage0_alloc, page0_dma);
+                       dma_free_coherent(&ioc->pcidev->dev, data_sz,
+                                         (u8 *)ppage0_alloc, page0_dma);
 
                        /* FIXME!
                         *      Normalize endianness of structure data,
@@ -5014,7 +5014,8 @@ GetLanConfigPages(MPT_ADAPTER *ioc)
 
        data_sz = hdr.PageLength * 4;
        rc = -ENOMEM;
-       ppage1_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page1_dma);
+       ppage1_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
+                                         &page1_dma, GFP_KERNEL);
        if (ppage1_alloc) {
                memset((u8 *)ppage1_alloc, 0, data_sz);
                cfg.physAddr = page1_dma;
@@ -5026,7 +5027,8 @@ GetLanConfigPages(MPT_ADAPTER *ioc)
                        memcpy(&ioc->lan_cnfg_page1, ppage1_alloc, copy_sz);
                }
 
-               pci_free_consistent(ioc->pcidev, data_sz, (u8 *) ppage1_alloc, page1_dma);
+               dma_free_coherent(&ioc->pcidev->dev, data_sz,
+                                 (u8 *)ppage1_alloc, page1_dma);
 
                /* FIXME!
                 *      Normalize endianness of structure data,
@@ -5315,7 +5317,8 @@ GetIoUnitPage2(MPT_ADAPTER *ioc)
        /* Read the config page */
        data_sz = hdr.PageLength * 4;
        rc = -ENOMEM;
-       ppage_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page_dma);
+       ppage_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
+                                        &page_dma, GFP_KERNEL);
        if (ppage_alloc) {
                memset((u8 *)ppage_alloc, 0, data_sz);
                cfg.physAddr = page_dma;
@@ -5325,7 +5328,8 @@ GetIoUnitPage2(MPT_ADAPTER *ioc)
                if ((rc = mpt_config(ioc, &cfg)) == 0)
                        ioc->biosVersion = le32_to_cpu(ppage_alloc->BiosVersion);
 
-               pci_free_consistent(ioc->pcidev, data_sz, (u8 *) ppage_alloc, page_dma);
+               dma_free_coherent(&ioc->pcidev->dev, data_sz,
+                                 (u8 *)ppage_alloc, page_dma);
        }
 
        return rc;
@@ -5400,7 +5404,9 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
                 return -EFAULT;
 
        if (header.PageLength > 0) {
-               pbuf = pci_alloc_consistent(ioc->pcidev, header.PageLength * 4, &buf_dma);
+               pbuf = dma_alloc_coherent(&ioc->pcidev->dev,
+                                         header.PageLength * 4, &buf_dma,
+                                         GFP_KERNEL);
                if (pbuf) {
                        cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT;
                        cfg.physAddr = buf_dma;
@@ -5456,7 +5462,9 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
                                }
                        }
                        if (pbuf) {
-                               pci_free_consistent(ioc->pcidev, header.PageLength * 4, pbuf, buf_dma);
+                               dma_free_coherent(&ioc->pcidev->dev,
+                                                 header.PageLength * 4, pbuf,
+                                                 buf_dma);
                        }
                }
        }
@@ -5478,7 +5486,9 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
        if (header.PageLength > 0) {
                /* Allocate memory and read SCSI Port Page 2
                 */
-               pbuf = pci_alloc_consistent(ioc->pcidev, header.PageLength * 4, &buf_dma);
+               pbuf = dma_alloc_coherent(&ioc->pcidev->dev,
+                                         header.PageLength * 4, &buf_dma,
+                                         GFP_KERNEL);
                if (pbuf) {
                        cfg.action = MPI_CONFIG_ACTION_PAGE_READ_NVRAM;
                        cfg.physAddr = buf_dma;
@@ -5543,7 +5553,9 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
                                }
                        }
 
-                       pci_free_consistent(ioc->pcidev, header.PageLength * 4, pbuf, buf_dma);
+                       dma_free_coherent(&ioc->pcidev->dev,
+                                         header.PageLength * 4, pbuf,
+                                         buf_dma);
                }
        }
 
@@ -5659,8 +5671,8 @@ mpt_inactive_raid_volumes(MPT_ADAPTER *ioc, u8 channel, u8 id)
        if (!hdr.PageLength)
                goto out;
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-           &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
 
        if (!buffer)
                goto out;
@@ -5707,8 +5719,8 @@ mpt_inactive_raid_volumes(MPT_ADAPTER *ioc, u8 channel, u8 id)
 
  out:
        if (buffer)
-               pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-                   dma_handle);
+               dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                 buffer, dma_handle);
 }
 
 /**
@@ -5752,8 +5764,8 @@ mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num,
                goto out;
        }
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-           &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
 
        if (!buffer) {
                rc = -ENOMEM;
@@ -5776,8 +5788,8 @@ mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num,
  out:
 
        if (buffer)
-               pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-                   dma_handle);
+               dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                 buffer, dma_handle);
 
        return rc;
 }
@@ -5819,8 +5831,8 @@ mpt_raid_phys_disk_get_num_paths(MPT_ADAPTER *ioc, u8 phys_disk_num)
                goto out;
        }
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-           &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
 
        if (!buffer) {
                rc = 0;
@@ -5840,8 +5852,8 @@ mpt_raid_phys_disk_get_num_paths(MPT_ADAPTER *ioc, u8 phys_disk_num)
  out:
 
        if (buffer)
-               pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-                   dma_handle);
+               dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                 buffer, dma_handle);
 
        return rc;
 }
@@ -5891,8 +5903,8 @@ mpt_raid_phys_disk_pg1(MPT_ADAPTER *ioc, u8 phys_disk_num,
                goto out;
        }
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-           &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
 
        if (!buffer) {
                rc = -ENOMEM;
@@ -5929,8 +5941,8 @@ mpt_raid_phys_disk_pg1(MPT_ADAPTER *ioc, u8 phys_disk_num,
  out:
 
        if (buffer)
-               pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-                   dma_handle);
+               dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                 buffer, dma_handle);
 
        return rc;
 }
@@ -5986,7 +5998,8 @@ mpt_findImVolumes(MPT_ADAPTER *ioc)
                return -EFAULT;
 
        iocpage2sz = header.PageLength * 4;
-       pIoc2 = pci_alloc_consistent(ioc->pcidev, iocpage2sz, &ioc2_dma);
+       pIoc2 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage2sz, &ioc2_dma,
+                                  GFP_KERNEL);
        if (!pIoc2)
                return -ENOMEM;
 
@@ -6011,7 +6024,7 @@ mpt_findImVolumes(MPT_ADAPTER *ioc)
                    pIoc2->RaidVolume[i].VolumeID);
 
  out:
-       pci_free_consistent(ioc->pcidev, iocpage2sz, pIoc2, ioc2_dma);
+       dma_free_coherent(&ioc->pcidev->dev, iocpage2sz, pIoc2, ioc2_dma);
 
        return rc;
 }
@@ -6053,7 +6066,8 @@ mpt_read_ioc_pg_3(MPT_ADAPTER *ioc)
        /* Read Header good, alloc memory
         */
        iocpage3sz = header.PageLength * 4;
-       pIoc3 = pci_alloc_consistent(ioc->pcidev, iocpage3sz, &ioc3_dma);
+       pIoc3 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage3sz, &ioc3_dma,
+                                  GFP_KERNEL);
        if (!pIoc3)
                return 0;
 
@@ -6070,7 +6084,7 @@ mpt_read_ioc_pg_3(MPT_ADAPTER *ioc)
                }
        }
 
-       pci_free_consistent(ioc->pcidev, iocpage3sz, pIoc3, ioc3_dma);
+       dma_free_coherent(&ioc->pcidev->dev, iocpage3sz, pIoc3, ioc3_dma);
 
        return 0;
 }
@@ -6104,7 +6118,8 @@ mpt_read_ioc_pg_4(MPT_ADAPTER *ioc)
 
        if ( (pIoc4 = ioc->spi_data.pIocPg4) == NULL ) {
                iocpage4sz = (header.PageLength + 4) * 4; /* Allow 4 additional SEP's */
-               pIoc4 = pci_alloc_consistent(ioc->pcidev, iocpage4sz, &ioc4_dma);
+               pIoc4 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage4sz,
+                                          &ioc4_dma, GFP_KERNEL);
                if (!pIoc4)
                        return;
                ioc->alloc_total += iocpage4sz;
@@ -6122,7 +6137,8 @@ mpt_read_ioc_pg_4(MPT_ADAPTER *ioc)
                ioc->spi_data.IocPg4_dma = ioc4_dma;
                ioc->spi_data.IocPg4Sz = iocpage4sz;
        } else {
-               pci_free_consistent(ioc->pcidev, iocpage4sz, pIoc4, ioc4_dma);
+               dma_free_coherent(&ioc->pcidev->dev, iocpage4sz, pIoc4,
+                                 ioc4_dma);
                ioc->spi_data.pIocPg4 = NULL;
                ioc->alloc_total -= iocpage4sz;
        }
@@ -6159,7 +6175,8 @@ mpt_read_ioc_pg_1(MPT_ADAPTER *ioc)
        /* Read Header good, alloc memory
         */
        iocpage1sz = header.PageLength * 4;
-       pIoc1 = pci_alloc_consistent(ioc->pcidev, iocpage1sz, &ioc1_dma);
+       pIoc1 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage1sz, &ioc1_dma,
+                                  GFP_KERNEL);
        if (!pIoc1)
                return;
 
@@ -6210,7 +6227,7 @@ mpt_read_ioc_pg_1(MPT_ADAPTER *ioc)
                }
        }
 
-       pci_free_consistent(ioc->pcidev, iocpage1sz, pIoc1, ioc1_dma);
+       dma_free_coherent(&ioc->pcidev->dev, iocpage1sz, pIoc1, ioc1_dma);
 
        return;
 }
@@ -6239,7 +6256,8 @@ mpt_get_manufacturing_pg_0(MPT_ADAPTER *ioc)
                goto out;
 
        cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT;
-       pbuf = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4, &buf_dma);
+       pbuf = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                 &buf_dma, GFP_KERNEL);
        if (!pbuf)
                goto out;
 
@@ -6255,7 +6273,8 @@ mpt_get_manufacturing_pg_0(MPT_ADAPTER *ioc)
 out:
 
        if (pbuf)
-               pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, pbuf, buf_dma);
+               dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4, pbuf,
+                                 buf_dma);
 }
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
index ae433c150b37aa0bf9b5267bfbf8d3fe6f69697d..03c8fb1795c2cde9559cb44a83e43e70ef0efa1e 100644 (file)
@@ -1041,14 +1041,15 @@ kbuf_alloc_2_sgl(int bytes, u32 sgdir, int sge_offset, int *frags,
         * copying the data in this array into the correct place in the
         * request and chain buffers.
         */
-       sglbuf = pci_alloc_consistent(ioc->pcidev, MAX_SGL_BYTES, sglbuf_dma);
+       sglbuf = dma_alloc_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES,
+                                   sglbuf_dma, GFP_KERNEL);
        if (sglbuf == NULL)
                goto free_and_fail;
 
        if (sgdir & 0x04000000)
-               dir = PCI_DMA_TODEVICE;
+               dir = DMA_TO_DEVICE;
        else
-               dir = PCI_DMA_FROMDEVICE;
+               dir = DMA_FROM_DEVICE;
 
        /* At start:
         *      sgl = sglbuf = point to beginning of sg buffer
@@ -1062,9 +1063,9 @@ kbuf_alloc_2_sgl(int bytes, u32 sgdir, int sge_offset, int *frags,
        while (bytes_allocd < bytes) {
                this_alloc = min(alloc_sz, bytes-bytes_allocd);
                buflist[buflist_ent].len = this_alloc;
-               buflist[buflist_ent].kptr = pci_alloc_consistent(ioc->pcidev,
-                                                                this_alloc,
-                                                                &pa);
+               buflist[buflist_ent].kptr = dma_alloc_coherent(&ioc->pcidev->dev,
+                                                              this_alloc,
+                                                              &pa, GFP_KERNEL);
                if (buflist[buflist_ent].kptr == NULL) {
                        alloc_sz = alloc_sz / 2;
                        if (alloc_sz == 0) {
@@ -1080,8 +1081,9 @@ kbuf_alloc_2_sgl(int bytes, u32 sgdir, int sge_offset, int *frags,
 
                        bytes_allocd += this_alloc;
                        sgl->FlagsLength = (0x10000000|sgdir|this_alloc);
-                       dma_addr = pci_map_single(ioc->pcidev,
-                               buflist[buflist_ent].kptr, this_alloc, dir);
+                       dma_addr = dma_map_single(&ioc->pcidev->dev,
+                                                 buflist[buflist_ent].kptr,
+                                                 this_alloc, dir);
                        sgl->Address = dma_addr;
 
                        fragcnt++;
@@ -1140,9 +1142,11 @@ free_and_fail:
                        kptr = buflist[i].kptr;
                        len = buflist[i].len;
 
-                       pci_free_consistent(ioc->pcidev, len, kptr, dma_addr);
+                       dma_free_coherent(&ioc->pcidev->dev, len, kptr,
+                                         dma_addr);
                }
-               pci_free_consistent(ioc->pcidev, MAX_SGL_BYTES, sglbuf, *sglbuf_dma);
+               dma_free_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES, sglbuf,
+                                 *sglbuf_dma);
        }
        kfree(buflist);
        return NULL;
@@ -1162,9 +1166,9 @@ kfree_sgl(MptSge_t *sgl, dma_addr_t sgl_dma, struct buflist *buflist, MPT_ADAPTE
        int              n = 0;
 
        if (sg->FlagsLength & 0x04000000)
-               dir = PCI_DMA_TODEVICE;
+               dir = DMA_TO_DEVICE;
        else
-               dir = PCI_DMA_FROMDEVICE;
+               dir = DMA_FROM_DEVICE;
 
        nib = (sg->FlagsLength & 0xF0000000) >> 28;
        while (! (nib & 0x4)) { /* eob */
@@ -1179,8 +1183,10 @@ kfree_sgl(MptSge_t *sgl, dma_addr_t sgl_dma, struct buflist *buflist, MPT_ADAPTE
                        dma_addr = sg->Address;
                        kptr = bl->kptr;
                        len = bl->len;
-                       pci_unmap_single(ioc->pcidev, dma_addr, len, dir);
-                       pci_free_consistent(ioc->pcidev, len, kptr, dma_addr);
+                       dma_unmap_single(&ioc->pcidev->dev, dma_addr, len,
+                                        dir);
+                       dma_free_coherent(&ioc->pcidev->dev, len, kptr,
+                                         dma_addr);
                        n++;
                }
                sg++;
@@ -1197,12 +1203,12 @@ kfree_sgl(MptSge_t *sgl, dma_addr_t sgl_dma, struct buflist *buflist, MPT_ADAPTE
                dma_addr = sg->Address;
                kptr = bl->kptr;
                len = bl->len;
-               pci_unmap_single(ioc->pcidev, dma_addr, len, dir);
-               pci_free_consistent(ioc->pcidev, len, kptr, dma_addr);
+               dma_unmap_single(&ioc->pcidev->dev, dma_addr, len, dir);
+               dma_free_coherent(&ioc->pcidev->dev, len, kptr, dma_addr);
                n++;
        }
 
-       pci_free_consistent(ioc->pcidev, MAX_SGL_BYTES, sgl, sgl_dma);
+       dma_free_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES, sgl, sgl_dma);
        kfree(buflist);
        dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "-SG: Free'd 1 SGL buf + %d kbufs!\n",
            ioc->name, n));
@@ -2100,8 +2106,9 @@ mptctl_do_mpt_command (MPT_ADAPTER *ioc, struct mpt_ioctl_command karg, void __u
                        }
                        flagsLength |= karg.dataOutSize;
                        bufOut.len = karg.dataOutSize;
-                       bufOut.kptr = pci_alloc_consistent(
-                                       ioc->pcidev, bufOut.len, &dma_addr_out);
+                       bufOut.kptr = dma_alloc_coherent(&ioc->pcidev->dev,
+                                                        bufOut.len,
+                                                        &dma_addr_out, GFP_KERNEL);
 
                        if (bufOut.kptr == NULL) {
                                rc = -ENOMEM;
@@ -2134,8 +2141,9 @@ mptctl_do_mpt_command (MPT_ADAPTER *ioc, struct mpt_ioctl_command karg, void __u
                        flagsLength |= karg.dataInSize;
 
                        bufIn.len = karg.dataInSize;
-                       bufIn.kptr = pci_alloc_consistent(ioc->pcidev,
-                                       bufIn.len, &dma_addr_in);
+                       bufIn.kptr = dma_alloc_coherent(&ioc->pcidev->dev,
+                                                       bufIn.len,
+                                                       &dma_addr_in, GFP_KERNEL);
 
                        if (bufIn.kptr == NULL) {
                                rc = -ENOMEM;
@@ -2283,13 +2291,13 @@ done_free_mem:
        /* Free the allocated memory.
         */
        if (bufOut.kptr != NULL) {
-               pci_free_consistent(ioc->pcidev,
-                       bufOut.len, (void *) bufOut.kptr, dma_addr_out);
+               dma_free_coherent(&ioc->pcidev->dev, bufOut.len,
+                                 (void *)bufOut.kptr, dma_addr_out);
        }
 
        if (bufIn.kptr != NULL) {
-               pci_free_consistent(ioc->pcidev,
-                       bufIn.len, (void *) bufIn.kptr, dma_addr_in);
+               dma_free_coherent(&ioc->pcidev->dev, bufIn.len,
+                                 (void *)bufIn.kptr, dma_addr_in);
        }
 
        /* mf is null if command issued successfully
@@ -2395,7 +2403,9 @@ mptctl_hp_hostinfo(MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
                        /* Issue the second config page request */
                        cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT;
 
-                       pbuf = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4, &buf_dma);
+                       pbuf = dma_alloc_coherent(&ioc->pcidev->dev,
+                                                 hdr.PageLength * 4,
+                                                 &buf_dma, GFP_KERNEL);
                        if (pbuf) {
                                cfg.physAddr = buf_dma;
                                if (mpt_config(ioc, &cfg) == 0) {
@@ -2405,7 +2415,9 @@ mptctl_hp_hostinfo(MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
                                                        pdata->BoardTracerNumber, 24);
                                        }
                                }
-                               pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, pbuf, buf_dma);
+                               dma_free_coherent(&ioc->pcidev->dev,
+                                                 hdr.PageLength * 4, pbuf,
+                                                 buf_dma);
                                pbuf = NULL;
                        }
                }
@@ -2470,7 +2482,7 @@ mptctl_hp_hostinfo(MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
        else
                IstwiRWRequest->DeviceAddr = 0xB0;
 
-       pbuf = pci_alloc_consistent(ioc->pcidev, 4, &buf_dma);
+       pbuf = dma_alloc_coherent(&ioc->pcidev->dev, 4, &buf_dma, GFP_KERNEL);
        if (!pbuf)
                goto out;
        ioc->add_sge((char *)&IstwiRWRequest->SGL,
@@ -2519,7 +2531,7 @@ retry_wait:
        SET_MGMT_MSG_CONTEXT(ioc->ioctl_cmds.msg_context, 0);
 
        if (pbuf)
-               pci_free_consistent(ioc->pcidev, 4, pbuf, buf_dma);
+               dma_free_coherent(&ioc->pcidev->dev, 4, pbuf, buf_dma);
 
        /* Copy the data from kernel memory to user memory
         */
@@ -2585,7 +2597,8 @@ mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
        /* Get the data transfer speeds
         */
        data_sz = ioc->spi_data.sdp0length * 4;
-       pg0_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page_dma);
+       pg0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz, &page_dma,
+                                      GFP_KERNEL);
        if (pg0_alloc) {
                hdr.PageVersion = ioc->spi_data.sdp0version;
                hdr.PageLength = data_sz;
@@ -2623,7 +2636,8 @@ mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
                                karg.negotiated_speed = HP_DEV_SPEED_ASYNC;
                }
 
-               pci_free_consistent(ioc->pcidev, data_sz, (u8 *) pg0_alloc, page_dma);
+               dma_free_coherent(&ioc->pcidev->dev, data_sz, (u8 *)pg0_alloc,
+                                 page_dma);
        }
 
        /* Set defaults
@@ -2649,7 +2663,8 @@ mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
                /* Issue the second config page request */
                cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT;
                data_sz = (int) cfg.cfghdr.hdr->PageLength * 4;
-               pg3_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page_dma);
+               pg3_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
+                                              &page_dma, GFP_KERNEL);
                if (pg3_alloc) {
                        cfg.physAddr = page_dma;
                        cfg.pageAddr = (karg.hdr.channel << 8) | karg.hdr.id;
@@ -2658,7 +2673,8 @@ mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
                                karg.phase_errors = (u32) le16_to_cpu(pg3_alloc->PhaseErrorCount);
                                karg.parity_errors = (u32) le16_to_cpu(pg3_alloc->ParityErrorCount);
                        }
-                       pci_free_consistent(ioc->pcidev, data_sz, (u8 *) pg3_alloc, page_dma);
+                       dma_free_coherent(&ioc->pcidev->dev, data_sz,
+                                         (u8 *)pg3_alloc, page_dma);
                }
        }
        hd = shost_priv(ioc->sh);
index 117fa4ebf6d79d836899db56e6cb15bd1d05ae22..142eb5d5d9df69e8c974112b2a649acb8194635b 100644 (file)
@@ -516,9 +516,9 @@ mpt_lan_close(struct net_device *dev)
                if (priv->RcvCtl[i].skb != NULL) {
 /**/                   dlprintk((KERN_INFO MYNAM "/lan_close: bucket %05x "
 /**/                             "is still out\n", i));
-                       pci_unmap_single(mpt_dev->pcidev, priv->RcvCtl[i].dma,
-                                        priv->RcvCtl[i].len,
-                                        PCI_DMA_FROMDEVICE);
+                       dma_unmap_single(&mpt_dev->pcidev->dev,
+                                        priv->RcvCtl[i].dma,
+                                        priv->RcvCtl[i].len, DMA_FROM_DEVICE);
                        dev_kfree_skb(priv->RcvCtl[i].skb);
                }
        }
@@ -528,9 +528,9 @@ mpt_lan_close(struct net_device *dev)
 
        for (i = 0; i < priv->tx_max_out; i++) {
                if (priv->SendCtl[i].skb != NULL) {
-                       pci_unmap_single(mpt_dev->pcidev, priv->SendCtl[i].dma,
-                                        priv->SendCtl[i].len,
-                                        PCI_DMA_TODEVICE);
+                       dma_unmap_single(&mpt_dev->pcidev->dev,
+                                        priv->SendCtl[i].dma,
+                                        priv->SendCtl[i].len, DMA_TO_DEVICE);
                        dev_kfree_skb(priv->SendCtl[i].skb);
                }
        }
@@ -582,8 +582,8 @@ mpt_lan_send_turbo(struct net_device *dev, u32 tmsg)
                        __func__, sent));
 
        priv->SendCtl[ctx].skb = NULL;
-       pci_unmap_single(mpt_dev->pcidev, priv->SendCtl[ctx].dma,
-                        priv->SendCtl[ctx].len, PCI_DMA_TODEVICE);
+       dma_unmap_single(&mpt_dev->pcidev->dev, priv->SendCtl[ctx].dma,
+                        priv->SendCtl[ctx].len, DMA_TO_DEVICE);
        dev_kfree_skb_irq(sent);
 
        spin_lock_irqsave(&priv->txfidx_lock, flags);
@@ -648,8 +648,9 @@ mpt_lan_send_reply(struct net_device *dev, LANSendReply_t *pSendRep)
                                __func__, sent));
 
                priv->SendCtl[ctx].skb = NULL;
-               pci_unmap_single(mpt_dev->pcidev, priv->SendCtl[ctx].dma,
-                                priv->SendCtl[ctx].len, PCI_DMA_TODEVICE);
+               dma_unmap_single(&mpt_dev->pcidev->dev,
+                                priv->SendCtl[ctx].dma,
+                                priv->SendCtl[ctx].len, DMA_TO_DEVICE);
                dev_kfree_skb_irq(sent);
 
                priv->mpt_txfidx[++priv->mpt_txfidx_tail] = ctx;
@@ -720,8 +721,8 @@ mpt_lan_sdu_send (struct sk_buff *skb, struct net_device *dev)
        skb_reset_mac_header(skb);
        skb_pull(skb, 12);
 
-        dma = pci_map_single(mpt_dev->pcidev, skb->data, skb->len,
-                            PCI_DMA_TODEVICE);
+       dma = dma_map_single(&mpt_dev->pcidev->dev, skb->data, skb->len,
+                            DMA_TO_DEVICE);
 
        priv->SendCtl[ctx].skb = skb;
        priv->SendCtl[ctx].dma = dma;
@@ -868,13 +869,17 @@ mpt_lan_receive_post_turbo(struct net_device *dev, u32 tmsg)
                        return -ENOMEM;
                }
 
-               pci_dma_sync_single_for_cpu(mpt_dev->pcidev, priv->RcvCtl[ctx].dma,
-                                           priv->RcvCtl[ctx].len, PCI_DMA_FROMDEVICE);
+               dma_sync_single_for_cpu(&mpt_dev->pcidev->dev,
+                                       priv->RcvCtl[ctx].dma,
+                                       priv->RcvCtl[ctx].len,
+                                       DMA_FROM_DEVICE);
 
                skb_copy_from_linear_data(old_skb, skb_put(skb, len), len);
 
-               pci_dma_sync_single_for_device(mpt_dev->pcidev, priv->RcvCtl[ctx].dma,
-                                              priv->RcvCtl[ctx].len, PCI_DMA_FROMDEVICE);
+               dma_sync_single_for_device(&mpt_dev->pcidev->dev,
+                                          priv->RcvCtl[ctx].dma,
+                                          priv->RcvCtl[ctx].len,
+                                          DMA_FROM_DEVICE);
                goto out;
        }
 
@@ -882,8 +887,8 @@ mpt_lan_receive_post_turbo(struct net_device *dev, u32 tmsg)
 
        priv->RcvCtl[ctx].skb = NULL;
 
-       pci_unmap_single(mpt_dev->pcidev, priv->RcvCtl[ctx].dma,
-                        priv->RcvCtl[ctx].len, PCI_DMA_FROMDEVICE);
+       dma_unmap_single(&mpt_dev->pcidev->dev, priv->RcvCtl[ctx].dma,
+                        priv->RcvCtl[ctx].len, DMA_FROM_DEVICE);
 
 out:
        spin_lock_irqsave(&priv->rxfidx_lock, flags);
@@ -927,8 +932,8 @@ mpt_lan_receive_post_free(struct net_device *dev,
 //             dlprintk((KERN_INFO MYNAM "@rpr[2] TC + 3\n"));
 
                priv->RcvCtl[ctx].skb = NULL;
-               pci_unmap_single(mpt_dev->pcidev, priv->RcvCtl[ctx].dma,
-                                priv->RcvCtl[ctx].len, PCI_DMA_FROMDEVICE);
+               dma_unmap_single(&mpt_dev->pcidev->dev, priv->RcvCtl[ctx].dma,
+                                priv->RcvCtl[ctx].len, DMA_FROM_DEVICE);
                dev_kfree_skb_any(skb);
 
                priv->mpt_rxfidx[++priv->mpt_rxfidx_tail] = ctx;
@@ -1028,16 +1033,16 @@ mpt_lan_receive_post_reply(struct net_device *dev,
 //                                     IOC_AND_NETDEV_NAMES_s_s(dev),
 //                                     i, l));
 
-                       pci_dma_sync_single_for_cpu(mpt_dev->pcidev,
-                                                   priv->RcvCtl[ctx].dma,
-                                                   priv->RcvCtl[ctx].len,
-                                                   PCI_DMA_FROMDEVICE);
+                       dma_sync_single_for_cpu(&mpt_dev->pcidev->dev,
+                                               priv->RcvCtl[ctx].dma,
+                                               priv->RcvCtl[ctx].len,
+                                               DMA_FROM_DEVICE);
                        skb_copy_from_linear_data(old_skb, skb_put(skb, l), l);
 
-                       pci_dma_sync_single_for_device(mpt_dev->pcidev,
-                                                      priv->RcvCtl[ctx].dma,
-                                                      priv->RcvCtl[ctx].len,
-                                                      PCI_DMA_FROMDEVICE);
+                       dma_sync_single_for_device(&mpt_dev->pcidev->dev,
+                                                  priv->RcvCtl[ctx].dma,
+                                                  priv->RcvCtl[ctx].len,
+                                                  DMA_FROM_DEVICE);
 
                        priv->mpt_rxfidx[++priv->mpt_rxfidx_tail] = ctx;
                        szrem -= l;
@@ -1056,17 +1061,17 @@ mpt_lan_receive_post_reply(struct net_device *dev,
                        return -ENOMEM;
                }
 
-               pci_dma_sync_single_for_cpu(mpt_dev->pcidev,
-                                           priv->RcvCtl[ctx].dma,
-                                           priv->RcvCtl[ctx].len,
-                                           PCI_DMA_FROMDEVICE);
+               dma_sync_single_for_cpu(&mpt_dev->pcidev->dev,
+                                       priv->RcvCtl[ctx].dma,
+                                       priv->RcvCtl[ctx].len,
+                                       DMA_FROM_DEVICE);
 
                skb_copy_from_linear_data(old_skb, skb_put(skb, len), len);
 
-               pci_dma_sync_single_for_device(mpt_dev->pcidev,
-                                              priv->RcvCtl[ctx].dma,
-                                              priv->RcvCtl[ctx].len,
-                                              PCI_DMA_FROMDEVICE);
+               dma_sync_single_for_device(&mpt_dev->pcidev->dev,
+                                          priv->RcvCtl[ctx].dma,
+                                          priv->RcvCtl[ctx].len,
+                                          DMA_FROM_DEVICE);
 
                spin_lock_irqsave(&priv->rxfidx_lock, flags);
                priv->mpt_rxfidx[++priv->mpt_rxfidx_tail] = ctx;
@@ -1077,8 +1082,8 @@ mpt_lan_receive_post_reply(struct net_device *dev,
 
                priv->RcvCtl[ctx].skb = NULL;
 
-               pci_unmap_single(mpt_dev->pcidev, priv->RcvCtl[ctx].dma,
-                                priv->RcvCtl[ctx].len, PCI_DMA_FROMDEVICE);
+               dma_unmap_single(&mpt_dev->pcidev->dev, priv->RcvCtl[ctx].dma,
+                                priv->RcvCtl[ctx].len, DMA_FROM_DEVICE);
                priv->RcvCtl[ctx].dma = 0;
 
                priv->mpt_rxfidx[++priv->mpt_rxfidx_tail] = ctx;
@@ -1199,10 +1204,10 @@ mpt_lan_post_receive_buckets(struct mpt_lan_priv *priv)
 
                        skb = priv->RcvCtl[ctx].skb;
                        if (skb && (priv->RcvCtl[ctx].len != len)) {
-                               pci_unmap_single(mpt_dev->pcidev,
+                               dma_unmap_single(&mpt_dev->pcidev->dev,
                                                 priv->RcvCtl[ctx].dma,
                                                 priv->RcvCtl[ctx].len,
-                                                PCI_DMA_FROMDEVICE);
+                                                DMA_FROM_DEVICE);
                                dev_kfree_skb(priv->RcvCtl[ctx].skb);
                                skb = priv->RcvCtl[ctx].skb = NULL;
                        }
@@ -1218,8 +1223,9 @@ mpt_lan_post_receive_buckets(struct mpt_lan_priv *priv)
                                        break;
                                }
 
-                               dma = pci_map_single(mpt_dev->pcidev, skb->data,
-                                                    len, PCI_DMA_FROMDEVICE);
+                               dma = dma_map_single(&mpt_dev->pcidev->dev,
+                                                    skb->data, len,
+                                                    DMA_FROM_DEVICE);
 
                                priv->RcvCtl[ctx].skb = skb;
                                priv->RcvCtl[ctx].dma = dma;
index 091b45024d34349537d95685ad8666a74f921bed..4acd8f9a48e16eb8d5508e5b04d0cf6246f16050 100644 (file)
@@ -702,8 +702,8 @@ mptsas_add_device_component_starget_ir(MPT_ADAPTER *ioc,
        if (!hdr.PageLength)
                goto out;
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-           &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
 
        if (!buffer)
                goto out;
@@ -769,8 +769,8 @@ mptsas_add_device_component_starget_ir(MPT_ADAPTER *ioc,
 
  out:
        if (buffer)
-               pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-                   dma_handle);
+               dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                 buffer, dma_handle);
 }
 
 /**
@@ -1399,8 +1399,8 @@ mptsas_sas_enclosure_pg0(MPT_ADAPTER *ioc, struct mptsas_enclosure *enclosure,
                goto out;
        }
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                       &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
        if (!buffer) {
                error = -ENOMEM;
                goto out;
@@ -1426,8 +1426,8 @@ mptsas_sas_enclosure_pg0(MPT_ADAPTER *ioc, struct mptsas_enclosure *enclosure,
        enclosure->sep_channel = buffer->SEPBus;
 
  out_free_consistent:
-       pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                           buffer, dma_handle);
+       dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+                         dma_handle);
  out:
        return error;
 }
@@ -2058,8 +2058,8 @@ static int mptsas_get_linkerrors(struct sas_phy *phy)
        if (!hdr.ExtPageLength)
                return -ENXIO;
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                                     &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
        if (!buffer)
                return -ENOMEM;
 
@@ -2081,8 +2081,8 @@ static int mptsas_get_linkerrors(struct sas_phy *phy)
                le32_to_cpu(buffer->PhyResetProblemCount);
 
  out_free_consistent:
-       pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                           buffer, dma_handle);
+       dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+                         dma_handle);
        return error;
 }
 
@@ -2301,7 +2301,7 @@ static void mptsas_smp_handler(struct bsg_job *job, struct Scsi_Host *shost,
                       << MPI_SGE_FLAGS_SHIFT;
 
        if (!dma_map_sg(&ioc->pcidev->dev, job->request_payload.sg_list,
-                       1, PCI_DMA_BIDIRECTIONAL))
+                       1, DMA_BIDIRECTIONAL))
                goto put_mf;
 
        flagsLength |= (sg_dma_len(job->request_payload.sg_list) - 4);
@@ -2318,7 +2318,7 @@ static void mptsas_smp_handler(struct bsg_job *job, struct Scsi_Host *shost,
        flagsLength = flagsLength << MPI_SGE_FLAGS_SHIFT;
 
        if (!dma_map_sg(&ioc->pcidev->dev, job->reply_payload.sg_list,
-                       1, PCI_DMA_BIDIRECTIONAL))
+                       1, DMA_BIDIRECTIONAL))
                goto unmap_out;
        flagsLength |= sg_dma_len(job->reply_payload.sg_list) + 4;
        ioc->add_sge(psge, flagsLength,
@@ -2356,10 +2356,10 @@ static void mptsas_smp_handler(struct bsg_job *job, struct Scsi_Host *shost,
 
 unmap_in:
        dma_unmap_sg(&ioc->pcidev->dev, job->reply_payload.sg_list, 1,
-                       PCI_DMA_BIDIRECTIONAL);
+                       DMA_BIDIRECTIONAL);
 unmap_out:
        dma_unmap_sg(&ioc->pcidev->dev, job->request_payload.sg_list, 1,
-                       PCI_DMA_BIDIRECTIONAL);
+                       DMA_BIDIRECTIONAL);
 put_mf:
        if (mf)
                mpt_free_msg_frame(ioc, mf);
@@ -2412,8 +2412,8 @@ mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
                goto out;
        }
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                                           &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
        if (!buffer) {
                error = -ENOMEM;
                goto out;
@@ -2452,8 +2452,8 @@ mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
        }
 
  out_free_consistent:
-       pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                           buffer, dma_handle);
+       dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+                         dma_handle);
  out:
        return error;
 }
@@ -2487,8 +2487,8 @@ mptsas_sas_io_unit_pg1(MPT_ADAPTER *ioc)
                goto out;
        }
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                                           &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
        if (!buffer) {
                error = -ENOMEM;
                goto out;
@@ -2509,8 +2509,8 @@ mptsas_sas_io_unit_pg1(MPT_ADAPTER *ioc)
            device_missing_delay & MPI_SAS_IOUNIT1_REPORT_MISSING_TIMEOUT_MASK;
 
  out_free_consistent:
-       pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                           buffer, dma_handle);
+       dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+                         dma_handle);
  out:
        return error;
 }
@@ -2551,8 +2551,8 @@ mptsas_sas_phy_pg0(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,
                goto out;
        }
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                                     &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
        if (!buffer) {
                error = -ENOMEM;
                goto out;
@@ -2573,8 +2573,8 @@ mptsas_sas_phy_pg0(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,
        phy_info->attached.handle = le16_to_cpu(buffer->AttachedDevHandle);
 
  out_free_consistent:
-       pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                           buffer, dma_handle);
+       dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+                         dma_handle);
  out:
        return error;
 }
@@ -2614,8 +2614,8 @@ mptsas_sas_device_pg0(MPT_ADAPTER *ioc, struct mptsas_devinfo *device_info,
                goto out;
        }
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                                     &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
        if (!buffer) {
                error = -ENOMEM;
                goto out;
@@ -2654,8 +2654,8 @@ mptsas_sas_device_pg0(MPT_ADAPTER *ioc, struct mptsas_devinfo *device_info,
        device_info->flags = le16_to_cpu(buffer->Flags);
 
  out_free_consistent:
-       pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                           buffer, dma_handle);
+       dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+                         dma_handle);
  out:
        return error;
 }
@@ -2697,8 +2697,8 @@ mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info,
                goto out;
        }
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                                     &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
        if (!buffer) {
                error = -ENOMEM;
                goto out;
@@ -2737,8 +2737,8 @@ mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info,
        }
 
  out_free_consistent:
-       pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                           buffer, dma_handle);
+       dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+                         dma_handle);
  out:
        return error;
 }
@@ -2777,8 +2777,8 @@ mptsas_sas_expander_pg1(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,
                goto out;
        }
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                                     &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
        if (!buffer) {
                error = -ENOMEM;
                goto out;
@@ -2810,8 +2810,8 @@ mptsas_sas_expander_pg1(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,
        phy_info->attached.handle = le16_to_cpu(buffer->AttachedDevHandle);
 
  out_free_consistent:
-       pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-                           buffer, dma_handle);
+       dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+                         dma_handle);
  out:
        return error;
 }
@@ -2896,7 +2896,8 @@ mptsas_exp_repmanufacture_info(MPT_ADAPTER *ioc,
 
        sz = sizeof(struct rep_manu_request) + sizeof(struct rep_manu_reply);
 
-       data_out = pci_alloc_consistent(ioc->pcidev, sz, &data_out_dma);
+       data_out = dma_alloc_coherent(&ioc->pcidev->dev, sz, &data_out_dma,
+                                     GFP_KERNEL);
        if (!data_out) {
                printk(KERN_ERR "Memory allocation failure at %s:%d/%s()!\n",
                        __FILE__, __LINE__, __func__);
@@ -2987,7 +2988,8 @@ mptsas_exp_repmanufacture_info(MPT_ADAPTER *ioc,
        }
 out_free:
        if (data_out_dma)
-               pci_free_consistent(ioc->pcidev, sz, data_out, data_out_dma);
+               dma_free_coherent(&ioc->pcidev->dev, sz, data_out,
+                                 data_out_dma);
 put_mf:
        if (mf)
                mpt_free_msg_frame(ioc, mf);
@@ -4271,8 +4273,8 @@ mptsas_adding_inactive_raid_components(MPT_ADAPTER *ioc, u8 channel, u8 id)
        if (!hdr.PageLength)
                goto out;
 
-       buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-           &dma_handle);
+       buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                   &dma_handle, GFP_KERNEL);
 
        if (!buffer)
                goto out;
@@ -4318,8 +4320,8 @@ mptsas_adding_inactive_raid_components(MPT_ADAPTER *ioc, u8 channel, u8 id)
 
  out:
        if (buffer)
-               pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-                   dma_handle);
+               dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+                                 buffer, dma_handle);
 }
 /*
  * Work queue thread to handle SAS hotplug events
index 59f6b7b2a70a139b11bfa52da317f4e2fa49ca4b..b04d039da2767e9af0323bc73c4bd8c26f8ea7b9 100644 (file)
@@ -271,7 +271,7 @@ MODULE_PARM_DESC(msi, "IRQ handling."
        " 0=PIC(default), 1=MSI, 2=MSI-X)");
 module_param(startup_timeout, int, S_IRUGO|S_IWUSR);
 MODULE_PARM_DESC(startup_timeout, "The duration of time in seconds to wait for"
-       " adapter to have it's kernel up and\n"
+       " adapter to have its kernel up and\n"
        "running. This is typically adjusted for large systems that do not"
        " have a BIOS.");
 module_param(aif_timeout, int, S_IRUGO|S_IWUSR);
index 5d566d2b2997c88fba1bcef01599aac2f0678514..928099163f0f6f9fbb40322b723fff7ad13204e0 100644 (file)
@@ -755,11 +755,7 @@ ahd_linux_biosparam(struct scsi_device *sdev, struct block_device *bdev,
 static int
 ahd_linux_abort(struct scsi_cmnd *cmd)
 {
-       int error;
-       
-       error = ahd_linux_queue_abort_cmd(cmd);
-
-       return error;
+       return ahd_linux_queue_abort_cmd(cmd);
 }
 
 /*
index ae62fc3c9ee369184f4c9d1ca0ff1f8910405ae2..b08fc8839808d2b63f83765e80eb60cc7135406a 100644 (file)
@@ -541,13 +541,10 @@ efct_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        pci_set_drvdata(pdev, efct);
 
-       if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) != 0) {
-               dev_warn(&pdev->dev, "trying DMA_BIT_MASK(32)\n");
-               if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)) != 0) {
-                       dev_err(&pdev->dev, "setting DMA_BIT_MASK failed\n");
-                       rc = -1;
-                       goto dma_mask_out;
-               }
+       rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
+       if (rc) {
+               dev_err(&pdev->dev, "setting DMA_BIT_MASK failed\n");
+               goto dma_mask_out;
        }
 
        num_interrupts = efct_device_interrupts_required(efct);
index f46f679fe825803dfa67c634f7b27a7d8670a6f3..a05ec7aece5ac934cd9d87f3a9223d579c6673d4 100644 (file)
@@ -1525,16 +1525,11 @@ static void hisi_sas_send_ata_reset_each_phy(struct hisi_hba *hisi_hba,
        struct device *dev = hisi_hba->dev;
        int s = sizeof(struct host_to_dev_fis);
        int rc = TMF_RESP_FUNC_FAILED;
-       struct asd_sas_phy *sas_phy;
        struct ata_link *link;
        u8 fis[20] = {0};
-       u32 state;
        int i;
 
-       state = hisi_hba->hw->get_phys_state(hisi_hba);
        for (i = 0; i < hisi_hba->n_phy; i++) {
-               if (!(state & BIT(sas_phy->id)))
-                       continue;
                if (!(sas_port->phy_mask & BIT(i)))
                        continue;
 
index 0d31d7a5e3352fc8e0135cc097dab7a910bfb1ed..bf987f3a7f3f2c71c3315531e22ca93f77afc63b 100644 (file)
@@ -192,23 +192,21 @@ mega_query_adapter(adapter_t *adapter)
 {
        dma_addr_t      prod_info_dma_handle;
        mega_inquiry3   *inquiry3;
-       u8      raw_mbox[sizeof(struct mbox_out)];
-       mbox_t  *mbox;
+       struct mbox_out mbox;
+       u8      *raw_mbox = (u8 *)&mbox;
        int     retval;
 
        /* Initialize adapter inquiry mailbox */
 
-       mbox = (mbox_t *)raw_mbox;
-
        memset((void *)adapter->mega_buffer, 0, MEGA_BUFFER_SIZE);
-       memset(&mbox->m_out, 0, sizeof(raw_mbox));
+       memset(&mbox, 0, sizeof(mbox));
 
        /*
         * Try to issue Inquiry3 command
         * if not succeeded, then issue MEGA_MBOXCMD_ADAPTERINQ command and
         * update enquiry3 structure
         */
-       mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
+       mbox.xferaddr = (u32)adapter->buf_dma_handle;
 
        inquiry3 = (mega_inquiry3 *)adapter->mega_buffer;
 
@@ -232,10 +230,10 @@ mega_query_adapter(adapter_t *adapter)
 
                inq = &ext_inq->raid_inq;
 
-               mbox->m_out.xferaddr = (u32)dma_handle;
+               mbox.xferaddr = (u32)dma_handle;
 
                /*issue old 0x04 command to adapter */
-               mbox->m_out.cmd = MEGA_MBOXCMD_ADPEXTINQ;
+               mbox.cmd = MEGA_MBOXCMD_ADPEXTINQ;
 
                issue_scb_block(adapter, raw_mbox);
 
@@ -262,7 +260,7 @@ mega_query_adapter(adapter_t *adapter)
                                                      sizeof(mega_product_info),
                                                      DMA_FROM_DEVICE);
 
-               mbox->m_out.xferaddr = prod_info_dma_handle;
+               mbox.xferaddr = prod_info_dma_handle;
 
                raw_mbox[0] = FC_NEW_CONFIG;    /* i.e. mbox->cmd=0xA1 */
                raw_mbox[2] = NC_SUBOP_PRODUCT_INFO;    /* i.e. 0x0E */
@@ -3569,16 +3567,14 @@ mega_n_to_m(void __user *arg, megacmd_t *mc)
 static int
 mega_is_bios_enabled(adapter_t *adapter)
 {
-       unsigned char   raw_mbox[sizeof(struct mbox_out)];
-       mbox_t  *mbox;
-
-       mbox = (mbox_t *)raw_mbox;
+       struct mbox_out mbox;
+       unsigned char   *raw_mbox = (u8 *)&mbox;
 
-       memset(&mbox->m_out, 0, sizeof(raw_mbox));
+       memset(&mbox, 0, sizeof(mbox));
 
        memset((void *)adapter->mega_buffer, 0, MEGA_BUFFER_SIZE);
 
-       mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
+       mbox.xferaddr = (u32)adapter->buf_dma_handle;
 
        raw_mbox[0] = IS_BIOS_ENABLED;
        raw_mbox[2] = GET_BIOS;
@@ -3600,13 +3596,11 @@ mega_is_bios_enabled(adapter_t *adapter)
 static void
 mega_enum_raid_scsi(adapter_t *adapter)
 {
-       unsigned char raw_mbox[sizeof(struct mbox_out)];
-       mbox_t *mbox;
+       struct mbox_out mbox;
+       unsigned char   *raw_mbox = (u8 *)&mbox;
        int i;
 
-       mbox = (mbox_t *)raw_mbox;
-
-       memset(&mbox->m_out, 0, sizeof(raw_mbox));
+       memset(&mbox, 0, sizeof(mbox));
 
        /*
         * issue command to find out what channels are raid/scsi
@@ -3616,7 +3610,7 @@ mega_enum_raid_scsi(adapter_t *adapter)
 
        memset((void *)adapter->mega_buffer, 0, MEGA_BUFFER_SIZE);
 
-       mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
+       mbox.xferaddr = (u32)adapter->buf_dma_handle;
 
        /*
         * Non-ROMB firmware fail this command, so all channels
@@ -3655,23 +3649,21 @@ static void
 mega_get_boot_drv(adapter_t *adapter)
 {
        struct private_bios_data        *prv_bios_data;
-       unsigned char   raw_mbox[sizeof(struct mbox_out)];
-       mbox_t  *mbox;
+       struct mbox_out mbox;
+       unsigned char   *raw_mbox = (u8 *)&mbox;
        u16     cksum = 0;
        u8      *cksum_p;
        u8      boot_pdrv;
        int     i;
 
-       mbox = (mbox_t *)raw_mbox;
-
-       memset(&mbox->m_out, 0, sizeof(raw_mbox));
+       memset(&mbox, 0, sizeof(mbox));
 
        raw_mbox[0] = BIOS_PVT_DATA;
        raw_mbox[2] = GET_BIOS_PVT_DATA;
 
        memset((void *)adapter->mega_buffer, 0, MEGA_BUFFER_SIZE);
 
-       mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
+       mbox.xferaddr = (u32)adapter->buf_dma_handle;
 
        adapter->boot_ldrv_enabled = 0;
        adapter->boot_ldrv = 0;
@@ -3721,13 +3713,11 @@ mega_get_boot_drv(adapter_t *adapter)
 static int
 mega_support_random_del(adapter_t *adapter)
 {
-       unsigned char raw_mbox[sizeof(struct mbox_out)];
-       mbox_t *mbox;
+       struct mbox_out mbox;
+       unsigned char   *raw_mbox = (u8 *)&mbox;
        int rval;
 
-       mbox = (mbox_t *)raw_mbox;
-
-       memset(&mbox->m_out, 0, sizeof(raw_mbox));
+       memset(&mbox, 0, sizeof(mbox));
 
        /*
         * issue command
@@ -3750,13 +3740,11 @@ mega_support_random_del(adapter_t *adapter)
 static int
 mega_support_ext_cdb(adapter_t *adapter)
 {
-       unsigned char raw_mbox[sizeof(struct mbox_out)];
-       mbox_t *mbox;
+       struct mbox_out mbox;
+       unsigned char   *raw_mbox = (u8 *)&mbox;
        int rval;
 
-       mbox = (mbox_t *)raw_mbox;
-
-       memset(&mbox->m_out, 0, sizeof(raw_mbox));
+       memset(&mbox, 0, sizeof(mbox));
        /*
         * issue command to find out if controller supports extended CDBs.
         */
@@ -3865,16 +3853,14 @@ mega_do_del_logdrv(adapter_t *adapter, int logdrv)
 static void
 mega_get_max_sgl(adapter_t *adapter)
 {
-       unsigned char   raw_mbox[sizeof(struct mbox_out)];
-       mbox_t  *mbox;
+       struct mbox_out mbox;
+       unsigned char   *raw_mbox = (u8 *)&mbox;
 
-       mbox = (mbox_t *)raw_mbox;
-
-       memset(mbox, 0, sizeof(raw_mbox));
+       memset(&mbox, 0, sizeof(mbox));
 
        memset((void *)adapter->mega_buffer, 0, MEGA_BUFFER_SIZE);
 
-       mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
+       mbox.xferaddr = (u32)adapter->buf_dma_handle;
 
        raw_mbox[0] = MAIN_MISC_OPCODE;
        raw_mbox[2] = GET_MAX_SG_SUPPORT;
@@ -3888,7 +3874,7 @@ mega_get_max_sgl(adapter_t *adapter)
        }
        else {
                adapter->sglen = *((char *)adapter->mega_buffer);
-               
+
                /*
                 * Make sure this is not more than the resources we are
                 * planning to allocate
@@ -3910,16 +3896,14 @@ mega_get_max_sgl(adapter_t *adapter)
 static int
 mega_support_cluster(adapter_t *adapter)
 {
-       unsigned char   raw_mbox[sizeof(struct mbox_out)];
-       mbox_t  *mbox;
-
-       mbox = (mbox_t *)raw_mbox;
+       struct mbox_out mbox;
+       unsigned char   *raw_mbox = (u8 *)&mbox;
 
-       memset(mbox, 0, sizeof(raw_mbox));
+       memset(&mbox, 0, sizeof(mbox));
 
        memset((void *)adapter->mega_buffer, 0, MEGA_BUFFER_SIZE);
 
-       mbox->m_out.xferaddr = (u32)adapter->buf_dma_handle;
+       mbox.xferaddr = (u32)adapter->buf_dma_handle;
 
        /*
         * Try to get the initiator id. This command will succeed iff the
index c39dd4978c9d1081a582348b8d57237189ab440a..15bdc21ead669354a798bdf54dcf5b92a2093d43 100644 (file)
@@ -901,7 +901,7 @@ static const struct {
        },
        { MPI3MR_RESET_FROM_SYSFS, "sysfs invocation" },
        { MPI3MR_RESET_FROM_SYSFS_TIMEOUT, "sysfs TM timeout" },
-       { MPI3MR_RESET_FROM_FIRMWARE, "firmware asynchronus reset" },
+       { MPI3MR_RESET_FROM_FIRMWARE, "firmware asynchronous reset" },
 };
 
 /**
@@ -1242,7 +1242,7 @@ static int mpi3mr_bring_ioc_ready(struct mpi3mr_ioc *mrioc)
                ioc_state = mpi3mr_get_iocstate(mrioc);
                if (ioc_state == MRIOC_STATE_READY) {
                        ioc_info(mrioc,
-                           "successfully transistioned to %s state\n",
+                           "successfully transitioned to %s state\n",
                            mpi3mr_iocstate_name(ioc_state));
                        return 0;
                }
@@ -2174,7 +2174,7 @@ out:
  * mpi3mr_check_rh_fault_ioc - check reset history and fault
  * controller
  * @mrioc: Adapter instance reference
- * @reason_code, reason code for the fault.
+ * @reason_code: reason code for the fault.
  *
  * This routine will save snapdump and fault the controller with
  * the given reason code if it is not already in the fault or
@@ -3633,7 +3633,6 @@ static int mpi3mr_enable_events(struct mpi3mr_ioc *mrioc)
 /**
  * mpi3mr_init_ioc - Initialize the controller
  * @mrioc: Adapter instance reference
- * @init_type: Flag to indicate is the init_type
  *
  * This the controller initialization routine, executed either
  * after soft reset or from pci probe callback.
@@ -3844,7 +3843,7 @@ retry_init:
 
        if (mrioc->shost->nr_hw_queues > mrioc->num_op_reply_q) {
                ioc_err(mrioc,
-                   "cannot create minimum number of operatioanl queues expected:%d created:%d\n",
+                   "cannot create minimum number of operational queues expected:%d created:%d\n",
                    mrioc->shost->nr_hw_queues, mrioc->num_op_reply_q);
                goto out_failed_noretry;
        }
@@ -4174,7 +4173,7 @@ static void mpi3mr_issue_ioc_shutdown(struct mpi3mr_ioc *mrioc)
 /**
  * mpi3mr_cleanup_ioc - Cleanup controller
  * @mrioc: Adapter instance reference
-
+ *
  * controller cleanup handler, Message unit reset or soft reset
  * and shutdown notification is issued to the controller.
  *
index a0af986633d2a016a2ccdb1b4d83a5dbe4f631b4..949e98d523e2836425286373cdb19c61c8e16dff 100644 (file)
@@ -77,8 +77,8 @@
 #define MPT3SAS_DRIVER_NAME            "mpt3sas"
 #define MPT3SAS_AUTHOR "Avago Technologies <MPT-FusionLinux.pdl@avagotech.com>"
 #define MPT3SAS_DESCRIPTION    "LSI MPT Fusion SAS 3.0 Device Driver"
-#define MPT3SAS_DRIVER_VERSION         "39.100.00.00"
-#define MPT3SAS_MAJOR_VERSION          39
+#define MPT3SAS_DRIVER_VERSION         "40.100.00.00"
+#define MPT3SAS_MAJOR_VERSION          40
 #define MPT3SAS_MINOR_VERSION          100
 #define MPT3SAS_BUILD_VERSION          0
 #define MPT3SAS_RELEASE_VERSION        00
index 05b6c6a073c34b42a698efa0e64e8b14a32c567b..d92ca140d298c221292dbcca60e1245ae27c2db4 100644 (file)
@@ -3533,11 +3533,31 @@ diag_trigger_master_store(struct device *cdev,
 {
        struct Scsi_Host *shost = class_to_shost(cdev);
        struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
+       struct SL_WH_MASTER_TRIGGER_T *master_tg;
        unsigned long flags;
        ssize_t rc;
+       bool set = 1;
 
-       spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
        rc = min(sizeof(struct SL_WH_MASTER_TRIGGER_T), count);
+
+       if (ioc->supports_trigger_pages) {
+               master_tg = kzalloc(sizeof(struct SL_WH_MASTER_TRIGGER_T),
+                   GFP_KERNEL);
+               if (!master_tg)
+                       return -ENOMEM;
+
+               memcpy(master_tg, buf, rc);
+               if (!master_tg->MasterData)
+                       set = 0;
+               if (mpt3sas_config_update_driver_trigger_pg1(ioc, master_tg,
+                   set)) {
+                       kfree(master_tg);
+                       return -EFAULT;
+               }
+               kfree(master_tg);
+       }
+
+       spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
        memset(&ioc->diag_trigger_master, 0,
            sizeof(struct SL_WH_MASTER_TRIGGER_T));
        memcpy(&ioc->diag_trigger_master, buf, rc);
@@ -3589,11 +3609,31 @@ diag_trigger_event_store(struct device *cdev,
 {
        struct Scsi_Host *shost = class_to_shost(cdev);
        struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
+       struct SL_WH_EVENT_TRIGGERS_T *event_tg;
        unsigned long flags;
        ssize_t sz;
+       bool set = 1;
 
-       spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
        sz = min(sizeof(struct SL_WH_EVENT_TRIGGERS_T), count);
+       if (ioc->supports_trigger_pages) {
+               event_tg = kzalloc(sizeof(struct SL_WH_EVENT_TRIGGERS_T),
+                   GFP_KERNEL);
+               if (!event_tg)
+                       return -ENOMEM;
+
+               memcpy(event_tg, buf, sz);
+               if (!event_tg->ValidEntries)
+                       set = 0;
+               if (mpt3sas_config_update_driver_trigger_pg2(ioc, event_tg,
+                   set)) {
+                       kfree(event_tg);
+                       return -EFAULT;
+               }
+               kfree(event_tg);
+       }
+
+       spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
+
        memset(&ioc->diag_trigger_event, 0,
            sizeof(struct SL_WH_EVENT_TRIGGERS_T));
        memcpy(&ioc->diag_trigger_event, buf, sz);
@@ -3644,11 +3684,31 @@ diag_trigger_scsi_store(struct device *cdev,
 {
        struct Scsi_Host *shost = class_to_shost(cdev);
        struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
+       struct SL_WH_SCSI_TRIGGERS_T *scsi_tg;
        unsigned long flags;
        ssize_t sz;
+       bool set = 1;
+
+       sz = min(sizeof(struct SL_WH_SCSI_TRIGGERS_T), count);
+       if (ioc->supports_trigger_pages) {
+               scsi_tg = kzalloc(sizeof(struct SL_WH_SCSI_TRIGGERS_T),
+                   GFP_KERNEL);
+               if (!scsi_tg)
+                       return -ENOMEM;
+
+               memcpy(scsi_tg, buf, sz);
+               if (!scsi_tg->ValidEntries)
+                       set = 0;
+               if (mpt3sas_config_update_driver_trigger_pg3(ioc, scsi_tg,
+                   set)) {
+                       kfree(scsi_tg);
+                       return -EFAULT;
+               }
+               kfree(scsi_tg);
+       }
 
        spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
-       sz = min(sizeof(ioc->diag_trigger_scsi), count);
+
        memset(&ioc->diag_trigger_scsi, 0, sizeof(ioc->diag_trigger_scsi));
        memcpy(&ioc->diag_trigger_scsi, buf, sz);
        if (ioc->diag_trigger_scsi.ValidEntries > NUM_VALID_ENTRIES)
@@ -3698,11 +3758,30 @@ diag_trigger_mpi_store(struct device *cdev,
 {
        struct Scsi_Host *shost = class_to_shost(cdev);
        struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
+       struct SL_WH_MPI_TRIGGERS_T *mpi_tg;
        unsigned long flags;
        ssize_t sz;
+       bool set = 1;
 
-       spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
        sz = min(sizeof(struct SL_WH_MPI_TRIGGERS_T), count);
+       if (ioc->supports_trigger_pages) {
+               mpi_tg = kzalloc(sizeof(struct SL_WH_MPI_TRIGGERS_T),
+                   GFP_KERNEL);
+               if (!mpi_tg)
+                       return -ENOMEM;
+
+               memcpy(mpi_tg, buf, sz);
+               if (!mpi_tg->ValidEntries)
+                       set = 0;
+               if (mpt3sas_config_update_driver_trigger_pg4(ioc, mpi_tg,
+                   set)) {
+                       kfree(mpi_tg);
+                       return -EFAULT;
+               }
+               kfree(mpi_tg);
+       }
+
+       spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
        memset(&ioc->diag_trigger_mpi, 0,
            sizeof(ioc->diag_trigger_mpi));
        memcpy(&ioc->diag_trigger_mpi, buf, sz);
index 8b9e889bc3067e2fbacfc78f201db70efe17c1fd..92c818a8a84a127abbe24da12d6924a8be7d9bac 100644 (file)
@@ -1557,6 +1557,9 @@ static int nsp_cs_config_check(struct pcmcia_device *p_dev, void *priv_data)
                data->MmioAddress = (unsigned long)
                        ioremap(p_dev->resource[2]->start,
                                        resource_size(p_dev->resource[2]));
+               if (!data->MmioAddress)
+                       goto next_entry;
+
                data->MmioLength  = resource_size(p_dev->resource[2]);
        }
        /* If we got this far, we're cool! */
index c9a16eef38c10c72d7c6555fb7a84a43a58255df..160ee8b228c98563eff47afadd3ae25bf1e7ecc1 100644 (file)
@@ -1199,7 +1199,7 @@ int pm8001_abort_task(struct sas_task *task)
        struct pm8001_device *pm8001_dev;
        struct pm8001_tmf_task tmf_task;
        int rc = TMF_RESP_FUNC_FAILED, ret;
-       u32 phy_id;
+       u32 phy_id, port_id;
        struct sas_task_slow slow_task;
 
        if (unlikely(!task || !task->lldd_task || !task->dev))
@@ -1246,6 +1246,7 @@ int pm8001_abort_task(struct sas_task *task)
                        DECLARE_COMPLETION_ONSTACK(completion_reset);
                        DECLARE_COMPLETION_ONSTACK(completion);
                        struct pm8001_phy *phy = pm8001_ha->phy + phy_id;
+                       port_id = phy->port->port_id;
 
                        /* 1. Set Device state as Recovery */
                        pm8001_dev->setds_completion = &completion;
@@ -1297,6 +1298,10 @@ int pm8001_abort_task(struct sas_task *task)
                                                PORT_RESET_TMO);
                                if (phy->port_reset_status == PORT_RESET_TMO) {
                                        pm8001_dev_gone_notify(dev);
+                                       PM8001_CHIP_DISP->hw_event_ack_req(
+                                               pm8001_ha, 0,
+                                               0x07, /*HW_EVENT_PHY_DOWN ack*/
+                                               port_id, phy_id, 0, 0);
                                        goto out;
                                }
                        }
index 83eec16d021d2c892f18c8c2a0389420b3a91926..a17da1cebce17f68ec551a066f8149e108be1d62 100644 (file)
@@ -216,6 +216,9 @@ struct pm8001_dispatch {
                u32 state);
        int (*sas_re_init_req)(struct pm8001_hba_info *pm8001_ha);
        int (*fatal_errors)(struct pm8001_hba_info *pm8001_ha);
+       void (*hw_event_ack_req)(struct pm8001_hba_info *pm8001_ha,
+               u32 Qnum, u32 SEA, u32 port_id, u32 phyId, u32 param0,
+               u32 param1);
 };
 
 struct pm8001_chip_info {
index ad3c6da127157b431fc7df97c7e37291a96a5bd5..bbf538fe15b3da03178ea7c754092783a3949933 100644 (file)
@@ -3712,8 +3712,10 @@ static int mpi_hw_event(struct pm8001_hba_info *pm8001_ha, void *piomb)
                break;
        case HW_EVENT_PORT_RESET_TIMER_TMO:
                pm8001_dbg(pm8001_ha, MSG, "HW_EVENT_PORT_RESET_TIMER_TMO\n");
-               pm80xx_hw_event_ack_req(pm8001_ha, 0, HW_EVENT_PHY_DOWN,
-                       port_id, phy_id, 0, 0);
+               if (!pm8001_ha->phy[phy_id].reset_completion) {
+                       pm80xx_hw_event_ack_req(pm8001_ha, 0, HW_EVENT_PHY_DOWN,
+                               port_id, phy_id, 0, 0);
+               }
                sas_phy_disconnected(sas_phy);
                phy->phy_attached = 0;
                sas_notify_port_event(sas_phy, PORTE_LINK_RESET_ERR,
@@ -5055,4 +5057,5 @@ const struct pm8001_dispatch pm8001_80xx_dispatch = {
        .fw_flash_update_req    = pm8001_chip_fw_flash_update_req,
        .set_dev_state_req      = pm8001_chip_set_dev_state_req,
        .fatal_errors           = pm80xx_fatal_errors,
+       .hw_event_ack_req       = pm80xx_hw_event_ack_req,
 };
index 1bf7a22d494809ea0d846f5e4701245744c575c1..cdc66e2a94886961f9dfbea5e3731c566d967979 100644 (file)
@@ -1415,6 +1415,8 @@ static void qedf_upload_connection(struct qedf_ctx *qedf,
         */
        term_params = dma_alloc_coherent(&qedf->pdev->dev, QEDF_TERM_BUFF_SIZE,
                &term_params_dma, GFP_KERNEL);
+       if (!term_params)
+               return;
 
        QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_CONN, "Uploading connection "
                   "port_id=%06x.\n", fcport->rdata->ids.port_id);
index 35e381f6d371e6b9ce0cb8f60b90e2c79869ef2f..0a70aa763a961f7a0d2a31f7e192c14b045722a8 100644 (file)
@@ -2067,7 +2067,6 @@ void scsi_exit_queue(void)
  *     @sdev:  SCSI device to be queried
  *     @pf:    Page format bit (1 == standard, 0 == vendor specific)
  *     @sp:    Save page bit (0 == don't save, 1 == save)
- *     @modepage: mode page being requested
  *     @buffer: request buffer (may not be smaller than eight bytes)
  *     @len:   length of request buffer.
  *     @timeout: command timeout
@@ -2080,10 +2079,9 @@ void scsi_exit_queue(void)
  *     status on error
  *
  */
-int
-scsi_mode_select(struct scsi_device *sdev, int pf, int sp, int modepage,
-                unsigned char *buffer, int len, int timeout, int retries,
-                struct scsi_mode_data *data, struct scsi_sense_hdr *sshdr)
+int scsi_mode_select(struct scsi_device *sdev, int pf, int sp,
+                    unsigned char *buffer, int len, int timeout, int retries,
+                    struct scsi_mode_data *data, struct scsi_sense_hdr *sshdr)
 {
        unsigned char cmd[10];
        unsigned char *real_buffer;
index 0e73c3f2f381f11549cc03ed852d9cb6785a668c..62eb9921cc947b8cb8e083ea0491434ca4fc0455 100644 (file)
@@ -209,7 +209,7 @@ cache_type_store(struct device *dev, struct device_attribute *attr,
         */
        data.device_specific = 0;
 
-       if (scsi_mode_select(sdp, 1, sp, 8, buffer_data, len, SD_TIMEOUT,
+       if (scsi_mode_select(sdp, 1, sp, buffer_data, len, SD_TIMEOUT,
                             sdkp->max_retries, &data, &sshdr)) {
                if (scsi_sense_valid(&sshdr))
                        sd_print_sense_hdr(sdkp, &sshdr);
index 5393b5c9dd9c87dfbb929608bd84738cbdc162fb..86a938075f308bd41d568127b93214fb129154e2 100644 (file)
@@ -557,7 +557,7 @@ static void ufs_mtk_init_va09_pwr_ctrl(struct ufs_hba *hba)
        struct ufs_mtk_host *host = ufshcd_get_variant(hba);
 
        host->reg_va09 = regulator_get(hba->dev, "va09");
-       if (!host->reg_va09)
+       if (IS_ERR(host->reg_va09))
                dev_info(hba->dev, "failed to get va09");
        else
                host->caps |= UFS_MTK_CAP_VA09_PWR_CTRL;
index 1049e41abd5b2d0a7e87c454bf8b5f4191f5d84b..460d2b440d2edec18c73c78ffc5218b58d507ee0 100644 (file)
@@ -7815,7 +7815,7 @@ static int ufshcd_quirk_tune_host_pa_tactivate(struct ufs_hba *hba)
        peer_pa_tactivate_us = peer_pa_tactivate *
                             gran_to_us_table[peer_granularity - 1];
 
-       if (pa_tactivate_us > peer_pa_tactivate_us) {
+       if (pa_tactivate_us >= peer_pa_tactivate_us) {
                u32 new_peer_pa_tactivate;
 
                new_peer_pa_tactivate = pa_tactivate_us /
index ab7557d84f75136bad4f2cf4bb4ef24a612829b4..647c53b2610514eb5f6c8fa34e8df2261895df8b 100644 (file)
@@ -415,9 +415,8 @@ extern int scsi_mode_sense(struct scsi_device *sdev, int dbd, int modepage,
                           int retries, struct scsi_mode_data *data,
                           struct scsi_sense_hdr *);
 extern int scsi_mode_select(struct scsi_device *sdev, int pf, int sp,
-                           int modepage, unsigned char *buffer, int len,
-                           int timeout, int retries,
-                           struct scsi_mode_data *data,
+                           unsigned char *buffer, int len, int timeout,
+                           int retries, struct scsi_mode_data *data,
                            struct scsi_sense_hdr *);
 extern int scsi_test_unit_ready(struct scsi_device *sdev, int timeout,
                                int retries, struct scsi_sense_hdr *sshdr);