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

Commit 8d5e72df authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull SCSI updates from James Bottomley:
 "This update includes the usual round of major driver updates
  (hisi_sas, ufs, fnic, cxlflash, be2iscsi, ipr, stex). There's also the
  usual amount of cosmetic and spelling stuff"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (155 commits)
  scsi: qla4xxx: fix spelling mistake: "Tempalate" -> "Template"
  scsi: stex: make S6flag static
  scsi: mac_esp: fix to pass correct device identity to free_irq()
  scsi: aacraid: pci_alloc_consistent() failures on ARM64
  scsi: ufs: make ufshcd_get_lists_status() register operation obvious
  scsi: ufs: use MASK_EE_STATUS
  scsi: mac_esp: Replace bogus memory barrier with spinlock
  scsi: fcoe: make fcoe_e_d_tov and fcoe_r_a_tov static
  scsi: sd_zbc: Do not write lock zones for reset
  scsi: sd_zbc: Remove superfluous assignments
  scsi: sd: sd_zbc: Rename sd_zbc_setup_write_cmnd
  scsi: Improve scsi_get_sense_info_fld
  scsi: sd: Cleanup sd_done sense data handling
  scsi: sd: Improve sd_completed_bytes
  scsi: sd: Fix function descriptions
  scsi: mpt3sas: remove redundant wmb
  scsi: mpt: Move scsi_remove_host() out of mptscsih_remove_host()
  scsi: sg: reset 'res_in_use' after unlinking reserved array
  scsi: mvumi: remove code handling zero scsi_sg_count(scmd) case
  scsi: fusion: fix spelling mistake: "Persistancy" -> "Persistency"
  ...
parents 2bd80401 e7731da3
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -239,6 +239,11 @@ DK_CXLFLASH_USER_VIRTUAL
    resource handle that is provided is already referencing provisioned
    storage. This is reflected by the last LBA being a non-zero value.

    When a LUN is accessible from more than one port, this ioctl will
    return with the DK_CXLFLASH_ALL_PORTS_ACTIVE return flag set. This
    provides the user with a hint that I/O can be retried in the event
    of an I/O error as the LUN can be reached over multiple paths.

DK_CXLFLASH_VLUN_RESIZE
-----------------------
    This ioctl is responsible for resizing a previously created virtual
+12 −18
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ with the command.
	scmd is requeued to blk queue.

 - otherwise
	scsi_eh_scmd_add(scmd, 0) is invoked for the command.  See
	scsi_eh_scmd_add(scmd) is invoked for the command.  See
	[1-3] for details of this function.


@@ -103,13 +103,14 @@ function
        eh_timed_out() callback did not handle the command.
	Step #2 is taken.

 2. If the host supports asynchronous completion (as indicated by the
    no_async_abort setting in the host template) scsi_abort_command()
    is invoked to schedule an asynchrous abort. If that fails
    Step #3 is taken.
 2. scsi_abort_command() is invoked to schedule an asynchrous abort.
    Asynchronous abort are not invoked for commands which the
    SCSI_EH_ABORT_SCHEDULED flag is set (this indicates that the command
    already had been aborted once, and this is a retry which failed),
    or when the EH deadline is expired. In these case Step #3 is taken.

 2. scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD) is invoked for the
    command.  See [1-3] for more information.
 3. scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD) is invoked for the
    command.  See [1-4] for more information.

[1-3] Asynchronous command aborts

@@ -124,16 +125,13 @@ function

 scmds enter EH via scsi_eh_scmd_add(), which does the following.

 1. Turns on scmd->eh_eflags as requested.  It's 0 for error
    completions and SCSI_EH_CANCEL_CMD for timeouts.
 1. Links scmd->eh_entry to shost->eh_cmd_q

 2. Links scmd->eh_entry to shost->eh_cmd_q
 2. Sets SHOST_RECOVERY bit in shost->shost_state

 3. Sets SHOST_RECOVERY bit in shost->shost_state
 3. Increments shost->host_failed

 4. Increments shost->host_failed

 5. Wakes up SCSI EH thread if shost->host_busy == shost->host_failed
 4. Wakes up SCSI EH thread if shost->host_busy == shost->host_failed

 As can be seen above, once any scmd is added to shost->eh_cmd_q,
SHOST_RECOVERY shost_state bit is turned on.  This prevents any new
@@ -249,7 +247,6 @@ scmd->allowed.

 1. Error completion / time out
    ACTION: scsi_eh_scmd_add() is invoked for scmd
	- set scmd->eh_eflags
	- add scmd to shost->eh_cmd_q
	- set SHOST_RECOVERY
	- shost->host_failed++
@@ -263,7 +260,6 @@ scmd->allowed.

 3. scmd recovered
    ACTION: scsi_eh_finish_cmd() is invoked to EH-finish scmd
	- clear scmd->eh_eflags
	- scsi_setup_cmd_retry()
	- move from local eh_work_q to local eh_done_q
    LOCKING: none
@@ -456,8 +452,6 @@ except for #1 must be implemented by eh_strategy_handler().

 - shost->host_failed is zero.

 - Each scmd's eh_eflags field is cleared.

 - Each scmd is in such a state that scsi_setup_cmd_retry() on the
   scmd doesn't make any difference.

+0 −1
Original line number Diff line number Diff line
@@ -10079,7 +10079,6 @@ F: drivers/scsi/pmcraid.*
PMC SIERRA PM8001 DRIVER
M:	Jack Wang <jinpu.wang@profitbricks.com>
M:	lindar_liu@usish.com
L:	pmchba@pmcs.com
L:	linux-scsi@vger.kernel.org
S:	Supported
F:	drivers/scsi/pm8001/
+1 −1
Original line number Diff line number Diff line
@@ -7396,7 +7396,7 @@ mpt_display_event_info(MPT_ADAPTER *ioc, EventNotificationReply_t *pEventReply)
			break;
		case MPI_EVENT_SAS_DEV_STAT_RC_NO_PERSIST_ADDED:
			snprintf(evStr, EVENT_DESCR_STR_SZ,
			    "SAS Device Status Change: No Persistancy: "
			    "SAS Device Status Change: No Persistency: "
			    "id=%d channel=%d", id, channel);
			break;
		case MPI_EVENT_SAS_DEV_STAT_RC_UNSUPPORTED:
+6 −1
Original line number Diff line number Diff line
@@ -1329,7 +1329,7 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id)
					WQ_MEM_RECLAIM);
	if (!ioc->fc_rescan_work_q) {
		error = -ENOMEM;
		goto out_mptfc_probe;
		goto out_mptfc_host;
	}

	/*
@@ -1351,6 +1351,9 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id)

	return 0;

out_mptfc_host:
	scsi_remove_host(sh);

out_mptfc_probe:

	mptscsih_remove(pdev);
@@ -1530,6 +1533,8 @@ static void mptfc_remove(struct pci_dev *pdev)
		}
	}

	scsi_remove_host(ioc->sh);

	mptscsih_remove(pdev);
}

Loading