Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 126195c9 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull SCSI fixes from James Bottomley:
 "Twelve patches mostly small but obvious fixes or cosmetic but small
  updates"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: qla2xxx: Fix Nport ID display value
  scsi: qla2xxx: Fix N2N link up fail
  scsi: qla2xxx: Fix N2N link reset
  scsi: qla2xxx: Optimize NPIV tear down process
  scsi: qla2xxx: Fix stale mem access on driver unload
  scsi: qla2xxx: Fix unbound sleep in fcport delete path.
  scsi: qla2xxx: Silence fwdump template message
  scsi: hisi_sas: Make three functions static
  scsi: megaraid: disable device when probe failed after enabled device
  scsi: storvsc: setup 1:1 mapping between hardware queue and CPU queue
  scsi: qedf: Remove always false 'tmp_prio < 0' statement
  scsi: ufs: skip shutdown if hba is not powered
  scsi: bnx2fc: Handle scope bits when array returns BUSY or TSF
parents 4f11918a 0aabb6b6
Loading
Loading
Loading
Loading
+24 −5
Original line number Diff line number Diff line
@@ -1923,6 +1923,7 @@ void bnx2fc_process_scsi_cmd_compl(struct bnx2fc_cmd *io_req,
	struct fcoe_fcp_rsp_payload *fcp_rsp;
	struct bnx2fc_rport *tgt = io_req->tgt;
	struct scsi_cmnd *sc_cmd;
	u16 scope = 0, qualifier = 0;

	/* scsi_cmd_cmpl is called with tgt lock held */

@@ -1990,12 +1991,30 @@ void bnx2fc_process_scsi_cmd_compl(struct bnx2fc_cmd *io_req,

			if (io_req->cdb_status == SAM_STAT_TASK_SET_FULL ||
			    io_req->cdb_status == SAM_STAT_BUSY) {
				/* Set the jiffies + retry_delay_timer * 100ms
				   for the rport/tgt */
				/* Newer array firmware with BUSY or
				 * TASK_SET_FULL may return a status that needs
				 * the scope bits masked.
				 * Or a huge delay timestamp up to 27 minutes
				 * can result.
				 */
				if (fcp_rsp->retry_delay_timer) {
					/* Upper 2 bits */
					scope = fcp_rsp->retry_delay_timer
						& 0xC000;
					/* Lower 14 bits */
					qualifier = fcp_rsp->retry_delay_timer
						& 0x3FFF;
				}
				if (scope > 0 && qualifier > 0 &&
					qualifier <= 0x3FEF) {
					/* Set the jiffies +
					 * retry_delay_timer * 100ms
					 * for the rport/tgt
					 */
					tgt->retry_delay_timestamp = jiffies +
					fcp_rsp->retry_delay_timer * HZ / 10;
						(qualifier * HZ / 10);
				}
			}

		}
		if (io_req->fcp_resid)
			scsi_set_resid(sc_cmd, io_req->fcp_resid);
+3 −3
Original line number Diff line number Diff line
@@ -3683,7 +3683,7 @@ void hisi_sas_debugfs_work_handler(struct work_struct *work)
}
EXPORT_SYMBOL_GPL(hisi_sas_debugfs_work_handler);

void hisi_sas_debugfs_release(struct hisi_hba *hisi_hba)
static void hisi_sas_debugfs_release(struct hisi_hba *hisi_hba)
{
	struct device *dev = hisi_hba->dev;
	int i;
@@ -3705,7 +3705,7 @@ void hisi_sas_debugfs_release(struct hisi_hba *hisi_hba)
		devm_kfree(dev, hisi_hba->debugfs_port_reg[i]);
}

int hisi_sas_debugfs_alloc(struct hisi_hba *hisi_hba)
static int hisi_sas_debugfs_alloc(struct hisi_hba *hisi_hba)
{
	const struct hisi_sas_hw *hw = hisi_hba->hw;
	struct device *dev = hisi_hba->dev;
@@ -3796,7 +3796,7 @@ int hisi_sas_debugfs_alloc(struct hisi_hba *hisi_hba)
	return -ENOMEM;
}

void hisi_sas_debugfs_bist_init(struct hisi_hba *hisi_hba)
static void hisi_sas_debugfs_bist_init(struct hisi_hba *hisi_hba)
{
	hisi_hba->debugfs_bist_dentry =
			debugfs_create_dir("bist", hisi_hba->debugfs_dir);
+2 −2
Original line number Diff line number Diff line
@@ -4183,11 +4183,11 @@ megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
		 */
		if (pdev->subsystem_vendor == PCI_VENDOR_ID_COMPAQ &&
		    pdev->subsystem_device == 0xC000)
		   	return -ENODEV;
			goto out_disable_device;
		/* Now check the magic signature byte */
		pci_read_config_word(pdev, PCI_CONF_AMISIG, &magic);
		if (magic != HBA_SIGNATURE_471 && magic != HBA_SIGNATURE)
			return -ENODEV;
			goto out_disable_device;
		/* Ok it is probably a megaraid */
	}

+1 −1
Original line number Diff line number Diff line
@@ -596,7 +596,7 @@ static void qedf_dcbx_handler(void *dev, struct qed_dcbx_get *get, u32 mib_type)
		tmp_prio = get->operational.app_prio.fcoe;
		if (qedf_default_prio > -1)
			qedf->prio = qedf_default_prio;
		else if (tmp_prio < 0 || tmp_prio > 7) {
		else if (tmp_prio > 7) {
			QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_DISC,
			    "FIP/FCoE prio %d out of range, setting to %d.\n",
			    tmp_prio, QEDF_DEFAULT_PRIO);
+2 −0
Original line number Diff line number Diff line
@@ -2920,6 +2920,8 @@ qla24xx_vport_delete(struct fc_vport *fc_vport)
	struct qla_hw_data *ha = vha->hw;
	uint16_t id = vha->vp_idx;

	set_bit(VPORT_DELETE, &vha->dpc_flags);

	while (test_bit(LOOP_RESYNC_ACTIVE, &vha->dpc_flags) ||
	    test_bit(FCPORT_UPDATE_NEEDED, &vha->dpc_flags))
		msleep(1000);
Loading