Commit d5eeab8d authored by Linus Torvalds's avatar Linus Torvalds

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
parents eb24fdd8 b3652215
...@@ -3640,6 +3640,11 @@ static void ibmvfc_tgt_implicit_logout_and_del(struct ibmvfc_target *tgt) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment