Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi

Pull SCSI fixes from James Bottomley:
"Two small fixes.

The qla2xxx is a regression from 4.18 and the ufs one is a device
enablement fix"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
scsi: ufs: Fix hynix ufs bug with quirk on hi36xx SoC
scsi: qla2xxx: Timeouts occur on surprise removal of QLogic adapter

+25 -2
+8 -2
drivers/scsi/qla2xxx/qla_os.c
··· 1749 1749 static void 1750 1750 __qla2x00_abort_all_cmds(struct qla_qpair *qp, int res) 1751 1751 { 1752 - int cnt; 1752 + int cnt, status; 1753 1753 unsigned long flags; 1754 1754 srb_t *sp; 1755 1755 scsi_qla_host_t *vha = qp->vha; ··· 1799 1799 if (!sp_get(sp)) { 1800 1800 spin_unlock_irqrestore 1801 1801 (qp->qp_lock_ptr, flags); 1802 - qla2xxx_eh_abort( 1802 + status = qla2xxx_eh_abort( 1803 1803 GET_CMD_SP(sp)); 1804 1804 spin_lock_irqsave 1805 1805 (qp->qp_lock_ptr, flags); 1806 + /* 1807 + * Get rid of extra reference caused 1808 + * by early exit from qla2xxx_eh_abort 1809 + */ 1810 + if (status == FAST_IO_FAIL) 1811 + atomic_dec(&sp->ref_count); 1806 1812 } 1807 1813 } 1808 1814 sp->done(sp, res);
+9
drivers/scsi/ufs/ufs-hisi.c
··· 20 20 #include "unipro.h" 21 21 #include "ufs-hisi.h" 22 22 #include "ufshci.h" 23 + #include "ufs_quirks.h" 23 24 24 25 static int ufs_hisi_check_hibern8(struct ufs_hba *hba) 25 26 { ··· 391 390 392 391 static void ufs_hisi_pwr_change_pre_change(struct ufs_hba *hba) 393 392 { 393 + if (hba->dev_quirks & UFS_DEVICE_QUIRK_HOST_VS_DEBUGSAVECONFIGTIME) { 394 + pr_info("ufs flash device must set VS_DebugSaveConfigTime 0x10\n"); 395 + /* VS_DebugSaveConfigTime */ 396 + ufshcd_dme_set(hba, UIC_ARG_MIB(0xD0A0), 0x10); 397 + /* sync length */ 398 + ufshcd_dme_set(hba, UIC_ARG_MIB(0x1556), 0x48); 399 + } 400 + 394 401 /* update */ 395 402 ufshcd_dme_set(hba, UIC_ARG_MIB(0x15A8), 0x1); 396 403 /* PA_TxSkip */
+6
drivers/scsi/ufs/ufs_quirks.h
··· 131 131 */ 132 132 #define UFS_DEVICE_QUIRK_HOST_PA_SAVECONFIGTIME (1 << 8) 133 133 134 + /* 135 + * Some UFS devices require VS_DebugSaveConfigTime is 0x10, 136 + * enabling this quirk ensure this. 137 + */ 138 + #define UFS_DEVICE_QUIRK_HOST_VS_DEBUGSAVECONFIGTIME (1 << 9) 139 + 134 140 #endif /* UFS_QUIRKS_H_ */
+2
drivers/scsi/ufs/ufshcd.c
··· 231 231 UFS_FIX(UFS_VENDOR_SKHYNIX, UFS_ANY_MODEL, UFS_DEVICE_NO_VCCQ), 232 232 UFS_FIX(UFS_VENDOR_SKHYNIX, UFS_ANY_MODEL, 233 233 UFS_DEVICE_QUIRK_HOST_PA_SAVECONFIGTIME), 234 + UFS_FIX(UFS_VENDOR_SKHYNIX, "hB8aL1" /*H28U62301AMR*/, 235 + UFS_DEVICE_QUIRK_HOST_VS_DEBUGSAVECONFIGTIME), 234 236 235 237 END_FIX 236 238 };