SCSI fixes on 20210606
Five small and fairly minor fixes, all in drivers. Signed-off-by: James E.J. Bottomley <jejb@linux.ibm.com> -----BEGIN PGP SIGNATURE----- iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCYLzsbiYcamFtZXMuYm90 dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishRkoAQD07kLp JSHpsn97DOdDpCYu+GoLtHz9uJ9Keh+61hbv+gEAoruwy+STPC3MiKP6IW4b1i/R U66kS0NWYkGqOITA2Xs= =Wqvj -----END PGP SIGNATURE----- Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Five small and fairly minor fixes, all in drivers" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V scsi: ufs: ufs-mediatek: Fix HCI version in some platforms scsi: qedf: Do not put host in qedf_vport_create() unconditionally scsi: lpfc: Fix failure to transmit ABTS on FC link scsi: target: core: Fix warning on realtime kernels
This commit is contained in:
Коммит
90d56a3d6e
|
@ -20589,10 +20589,8 @@ lpfc_sli4_issue_abort_iotag(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
|
|||
abtswqe = &abtsiocb->wqe;
|
||||
memset(abtswqe, 0, sizeof(*abtswqe));
|
||||
|
||||
if (lpfc_is_link_up(phba))
|
||||
if (!lpfc_is_link_up(phba))
|
||||
bf_set(abort_cmd_ia, &abtswqe->abort_cmd, 1);
|
||||
else
|
||||
bf_set(abort_cmd_ia, &abtswqe->abort_cmd, 0);
|
||||
bf_set(abort_cmd_criteria, &abtswqe->abort_cmd, T_XRI_TAG);
|
||||
abtswqe->abort_cmd.rsrvd5 = 0;
|
||||
abtswqe->abort_cmd.wqe_com.abort_tag = xritag;
|
||||
|
|
|
@ -1827,22 +1827,20 @@ static int qedf_vport_create(struct fc_vport *vport, bool disabled)
|
|||
fcoe_wwn_to_str(vport->port_name, buf, sizeof(buf));
|
||||
QEDF_WARN(&(base_qedf->dbg_ctx), "Failed to create vport, "
|
||||
"WWPN (0x%s) already exists.\n", buf);
|
||||
goto err1;
|
||||
return rc;
|
||||
}
|
||||
|
||||
if (atomic_read(&base_qedf->link_state) != QEDF_LINK_UP) {
|
||||
QEDF_WARN(&(base_qedf->dbg_ctx), "Cannot create vport "
|
||||
"because link is not up.\n");
|
||||
rc = -EIO;
|
||||
goto err1;
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
vn_port = libfc_vport_create(vport, sizeof(struct qedf_ctx));
|
||||
if (!vn_port) {
|
||||
QEDF_WARN(&(base_qedf->dbg_ctx), "Could not create lport "
|
||||
"for vport.\n");
|
||||
rc = -ENOMEM;
|
||||
goto err1;
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
fcoe_wwn_to_str(vport->port_name, buf, sizeof(buf));
|
||||
|
@ -1866,7 +1864,7 @@ static int qedf_vport_create(struct fc_vport *vport, bool disabled)
|
|||
if (rc) {
|
||||
QEDF_ERR(&(base_qedf->dbg_ctx), "Could not allocate memory "
|
||||
"for lport stats.\n");
|
||||
goto err2;
|
||||
goto err;
|
||||
}
|
||||
|
||||
fc_set_wwnn(vn_port, vport->node_name);
|
||||
|
@ -1884,7 +1882,7 @@ static int qedf_vport_create(struct fc_vport *vport, bool disabled)
|
|||
if (rc) {
|
||||
QEDF_WARN(&base_qedf->dbg_ctx,
|
||||
"Error adding Scsi_Host rc=0x%x.\n", rc);
|
||||
goto err2;
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* Set default dev_loss_tmo based on module parameter */
|
||||
|
@ -1925,9 +1923,10 @@ static int qedf_vport_create(struct fc_vport *vport, bool disabled)
|
|||
vport_qedf->dbg_ctx.host_no = vn_port->host->host_no;
|
||||
vport_qedf->dbg_ctx.pdev = base_qedf->pdev;
|
||||
|
||||
err2:
|
||||
return 0;
|
||||
|
||||
err:
|
||||
scsi_host_put(vn_port->host);
|
||||
err1:
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -1968,8 +1967,7 @@ static int qedf_vport_destroy(struct fc_vport *vport)
|
|||
fc_lport_free_stats(vn_port);
|
||||
|
||||
/* Release Scsi_Host */
|
||||
if (vn_port->host)
|
||||
scsi_host_put(vn_port->host);
|
||||
scsi_host_put(vn_port->host);
|
||||
|
||||
out:
|
||||
return 0;
|
||||
|
|
|
@ -184,6 +184,7 @@ static struct {
|
|||
{"HP", "C3323-300", "4269", BLIST_NOTQ},
|
||||
{"HP", "C5713A", NULL, BLIST_NOREPORTLUN},
|
||||
{"HP", "DISK-SUBSYSTEM", "*", BLIST_REPORTLUN2},
|
||||
{"HPE", "OPEN-", "*", BLIST_REPORTLUN2 | BLIST_TRY_VPD_PAGES},
|
||||
{"IBM", "AuSaV1S2", NULL, BLIST_FORCELUN},
|
||||
{"IBM", "ProFibre 4000R", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
|
||||
{"IBM", "2105", NULL, BLIST_RETRY_HWERROR},
|
||||
|
|
|
@ -603,11 +603,23 @@ static void ufs_mtk_get_controller_version(struct ufs_hba *hba)
|
|||
|
||||
ret = ufshcd_dme_get(hba, UIC_ARG_MIB(PA_LOCALVERINFO), &ver);
|
||||
if (!ret) {
|
||||
if (ver >= UFS_UNIPRO_VER_1_8)
|
||||
if (ver >= UFS_UNIPRO_VER_1_8) {
|
||||
host->hw_ver.major = 3;
|
||||
/*
|
||||
* Fix HCI version for some platforms with
|
||||
* incorrect version
|
||||
*/
|
||||
if (hba->ufs_version < ufshci_version(3, 0))
|
||||
hba->ufs_version = ufshci_version(3, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static u32 ufs_mtk_get_ufs_hci_version(struct ufs_hba *hba)
|
||||
{
|
||||
return hba->ufs_version;
|
||||
}
|
||||
|
||||
/**
|
||||
* ufs_mtk_init - find other essential mmio bases
|
||||
* @hba: host controller instance
|
||||
|
@ -1048,6 +1060,7 @@ static void ufs_mtk_event_notify(struct ufs_hba *hba,
|
|||
static const struct ufs_hba_variant_ops ufs_hba_mtk_vops = {
|
||||
.name = "mediatek.ufshci",
|
||||
.init = ufs_mtk_init,
|
||||
.get_ufs_hci_version = ufs_mtk_get_ufs_hci_version,
|
||||
.setup_clocks = ufs_mtk_setup_clocks,
|
||||
.hce_enable_notify = ufs_mtk_hce_enable_notify,
|
||||
.link_startup_notify = ufs_mtk_link_startup_notify,
|
||||
|
|
|
@ -3121,9 +3121,7 @@ __transport_wait_for_tasks(struct se_cmd *cmd, bool fabric_stop,
|
|||
__releases(&cmd->t_state_lock)
|
||||
__acquires(&cmd->t_state_lock)
|
||||
{
|
||||
|
||||
assert_spin_locked(&cmd->t_state_lock);
|
||||
WARN_ON_ONCE(!irqs_disabled());
|
||||
lockdep_assert_held(&cmd->t_state_lock);
|
||||
|
||||
if (fabric_stop)
|
||||
cmd->transport_state |= CMD_T_FABRIC_STOP;
|
||||
|
|
Загрузка…
Ссылка в новой задаче