Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 9 Feb 2020 01:24:41 +0000 (17:24 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 9 Feb 2020 01:24:41 +0000 (17:24 -0800)
Pull misc SCSI fixes from James Bottomley:
 "Five small patches, all in drivers or doc, which missed the initial
  pull request.

  The qla2xxx and megaraid_sas are actual fixes and the rest are
  spelling and doc changes"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: ufs: fix spelling mistake "initilized" -> "initialized"
  scsi: pm80xx: fix spelling mistake "to" -> "too"
  scsi: MAINTAINERS: ufs: remove pedrom.sousa@synopsys.com
  scsi: megaraid_sas: fixup MSIx interrupt setup during resume
  scsi: qla2xxx: Fix unbound NVME response length

MAINTAINERS
drivers/scsi/megaraid/megaraid_sas_base.c
drivers/scsi/pm8001/pm80xx_hwi.c
drivers/scsi/qla2xxx/qla_dbg.c
drivers/scsi/qla2xxx/qla_dbg.h
drivers/scsi/qla2xxx/qla_isr.c
drivers/scsi/ufs/ufs.h

index e7874c4..c74e4ea 100644 (file)
@@ -17138,7 +17138,6 @@ F:      drivers/staging/unisys/
 UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER
 R:     Alim Akhtar <alim.akhtar@samsung.com>
 R:     Avri Altman <avri.altman@wdc.com>
-R:     Pedro Sousa <pedrom.sousa@synopsys.com>
 L:     linux-scsi@vger.kernel.org
 S:     Supported
 F:     Documentation/scsi/ufs.txt
index acb8218..fd4b5ac 100644 (file)
@@ -7604,7 +7604,6 @@ megasas_resume(struct pci_dev *pdev)
        int rval;
        struct Scsi_Host *host;
        struct megasas_instance *instance;
-       int irq_flags = PCI_IRQ_LEGACY;
        u32 status_reg;
 
        instance = pci_get_drvdata(pdev);
@@ -7673,16 +7672,15 @@ megasas_resume(struct pci_dev *pdev)
        atomic_set(&instance->ldio_outstanding, 0);
 
        /* Now re-enable MSI-X */
-       if (instance->msix_vectors) {
-               irq_flags = PCI_IRQ_MSIX;
-               if (instance->smp_affinity_enable)
-                       irq_flags |= PCI_IRQ_AFFINITY;
-       }
-       rval = pci_alloc_irq_vectors(instance->pdev, 1,
-                                    instance->msix_vectors ?
-                                    instance->msix_vectors : 1, irq_flags);
-       if (rval < 0)
-               goto fail_reenable_msix;
+       if (instance->msix_vectors)
+               megasas_alloc_irq_vectors(instance);
+
+       if (!instance->msix_vectors) {
+               rval = pci_alloc_irq_vectors(instance->pdev, 1, 1,
+                                            PCI_IRQ_LEGACY);
+               if (rval < 0)
+                       goto fail_reenable_msix;
+       }
 
        megasas_setup_reply_map(instance);
 
index 98dcdbd..d1d95f1 100644 (file)
@@ -2377,7 +2377,7 @@ mpi_sata_completion(struct pm8001_hba_info *pm8001_ha, void *piomb)
                                ts->buf_valid_size = sizeof(*resp);
                        } else
                                PM8001_IO_DBG(pm8001_ha,
-                                       pm8001_printk("response to large\n"));
+                                       pm8001_printk("response too large\n"));
                }
                if (pm8001_dev)
                        pm8001_dev->running_req--;
index e5500bb..88a56e8 100644 (file)
@@ -2519,12 +2519,6 @@ qla83xx_fw_dump_failed:
 /*                         Driver Debug Functions.                          */
 /****************************************************************************/
 
-static inline int
-ql_mask_match(uint level)
-{
-       return (level & ql2xextended_error_logging) == level;
-}
-
 /*
  * This function is for formatting and logging debug information.
  * It is to be used when vha is available. It formats the message
index bb01b68..433e955 100644 (file)
@@ -374,3 +374,9 @@ extern int qla24xx_dump_ram(struct qla_hw_data *, uint32_t, uint32_t *,
 extern void qla24xx_pause_risc(struct device_reg_24xx __iomem *,
        struct qla_hw_data *);
 extern int qla24xx_soft_reset(struct qla_hw_data *);
+
+static inline int
+ql_mask_match(uint level)
+{
+       return (level & ql2xextended_error_logging) == level;
+}
index e7bad0b..e40705d 100644 (file)
@@ -1939,6 +1939,18 @@ static void qla24xx_nvme_iocb_entry(scsi_qla_host_t *vha, struct req_que *req,
                inbuf = (uint32_t *)&sts->nvme_ersp_data;
                outbuf = (uint32_t *)fd->rspaddr;
                iocb->u.nvme.rsp_pyld_len = le16_to_cpu(sts->nvme_rsp_pyld_len);
+               if (unlikely(iocb->u.nvme.rsp_pyld_len >
+                   sizeof(struct nvme_fc_ersp_iu))) {
+                       if (ql_mask_match(ql_dbg_io)) {
+                               WARN_ONCE(1, "Unexpected response payload length %u.\n",
+                                   iocb->u.nvme.rsp_pyld_len);
+                               ql_log(ql_log_warn, fcport->vha, 0x5100,
+                                   "Unexpected response payload length %u.\n",
+                                   iocb->u.nvme.rsp_pyld_len);
+                       }
+                       iocb->u.nvme.rsp_pyld_len =
+                           sizeof(struct nvme_fc_ersp_iu);
+               }
                iter = iocb->u.nvme.rsp_pyld_len >> 2;
                for (; iter; iter--)
                        *outbuf++ = swab32(*inbuf++);
index dde2eb0..cfe3803 100644 (file)
@@ -546,7 +546,7 @@ static inline bool ufs_is_valid_unit_desc_lun(struct ufs_dev_info *dev_info,
                u8 lun)
 {
        if (!dev_info || !dev_info->max_lu_supported) {
-               pr_err("Max General LU supported by UFS isn't initilized\n");
+               pr_err("Max General LU supported by UFS isn't initialized\n");
                return false;
        }