Skip to content

Commit 180eca5

Browse files
committed
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley: "Three small fixes, all in drivers, and one sizeable update to the UFS driver to remove the HPB 2.0 feature that has been objected to by Jens and Christoph. Although the UFS patch is large and last minute, it's essentially the least intrusive way of resolving the objections in time for the 5.15 release" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: ufs: ufshpb: Remove HPB2.0 flows scsi: mpt3sas: Fix reference tag handling for WRITE_INSERT scsi: ufs: ufs-exynos: Correct timeout value setting registers scsi: ibmvfc: Fix up duplicate response detection
2 parents 3a4347d + 09d9e4d commit 180eca5

File tree

6 files changed

+15
-295
lines changed

6 files changed

+15
-295
lines changed

drivers/scsi/ibmvscsi/ibmvfc.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1696,6 +1696,7 @@ static int ibmvfc_send_event(struct ibmvfc_event *evt,
16961696

16971697
spin_lock_irqsave(&evt->queue->l_lock, flags);
16981698
list_add_tail(&evt->queue_list, &evt->queue->sent);
1699+
atomic_set(&evt->active, 1);
16991700

17001701
mb();
17011702

@@ -1710,6 +1711,7 @@ static int ibmvfc_send_event(struct ibmvfc_event *evt,
17101711
be64_to_cpu(crq_as_u64[1]));
17111712

17121713
if (rc) {
1714+
atomic_set(&evt->active, 0);
17131715
list_del(&evt->queue_list);
17141716
spin_unlock_irqrestore(&evt->queue->l_lock, flags);
17151717
del_timer(&evt->timer);
@@ -1737,7 +1739,6 @@ static int ibmvfc_send_event(struct ibmvfc_event *evt,
17371739

17381740
evt->done(evt);
17391741
} else {
1740-
atomic_set(&evt->active, 1);
17411742
spin_unlock_irqrestore(&evt->queue->l_lock, flags);
17421743
ibmvfc_trc_start(evt);
17431744
}

drivers/scsi/mpt3sas/mpt3sas_scsih.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5065,9 +5065,12 @@ _scsih_setup_eedp(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd,
50655065
if (scmd->prot_flags & SCSI_PROT_GUARD_CHECK)
50665066
eedp_flags |= MPI2_SCSIIO_EEDPFLAGS_CHECK_GUARD;
50675067

5068-
if (scmd->prot_flags & SCSI_PROT_REF_CHECK) {
5069-
eedp_flags |= MPI2_SCSIIO_EEDPFLAGS_INC_PRI_REFTAG |
5070-
MPI2_SCSIIO_EEDPFLAGS_CHECK_REFTAG;
5068+
if (scmd->prot_flags & SCSI_PROT_REF_CHECK)
5069+
eedp_flags |= MPI2_SCSIIO_EEDPFLAGS_CHECK_REFTAG;
5070+
5071+
if (scmd->prot_flags & SCSI_PROT_REF_INCREMENT) {
5072+
eedp_flags |= MPI2_SCSIIO_EEDPFLAGS_INC_PRI_REFTAG;
5073+
50715074
mpi_request->CDB.EEDP32.PrimaryReferenceTag =
50725075
cpu_to_be32(scsi_prot_ref_tag(scmd));
50735076
}

drivers/scsi/ufs/ufs-exynos.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -642,9 +642,9 @@ static int exynos_ufs_pre_pwr_mode(struct ufs_hba *hba,
642642
}
643643

644644
/* setting for three timeout values for traffic class #0 */
645-
ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA0), 8064);
646-
ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA1), 28224);
647-
ufshcd_dme_set(hba, UIC_ARG_MIB(PA_PWRMODEUSERDATA2), 20160);
645+
ufshcd_dme_set(hba, UIC_ARG_MIB(DL_FC0PROTTIMEOUTVAL), 8064);
646+
ufshcd_dme_set(hba, UIC_ARG_MIB(DL_TC0REPLAYTIMEOUTVAL), 28224);
647+
ufshcd_dme_set(hba, UIC_ARG_MIB(DL_AFC0REQTIMEOUTVAL), 20160);
648648

649649
return 0;
650650
out:

drivers/scsi/ufs/ufshcd.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2737,12 +2737,7 @@ static int ufshcd_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd)
27372737

27382738
lrbp->req_abort_skip = false;
27392739

2740-
err = ufshpb_prep(hba, lrbp);
2741-
if (err == -EAGAIN) {
2742-
lrbp->cmd = NULL;
2743-
ufshcd_release(hba);
2744-
goto out;
2745-
}
2740+
ufshpb_prep(hba, lrbp);
27462741

27472742
ufshcd_comp_scsi_upiu(hba, lrbp);
27482743

0 commit comments

Comments
 (0)