mirror of https://gitee.com/openkylin/linux.git
SCSI fixes on 20200508
Four minor fixes, all in drivers (qla2xxx, ibmvfc, ibmvscsi) Signed-off-by: James E.J. Bottomley <jejb@linux.ibm.com> -----BEGIN PGP SIGNATURE----- iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCXrWUpiYcamFtZXMuYm90 dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishaQbAQCus5pe D+e8jb8VzwbT+tr6HgPvaUOoSgrBJpXHy1oVFAEAwWuT9h4yHU8rsis5UR1MMh8F aTW9+wWDpdnTqoZN3iY= =fl/G -----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: "Four minor fixes, all in drivers (qla2xxx, ibmvfc, ibmvscsi)" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: ibmvscsi: Fix WARN_ON during event pool release scsi: ibmvfc: Don't send implicit logouts prior to NPIV login scsi: qla2xxx: Delete all sessions before unregister local nvme port scsi: qla2xxx: Fix hang when issuing nvme disconnect-all in NPIV
This commit is contained in:
commit
d5eeab8d7e
|
@ -3640,6 +3640,11 @@ static void ibmvfc_tgt_implicit_logout_and_del(struct ibmvfc_target *tgt)
|
||||||
struct ibmvfc_host *vhost = tgt->vhost;
|
struct ibmvfc_host *vhost = tgt->vhost;
|
||||||
struct ibmvfc_event *evt;
|
struct ibmvfc_event *evt;
|
||||||
|
|
||||||
|
if (!vhost->logged_in) {
|
||||||
|
ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (vhost->discovery_threads >= disc_threads)
|
if (vhost->discovery_threads >= disc_threads)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -2320,16 +2320,12 @@ static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id *id)
|
||||||
static int ibmvscsi_remove(struct vio_dev *vdev)
|
static int ibmvscsi_remove(struct vio_dev *vdev)
|
||||||
{
|
{
|
||||||
struct ibmvscsi_host_data *hostdata = dev_get_drvdata(&vdev->dev);
|
struct ibmvscsi_host_data *hostdata = dev_get_drvdata(&vdev->dev);
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
srp_remove_host(hostdata->host);
|
srp_remove_host(hostdata->host);
|
||||||
scsi_remove_host(hostdata->host);
|
scsi_remove_host(hostdata->host);
|
||||||
|
|
||||||
purge_requests(hostdata, DID_ERROR);
|
purge_requests(hostdata, DID_ERROR);
|
||||||
|
|
||||||
spin_lock_irqsave(hostdata->host->host_lock, flags);
|
|
||||||
release_event_pool(&hostdata->pool, hostdata);
|
release_event_pool(&hostdata->pool, hostdata);
|
||||||
spin_unlock_irqrestore(hostdata->host->host_lock, flags);
|
|
||||||
|
|
||||||
ibmvscsi_release_crq_queue(&hostdata->queue, hostdata,
|
ibmvscsi_release_crq_queue(&hostdata->queue, hostdata,
|
||||||
max_events);
|
max_events);
|
||||||
|
|
|
@ -3031,11 +3031,11 @@ qla24xx_vport_delete(struct fc_vport *fc_vport)
|
||||||
test_bit(FCPORT_UPDATE_NEEDED, &vha->dpc_flags))
|
test_bit(FCPORT_UPDATE_NEEDED, &vha->dpc_flags))
|
||||||
msleep(1000);
|
msleep(1000);
|
||||||
|
|
||||||
qla_nvme_delete(vha);
|
|
||||||
|
|
||||||
qla24xx_disable_vp(vha);
|
qla24xx_disable_vp(vha);
|
||||||
qla2x00_wait_for_sess_deletion(vha);
|
qla2x00_wait_for_sess_deletion(vha);
|
||||||
|
|
||||||
|
qla_nvme_delete(vha);
|
||||||
vha->flags.delete_progress = 1;
|
vha->flags.delete_progress = 1;
|
||||||
|
|
||||||
qlt_remove_target(ha, vha);
|
qlt_remove_target(ha, vha);
|
||||||
|
|
|
@ -3153,7 +3153,7 @@ qla24xx_abort_command(srb_t *sp)
|
||||||
ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x108c,
|
ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x108c,
|
||||||
"Entered %s.\n", __func__);
|
"Entered %s.\n", __func__);
|
||||||
|
|
||||||
if (vha->flags.qpairs_available && sp->qpair)
|
if (sp->qpair)
|
||||||
req = sp->qpair->req;
|
req = sp->qpair->req;
|
||||||
else
|
else
|
||||||
return QLA_FUNCTION_FAILED;
|
return QLA_FUNCTION_FAILED;
|
||||||
|
|
Loading…
Reference in New Issue