Message ID | 20200928055023.3950-6-njavali@marvell.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | qla2xxx bug fixes | expand |
On 9/28/20 12:50 AM, Nilesh Javali wrote: > From: Quinn Tran <qutran@marvell.com> > > On unload, session cleanup prematurely gave the signal for driver > unload path to advance. > > Signed-off-by: Quinn Tran <qutran@marvell.com> > Signed-off-by: Nilesh Javali <njavali@marvell.com> > --- > drivers/scsi/qla2xxx/qla_target.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c > index 7711f95033c0..2a0d3c85766a 100644 > --- a/drivers/scsi/qla2xxx/qla_target.c > +++ b/drivers/scsi/qla2xxx/qla_target.c > @@ -1231,14 +1231,15 @@ void qlt_schedule_sess_for_deletion(struct fc_port *sess) > case DSC_DELETE_PEND: > return; > case DSC_DELETED: > - if (tgt && tgt->tgt_stop && (tgt->sess_count == 0)) > - wake_up_all(&tgt->waitQ); > - if (sess->vha->fcport_count == 0) > - wake_up_all(&sess->vha->fcport_waitQ); > - > if (!sess->plogi_link[QLT_PLOGI_LINK_SAME_WWN] && > - !sess->plogi_link[QLT_PLOGI_LINK_CONFLICT]) > + !sess->plogi_link[QLT_PLOGI_LINK_CONFLICT]) { > + if (tgt && tgt->tgt_stop && tgt->sess_count == 0) > + wake_up_all(&tgt->waitQ); > + > + if (sess->vha->fcport_count == 0) > + wake_up_all(&sess->vha->fcport_waitQ); > return; > + } > break; > case DSC_UPD_FCPORT: > /*q > This needs to go to stable as well. Please add Fixes: 726b85487067d ("qla2xxx: Add framework for async fabric discovery") otherwise looks good Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index 7711f95033c0..2a0d3c85766a 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c @@ -1231,14 +1231,15 @@ void qlt_schedule_sess_for_deletion(struct fc_port *sess) case DSC_DELETE_PEND: return; case DSC_DELETED: - if (tgt && tgt->tgt_stop && (tgt->sess_count == 0)) - wake_up_all(&tgt->waitQ); - if (sess->vha->fcport_count == 0) - wake_up_all(&sess->vha->fcport_waitQ); - if (!sess->plogi_link[QLT_PLOGI_LINK_SAME_WWN] && - !sess->plogi_link[QLT_PLOGI_LINK_CONFLICT]) + !sess->plogi_link[QLT_PLOGI_LINK_CONFLICT]) { + if (tgt && tgt->tgt_stop && tgt->sess_count == 0) + wake_up_all(&tgt->waitQ); + + if (sess->vha->fcport_count == 0) + wake_up_all(&sess->vha->fcport_waitQ); return; + } break; case DSC_UPD_FCPORT: /*