Commit 5c2fe8d1 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull SCSI fixes from James Bottomley:
 "The one core change is a re-roll of the tag allocation fix from the
  last pull request that uses the correct goto to unroll all the
  allocations. The remianing fixes are all small ones in drivers"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: hisi_sas: Fix NULL pointer exception during user_scan()
  scsi: qla2xxx: Completely fix fcport double free
  scsi: ufs: core: Fix SError in ufshcd_rtc_work() during UFS suspend
  scsi: core: Fix error handling for scsi_alloc_sdev()
parents d9bf296c 8ddc0c26
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2578,7 +2578,7 @@ int hisi_sas_probe(struct platform_device *pdev,
	shost->transportt = hisi_sas_stt;
	shost->max_id = HISI_SAS_MAX_DEVICES;
	shost->max_lun = ~0;
	shost->max_channel = 1;
	shost->max_channel = 0;
	shost->max_cmd_len = HISI_SAS_MAX_CDB_LEN;
	if (hisi_hba->hw->slot_index_alloc) {
		shost->can_queue = HISI_SAS_MAX_COMMANDS;
+1 −1
Original line number Diff line number Diff line
@@ -4993,7 +4993,7 @@ hisi_sas_v3_probe(struct pci_dev *pdev, const struct pci_device_id *id)
	shost->transportt = hisi_sas_stt;
	shost->max_id = HISI_SAS_MAX_DEVICES;
	shost->max_lun = ~0;
	shost->max_channel = 1;
	shost->max_channel = 0;
	shost->max_cmd_len = HISI_SAS_MAX_CDB_LEN;
	shost->can_queue = HISI_SAS_UNRESERVED_IPTT;
	shost->cmd_per_lun = HISI_SAS_UNRESERVED_IPTT;
+0 −2
Original line number Diff line number Diff line
@@ -2751,7 +2751,6 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode,
	if (!elsio->u.els_logo.els_logo_pyld) {
		/* ref: INIT */
		kref_put(&sp->cmd_kref, qla2x00_sp_release);
		qla2x00_free_fcport(fcport);
		return QLA_FUNCTION_FAILED;
	}

@@ -2776,7 +2775,6 @@ qla24xx_els_dcmd_iocb(scsi_qla_host_t *vha, int els_opcode,
	if (rval != QLA_SUCCESS) {
		/* ref: INIT */
		kref_put(&sp->cmd_kref, qla2x00_sp_release);
		qla2x00_free_fcport(fcport);
		return QLA_FUNCTION_FAILED;
	}

+2 −6
Original line number Diff line number Diff line
@@ -360,12 +360,8 @@ static struct scsi_device *scsi_alloc_sdev(struct scsi_target *starget,
	 * default device queue depth to figure out sbitmap shift
	 * since we use this queue depth most of times.
	 */
	if (scsi_realloc_sdev_budget_map(sdev, depth)) {
		kref_put(&sdev->host->tagset_refcnt, scsi_mq_free_tags);
		put_device(&starget->dev);
		kfree(sdev);
		goto out;
	}
	if (scsi_realloc_sdev_budget_map(sdev, depth))
		goto out_device_destroy;

	scsi_change_queue_depth(sdev, depth);

+1 −1
Original line number Diff line number Diff line
@@ -10066,6 +10066,7 @@ static int __ufshcd_wl_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
	}

	flush_work(&hba->eeh_work);
	cancel_delayed_work_sync(&hba->ufs_rtc_update_work);

	ret = ufshcd_vops_suspend(hba, pm_op, PRE_CHANGE);
	if (ret)
@@ -10120,7 +10121,6 @@ static int __ufshcd_wl_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op)
	if (ret)
		goto set_link_active;

	cancel_delayed_work_sync(&hba->ufs_rtc_update_work);
	goto out;

set_link_active: